2016-11-09 8 views
0

カスタムワークフロープラグインを作成するときに、さまざまな「開始時」の条件でプロセスを実行することができます。 AKA:Dynamics CRMカスタムワークフロープラグイン - 「開始時」コンテキストを読み取りますか?

  • レコードが作成され
  • 録音状態が
  • 録音が
  • レコードのフィールドは、レコードが削除され
  • 変更割り当てられた変更

それがコードで取得するために何ができますか"start when"の値は?たとえば、私は "レコード作成"で実行されるプロセスが1つありますが、レコードが削除された場合などです。 "レコードが削除されました"同じプラグインを実行してコード内で識別し、別のパスを取得したいと思います。以下のようなインスタンスの何かのために:

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;    
} 

カスタムワークフローアクティビティでは、入力パラメータを追加してイベントをキャプチャすることもできます。 「Action」という文字列パラメータを使用すると、CRMでカスタムワークフローを使用するときに構成できます。コードでは、入力パラメータ値を簡単に確認できます。

関連する問題