如何通过Dynamics 365 API自动启停Dynamics CRM流程以完成数据上传?
Dynamics CRM流程启停的API实现方案
完全可以通过API实现流程的自动停用与激活,下面是具体的实现方式:
核心操作逻辑
Dynamics CRM(现基于Dataverse)中的自动触发类流程(比如你提到的字段同步、信息更新类工作流)对应实体为workflow,通过Web API的PATCH请求修改实体状态字段即可完成启停:
- 停用流程:将
statecode设为1(已停用),statuscode设为2(已停用) - 激活流程:将
statecode设为0(已激活),statuscode设为1(已激活)
请求示例
停用流程
请求方法:PATCH
请求路径:[你的组织URI]/api/data/v9.2/workflows(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
请求体(JSON格式):
{ "statecode": 1, "statuscode": 2 }
激活流程
请求方法:PATCH
请求路径:[你的组织URI]/api/data/v9.2/workflows(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
请求体(JSON格式):
{ "statecode": 0, "statuscode": 1 }
额外说明
- 权限要求:执行操作的用户需要拥有
workflow实体的写入权限,以及激活/停用流程的权限(系统管理员、系统定制员角色默认具备,也可自定义角色分配对应权限)。 - 流程ID获取:可以通过Web API的GET请求查询
workflows实体,根据流程名称、类型过滤定位目标ID,示例查询:GET [你的组织URI]/api/data/v9.2/workflows?$filter=name eq '你的流程名称' - 云流适配:如果你的流程是Power Automate云流,对应实体为
cloudflows,状态码规则与workflow一致,只需将请求路径中的workflows替换为cloudflows即可。 - 操作顺序:先调用停用接口,确认状态变更后执行数据上传,完成后再调用激活接口,同时需加入错误处理(如状态校验、重试机制),避免流程长时间停用。
内容的提问来源于stack exchange,提问作者anon1
相关产品推荐
相关产品推荐

