You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft Graph PATCH请求修改SharePoint列表项_ModerationStatus遇异常

解决Graph API修改SharePoint文档审批状态(_ModerationStatus)的问题

我之前踩过这个坑——直接用PATCH请求修改_ModerationStatus这个系统字段是行不通的,因为它是关联文档审批工作流的受控元数据,Graph API不允许直接通过常规列表项更新来修改它。得用专门的审批操作端点才行,下面给你详细的解决步骤:

1. 先确认权限是否足够

要修改审批状态,你需要具备:

  • SharePoint端的库完全控制权限或者站点管理员权限
  • Graph API权限:应用权限需Sites.FullControl.All,委派权限需Sites.Manage.All(普通编辑权限不足以操作审批状态)

2. 使用专门的审批操作API,而非直接PATCH列表项

批准文档

发送POST请求到以下端点:

https://graph.microsoft.com/v1.0/sites/{siteId}/lists/{listId}/items/{itemId}/approve

请求体可添加审批备注(可选):

{
  "comment": "已确认文档符合要求,予以批准"
}

拒绝文档

发送POST请求到以下端点:

https://graph.microsoft.com/v1.0/sites/{siteId}/lists/{listId}/items/{itemId}/reject

请求体示例:

{
  "comment": "文档缺少必要的合规说明,予以拒绝"
}

设置特定的审批状态(如待审批、暂存等)

如果需要将文档设置为其他审批状态(比如提交审批、暂存草稿),可以用setModerationStatus方法,发送POST请求到:

https://graph.microsoft.com/v1.0/sites/{siteId}/lists/{listId}/items/{itemId}/setModerationStatus

请求体中指定状态值(对应_ModerationStatus的枚举):

{
  "status": 2, // 状态枚举:0=已批准,1=拒绝,2=待审批,3=已安排,4=已草稿,5=已暂存
  "comment": "将文档提交至审批流程"
}

为什么直接PATCH不行?

_ModerationStatus是SharePoint系统维护的内部字段,它和文档审批工作流的状态深度绑定。直接修改这个字段会触发系统的安全校验,导致API返回异常——只有通过官方提供的审批操作端点,才能保证工作流状态和元数据同步更新。

内容的提问来源于stack exchange,提问作者Alberto Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:29:27