这与Dynamics CRM 365中的Microsoft CRM工作流中的CodeActivities有关。我需要在代码活动中获取与工作流相关的注释。为此,我需要在我的代码活动中使用该工作流的工作流ID。但是代码活动上下文中只有Workflow Instance Id,而不是Workflow Id。如何从工作流实例ID中获取工作流ID?
答案 0 :(得分:1)
很遗憾,你不能直接得到这个。
解决方法是设置输入参数&将工作流程名称甚至Workflow Id作为设计器中的配置项发送。在codeactivity&中读取此输入参数。检索与之关联的注释。
这样,即使您有多个工作流程,调用/执行相同的代码活动也能很好地工作。
答案 1 :(得分:0)
您可以使用以下代码来获取使用C#的工作流ID:
IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();
IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>();
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
//Retrieve processid of current workflow instance
Entity asyncOperation = service.Retrieve("asyncoperation",
context.OperationId, new Microsoft.Xrm.Sdk.Query.ColumnSet("workflowactivationid"));
var workflowid = asyncOperation.GetAttributeValue<EntityReference>("workflowactivationid").Id;
之后,您可以使用它来获取笔记。