[英]Dynamics CRM Custom Workflow plugin - read the “start when” context?
创建自定义工作流程插件时,可以在各种“启动时间”条件下运行该过程。 又名:
是否可以在代码中检索“何时开始”值? 例如,我有一个进程在“记录已创建”上运行,但是如果删除了记录,即。 “记录已删除”我想运行相同的插件,在代码中标识该插件,然后采用其他路径。 例如:
if (context.StartWhen == "Created")
{
//Do abc
}
if (context.StartWhen == "Deleted")
{
//Do xyz
}
我看了一下IExecutionContext( https://msdn.microsoft.com/zh-cn/library/microsoft.xrm.sdk.iexecutioncontext_properties.aspx ),但是没有什么特别的?
我相信您在谈论自定义工作流程活动。 因此,请不要在问题中加入“插件”,这会产生误导。
对于自定义工作流活动和插件,您都可以从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;
}
对于自定义工作流程活动,另一种选择是添加一个输入参数以捕获事件,例如一个名为“ Action”的字符串参数,然后您可以在CRM中使用自定义工作流程进行配置,并且可以在代码中轻松检查输入参数值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.