Get metadata for a listのドキュメントに従っています。SharePointリストでフィールドが完全に機能しない
PowerShellまたはグラフエクスプローラーを使用してクエリを実行すると、SharePointリスト内の項目のフィールドが完全に展開されません。
例として、Responsible
というルックアップフィールドがあり、これはAzure Active Directory(またはSharePointの用語では、列はPerson or Group
列であり、人のみに限定されます)でユーザーを検索します。
GUIを選択すると、表示名が入力されます(ただし、より明確な情報をバックエンドに保存することを希望します(UPN
など)。
フォームを使用してグラフAPIを照会する場合:あなたは、フィールドResponsibleLookupId
がちょうど有用ではありません14
の値を与えていることがわかります
@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 :
:
$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
我々はこのような何かを得ます。他のフィールドはOffice 365グループにリンクしますが、再度値を返します。したがって、このデータのいずれかをユーザー/グループにリンクすることは不可能であり、ポータルを介して見ている場合を除いて、価値は非常に限られています。
このデータを拡張するにはどうすればよいですか? API呼び出しによって後で提供されるのか、それともさらなるルックアップを実行する必要がありますか?
ありがとう - これは動作します。 expand = fieldsはすべてのフィールドを拡張し、最後に($ select =)を追加すると、単にそのリストを改良するだけである(PowerShellの 'Select-Object'への配管と同じように)。私たちは、よりユニークで使いやすいdisplaynameの代わりに、フィールドの電子メールの選択/保存(?)を強制することができます。しかし、12フィールドの最大ルックアップについては残念です。私はUserVoiceに向かいます。 – Robin
私は同意します、電子メールアドレスはより良い選択肢ですが、残念ながら人々は常にデフォルトを制御するとは限りません。あなたがResponsibleExpandedを求めて、ちょうどどちらか一方の代わりに完全なオブジェクトを得ることができればいいでしょう。 12については、私が最初に仕事を始めたときと同じ反応を示しました。実際には、12個のフィールドが一度にコレクションから表面に出てくるので、私はほとんど限界に遭わなかった。 –