BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

BPM ユーザーズ ガイド

 前 次 目次 PDFで表示  

ワークフロー オブジェクトとプロパティ

注意: 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 ワークフロー : 詳細表示


 

表3-1 Order Processing Trigger ワークフローの概要

プロセス

実装

顧客が CDExpress という音楽メディア小売店にブラウザ ベースの発注フォームなどのオンライン メカニズムを使用して商品を発注します。その顧客は、氏名、連絡用 E メール アドレス、出荷先の国または州名、希望商品(ID および商品)、発注数量を指定します。

実際のアプリケーションでは、ワークフローに渡される外部 JMS キューに対して XML ドキュメントを転送するサーブレットにより受注が処理される。

1. 開始ノードが手動に設定されているので、ワークフローは Worklist ユーザによって開始される。

2. 最初のタスクは、ワークフローを開始する Worklist ユーザに割り当てられる。タスクが実行されると、<neworder> XML ドキュメントが内部 JMS キューにポストされる。XML ドキュメントには、受注のステータス、受注 ID、顧客 ID、顧客名、E メール、住所、電話番号、国名、商品名、数量が含まれる。


 

注意: このワークフローには完了ノードがありません。つまり、このワークフローは無限に繰り返されることを意味します。後ほどチュートリアルで説明するように、ワークフローを実行する場合、このメカニズムを使用すると、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イベントをポストアクションを表示する手順は次のとおりです。

  1. [Start Order Processing タスク プロパティ] ダイアログ ボックスで、[実行時] タブを選択します。

  2. XMLイベントをポストアクションを選択し、[更新] をクリックします。定義済みの 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 要素などについて、その使用方法を、次の表で説明します。

表3-2 Neworder の XML 要素

XML 要素

対応する ワークフロー変数

ワークフローにおける使用法

<status>


OrderStatus

ワークフローのさまざまなポイントで変更できる。

<id>


OrderID

ワークフローから値を受け取り、Worklist 内ではワークフロー ラベルとなってワークフローが実行されるたびに加算される。

<shiptostate>


ShipToState

POBeancalculate() メソッドに渡される。初期値は例外ハンドラによって捕らえられる。

<customer>

<id>

CustomerID

信用チェック タスクに使用される。

<customer>

<name>

CustomerName

カスタマ通知タスクに使用され、さらに出荷タスク用に Order Fulfillment ワークフローに渡される。

<customer>

<address>

CustomerAddress

出荷タスク用に Order Fulfillment ワークフローに渡される。

<customer>

<phone>

CustomerPhone

カスタマ通知タスクで使用される。

<customer>

<email>

CustomerEmail

受注確認タスクで使用される場合がある。

<item>

<id>

ItemID

checkInventory() メソッドと calculate() メソッドに渡される。

<item>

<name>

ItemName

使用されない。

<item>

<quantity>

ItemQuantity

checkInventory() メソッドと calculate() メソッドに渡される。


 

各要素には、デフォルト値が入力されています。 <shiptostate> 要素に、誤った国名の省略形 KK が入力されています。これは無効なデータが Order Fulfillment ワークフローの POBean EJB に渡される場合をシミュレートして、カスタマ例外ハンドラを呼び出するためです (詳細は、カスタム例外ハンドラの使い方を参照してください)。

電子メール メッセージの送信 : Confirm Order Fulfillment タスクの定義で、電子メールを送信するアクションを定義します。アクションの定義をする場合、メール アドレスにはこの XMLイベントをポスト アクションによって送信された XML ドキュメント内の値を使用します。サンプル ワークフローの実行とモニタでワークフローを実行する際に、プロセスの最後に受注の確認用に送信される E メールを受信したい場合には、XML ドキュメントを編集して、実際に使用しているユーザのアドレスを指定できます。

注意: このプロシージャが実行時に動作するようにするには、ユーザの E メール サーバを、ユーザのサーバ ドメインに適切にコンフィグレーションする必要があります。詳細については、『WebLogic Integration の起動、停止およびカスタマイズ』の「WebLogic Integration のカスタマイズ」の「メール セッション プロパティのカスタマイズ」を参照してください。

ユーザ自身のデータを指定するには、XML ドキュメントを次の手順で編集します。

  1. [XMLイベントをポスト] ダイアログ ボックスの [XML ドキュメント構造] 領域内で、Element ノードを展開してその値を表示します。スクロール バーを使用してほかのフィールドを表示します。

    図3-12 Neworder XML ドキュメントの構造


     

  2. 顧客の [e-mail] 要素値フィールドに、ユーザのメール アドレスをクォーテーション マークで囲んで入力します。〔Enter〕を押して値を入力します。

    注意: 電子メール メッセージの送信 : Confirm Order Fulfillment タスクの定義で 電子メール メッセージを送信 アクションを指定する場合は、必ず有効なメール アドレスを入力してください。

  3. また、ほかの [customer] の値と [item] の属性値を編集し、そこにユーザ独自の情報も入力できます。

    注意: [shiptostate] 要素値フィールドの間違っているデータは編集しないでください。この値は、実行時に Order Fulfillment ワークフローで例外ハンドラを呼び出すために使用します。

  4. 完了したら、[OK] をクリックして変更を保存し、[XMLイベントをポスト] ダイアログ ボックスを終了します。

 


XML リポジトリの使い方 : Neworder XML ドキュメントのエクスポート

Studio で XML ドキュメントの作成や編集を行った場合、その結果をディスク上のファイルに保存するか、XML リポジトリにエクスポートできます。リポジトリは、XML ドキュメント、DTD、スキーマ、スタイル シート、ほかのエンティティをその後のアクセスに備えて格納し、他のノードやワークフローまたはオーガニゼーションで再利用するために定義済みの XML ドキュメントをエクスポートまたはインポートする便利な方法を説明します。

Order Processing ワークフローは、Start Order Processing タスクの XML ドキュメントに格納されているデータを参照する XML ドキュメントをリポジトリに格納することによって、XPath 文を定義するの、ドキュメントからデータを抽出するための XPath 式の定義タスクを簡素化します。

ドキュメントをリポジトリへ保存する手順は次のとおりです。

  1. [タスクのプロパティ] ダイアログ ボックスの [実行時] タブの中にある Post internal XML Event アクションをダブルクリックし、[XMLイベントをポスト] ダイアログ ボックスを表示します。


     

  2. ツール バーにある [エクスポート] ボタン をクリックします。[XML ファインダ] ダイアログ ボックスが表示されます。

  3. [リポジトリ] タブを選択します。

    図3-13 [XML ファインダ] ダイアログ ボックス


     

  4. XML ドキュメントを保存する新しいフォルダを作成するには、[XML リポジトリ] フォルダを右クリックして、表示されるポップアップ メニューから [フォルダを追加] を選択します。[フォルダを追加] ダイアログ ボックスが表示されます。

    図3-14 XML ファインダ [フォルダを追加] ダイアログ ボックス


     

  5. [名前] フィールドに、たとえば Tutorial のように新しいフォルダの名前を入力し、[OK] をクリックします。これで、[リポジトリ] ウィンドウに新しいフォルダが表示されます。

  6. [リポジトリ] ウィンドウで新しいフォルダを右クリックし、表示されるポップアップ メニューから [エンティティを追加] を選択します。[エンティティを追加] ダイアログ ボックスが表示されます。

    図3-15 XML ファインダ [エンティティを追加] ダイアログ ボックス


     

  7. [タイプ] ドロップダウン リストから、[XML ドキュメント] を選択します。

  8. [名前] フィールドに、たとえば Neworder のようなドキュメント名を入力し、[OK] をクリックします。これで新しいドキュメント用の空のコンテナが作成され、フォルダのエンティティ リスト内に表示されます。

    図3-16 [XML ファインダ] ダイアログ ボックス


     

  9. 新しいドキュメントを選択し、[OK] をクリックして [XML ファインダ] ダイアログ ボックスを終了します。このコンテナに XML エディタで定義した XML ドキュメントの内容が格納されます。

  10. [OK] をクリックし、[XMLイベントをポスト] ダイアログ ボックスを終了します。

  11. [OK] をクリックし、[タスクのプロパティ] ダイアログ ボックスを終了します。

 


テンプレート定義の保存

テンプレート定義を変更すると、フォルダ ツリー内および [ワークフロー設計] ウィンドウのタイトル バー内のテンプレート定義ラベルの前にアスタリスクが付きます。このアスタリスクは、テンプレート定義に未保存の変更が含まれていることを示します。

ワークフローを保存する手順は次のとおりです。

  1. フォルダ ツリー内の Order Processing Trigger テンプレートを展開し、ワークフローのテンプレート定義をダブルクリックします。

  2. ポップアップ メニューから [保存] を選択します。

これで、チュートリアルの次の節で説明される Order Processing ワークフローの作成と定義が可能となります。

 

ページの先頭 前 次