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

Dynamics 365 - Web API Change the Active Business Process Flow on a record

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

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

这是我发送的请求:

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

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

感谢任何帮助!

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

从 UI 的角度来看 - 当您想中止现有 BPF 时,完全切换到新的 BPF,只需单击一两下即可完成,平台会在后台为您完成所有操作。

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

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

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

Use the following request to create an instance of your business process flow definition for an account row

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 a business process flow table row (process instance)

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

Reference