1. OrderBookingProcess プロジェクトの下に表示されている「Order_Booking_To_Be_
6.4.2 一意の Order ID の取得
ここでは、一意のOrder IDを取得する方法について説明します。データベースのORDERS表に 注文情報を入力するには、データベースからOrder IDを取得しておく必要があります。Order IDは、データベース順序から生成されます。
ここでは、「Order」レコードを挿入する前に一意のOrder IDを生成する必要があります。
Order表は、「samples」フォルダにあるBPMDemoスキーマの一部です。
「Order」レコードは、事前に作成されたデータベース表に書き込まれます。データベースの
ORDERS表に「Order」情報を書き込むには、Oracleデータベースアダプタを使用します。
データベースアダプタは、実行時に、eis/DB/bpmdemo接続を介してデータベースに接続し ます(この実行時接続は、インストールおよび構成時に事前構成されています)。ORDERS表に
「Order」情報を入力するには、Order ID用に一意の識別子を生成する必要があります。BPA
CDに収録されている完全なBPEL実装では、Order ID用の一意の識別子がすでに生成され ています。
Order Id用の一意の識別子を生成するには、次の手順を実行します。
1. 図6-9に示すように、「ビュー」メニューの「コンポーネント・パレット」をクリックしま す。
図6-9 「ビュー」メニューの「コンポーネント・パレット」の選択
図6-10 「アダプタ構成ウィザード」の「ようこそ」ページ
4. 「次へ」をクリックします。
「サービス名」ページが表示されます。
5. 図6-11に示すように、「サービス名」フィールドにOrderSequenceと入力します。
図6-11 「アダプタ構成ウィザード」の「サービス名」ページ
6. 「次へ」をクリックします。
「サービス接続」ページが表示されます。
7. 「新規データベース接続を作成します」アイコンをクリックします。
「データベース接続の作成」ダイアログボックスが表示されます。
8. 「データベース接続の作成」ダイアログボックスで、次の表に示す詳細を入力します。
9. 「接続のテスト」をクリックします。
「ステータス」ペインに成功メッセージが表示されます。
図6-12に、すべてのフィールドに値が入力された「データベース接続の作成」ダイアログ ボックスを示します。
図6-12 「データベース接続の作成」ダイアログ ボックス
フィールド 入力する値
接続名 BPAQuickStart
接続タイプ Oracle (JDBC) ユーザー名 bpmdemo パスワード ORACLE
ホスト名 localhost
SID XE
図6-13 「アダプタ構成ウィザード」の「操作タイプ」ページ
12. 操作タイプのリストから「Pure SQLの実行」を選択し、「次へ」をクリックします。
「アダプタ構成ウィザード」の「カスタム」ページが表示されます。
13.「SQL」フィールドに次のSQL文を入力します。
select order_seq_id_gen.nextval from dual
図6-14に示すように、「XSD」フィールドに適切なSQL文が自動的に入力されます。
図6-14 「アダプタ構成ウィザード」の「カスタムSQL」ページ
14.「次へ」をクリックします。
図6-15に示すように、「詳細オプション」ページが表示されます。
図6-15 「アダプタ構成ウィザード」の「詳細オプション」ページ
15. デフォルト値をそのまま使用して、「次へ」をクリックします。
「終了」ページが表示されます。
16.「終了」をクリックします。
これで、一意のOrder IDをフェッチするデータベースアダプタの定義が完了しました。
図6-16に示すように、すべてのフィールドに値が入力された「パートナ・リンクの作成」
ダイアログボックスが表示されます。
図6-16 「パートナ・リンクの作成」ダイアログ ボックス
6.4.3 「 Order 」の処理
ここでは、一意のOrder Idをフェッチした後に「Order」を処理する方法について説明しま す。
一意のOrder Idをフェッチしたら、次の手順では、ORDERS表に「Order」レコードを挿入 します。これを行うには、別のデータベースアダプタを作成する必要があります。この例で は、Order_Processing_Serviceデータベースアダプタを作成します。
Order_Processing_Serviceデータベースアダプタを作成するには、次の手順を実行しま す。
1. 6.4.2項「一意のOrder IDの取得」で説明されている手順1~4を繰り返します。
2. 手順5で、Order_Processing_Serviceと入力します。
3. 6.4.2項「一意のOrder IDの取得」で説明されている手順6~11を繰り返します。
4. 「操作タイプ」ページで、「表に対して操作を実行」の下の「挿入または更新(マージ)」を 選択して、表に行を挿入するか、または表の行を更新します。
5. 「次へ」をクリックします。
「表の選択」ページが表示されます。
6. 「表のインポート」ボタンをクリックします。
「表のインポート」ダイアログボックスが表示されます。
7. 「問合せ」をクリックします。
図6-17に示すように、「選択可能」フィールドにBPMDEMOスキーマ内の使用可能な表のリ ストが表示されます。
図6-17 「表のインポート」ダイアログ ボックス
8. 「ORDERS」および「ITEMS」を選択し、右矢印をクリックして「選択済」ボックスに移
動します。
9. 「OK」をクリックします。
データベースアダプタによってこれらの表への書込みが行われます。
10. 問合せのルートデータベース表として「ORDERS」を選択してから、「次へ」をクリック します。
定義されている2つの表のリレーションシップを示す「リレーションシップ」ダイアログ ボックスが表示されます。
11.「次へ」をクリックします。
図6-18に示すように、「属性のフィルタ処理」ダイアログボックスが表示されます。
図6-18 「アダプタ構成ウィザード」の「属性のフィルタ処理」ダイアログ ボックス
12. デフォルト値を受け入れてから、「次へ」をクリックします。
「詳細オプション」ページが表示されます。
13. デフォルト値を受け入れてから、「次へ」をクリックします。
「終了」ページが表示されます。
これで、注文を処理するデータベースアダプタが作成されました。
14.「終了」をクリックします。
図6-19に示すように、すべてのフィールドに値が入力された「パートナ・リンクの作成」
ダイアログボックスが表示されます。
図6-19 「Order」プロセスのPartner Link
6.4.4 「 Create_Order 」スコープ内での「 Get_Order_Id 」埋込みスコープの作成
ここでは、「Create_Order」スコープ内に「Get_Order_Id」スコープを作成する方法について説 明します。
「Get_Order_Id」スコープを作成するには、次の手順を実行します。
1. 「Create_Order」スコープを展開します。
2. 「コンポーネント・パレット」で、ドロップダウンメニューの「BPELアクティビティとコ ンポーネント」を選択し、「スコープ」アイコンを「Create_Order」スコープ内にドラッグ アンドドロップします。
3. 新しいスコープにGet_Order_Idという名前を付けます。
4. 「Create_Order」スコープ内の空の「Create_Order」アクティビティを削除します。
5. 「Get_Order_Id」スコープを展開し、「Get_Order_Id」スコープ内の起動アクティビティ を「アクティビティをここにドロップ」領域にドラッグアンドドロップします。
6. 起動アクティビティの左側にある矢印を使用して、起動アクティビティでOrderSequence