🔄
Microsoft Graph でも SharePoint リスト アイテムの複数の値を持つ列が更新できない
SharePoint REST API の時代からですが複数の値を持つ列 (MultiChoice
、UserMulti
、LookupMulti
) を更新できないという問題がありました。英語フォーラムの情報を見てもできるという情報もあったりできないという情報があったりして錯綜しているのですが、少なくとも私が試した限りでは解決できていません。
具体的には以下のようなリクエストを投げると
POST https://example.sharepoint.com/_api/web/lists('{{list-id}}')/items({{item-id}})
Authorization: Bearer {{access-token}}
Accept: application/json; odata=verbose
Content-Type: application/json; odata=verbose
{
"__metadata": {
"type": "SP.ListItem"
},
"ChoiceField": {
"results": [
"Test Value"
]
}
}
400 エラーが返ってきます。[1]
Microsoft.SharePoint.Client.InvalidClientQueryException: A value without a type name was found and no expected type is available. When the model is specified, each value in the payload must have a type which can be either specified in the payload, explicitly by the caller or implicitly inferred from the parent value. [2]
これ Microsoft Graph で改善してるのかなと思ってふと試したところ全然治っていないみたいです。
{
"error": {
"code": "-1, Microsoft.SharePoint.Client.InvalidClientQueryException",
"message": "A value without a type name was found and no expected type is available. When the model is specified, each value in the payload must have a type which can be either specified in the payload, explicitly by the caller or implicitly inferred from the parent value.",
}
}
まあ Microsoft Graph は SharePoint REST API をラップしているだけなので当たり前といえば当たり前なのですが、悲しい気持ちになりましたというお話。
Discussion