3

WF4 経由で実装されるように、ビジネス プロセスを変更しようとしています。ビジネス プロセスは次のようになります。

  • たくさんのハンドラーがいます。
  • 各ハンドラには、いくつかの出力ステータスがあります。
  • ハンドラーはアクティビティとして実装されます
  • 設計者は、これらのアクティビティの出力ステータスをサポートして、
    • どのステータスが次のアクティビティを引き起こすかを簡単に確認できます
    • 各アクティビティのすべてのステータスが他のアクティビティに関連付けられていることをコンパイル時に検証できます。

WF4 でこれを実現するにはどうすればよいでしょうか。

4

1 に答える 1

0

おそらく、ハンドラー アクティビティで必要なプロパティ (遷移アクティビティ) を定義できます。次に、ハンドラーのCacheMetadataオーバーライドで、それらが提供されているかどうかを検証できます。また、ハンドラー アクティビティのExecuteメソッドの最後に、割り当てられた遷移アクティビティをワークフロー ランタイムでスケジュールできます。次のようなもの:

public sealed class MyHandlerActivity : NativeActivity
{
    public MyHandlerActivity NextHandler
    {
        get;
        set;
    }

    protected override void CacheMetadata(NativeActivityMetadata metadata)
    {
        // Ensure next handler is supplied.
        if (this.NextHandler == null)
        {
            metadata.AddValidationError("Next handler is not assigned.");
            return;
        }

        // Let the workflow runtime that this activity could schedule another activity (the handler activity).
        metadata.AddChild(this.NextHandler);
    }

    protected override void Execute(NativeActivityContext context)
    {
        // TODO: Handler should do something here.

        // Schedule the next handler.
        context.ScheduleActivity(this.NextHandler);
    }
}
于 2012-11-03T05:21:45.460 に答える