Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以从Dynamics CRM 2013中的代码更改工作流步骤属性_C#_.net_Powershell_Dynamics Crm - Fatal编程技术网

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

C# 是否可以从Dynamics CRM 2013中的代码更改工作流步骤属性,c#,.net,powershell,dynamics-crm,C#,.net,Powershell,Dynamics Crm,如果我从Dynamics CRM中代码中的模板创建工作流,是否可以更改工作流步骤属性的值 我有一个自定义的工作流步骤,它是工作流模板的一部分,但是对于我从中创建的每个工作流,我希望向该步骤传递不同的值 我正在从C#创建工作流,作为powershell cmdlet的一部分。我尝试过用xaml从头开始创建工作流,但它会导致更多的问题 我可以用下面的代码创建和检索工作流,但是我看不到任何东西可以指向我检索的工作流对象上的步骤 using (var proxy = auth.GetOrganizati

如果我从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如何处理模板与工作流,并选择克隆从模板生成的实际工作流