2016-11-09 58 views
0

创建自定义工作流程插件时,可以在各种“开始时间”条件下运行流程。又名:创建动态CRM自定义工作流插件 - 阅读“开始时”的上下文?

  • 记录
  • 录制状态更改
  • 记录分配
  • 记录字段改变
  • 删除记录

是否有可能在代码检索什么“什么时候开始”值是?例如,我有一个在“创建记录”上运行的进程,但是如果记录被删除,即。 “记录被删除”我想运行相同的插件,在代码中标识,然后采取不同的路径。比如像:

if (context.StartWhen == "Created") 
{ 
    //Do abc 
} 

if (context.StartWhen == "Deleted") 

{ 
    //Do xyz 
} 

我看看IExecutionContext(https://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.iexecutioncontext_properties.aspx),但没有站出来?

+1

你究竟需要什么?一个工作流还是一个插件?在动态CRM中,两者都非常不同。 –

回答

4

我相信你在谈论自定义工作流活动。所以请不要在问题中加入“插件”,这是误导。

对于这两种自定义工作流活动和插件,你可以从IWorkflowContext或IPluginContext的MessageName属性的触发事件。

protected override void Execute(CodeActivityContext context) 
{ 
    var workflowContext = context.GetExtension<IWorkflowContext>(); 
    var event = workflowContext.MessageName;    
} 

public void Execute(IServiceProvider serviceProvider) 
{ 
    var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); 
    var event = context.MessageName;    
} 

对于自定义工作流活动,另一个选项是添加输入参数以捕获事件,例如,所谓的“行动”的字符串参数,那么你在CRM使用自定义工作流时,可以对其进行配置,并在你的代码,你可以很容易地检查输入的参数值。

相关问题