SharePoint Online: แบบสอบถาม CAML สำหรับฟิลด์ตัวเลือกใน PowerShell
ความต้องการ: แบบสอบถาม CAML สำหรับฟิลด์ตัวเลือกใน SharePoint Online โดยใช้ PowerShell
รับรายการที่ช่องตัวเลือกเท่ากับค่าเฉพาะ:
มาดูโปรเจ็กต์ทั้งหมดจากรายการโปรเจ็กต์ โดยที่ค่าช่องตัวเลือก "ลำดับความสำคัญ" คือ "ปานกลาง"
#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://crescent.sharepoint.com/"
$ListName="Projects"
#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 Object
$List = $Ctx.Web.lists.GetByTitle($ListName)
#Define the CAML Query - sharepoint caml query choice field
$Query = New-Object Microsoft.SharePoint.Client.CamlQuery
$Query.ViewXml = "@
<View Scope='RecursiveAll'>
<Query>
<Where>
<Eq>
<FieldRef Name='Priority' /><Value Type='Choice'>(3) High</Value>
</Eq>
</Where>
</Query>
</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)
{
#Do something
Write-host $Item["Title"]
}
SharePoint CAML สำหรับหลายตัวเลือก
มารับโปรเจ็กต์ทั้งหมดที่มีลำดับความสำคัญ โดยคอลัมน์แบบหลายตัวเลือกจะมีทั้งค่า "สูง" และ "ปานกลาง" ที่เลือกไว้
$Query.ViewXml = "@
<View Scope='RecursiveAll'>
<Query>
<Where>
<And>
<Contains>
<FieldRef Name='Priority' /><Value Type='MultiChoice'>High</Value>
</Contains>
<Contains>
<FieldRef Name='Priority' /><Value Type='MultiChoice'>Medium</Value>
</Contains>
</And>
</Where>
</Query>
</View>"