繁体   English   中英

Dynamics CRM自定义工作流插件-阅读“何时开始”上下文?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM