次の方法で共有


WorkflowInstanceId の取得

GetWorkflowInstanceId サンプルでは、カスタム アクティビティ GetWorkflowInstanceId を使用して、ワークフロー インスタンス ID を返す方法を示します。

対象

カスタム アクティビティの開発、ワークフロー インスタンスにアクセスする方法。

ディスカッション

実行中のワークフローのインスタンス ID を取得するには、コードを記述する必要があります。 完全な宣言型のワークフローを記述する場合は、ワークフロー インスタンス ID を返すことができるアクティビティが必要です。そのアクティビティをワークフローで参照することで、完全な宣言型のワークフローを作成できるようになります。 多くのシナリオで、インスタンス ID へのアクセスが必要になります。例としては、ログ記録または監査のためや、後で連携できるようにインスタンス ID をクライアントに返送する (たとえば、SendReply アクティビティ内でこのアクティビティを使用する) ことでアプリケーション レベルの関連付けを行うためなどが挙げられます。

GetWorkflowInstanceId は、CodeActivity<TResult> 型の値を返す必要があり、ワークフローのインスタンス ID を取得するために Guid にアクセスできる必要があるので、CodeActivityContext として実装されます。 この実装は非常に基本的なものです。

public sealed class GetWorkflowInstanceId : CodeActivity<Guid>
{
    protected override Guid Execute(CodeActivityContext context)
    {
        return context.WorkflowInstanceId;
    }
}