创建自定义工作流插件时,可以在各种"开始时#34;条件。 AKA:
是否可以在代码中检索"何时开始"价值是?例如,我有一个在"记录创建"上运行的进程,但是如果删除了记录,即。 "记录被删除"我想运行相同的插件,在代码中识别它,然后采取不同的路径。例如:
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),但没有什么突出的?
答案 0 :(得分:4)
我相信你在谈论自定义工作流程活动。所以请不要把#34;插件"在这个问题上,它具有误导性。
对于自定义工作流活动和插件,您可以从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;
}
对于自定义工作流活动,另一个选项是添加输入参数以捕获事件,例如一个名为&#34; Action&#34;的字符串参数,然后您可以在CRM中使用自定义工作流程时对其进行配置,在代码中您可以轻松检查输入参数值。