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

转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/

本章将总结一下设置SharePoint list中item的Managed Metadata field value的方法。

以下函数是我封装好的可以直接用来获取相应Managed Metadata类型field的terms value:

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,所以在使用的过程中可以将该结果存储到你所需要保存到的变量中,使用方法如下(引号中是需要你去填写的数据):

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

在PowerShell中运行的结果如下,我们可以看到,相应的terms都已经保存到我们的变量$terms中:

接下来,就是将获取到的terms的值赋予到SharePoint list item相应field的过程(与正常的赋值过程不同):

#正常field的赋值方法:
$Item["fieldName"] = $value
#MMS类型field的赋值方法($index为$terms数组变量中相应位置的索引): $list.fields[
"fieldName"].SetFieldValue($Item,terms[$index])

以后陆续我还会总结一些其他类型field的赋值方法,欢迎大家提问与交流。

转载于:https://www.cnblogs.com/LanTianYou/p/4632818.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值