BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Integration > BPM トピック > BPM ユーザーズ ガイド > ワークフロー オブジェクトとプロパティ |
BPM ユーザーズ ガイド
|
ワークフロー オブジェクトとプロパティ
注意: Worklist クライアント アプリケーションは WebLogic Integration リリース 7.0 より非推奨となりました。代替機能に関する詳細については、『WebLogic Integration リリース ノート』を参照してください。
この節では、Order Processing Trigger ワークフローを説明しながらチュートリアルを進めます。ワークフローの概要を説明した後にワークフローのオブジェクトを詳しく調べて、以下の項目について理解を深めます。
最後に、Studio のいくつかの機能を使って慣れるために、以下を実行します。
チュートリアルのこの節では、以下の手順が完了しているものとします。
Order Processing Trigger ワークフロー
Order Processing Trigger ワークフローは、Order Processing ワークフローを通常トリガするプロセスをシミュレートします。実際のアプリケーションでは、多くの場合、これは XML ドキュメントを JMS キューに送信するサーブレットによって実行されます。次の図に示すように、XML メッセージがキューに着信することにより Order Processing ワークフローの開始がトリガされます。
図3-1 Order Processing 開始のシミュレーション
このチュートリアルでは、Worklist ユーザに XML ドキュメントをポストするプロセスを開始させて、このプロセスをシミュレートします。Order Processing Trigger ワークフローの詳細を次の図に示します。図で番号が振られている手順については、図の下の表で説明します。この図は、実際のプロセスと実装を、サンプル ワークフロー内の実際の実装にマップしています。 図3-2 Order Processing Trigger ワークフロー : 詳細表示
注意: このワークフローには完了ノードがありません。つまり、このワークフローは無限に繰り返されることを意味します。後ほどチュートリアルで説明するように、ワークフローを実行する場合、このメカニズムを使用すると、Worklist アプリケーションのタスク一覧ウィンドウ内からワークフローを開始できるようになります。
テンプレート定義のプロパティ
Order Processing Trigger テンプレート定義を開いた状態でテンプレート定義のプロパティを表示するには、フォルダ ツリーか、[ワークフロー設計] ウィンドウ内の任意の場所を右クリックし、表示されるポップアップ メニューから [プロパティ] を選択します。[テンプレート定義 Order Processing Trigger] ダイアログ ボックスが表示されます。
図3-3 [テンプレート定義 Order Processing Trigger] ダイアログ ボックス
複数のテンプレート定義で同じ有効開始日付と終了日付を指定できますが、アクティブな定義にはそれぞれユニークな日付または時刻を指定する必要があります。実行時において、あるワークフローに複数のテンプレート定義が存在する場合、処理エンジンは、その有効開始日時/終了日時を基に現在に最も近いアクティブなテンプレート定義を選択します。 この Order Processing Trigger テンプレート定義をインポート プロセス中にアクティブ化したため、ダイアログ ボックスでは、すでにアクティブ化された状態で表示されます。この図のテンプレート定義のワークフローは、2001 年 5 月 2 日から有効であり、使用期限は指定されていません。 このワークフローにはラベルを使用していません。
変数プロパティ : OrderID 変数の表示
変数プロパティを表示するには、フォルダ ツリーに移動し、[変数] フォルダの下の OrderID 変数をダブルクリックします。[変数プロパティ] ダイアログ ボックスが表示されます。
図3-4 OrderID 変数 : [変数プロパティ] ダイアログ ボックス
変数は、ほかのテンプレート定義、XML ドキュメント、EJB および Java クラス メソッドにパラメータとして渡すことができます。入力パラメータは、変数がその値を呼出し側、つまり親ワークフローから受け取ることを示します。出力パラメータは、呼び出し元のワークフローに返された値を変数が持つことを示します。 Order Processing Trigger テンプレートでは、OrderID 変数には入力パラメータまたは出力パラメータのマークが付いていません。図3-4 を参照してください。後で説明しますが、Order Processing と Order Fulfillment ワークフロー テンプレートでは、変数にはほかのワークフローから渡されたことを示す input パラメータのマークが付いています。OrderID 変数は、ワークフローの各インスタンスで受注番号のトラッキングに使用されるため、Order Processing ワークフローと Order Fulfillment ワークフローの両方に渡されます。 変数はスコープ内でグローバルです。つまりワークフロー全体に適用されます。現在のワークフローで変数が使用されているノードやアクションの概要を表示することができます。 OrderID 変数の使い方を表示するには、フォルダ ツリーに移動し、[変数] フォルダの下の OrderID 変数を右クリックして表示されるポップアップ メニューから [使用] を選択します。[変数の使用場所] ウィンドウが表示されます。 図3-5 OrderID 変数 : [変数の使用場所] ウィンドウ
上の図に示されているように、OrderID 変数は、Start Order Processing タスクの ワークフロー変数を設定 というアクションで使用されています。このアクションについては、ワークフローの式 : ワークフロー変数を設定 と ユーザにタスクを割り当て アクションの表示で詳しく説明します。 変数は、ワークフロー ラベルの追加 とワークフローのノードの定義全体を通して作成します。
開始ノードのプロパティ
Order Processing Trigger には開始ノードが 1 つしかないため、開始ノードにはノード名がありません。ただし、複数の開始ノードを含むワークフローを定義し、並列実行する複数の処理パスを規定することも可能です。また、開始ノードを使用して、任意のワークフロー変数を初期化することもできます。
開始ノードのプロパティを表示するには、[ワークフロー設計] ウィンドウに移動して [開始] ノードをダブルクリックします。[開始のプロパティ] ダイアログ ボックスが表示されます。
図3-6 [開始のプロパティ] ダイアログ ボックス
ダイアログ ボックスに表示されるように、ワークフローの開始方法には、以下の 4 種類があります。
更に、この開始ノード内では、ワークフロー実行のたびに加算される OrderID 変数が初期化され、0 (ゼロ) になります。この変数の詳細は、変数プロパティ : OrderID 変数の表示を参照してください。
タスク ノードのプロパティ : Start Order Processing タスク ノードの表示
タスク ノードのプロパティを表示するには、[ワークフロー設計] ウィンドウに移動して Start Order Processing タスク ノードをダブルクリックします。[タスクのプロパティ] ダイアログ ボックスが表示されます。
図3-7 Start Order Processing タスク : [タスクのプロパティ] ダイアログ ボックス
[次] タブの下で、このタスクのサクセサがそのタスク自身であり([ワークフロー設計] ウィンドウ内でループ矢印によって指示)、リスト内に [完了] ノードはありません。つまり、ワークフローは実際には終了することがなく、Start Order Processing タスクが実行されるたびに、このタスク自身の別のインスタンスを作成します。サンプル ワークフローの実行とモニタでは、ワークフローを実行する時にこのプロセスが動作する様子を示します。 タスクの状態とアクション ダイアログ ボックスの左側のタブは、実行時の各状態 を示します。所定のタスクに対して状態を指定するタブに割り当てられたアクションは、指定の状態になったときに実行されます。以下の 4 種類の状態があります。
タスクの状態の詳細は、『WebLogic Integration Studio ユーザーズ ガイド』の 「ワークフロー テンプレートの定義」の中の「タスク プロパティの定義」を参照してください。
アクションは、次のようなカテゴリにグループ化されます。
[タスクのプロパティ] ダイアログ ボックス (またはフォルダ ツリー) の表示で分かるように、ワークフロー変数を設定 タスクには以下のアクションが含まれています。
ワークフローのノードの定義で、アクションの定義方法を詳しく説明します。
タスク パーミッションについて
最後に、[パーミッション] タブを使用すると、Worklist ユーザがこのタスクに対して実行できるアクションのタイプを設定できます。 デフォルトでは何も設定されません。 このシナリオ用のデフォルト設定を、次の図に示します。
図3-8 Start Order Processing タスク : [パーミッション] タブ
タスク パーミッションの詳細は、WebLogic Integration Studio ユーザーズ ガイドの「ワークフロー テンプレートの定義」の「タスク パーミッションの定義」と、『WebLogic Integration Worklist ユーザーズ ガイド』の「タスクの処理」を参照してください。
ワークフローの式 : ワークフロー変数を設定 と ユーザにタスクを割り当て アクションの表示
[タスクのプロパティ] ダイアログ ボックスの [アクション] リストの下にあるスクロール バーを使用して、[アクティブ時] タブ内の全アクション定義を表示します。アクション定義を以下に示します。
これらのアクションの定義の詳細を表示するには、各アクションをダブルクリックします。各アクションのプロパティのダイアログ ボックスが表示されます。
図3-9 [ワークフロー変数を設定] ダイアログ ボックス
図3-10 [ユーザにタスクを割り当て] ダイアログ ボックス
図に示すように、この 2 つのアクションは式を使用して定義します。ノードをワークフローの基本単位、アクションをノードの基本単位と考えれば、式はアクションの基本単位と考えることができます。式とは、値の計算と入力を行うために実行時に評価される文です。式には、変数、定数、リテラル、演算子、定義済み関数を組み合わせることができます。ユーザが定義する最も一般的なタイプの式では、XML ドキュメントから値を抽出する XPath 関数を使用します。 ユーザが知っておく必要のあるワークフロー式の言語の基本的なルールを以下に示します。
このように、最初のアクションの式では、OrderID 変数の値に対しワークフローの実行のたびに 1 が加算されるように指定します。サンプル ワークフローの実行とモニタでは、ワークフロー実行時のアクション内でこのプロセスを確認します。
2 番目のアクションの式は、組み込み関数 を使用して Start Order Processing タスクが、ワークフローを開始する Worklist ユーザに割り当てられるように指定します。
ワークフローのノードの定義 で、Expression Builder と XPath Wizard を使用して式を作成します。
ワークフロー式の言語と関数の詳細は、『WebLogic Integration Studio ユーザーズ ガイド』の「ワークフロー式の使い方」を参照してください。
内部 XML イベントのポスティング : Neworder XML ドキュメントの編集
XMLイベントをポストアクションを表示する手順は次のとおりです。
図3-11 [XMLイベントをポスト] ダイアログ ボックス
XML イベントをポストする場合、以下のようにさまざまなオプションを指定できます。
このサンプルでは、デフォルトの設定を使用します。プロダクション環境によっては、種々の JMS メッセージや XML イベントのポスト用のオプションの利用をお勧めします。XMLイベントをポスト アクションのオプション全体の詳細は、『WebLogic Integration Studio ユーザーズ ガイド』の「アクションの定義」の「JMS トピックまたはキューに対する XML メッセージのポスト」を参照してください。
XML ドキュメントの構造を編集する
このアクションによってポストされる XML ドキュメントは、サーブレットによってワークフローに送信される XML ドキュメントをシミュレートします。このドキュメントには、受注に関する情報が含まれ、以下に示すような構造となっています。
コード リスト 3-1 Neworder XML ドキュメント
<neworder>
<id>$OrderID</id>
<shiptostate>KK</shiptostate>
<status>new</status>
<customer>
<id>6831</id>
<name>John Doe</name>
<address>3126 Blue Street Anytown CA 96822</address>
<phone>408 534 9567</phone>
<email>jdoe@bea.com</email>
</customer>
<item>
<id>236</id>
<name>CD storage rack</name>
<quantity>2</quantity>
</item>
</neworder>
この XML ドキュメント内の各要素の値は、Order Processing ワークフローの開始ノードによって抽出され、ワークフローの各変数内に格納されます。これらの値は、Order Processing ワークフローと Order Fulfillment ワークフロー全体を通して使用されます。変数、ワークフロー内での変数の使用法、対応する XML 要素などについて、その使用方法を、次の表で説明します。
各要素には、デフォルト値が入力されています。 <shiptostate> 要素に、誤った国名の省略形 KK が入力されています。これは無効なデータが Order Fulfillment ワークフローの POBean EJB に渡される場合をシミュレートして、カスタマ例外ハンドラを呼び出するためです (詳細は、カスタム例外ハンドラの使い方を参照してください)。 電子メール メッセージの送信 : Confirm Order Fulfillment タスクの定義で、電子メールを送信するアクションを定義します。アクションの定義をする場合、メール アドレスにはこの XMLイベントをポスト アクションによって送信された XML ドキュメント内の値を使用します。サンプル ワークフローの実行とモニタでワークフローを実行する際に、プロセスの最後に受注の確認用に送信される E メールを受信したい場合には、XML ドキュメントを編集して、実際に使用しているユーザのアドレスを指定できます。 注意: このプロシージャが実行時に動作するようにするには、ユーザの E メール サーバを、ユーザのサーバ ドメインに適切にコンフィグレーションする必要があります。詳細については、『WebLogic Integration の起動、停止およびカスタマイズ』の「WebLogic Integration のカスタマイズ」の「メール セッション プロパティのカスタマイズ」を参照してください。 ユーザ自身のデータを指定するには、XML ドキュメントを次の手順で編集します。
図3-12 Neworder XML ドキュメントの構造
XML リポジトリの使い方 : Neworder XML ドキュメントのエクスポート
Studio で XML ドキュメントの作成や編集を行った場合、その結果をディスク上のファイルに保存するか、XML リポジトリにエクスポートできます。リポジトリは、XML ドキュメント、DTD、スキーマ、スタイル シート、ほかのエンティティをその後のアクセスに備えて格納し、他のノードやワークフローまたはオーガニゼーションで再利用するために定義済みの XML ドキュメントをエクスポートまたはインポートする便利な方法を説明します。
Order Processing ワークフローは、Start Order Processing タスクの XML ドキュメントに格納されているデータを参照する XML ドキュメントをリポジトリに格納することによって、XPath 文を定義するの、ドキュメントからデータを抽出するための XPath 式の定義タスクを簡素化します。
ドキュメントをリポジトリへ保存する手順は次のとおりです。
図3-13 [XML ファインダ] ダイアログ ボックス
図3-14 XML ファインダ [フォルダを追加] ダイアログ ボックス
図3-15 XML ファインダ [エンティティを追加] ダイアログ ボックス
図3-16 [XML ファインダ] ダイアログ ボックス
テンプレート定義の保存
テンプレート定義を変更すると、フォルダ ツリー内および [ワークフロー設計] ウィンドウのタイトル バー内のテンプレート定義ラベルの前にアスタリスクが付きます。このアスタリスクは、テンプレート定義に未保存の変更が含まれていることを示します。
ワークフローを保存する手順は次のとおりです。
これで、チュートリアルの次の節で説明される Order Processing ワークフローの作成と定義が可能となります。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |