Festlegen des Felds „Verwaltete Metadaten“.
-
28-09-2020 - |
Frage
Ich versuche, ein verwaltetes Metadatenfeld zu aktualisieren, erhalte jedoch die Fehlermeldung „Die Eigenschaft „ListItemCollectionPosition“ kann für dieses Objekt nicht gefunden werden“$spQuery.<<
$site1 = Get-SPSite mysite
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Taxonomy")
$site2 = $site1
$session = New-Object Microsoft.SharePoint.Taxonomy.TaxonomySession($site2)
$termStore = $session.TermStores["Managed Metadata Service"]
$group = $termStore.Groups["mygroup"]
$termSet = $group.TermSets[mytermset"]
$terms = $termSet.GetTerms(100)
$term = $terms | ?{$_.Name -eq "Off"}
$web1 = Get-SPWeb myweb
$list1 = "Board meetings"
$list2 = $web1.Lists[$list1]
if($list2.BaseType -eq "DocumentLibrary")
{
$Count = $List.Folders.Count + $list.Items.Count
if($list2.Fields.ContainsField("marking") -eq $true)
{
$query = New-Object Microsoft.SharePoint.SPQuery
$query.ViewAttributes = "Scope='Recursive'";
$query.RowLimit = 2000
$caml = '<Where><AND><Neq><FieldRef Name="marking" /><Value Type="Text">Off-S</Value></Neq><Neq><FieldRef Name="marking" /><Value Type="Text">Off-S</Value></Neq></AND></Where>' +
$query.Query = $caml
do
{
$listItems = $list2.GetItems($query)
$spQuery.ListItemCollectionPosition = $listItems.ListItemCollectionPosition
foreach($item in $listItems)
{
#Cast to SPListItem to avoid ambiguous overload error
$spItem = [Microsoft.SharePoint.SPListItem]$item;
#Get the taxonomy field for the list item
$taxField = [Microsoft.SharePoint.Taxonomy.TaxonomyField]$spItem.Fields["GPMS marking"]
$taxField.SetFieldValue($spItem,$term)
$spItem.SystemUpdate()
}
}
while ($spQuery.ListItemCollectionPosition -ne $null)
}
}
Lösung
Sie erstellen eine SPQuery
Objekt mit Namen $query
$query = New-Object Microsoft.SharePoint.SPQuery
Aber dann benutzen Sie $spQuery.ListItemCollectionPosition
.Ändern Sie es in $query.ListItemCollectionPosition
Auch ändern while ($spQuery.ListItemCollectionPosition -ne $null)
Zu while ($query.ListItemCollectionPosition -ne $null)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange