1

サイト列を更新し、変更をプッシュ ダウンする次の csom スクリプトがあります。

Add-Type -Path "Libraries\Microsoft.SharePoint.Client.dll" 
Add-Type -Path "Libraries\Microsoft.SharePoint.Client.Runtime.dll" 

$webUrl = "enter_url_here" 
$username = "enter_username_here"
$password = "enter_password_here"
$securePass = ConvertTo-SecureString $password -AsPlainText -Force

$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($webUrl)
$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $securePass)

#Add description to the "Other category" field
$fieldTitle = "Other category"
$fieldDesc = "Search for an existing name before adding new entries"
$field = $ctx.Site.RootWeb.Fields.GetByInternalNameOrTitle($fieldTitle)
$field.Description = $fieldDesc
$field.UpdateAndPushChanges($true)

#Add description to the "Initiator location" field
$field2Title = "Initiator location"
$field2 = $ctx.Site.RootWeb.Fields.GetByInternalNameOrTitle($field2Title)
$field2.Description = $fieldDesc
$field2.UpdateAndPushChanges($true)

#Setting the "Main-category" field as required/mandatory
$field3Title = "Main-category"
$field3 = $ctx.Site.RootWeb.Fields.GetByInternalNameOrTitle($field3Title)
$field3.Required = $true
$field3.UpdateAndPushChanges($true)

$ctx.ExecuteQuery()

上記のフィールド/列はすべて、「メイン ドキュメント」と呼ばれるサイト コンテンツ タイプの一部です。

これまでのところ、これは問題なく動作しますが、「メイン カテゴリ」フィールドの場合、コンテンツ タイプ レベルで「必須」に設定するにはどうすればよいですか? 現時点では、これはサイトの列レベルでのみ設定されていますが、これを実現する最も簡単な方法は何ですか?

どうもありがとう。

4

1 に答える 1

2

ContentType.FieldLinks プロパティを使用してコンテンツ タイプのフィールド参照を取得してから、FieldLink.Required プロパティを使用してフィールドに値が必要かどうかを指定する値を設定します。

Requiredコンテンツ タイプを介してフィールドのプロパティを設定する方法:

$ct = $ctx.Web.ContentTypes.GetById($ctId) #get Content Type 
$fieldLink = $ct.FieldLinks.GetById($fieldId) #get Field Link
$fieldLink.Required = $true
$ct.Update($true)
$ctx.ExecuteQuery() 
于 2014-06-02T21:38:57.013 に答える