2015-07-10 1 views
1

Если список SharePoint имеет поле выбора нескольких пользователей (DeveloperSecondary):фильтр поле выбора нескольких пользователей с помощью SharePoint в OData API

enter image description here

Что такое правильный способ фильтрации по этому полю? Оба этих запросы производят ошибки 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') 

ответ

1

К сожалению $filter варианта запроса для многозначного поля пользователя is не поддерживается в SharePoint 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 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^