Dynamics 365 - Web API 更改记录上的活动业务流程

问题描述

您好,我正在尝试切换记录上的活动业务流程。基本上,我有两个业务流程,我想将记录(潜在客户)移动到第二个业务流程,它目前在第一个业务流程上。

我曾尝试使用 SetProcess Action。请求成功 (204),但未将记录上的业务流程更新为正确的。

这是我发送的请求:

url = "[Org Url]SetProcess"
data = data_action = {
    'Target': f'leads({leadid})','NewProcess': 'workflows(9e5b9ac9-2e14-4293-bc22-076e8accb444)',}

但是当我在 Dynamics 中刷新记录时,它仍然显示旧的业务流程。工作流 ID 是正确的业务流程。

感谢任何帮助!

解决方法

从用户界面的角度来看——当你想中止现有的 BPF 时,完全切换到一个新的 BPF,只需点击一两次,平台就会在后台为你做一切。

而从 SDK/API 的角度来看 - 我们必须处理一些事情。它曾经是存储关联 BPF 的流程和阶段 ID 的同一 CRM 记录(例如帐户、潜在客户)中的属性。后来它变成了任何活动 BPF 的 N:N 表存储过程和阶段 ID,这是为了满足用例,例如 - 不同的团队可以在同一 CRM 记录(例如帐户或潜在客户)上拥有不同的 BPF,并且可以放弃 BPF 和可以使用新的 BPF 重新开始。

现在,当你想启动一个新的 BPF 实例并放弃旧的 BPF 实例时,当你只是创建一个新的 BPF 的新实例时,它并没有完全处理,因此需要删除 BPF 表中的旧条目。然后,一旦创建并导航到该表单,新实例就会生效。

您可以通过 Web api 调用来完成这些操作。下面的一些示例负载:

使用以下请求为帐户行创建业务流程定义的实例

POST [Organization URI]/api/data/v9.0/new_mycustombpfs HTTP/1.1 
Content-Type: application/json; charset=utf-8 
OData-MaxVersion: 4.0 
OData-Version: 4.0 
Accept: application/json 

{
    "bpf_accountid@odata.bind": "/accounts(a176be9e-9a68-e711-80e7-00155d41e206)","activestageid@odata.bind": "/processstages(9a9185f5-b75b-4bbb-9c2b-a6626683b99b)"    
}

删除一个业务流程流表行(流程实例)

DELETE [Organization URI]/api/data/v9.0/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1

Reference

,

我实际上能够做到这一点,必须从旧 BPF 的 PBF 实体中删除您不想要的实体记录,然后将其添加到新的 BPF 实体中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...