[SOA/BPM] ヒューマンタスクやビジネス・オブジェクトの変更をデータ・コントロールに反映させる

BPMに関する質問&回答その3です。

Q) HumanTaskのタスクフォームを作ってから、ビジネス・オブジェクトやHumanTaskの結果を変更したんだけど、その変更内容をデータコントロールに反映させるにはどうすればいいの?もしかしてできないの?まさかタスクフォームの作り直し?
A) データコントロールの[定義の編集]を実施すると、最新の定義を反映するよう更新できます。

SOA SuiteやBPM SuiteでHumanTaskを操作するためのタスクフォームを作成するには様々な方法がありますが、JDeveloperで作成している場合、タスクフォームウィザードや自動生成機能を使ってタスクフォームを作成できます(API経由もありますが、今回は説明を省きます)。
ウィザードに従った場合、データコントロールを使ってタスクフォームとプロセスをバインドするのですが、タスクフォームを作成した後に、BPMプロセスを流れるデータ構造が変わることもままある話で、その場合、「せっかく画面をきれいにレイアウトしたのに、まさかウィザードに従って再作成するなんてないよね?」というのが質問の背景にありました。

具体的に以下のようなシンプルなプロセスを例にして考えます。


ビジネス・オブジェクト、ヒューマンタスクは以下のような設定にしてあります。




タスクフォームをウィザードに従って作成すると、以下のようなデータコントロールができあがります。


HumanTaskで設定した結果(APPROVE、REJECT)は、以下のようなInvokeMethodとして定義されます。


では、ビジネス・オブジェクトに属性attribute4(int)を追加し、HumanTaskの結果をAPPROVE、REJECTから、YES、NOに書き換えます。




変更を保存したのちに、[アプリケーション・リソース]の当該データコントロールを右クリックし、[定義の編集]を選択します。



データコントロールに対し、ビジネス・オブジェクトなどへの変更を反映するか否かを問い合わせてきますので、[Refresh Data Control]をクリックしてください。作業は静かに見守ってあげましょう。


すると、データコントロールの定義や、InvokeMethodに変更が反映されていることがわかります。




あとは、タスクフォームに変更を加えるだけです。

0 件のコメント:

コメントを投稿