InvokeWorkflow で呼び出された Workflow の InstanceID

InvokeWorkflow を使って別のワークフローを呼び出すと、呼び出された先のフローではInstanceIDが別のものになってしまいます。
したがって、同じInstanceIDで呼び出しても、EventDeliveryFailedException が帰ってきてしまいます。
呼び出すためには必ずInstanceIDが必要なので、どこかで取得しなければいけません。
単純なフローでしたら、WorkflowInstance.InstanceID を取得すればよい話ですが、呼び出された先のフローのInstanceIDはココには居ません。
ではどうするのか?
昨日の”WorkflowStarted”イベントで捕まえた先で、”WorkflowEventArgs”を見れば、中に入っています。WorkflowEventArgs.WorkflowInstance.InstanceId で、呼び出された先のフローのInstanceIDが取得できますので、これを使用して、呼び出された先のフローにイベントを投げてあげれば良いわけです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Spam Protection by WP-SpamFree