gpt4 book ai didi

c# - 是否可以从 Dynamics CRM 2013 中的代码更改工作流步骤属性

转载 作者:太空宇宙 更新时间:2023-11-03 13:06:23 29 4
gpt4 key购买 nike

如果我从 Dynamics CRM 中的代码模板创建工作流,是否可以更改工作流步骤属性的值?

我有一个自定义工作流步骤,它是工作流模板的一部分,但对于我由此创建的每个工作流,我想将不同的值传递给该步骤。

我正在从 C# 创建工作流作为 powershell cmdlet 的一部分。我试过使用 xaml 从头开始​​创建工作流,但它导致了更多它解决的问题。

我可以使用以下代码创建和检索工作流,但我看不到任何指向我检索的工作流对象上的步骤的信息。

using (var proxy = auth.GetOrganizationProxy())
{
// This statement is required to enable early-bound type support.
proxy.EnableProxyTypes();

OrganizationServiceContext _orgContext = new OrganizationServiceContext(proxy);

CreateWorkflowFromTemplateRequest request = new CreateWorkflowFromTemplateRequest()
{
WorkflowName = "(" + EntityLogicalName + ") Migrate Notes to SharePoint",
WorkflowTemplateId = new Guid(ProcessTemplateId)
};

var response = (CreateWorkflowFromTemplateResponse)proxy.Execute(request);

ColumnSet cols = new ColumnSet(true);
Workflow newWorkflow = (Workflow)proxy.Retrieve(Workflow.EntityLogicalName, response.Id, cols);

newWorkflow.PrimaryEntity = EntityLogicalName;
}

最佳答案

当存档工作流 XAML,然后使用此 xaml 从头开始​​创建新工作流(替换值)时,我收到一个错误,CRM 认为 XAML 是外部生成的并且无法工作,不会让我删除工作流,并且运行失败。

我的解决方案是创建一个工作流作为模板,然后在代码中使用“CreateWorkflowFromTemplateRequest”从该模板创建一个工作流。这会生成一个与模板具有相同基本实体的工作流,并且“CreateWorkflowFromTemplateResponse”包含此工作流的 ID

然后我按 ID 查找此工作流,更改基本实体,替换我在其 XAML 属性中的值并将其另存为新工作流(使用新 ID),然后删除我从模板创建的原始工作流。

导致我的代码基于模板创建了一个新的工作流程,但涉及不同的实体。

您无法编辑现有工作流程的实体,因此无法进行查找、更改和重新保存。我本可以按名称查找模板并对其进行更改,但我不确定 CRM 如何处理模板与工作流并选择克隆从模板生成的实际工作流。

关于c# - 是否可以从 Dynamics CRM 2013 中的代码更改工作流步骤属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30646169/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com