【问题标题】:Filter a multiple-select user field using SharePoint's OData API使用 SharePoint 的 OData API 筛选多选用户字段
【发布时间】:2015-07-29 20:24:11
【问题描述】:

如果 SharePoint 列表具有多选用户字段 (DeveloperSecondary):

按此字段过滤的正确方法是什么?这两个查询都会产生 404 错误:

http://server/_vti_bin/listdata.svc/list?$filter=(DeveloperSecondary/Results/UserName eq 'foo')

http://server/_vti_bin/listdata.svc/list?$filter=(DeveloperSecondary/UserName eq 'foo')

如果这是一个单选用户字段,则 OData 查询将是:

http://server/_vti_bin/listdata.svc/list?$filter=(SingleSelectUserField/UserName eq 'foo')

【问题讨论】:

    标签: powershell sharepoint sharepoint-2010 odata


    【解决方案1】:

    很遗憾,多值用户字段$filter查询选项在SharePoint 2010 OData API中支持。

    作为一种解决方法,您可以考虑将过滤器应用于返回的结果,如下所示:

    $requestUrl = "http://contoso.intranet.dev/_vti_bin/listdata.svc/TheList?`$expand=DeveloperSecondary"
    $data = Execute-RequestJson -Url $requestUrl -UseDefaultCredentials $true
    #filter items
    $data.d.results | % { $_.DeveloperSecondary.results | Where-Object {($_.Name -eq 'John Doe')} }
    

    在哪里

    Function Execute-RequestJson()
    {
    Param(
      [Parameter(Mandatory=$True)]
      [string]$Url,
      [Parameter(Mandatory=$False)]
      [System.Net.ICredentials]$Credentials,
      [Parameter(Mandatory=$False)]
      [bool]$UseDefaultCredentials = $True,
      [Parameter(Mandatory=$False)]
      [Microsoft.PowerShell.Commands.WebRequestMethod]$Method = [Microsoft.PowerShell.Commands.WebRequestMethod]::Get 
    )
    
       $client = New-Object System.Net.WebClient
       if($Credentials) {
         $client.Credentials = $Credentials
       }
       elseif($UseDefaultCredentials){
         $client.Credentials = [System.Net.CredentialCache]::DefaultCredentials 
       }
       $client.Headers.Add("Content-Type", "application/json;odata=verbose")
       $client.Headers.Add("Accept", "application/json;odata=verbose")
       $data = $client.DownloadString($Url)
       $client.Dispose()
       return $data | ConvertFrom-Json
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-18
      • 2023-01-19
      • 1970-01-01
      • 2011-06-18
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多