Microsoft Graph更新SharePoint列表项多选字段

时间:2018-05-16 15:24:50

标签: json microsoft-graph sharepoint-online

使用Microsoft Graph更新多选列表项字段的正确JSON语法是什么?

多选字段返回字符串的json数组,如:

获取:/v1.0/sites/{siteId}/lists/{listId}/items/{itemId}

"CAG_x0020_Process_x0020_Status": [
    "Proposed Funding - Customer Billed",
    "Proposed Funding - Sales Funded",
    "SOW - Needed"
]

但是,当使用相同的语法更新字段时,将返回400无效请求。

补丁:/v1.0/sites/{siteId}/lists/{listId}/items/{itemId}/fields

"CAG_x0020_Process_x0020_Status": [
    "Proposed Funding - Customer Billed",
    "Proposed Funding - Sales Funded",
    "SOW - Needed"
]

返回错误:

{
  "error": {
    "code": "invalidRequest",
    "message": "The request is malformed or incorrect.",
    "innerError": {
      "request-id": "2251e25f-e4ce-491f-beb9-e463c7d8d5af",
      "date": "2018-05-16T15:16:23"
    }
  }
}

我可以更新请求的所有其他字段,但最后一个字段是暂停应用程序的发布。

4 个答案:

答案 0 :(得分:1)

要详细说明评论中的@ muhammad-obaidullah-ather,对于字符串多个选择,您需要将类型定义为 Collection(Edm。 String 然后他的解决方案对我有用。重复他写的完整答案。 应该以如下形式发送PATCH:

PATCH /v1.0/sites/{SiteId}/lists/{ListId}/items/{ItemId}/fields

{"*FieldName*@odata.type":"Collection(Edm.String)","*FieldName*":["*Value1*","*Value2*"]}

答案 1 :(得分:0)

不幸的是,今天无法通过Microsoft Graph更新许多列类型,包括MultiChoice。我建议将其添加到Office Dev UserVoice,以便它仍然在SharePoint / Graph团队的雷达上。

答案 2 :(得分:0)

我可以使用以下

发布多个lookupid
    "ProductsLookupId@odata.type": "Collection(Edm.Int32)",
    "ProductsLookupId":[6,7,8]

我遵循了此stackoverflow回复的建议

答案 3 :(得分:0)

这对我有用

graph.api(url)
  .version('beta')
  .post({
    'fields': {
      'AssignedToLookupId@odata.type': 'Collection(Edm.Int32)',
      'AssignedToLookupId': [5,13]
    }
  });