SharePoint自動化系列——Set MMS field value using PowerShell.

 

本章將總結一下設置SharePoint list中item的Managed Metadata field value的方法。web

如下函數是我封裝好的能夠直接用來獲取相應Managed Metadata類型field的terms value:api

Add-PSSnapin Microsoft.SharePoint.PowerShell
function GetFieldTerms
{
  param($siteUrl,$listTitle,$fieldName)
  $site = Get-SPSite $siteUrl
  $web = $site.rootweb
  $List = $web.lists[$listTitle]
  $MMSField = $List.Fields[$fieldName]
  $MMSFieldtsId = $MMSField.TermSetId
  $MMSFieldtermStoreId = $MMSField.SspId
  $MMSFieldtsession = Get-SPTaxonomySession -Site $site
  $MMSFieldtstore = $MMSFieldtsession.TermStores[$MMSFieldtermStoreId]
  $MMSFieldtset = $MMSFieldtstore.GetTermSet($MMSFieldtsId)
  $terms = $MMSFieldtset.terms
  $terms
}數組

該函數的返回值爲$terms,因此在使用的過程當中能夠將該結果存儲到你所須要保存到的變量中,使用方法以下(引號中是須要你去填寫的數據):session

$terms = GetFieldTerms -siteUrl "" -listTitle "" -fieldName ""

在PowerShell中運行的結果以下,咱們能夠看到,相應的terms都已經保存到咱們的變量$terms中:ide

接下來,就是將獲取到的terms的值賦予到SharePoint list item相應field的過程(與正常的賦值過程不一樣):函數

#正常field的賦值方法:
$Item["fieldName"] = $value
#MMS類型field的賦值方法($index爲$terms數組變量中相應位置的索引): $list.fields["fieldName"].SetFieldValue($Item,terms[$index])

之後陸續我還會總結一些其餘類型field的賦值方法,歡迎你們提問與交流。blog

相關文章
相關標籤/搜索