扩展字段在SharePoint列表中不能完全运行

时间:2017-11-17 10:55:37

标签: microsoft-graph sharepoint-online

我正在关注Get metadata for a list的文档。

使用PowerShell或Graph Explorer查询无法完全展开SharePoint列表中项目的字段。

此示例是名为Responsible的查找字段,用于在Azure Active Directory中查找用户(或在SharePoint术语中,该列是Person or Group列,仅限于人员)。

一旦通过GUI选择,它就会填充一个显示名称(尽管我希望将更多权威信息存储在后端,如UPN)。

使用以下格式查询Graph API时:

$Uri = "https://graph.microsoft.com/v1.0/sites/$($SPSite.id)/lists/$($ServiceList.id)/items?expand=fields"
$Data = Invoke-RestMethod -Headers @{Authorization = "Bearer $accesstoken"} -Uri $Uri -Method Get -ErrorAction Stop

我们得到这样的东西:

@odata.etag               : "REMOVED"
Title                     : Storage Platform
Description               : Central storage platform
ResponsibleLookupId       : 14
Responsible2LookupId      : 13
AccountableLookupId       : 3
Features                  : NFS
AudienceLookupId          : 92
RequestProcess            : {@{LookupId=1; LookupValue=Service Desk}}
Support                   : {@{LookupId=1; LookupValue=Service Desk}}
AvailabilityLookupId      : 1
DependsOn                 : {}
O365GroupLookupId         : 87
LifecycleStageLookupId    : 2
ConsultLookupId           : 88
id                        : 1
ContentType               : Item
Modified                  : 2017-11-17T10:47:07Z
Created                   : 2017-11-17T10:47:07Z
_UIVersionString          : 1.0
Attachments               : False
Edit                      : 
LinkTitleNoMenu           : Storage Platform
LinkTitle                 : Storage Platform
ItemChildCount            : 0
FolderChildCount          : 0
_ComplianceFlags          : 
_ComplianceTag            : 
_ComplianceTagWrittenTime : 
_ComplianceTagUserId      : 

您可以看到字段ResponsibleLookupId只提供14的值,这是无用的。其他字段链接到Office 365组,但再次返回值。因此,无法将这些数据链接到用户/组,并且除非通过门户网站查看,否则其价值非常有限。

我们如何扩展这些数据?它是否会在以后通过API调用提供,还是我们必须进行进一步的查找?

1 个答案:

答案 0 :(得分:2)

默认情况下,Microsoft Graph将为查找字段返回LookupId。您可以通过在$select参数中专门请求该字段来要求它提供实际值。

使用以下查询将返回displayName而不是LookupId的{​​{1}}:

Responsible

您可以在FieldValueSet的文档中了解其工作原理。

至于返回...items?expand=fields($select=Responsible) ,目前您无法控制它返回的值(它是userPrincipalName还是LookupId)。我建议您访问{ {3}}并添加您的建议。