2016-11-09 30 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使用自定義工作流時,可以對其進行配置,並在你的代碼,你可以很容易地檢查輸入的參數值。

相關問題