BPELコールバックの起動

中間のイベントをBPELプロセス・インスタンスに伝播する必要がある場合は、ヒューマン・タスク・エディタの「イベント」セクションにある「BPELコールバックのタスクとルーティング・カスタマイズを許可」チェック・ボックスを選択します。このオプションが選択されている場合、ワークフロー・サービスはタスクの更新ごとにBPELインスタンス内でコールバックを起動します。次に説明するコールバックがTaskService.wsdlファイルにリストされます。

  • onTaskCompleted

    このコールバックは、タスクの完了、期限切れ、取消しまたはエラー時に起動されます。

  • onTaskAssigned

    このコールバックは、次のアクションが原因でタスクが一連の新規の割当て先に割り当てられるときに起動されます。

    • 結果の更新

    • 現在の割当てのスキップ

    • ルーティング・スリップのオーバーライド

  • onTaskUpdated

    このコールバックは、onTaskCompleteまたはonTaskAssignedコールバックに該当しないタスクに対する他の更新の際に起動されます。これには、情報のリクエスト、情報の発行、エスカレーション、再割当てなどによるタスクの更新が含まれます。

  • onSubTaskUpdated

    このコールバックは、サブタスクに対する更新の際に起動されます。

図28-14に、コールバックを使用したワークフロー相互作用のモデリング方法を示します。このタスクが開始されると、タスクが完了するまでwhileループを使用してメッセージが受信されます。whileループには、4つのonMessageブランチ(前述したコールバック操作ごとに1つずつ)を備えたpickアクティビティが含まれています。ワークフロー相互作用は、onMessageブランチに何も変化がなくても正常に機能します。つまり、onMessageブランチでのカスタマイズは不要です。

このシナリオでは、ワークフロー・コンテキストはBPELインスタンスで取得されます。このコンテキストは、ワークフロー・サービスとのすべての相互作用に使用できます。たとえば、グループに割り当てられているタスクを再度割り当てる場合、タスク・サービスには、reassignTask操作のワークフロー・コンテキストが必要です。

ユーザー・カスタマイズは、最初のassignであるAssignTaskAttributesで実行し、AssignSystemTaskAttributesを変更しないことをお薦めします。

図28-14 ワークフロー相互作用のモデリング(コールバックを使用)

図28-14の説明が続きます
「図28-14 ワークフロー相互作用のモデリング(コールバックを使用)」の説明