RowLimit не работает в CAML-запросе SharePoint Online - PullRequest
0 голосов
/ 23 сентября 2019

По какой-то причине RowLimit не работает в SharePoint Online.Мне было интересно, если RowLimit поддерживается функция.Если да, что не так в приведенном ниже запросе?

<View><Query>
<Where><Eq><FieldRef Name='SiteStatus'/><Value Type='Text'>Completed</Value></Eq></Where>
<OrderBy><FieldRef Name='ID' Ascending='FALSE'/></OrderBy></Query>
<ViewFields><FieldRef Name='Title'/></ViewFields>
<RowLimit>2</RowLimit>
</View>

Режим запроса: PowerShell PnP

1 Ответ

0 голосов
/ 24 сентября 2019

Протестировано с помощью CAML-запроса в CSOM PowerShell, опция RowLimit работает должным образом:

#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

#Set parameter values
$SiteURL="https://tenant.sharepoint.com/sites/sitename/"
$ListName="listname"

#Get Credentials to connect
$Cred= Get-Credential

#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

#Get the List
$List = $Ctx.Web.lists.GetByTitle($ListName)

#Define the CAML Query
$Query = New-Object Microsoft.SharePoint.Client.CamlQuery
$Query.ViewXml = "@
       <View>  
            <Query> 
               <Where><Eq><FieldRef Name='SiteStatus' /><Value Type='Text'>Completed</Value></Eq></Where><OrderBy><FieldRef Name='ID' Ascending='FALSE' /></OrderBy> 
            </Query> 
             <ViewFields><FieldRef Name='Title' /></ViewFields> 
            <RowLimit>2</RowLimit> 
      </View>"

#Get All List Items matching the query
$ListItems = $List.GetItems($Query)
$Ctx.Load($ListItems)
$Ctx.ExecuteQuery()

Write-host "Total Number of Items:"$ListItems.count

#Loop through each List Item
ForEach($Item in $ListItems)
{
    Write-host $Item.id
    Write-host $Item["Title"]
}

Это данные списка тестов:

enter image description here

При выполнении PowerShell он возвращает два последних элемента, которые SiteStatus равен Выполнено:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...