ヘッダーをスキップ

Oracle Application Server Integration InterConnect ユーザーズ・ガイド
10g リリース2 (10.1.2)

B15751-02
目次
目次
索引
索引

戻る 次へ

B 統合のシナリオ

この付録では、Acme社という架空の会社を想定し、OracleAS Integration InterConnectを使用した統合シナリオとモデルについて説明します。項目は次のとおりです。

B.1 統合シナリオの概要

Acme社の各部署には、M&Aによって複数の注文処理システムが存在しています。プラットフォーム、ソフトウェア、トレーニングなどを含め、これらのシステムの維持はAcme社にとって費用と時間の両面で負担となっています。さらに、システムが統合されていないために、全社レベルでのビジネス分析ができません。

Acme社では、集中型システムを新たに構築しました。統合プロジェクトの第1段階は、従来のシステムの1つに格納されている注文書情報を新しいシステムと同期化することです。

B.1.1 新しい集中型システム

新しい注文処理システムは、Oracle Database 10gを使用し、OracleAS Integration InterConnectデータベース・アダプタを使用してシステムと通信します。

B.1.2 従来のシステム

従来の注文処理システムはOracle8iデータベースを使用し、OracleAS Integration InterConnectアドバンスト・キューイング・アダプタを使用してシステムと通信します。

このシステムの注文書表には、変更されたレコードをキューイングするデータベース・トリガーがあります。OracleAS Integration InterConnectは、そのキューをリスニングして統合を完了するように構成されます。


注意:

システムの変更を取得する方法は多数あります。データベース・トリガー、インタフェース表およびデータベース・ログ・ファイルなどの方法がありますが、これらに限定されません。 


B.1.3 統合のシナリオ

注文書表が格納されている従来のシステムとOracle Database 10gで実行中の新しい注文処理アプリケーションとの統合を希望している組織を考えてみます。図B-1にこの統合のシナリオを示します。

図 B-1    統合のシナリオ


画像の説明

統合のシナリオの第1段階では、統合をモデル化します。

B.2 統合のモデル化

図B-2は、OracleAS Integration InterConnectがどのようにして図B-1のシナリオに統合されるかを示しています。

図 B-2    統合のモデル化


画像の説明

このタスクを実行するにはどのようにしたらよいでしょうか。

B.3 シナリオの実装

次の項では、iStudioを使用して統合シナリオを実装する方法について説明します。

B.3.1 従来システムのデータベース・トリガーの確認

ソース・システムはOracle Database 10gアドバンスト・キューイングを使用して、注文書表に変更をパブリッシュします。ユーザーは注文書表にデータベース・トリガーを作成します。レコードを更新、挿入または削除してからコミットすると、トリガーは該当するペイロードをエンキューします。OracleAS Integration InterConnectアドバンスト・キューイング・アダプタは、このキューをリスニングするように構成されます。

次にデータベース・トリガーのコード例を示します。

CREATE OR REPLACE TRIGGER AQAPP.ENQUEUE_PO
AFTER INSERT OR DELETE OR UPDATE ON AQAPP.PURCHASE_ORDER FOR EACH ROW
DECLARE
qname VARCHAR2(20) := 'OUTBOUND_QUEUE';
enqueue_options DBMS_AQ.ENQUEUE_OPTIONS_T;
message_properties DBMS_AQ.MESSAGE_PROPERTIES_T;
msgid RAW(16);
recip_agent SYS.AQ$_AGENT;
raw_payload RAW(32767);
payload VARCHAR2(256);
BEGIN
IF INSERTING THEN
payload := '<?xml version="1.0" standalone="no"?>' ||
'<PO_Insert>' ||
'<id>' || :new.id || '</id>' ||
'<action>' || 'I' || '</action>' ||
'<item>' || :new.item || '</item>' ||
'<amount>' || :new.amount || '</amount>' ||
'<quantity>' || :new.quantity || '</quantity>' || '</PO_Insert>';

ELSIF DELETING THEN
payload := '<?xml version="1.0" standalone="no"?>' ||
'<PO_Delete>' ||
'<id>' || :old.id || '</id>' ||
'<action>' || 'D' || '</action>' || '</PO_Delete>';
ELSIF UPDATING THEN
payload := '<?xml version="1.0" standalone="no"?>' ||
'<PO_Update>' ||
'<id>' || :old.id || '</id>' ||
'<action>' || 'U' || '</action>' ||
'<item>' || :new.item || '</item>' ||
'<amount>' || :new.amount || '</amount>' ||
'<quantity>' || :new.quantity || '</quantity>' ||
'<last_updated>'|| :new.last_updated|| '</last_updated>'|| '</PO_Update>';
END IF;

raw_payload := UTL_RAW.CAST_TO_RAW( payload );

DBMS_AQ.ENQUEUE( queue_name => qname
,enqueue_options => enqueue_options
,message_properties => message_properties
,payload => raw_payload
,msgid => msgid );
EXCEPTION
WHEN OTHERS THEN NULL;
END;

B.3.2 プロジェクトの作成

プロジェクトとは、統合のシナリオに関係する統合論理のコンテナです。 次の手順は、iStudioを使用してPO_Integrationプロジェクトを作成する方法を示しています。

  1. 「ファイル」メニューから「新規プロジェクト」を選択します。 「プロジェクトの作成」ダイアログ・ボックスが表示されます。

  2. 「プロジェクト名」フィールドにPO_Integrationと入力し、「OK」をクリックします。 「リポジトリ情報」ダイアログ・ボックスが表示されます。

  3. リポジトリ情報を正確に入力し、「OK」をクリックします。

    関連項目:

    「新規プロジェクトの作成」 

B.3.3 共通ビュー・ビジネス・オブジェクトの作成

各アプリケーションには、独自の意味と構文があります。複数のソースからデータを統合するには、意味的に互換性のある共通ビューが必要となります。共通ビューは、ビジネス・オブジェクト内でグループ化され、iStudioで「共通ビュー」ノードの下に置かれるイベントまたはプロシージャです。 このシナリオでは、すべてのイベントがPurchase_Orderビジネス・オブジェクトの下にグループ化されます。

次の手順は、Purchase_Orderビジネス・オブジェクトの作成方法を示しています。

  1. 「ファイル」メニューから「新規」を選択し、「ビジネス・オブジェクト」を選択します。 「ビジネス・オブジェクトの作成」ダイアログ・ボックスが表示されます。

  2. 「ビジネス・オブジェクト名」フィールドにPurchase_Orderと入力し、「OK」をクリックします。

    関連項目:

    「ビジネス・オブジェクトの作成」 

B.3.4 ビジネス・オブジェクト・イベントの作成

2つ以上のシステムの間でデータを統合するには、意味的に互換性のあるビュー、つまり共通ビューが必要になります。 このシナリオでは、挿入、更新、削除および取消のイベントがPurchase_Orderビジネス・オブジェクトの下にグループ化されます。次の4つのイベントを作成する必要があります。

次の手順は、XML DTD(データ型定義)を使用してPO_Insertイベントを作成する方法を示しています。データベースまたはその他の共通データ型を使用してイベントの構造を記述することもできます。

  1. 「ファイル」メニューで「新規」をクリックし、「イベント」を選択します。 「イベントの作成」ダイアログ・ボックスが表示されます。

  2. ビジネス・オブジェクトとしてPurchase_Orderを選択します。

  3. 「イベント名」フィールドにPO_Insertと入力します。

  4. 「インポート」をクリックし、「XML」を選択します。

  5. 「開く」ダイアログ・ボックスで事前定義されたファイルPO_Insert_CV.dtdを選択し、「開く」をクリックします。

  6. ルートの選択ダイアログ・ボックスでPO_Insertを選択し、「OK」をクリックして「イベントの作成」ダイアログ・ボックスに戻ります。

  7. 「OK」をクリックします。

PO_UpdatePO_DeleteおよびPO_Cancelの各イベントについても同様の手順を使用しますが、各イベントについて次のXML DTDを正確に代入する必要があります。 PO_CancelPO_DeletePO_InsertおよびPO_Updateの各イベントは、図B-3のように「設計」オブジェクト・ナビゲータの「イベント」ノードの下に表示されます。

関連項目:

「イベントの作成」 

図 B-3    iStudioでイベント・ノードが完成した状態


画像の説明

B.3.4.1 DTDコード

各イベントには固有のXML DTDがあります。各イベントのコードを次に示します。

B.3.5 アプリケーションの作成

iStudioのアプリケーションは、アプリケーションと通信するアダプタのインスタンスを表します。 ユーザーがアダプタをインストールするときに一意の名前が与えられますが、iStudioではこの名前がアプリケーションの名前として使用されます。 この項では、例としてAQAPPアプリケーションおよびDBAPPアプリケーションの作成方法を説明します。

関連項目:

「アプリケーションの作成」 

次の手順は、iStudioを使用してAQAPPアプリケーションを作成する方法を示しています。

  1. 「ファイル」メニューから「新規」を選択し、次に「アプリケーション」を選択します。 「アプリケーションの作成」ダイアログ・ボックスが表示されます。

  2. 「アプリケーション名」フィールドにAQAPPと入力し、「OK」をクリックします。

同様の手順でDBAPPアプリケーションを作成します。AQAPPアプリケーションおよびDBAPPアプリケーションが、図B-4のように「設計」オブジェクト・ナビゲータの「アプリケーション」ノードの下に表示されます。

図 B-4    iStudioでのAQAPPアプリケーションおよびDBAPPアプリケーション


画像の説明

B.3.6 相互参照表の作成

各システムには、一意の識別子または主キーがあります。 ほとんどの場合、管理者はシステム構造の変更を許可していません。そのため、相互参照表を使用することによって、両システムのキーを維持しながらその後の更新や削除を相互参照できます。

次の手順は、iStudioを使用してPO_XREF相互参照表を作成する方法を示しています。表はリポジトリ・スキーマ内に自動作成され、サブスクライブするアプリケーションによって参照されます。WORKFLOWアプリケーションおよびDBAPPアプリケーションが、それぞれパブリッシャおよびサブスクライバとして表に追加されます。

  1. 「ファイル」メニューで「新規」をクリックし、「相互参照表」を選択します。 「相互参照表の作成」ダイアログ・ボックスが表示されます。

  2. 「相互参照表名」フィールドにPO_XREFと入力し、「次へ」をクリックします。

  3. 使用可能なコンポーネント・リストからWORKFLOWおよびDBAPPを選択し、右矢印ボタンをクリックします。

  4. 「終了」をクリックします。 PO_XREF相互参照表が、図B-5のように「設計」オブジェクト・ナビゲータの「相互参照表」ノードの下に表示されます。

    図 B-5    iStudioでのPO_XREF相互参照表


    画像の説明

    関連項目:

    「相互参照の使用方法」 

B.3.7 パブリッシュ・イベントの作成

従来のアプリケーションのデータベース・トリガーであるAQAPPは、注文書表でレコードが挿入、更新または削除されると、メッセージをパブリッシュします。このプロセスは、OracleAS Integration InterConnect環境の外部で発生します。OracleAS Integration InterConnectアドバンスト・キューイング・アダプタは、このようなメッセージを読み取るように構成されています。iStudioアプリケーションの下で、パブリッシュ・イベントは次のことを行います。

次の手順は、従来のアプリケーション・キューから受信したメッセージの処理方法を示しています。

パブリッシュ・ウィザードの起動

パブリッシュ・ウィザードを起動する手順は、次のとおりです。

  1. 「設計」オブジェクト・ナビゲータで「アプリケーション」ノードを展開します。

  2. AQAPPアプリケーションを選択して展開します。

  3. 「パブリッシュ・イベント」ノードを選択します。

  4. 「パブリッシュ・イベント」を右クリックして「新規」を選択します。パブリッシュ・ウィザードが表示されます。

パブリッシュ・ウィザードによるPO_Insertイベントのパブリッシュ

PO_Insertイベントをパブリッシュする手順は、次のとおりです。

  1. 「イベントを選択」ページ

    1. 次のフィールドに情報を入力します。

      • アプリケーション: アプリケーションにはAQAPPを選択します。

      • メッセージ・タイプ: メッセージ・タイプにはAQを選択します。

    2. 「イベントを選択」ダイアログ・ボックスで「ビジネス・オブジェクト」リストを展開し、PO_Insertにナビゲートします。

    3. PO_Insertを選択し、「次へ」をクリックします。

      図 B-6    「パブリッシュ・ウィザード - イベントを選択」ページ


      画像の説明

  2. 「アプリケーション・ビューの定義」ページ

    1. 属性のインポート

      「インポート」をクリックして「共通ビュー」を選択し、共通ビューから属性をインポートします。 PO_Insert共通ビュー・イベントの構造が表示されます。アプリケーション・ビューが共通ビューと異なる場合は、データベースまたはXML DTDを使用して構造を定義します。

    2. イベント・マップの作成

      イベントは、受信されると共通ビューに変換されます。この共通ビューは、どのアプリケーションでもマップできます。1つ以上のイベントの構造が同一の場合、ルーティングが問題となります。イベント・マップは、このような状況のときにルーティングを区別するのに使用されます。アプリケーション・ビューの「アクション」フィールドは、「I」(挿入)、「u」(更新)または「D」(削除)になります。イベント・マップを作成する手順は、次のとおりです。

    3. 「イベント・マップ」をクリックし、次に「追加」をクリックします。 「イベント・マップを追加」ページが表示されます。

    4. 「アクション」フィールドを選択し、「値」フィールドにIと入力します。

    5. 「イベント・マップを追加」ページで「OK」をクリックします。

    6. 「イベント・マップ」ページで「OK」をクリックします。

    7. 「次へ」をクリックします。

  3. 「マッピングの定義」ページ

    「マッピングの定義」ページを使用して、トランスフォーメーションによってAQAPPビューのフィールドを「共通ビュー」へマップします。このシナリオでは構造が同一なため、ObjectCopyトランスフォーメーションを使用してすべてのフィールドを一度にマップします。マッピングを新たに定義する手順は、次のとおりです。

    1. 「マッピングの定義」をクリックします。 「マッピング・パラメータ」ダイアログ・ボックスが表示されます。

    2. PO_Insertリストを展開し、AQAPPビュー・ボックスでPO_Insertノードを選択します。

    3. 「トランスフォーメーション」ボックスでObjectCopyを選択します。

    4. PO_Insertリストを展開し、「共通ビュー」ボックスでPO_Insertノードを選択します。

    5. 「追加」をクリックします。

    6. 「OK」をクリックします。 新規マッピングが「マッピングの定義」ページに表示されます。

    7. 「終了」をクリックします。

      図 B-7    パブリッシュ・ウィザード - マッピング・パラメータ


      画像の説明

PO_UpdateおよびPO_Deleteの各パブリッシュ・イベントを作成するときも同じ手順を繰り返しますが、手順2および3で次の値を使用します。

B.3.8 イベントのサブスクライブ

DBAPPアプリケーションは、次の3つのイベントをサブスクライブします。

AQAPPアプリケーションは、PO_Cancelイベントのみをサブスクライブします。

関連項目:

「イベントのサブスクライブ」 

B.3.8.1 DBAPPアプリケーションのサブスクライブ

次の手順は、注文処理アプリケーションでメッセージをサブスクライブする方法を示しています。

サブスクライブ・ウィザードの起動
  1. 「設計」オブジェクト・ナビゲータで、「アプリケーション」ノードを展開して「サブスクライブ・イベント」ノードを表示します。

  2. 「サブスクライブ・イベント」を右クリックして「新規」を選択します。図B-8のようなサブスクライブ・ウィザードが表示されます。

サブスクライブ・ウィザードによるPO_Insertイベントのサブスクライブ
  1. 「イベントを選択」ページ

    1. 次のフィールドに情報を入力します。

      • アプリケーション: 「DBAPP」を選択します。

      • メッセージ・タイプ: 「データベース」を選択します。

    2. 「イベントを選択」ダイアログ・ボックスで「ビジネス・オブジェクト」ノードを展開し、PO_Insertにナビゲートします。

    3. PO_Insertを選択し、「次へ」をクリックします。

      図 B-8    「サブスクライブ・ウィザード - イベントを選択」ページ


      画像の説明

  2. 「アプリケーション・ビューの定義」ページ

    1. データベースから属性をインポートします。

      • 「インポート」をクリックし、「データベース」を選択します。 「データベース・ログイン」ダイアログ・ボックスが表示されます。

      • データベースにログインするための情報を入力し、「ログイン」をクリックします。 図B-9のような「Oracleデータベース・ブラウザ」ダイアログ・ボックスが表示されます。

      • 「Oracleデータベース・ブラウザ」ダイアログ・ボックスで「表/ビュー」ノードを展開し、DBAPP.POを選択します。

      • 「終了」をクリックします。

        図 B-9    サブスクライブ・ウィザード - Oracleデータベース・ブラウザ


        画像の説明

    2. 相互参照表を作成します。

      「相互参照表の作成」で、PO_XREFの相互参照表を作成しました。この表は、ソース・システムとターゲット・システムの主キーを同期化します。

      • 「相互参照」をクリックし、PO_XREFを選択します。 図B-10のような「XRef」ダイアログ・ボックスが表示されます。

      • 「相互参照に引数を返されたアプリケーション」ボックスで「POID」を選択します。

      • 「共通ビュー」ボックスで「id」を選択します。

      • 「マップ」をクリックします。

      • 「OK」をクリックします。

        図 B-10    サブスクライブ・ウィザード - 相互参照


        画像の説明

    3. 「次へ」をクリックします。

  3. 「マッピングの定義」ページ

    1. マッピングを新たに定義します。

    2. 「次へ」をクリックします。

  4. 「ストアド・プロシージャの定義」ページ

    1. SQLコードのリストからsub_PO_Insert_OAI_V1を選択します。SQLコードがボックス内に表示されます。

    2. 既存のSQLコードの最後に次のコードを追加します。

      PROCEDURE sub_PO_Insert_OAI_V1( POID          IN OUT LONG,
                                      POITEM        IN LONG,
                                      PRICE         IN LONG,
                                      QUANTITY      IN NUMBER,
                                      LAST_UPDATED  IN DATE)
      AS
       v_poid NUMBER;
      
       BEGIN
        SELECT PO_SEQ.NEXTVAL INTO v_poid FROM dual;
        POID :=v_POID;
      
        INSERT INTO PO VALUES
         ( v_POID, POITEM, PRICE, QUANTITY, SYSDATE );
       COMMIT;
      END sub_PO_Insert_OAI_V1;
      
      
    3. 「終了」をクリックします。

PO_Updateイベントのサブスクライブ

サブスクライブPO_Updateイベントを作成する手順は、次のとおりです。

  1. PO_Updateイベントを選択します。

  2. アプリケーション・ビューをインポートします。

  3. 「マッピングの定義」ページ

    1. PO_Insertの説明に従って、同じパラメータをマップします。

    2. さらに、次のようにマップします。

      • 「共通ビュー」ボックスでPO_Updateリストとノードを展開し、idを選択します。

      • LookupXrefトランスフォーメーションを選択します。

      • 「アプリケーション・ビュー」ボックスでPO_Updateリストを展開し、POIDを選択します。

      • 「追加」をクリックします。

      • 「OK」をクリックします。

      • 「パラメータ」列にリストされている表の「必須」チェック・ボックスを選択し、「OK」をクリックします。

    3. 「次へ」をクリックします。

  4. 「ストアド・プロシージャの定義」ページ

    1. フィールドのSQLコードとしてsub_PO_Update_OAI_V1を選択します。コードがボックス内に表示されます。

    2. 既存のSQLコードの最後に次のコードを追加します。

      PROCEDURE sub_PO_Update_OAI_V1( POID          IN NUMBER,
                                      POITEM        IN LONG,
                                      PRICE         IN LONG,
                                      QUANTITY      IN NUMBER,
                                      LAST_UPDATED  IN DATE)
      AS
       v_poid       NUMBER :=poid;
       v_poitem     LONG   :=poitem;
       v_price      LONG   :=price;
       v_quantity   NUMBER :=quantity;
      BEGIN
        UPDATE PO SET  poitem = v_poitem, price = v_price
                       quantity = v_quantity, last_updated = sysdate
        WHERE poid = v_poid;
        COMMIT;
      
      EXCEPTION
        WHEN OTHER THENS NULL;
      
      END sub_PO_Update_OAI_V1;
      
      
    3. 「終了」をクリックします。

PO_Deleteイベントのサブスクライブ

サブスクライブPO_Deleteイベントを作成する手順は、次のとおりです。

  1. PO_Deleteイベントを選択します。

  2. アプリケーション・ビューをインポートします。

  3. 「マッピングの定義」ページ

    1. 次のようにマップします。

      • 「共通ビュー」ボックスでPO_Deleteリストとノードを展開し、idを選択します。

      • DeleteXrefトランスフォーメーションを選択します。

      • PO_Deleteリストを展開し、POIDを選択します。

      • 「追加」をクリックします。

      • 「OK」をクリックします。

      • 「値」列からPO_XREFを選択し、「OK」をクリックします。

    2. 「次へ」をクリックします。

  4. 「ストアド・プロシージャの定義」ページ

    1. フィールドのSQLコードとしてsub_PO_Delete_OAI_V1を選択します。コードがボックス内に表示されます。

    2. 既存のSQLコードの最後に次のコードを追加します。

      PROCEDURE sub_PO_Delete_OAI_V1( POID          IN NUMBER,
                                      POITEM        IN LONG,
                                      PRICE         IN LONG,
                                      QUANTITY      IN NUMBER,
                                      LAST_UPDATED  IN DATE)
      AS
       v_poid       NUMBER :=poid;
      BEGIN
        DELETE FROM WHERE PO v_poid = poid;
        COMMIT;
      EXCEPTION
        WHEN OTHERS THEN NULL;
      
      END sub_PO_Update_OAI_V1;
      
      
    3. 「終了」をクリックします。

B.3.8.2 AQAPPアプリケーションのサブスクライブ

AQAPPアプリケーションは、PO_Cancelイベントをサブスクライブします。

  1. 「イベントを選択」ページ

    1. 次のフィールドに情報を入力します。

      • アプリケーション: AQAPPを選択します。

      • メッセージ・タイプ: AQを選択します。

    2. PO_Cancelを選択し、「次へ」をクリックします。

  2. 「アプリケーション・ビューの定義」ページ

    1. 共通ビューから属性をインポートし、「次へ」をクリックします。

  3. 「マッピングの定義」ページ

    1. マッピングを新たに定義します。

      • 「マッピングの定義」をクリックして、次のようにマップします。

        Id Copyfields Id

      • 「追加」をクリックします。

      • 「OK」をクリックします。

    2. 「終了」をクリックします。

B.3.9 Oracle Workflowプロセス・バンドルの作成

プロセス・バンドルを使用すると、関連するビジネス・プロセスをグループ化して、ユーザー定義のビジネス論理が適用されるOracle Workflow環境に転送できます。

各ビジネス・プロセスによって、関連するパブリッシュ、サブスクライブ、起動および実装などのアクティビティをグループ化して、Oracle Workflowのビジネス・イベント・システムに配置できます。

プロセス・バンドルの作成

次の手順は、iStudioを使用してPOプロセス・バンドルを作成する方法を示しています。

  1. プロジェクト・リストから「Workflow」ノードを展開し、「プロセス・バンドル」にナビゲートします。

  2. 「プロセス・バンドル」を右クリックし、「新規」を選択します。 「プロセス・バンドルの作成」ダイアログ・ボックスが表示されます。

  3. 「プロセス・バンドル名」フィールドにPOと入力し、「OK」をクリックします。

ビジネス・プロセスの作成

次の手順は、iStudioを使用してPOビジネス・プロセスを作成する方法を示しています。

  1. プロジェクト・リストで「プロセス・バンドル」ノードを展開し、「ビジネス・プロセス」にナビゲートします。

  2. 「ビジネス・プロセス」を右クリックし、「新規」を選択します。 「ビジネス・プロセスの作成」ダイアログ・ボックスが表示されます。

  3. 「ビジネス・プロセス名」フィールドにPOと入力し、「OK」をクリックします。

サブスクライブ・アクティビティおよびパブリッシュ・アクティビティの作成

Oracle Workflowのビジネス・プロセスでは共通ビューを使用します。そのため、トランスフォーメーションとマッピングは不要で、次のタイプのアクティビティのみが使用されます。

このシナリオでは、PO_Insert、PO_UpdateおよびPO_Deleteの各メッセージがOracle Workflowにルーティングされ、ビジネス論理が適用されます。この論理に基づき、これらのメッセージが注文処理アプリケーションに送信されるか、またはPO_Cancelメッセージが従来のアプリケーションへ送信されます。Oracle Workflowは次の動作を行います。

サブスクライブ・アクティビティの作成

次の手順は、iStudioを使用してサブスクライブ・アクティビティを作成する方法を示しています。

  1. 「プロジェクト」リストから「Workflow」ノードを展開し、「ビジネス・プロセス」にナビゲートします。

  2. POビジネス・プロセスを右クリックし、「サブスクライブ」アクティビティを選択します。

  3. PO_Insertイベントを選択し、「終了」をクリックします。

PO_UpdateおよびPO_Deleteの各イベントについても同じ手順を繰り返します。ただし必要に応じて値を置き換えてください。

パブリッシュ・アクティビティの作成

次の手順は、iStudioを使用してパブリッシュ・アクティビティを作成する方法を示しています。

  1. 「プロジェクト」リストから「Workflow」ノードを展開し、「ビジネス・プロセス」にナビゲートします。

  2. POビジネス・プロセスを右クリックし、「パブリッシュ」アクティビティを選択します。任意のアイテムを右クリックすると、ポップアップ・ボックスが表示されます。

  3. PO_Insertイベントを選択し、「OK」をクリックします。

PO_UpdatePO_DeleteおよびPO_Cancelの各イベントについても同じ手順を繰り返します。ただし必要に応じて値を置き換えてください。 サブスクライブおよびパブリッシュの各イベントが、図B-12のように「設計」オブジェクト・ナビゲータのPOノードの下に表示されます。

図 B-12    iStudioでのサブスクライブ・アクティビティおよびパブリッシュ・アクティビティ


画像の説明

B.3.10 コンテンツ・ベースのルーティングの作成

イベントをパブリッシュすると、イベントはデフォルトで自動的にすべてのイベントのサブスクライバにルーティングされます。イベントをメッセージまたはメッセージ・ヘッダーの値に基づいてルーティングする必要がある場合、このシナリオではコンテンツ・ベースのルーティングが必要になります。注文書の変更はすべて承認を受けてOracle Workflowにルーティングし、ビジネス論理を適用する必要があります。

PO_InsertPO_UpdateおよびPO_Deleteの各イベントに適用する論理は、次のとおりです。

この手順をPO_UpdateイベントとPO_Deleteイベントについても繰り返します。図B-13に、iStudioでコンテンツ・ベースのルーティングが完成した状態を示します。

図 B-13    iStudioでコンテンツ・ルーティングが完成した状態


画像の説明

B.3.11 Oracle Workflowへのプロセス・バンドルの配置

Oracle Workflowプロセス・バンドルを配置することにより、次のことができます。

次の手順は、プロセス・バンドルをOracle Workflowに配置する方法を示しています。

  1. iStudioの「配置」タブで「Workflow」ノードを右クリックし、「配置」を選択します。 「配置」ダイアログ・ボックスが表示されます。

  2. 「Workflowビジネス・イベント・システムのイベント定義」を選択し、「Workflowに配置」ボックスでファイルのプロセス定義を選択します。

  3. 「OK」をクリックします。 「Workflow BESログイン」ダイアログ・ボックスが表示されます。

  4. ユーザー名、パスワードおよびURLを正確に入力して、Oracle Workflowにログインします。「OK」をクリックします。 「配置」ダイアログ・ボックスが表示されます。

  5. 「ファイル名」フィールドにOracle Workflowファイルのファイル名を
    InterConnect_Demo.wftのように入力し、「開く」をクリックします。図B-14のように、Oracle WorkflowがInterConnect_Demoで起動します。

    図 B-14    Oracle Workflowへの配置が完了した状態


    画像の説明

B.3.12 モデル化に必要なOracle Workflowのオブジェクトの作成

このシナリオの当初の要件は次のとおりです。

「挿入、更新および削除などのすべての変更は、管理者が承認しないと注文処理システムに適用できません。変更は承認後、注文処理システムへ送信されます。変更が却下されると、取消し通知が従来のシステムへ送り返されます。」

このビジネス論理はOracle Workflowに実装できます。Oracle Workflowコンポーネントには、次のものが必要です。

iStudioから転送されるコンポーネント

Oracle Workflowコンポーネントでは、通知を作成する必要があります。

B.3.12.1 メッセージ

通知アクティビティが送信するメッセージ。

B.3.12.2 選択肢タイプ

各種オブジェクトで参照できる静的な値リスト。たとえばメッセージ属性では、通知の実行者に対して可能なレスポンスのリストを提供する手段として、選択肢タイプを参照できます。

B.3.12.3 通知

Workflowエンジンが通知アクティビティに達すると、Send() APIコールを通知システムに対して発行し、割り当てられた実行者へメッセージを送信します。実行者が通知アクティビティに応答すると、通知システムがそのレスポンスを処理して、Workflowエンジンに対し通知アクティビティが完了したことを知らせます。

B.3.12.4 Oracle Workflowで事前定義されているもの

Oracle Workflowには、標準機能を備えた事前定義のアイテム・タイプが用意されています。標準のアイテム・タイプには、ユーザーのアイテム・タイプにコピーできる汎用アクティビティが含まれています。このシナリオでは、選択肢タイプ「承認」を使用します。

B.3.12.5 選択肢タイプ(「承認」)のコピー

先に述べたように、Oracle Workflow Notificationを作成する必要があります。通知には、選択肢タイプとメッセージという2つの依存するオブジェクトがあります。選択肢タイプ(「承認」)は、標準のアイテム・タイプからコピーできます。

B.3.12.6 Oracle Workflowメッセージの作成

次の手順は、Insert_MessageというOracle Workflowメッセージを新たに作成する方法を示しています。

  1. オブジェクト・ナビゲータで「メッセージ」ノードを右クリックし、「新規」を選択してプロパティ・シートを起動します。それぞれのタブで次のエントリを追加します。

  2. 「メッセージ」タブ

    • 内部名: Insert_Message

    • 表示名: メッセージの挿入

    • 説明: メッセージの挿入

  3. 「本体」タブ:

    • 件名: メッセージの挿入

    • テキスト本文: 注文書表にレコードが挿入されています。

  4. 「結果」タブ:

    • 表示名: Insert_Message

    • 説明: Insert_Message

    • 選択肢タイプ: 承認(選択肢タイプから)

  5. 「OK」をクリックします。

メッセージInsert_Messageをテンプレートとして使用し、デフォルトのコピーおよび貼付け機能を使用して次のメッセージを作成します。

B.3.12.7 Oracle Workflow Notificationの作成

次の手順は、Oracle Workflow Notificationを新たに作成する方法を示しています。

  1. オブジェクト・ナビゲータで「通知」ノードを右クリックし、「新規」を選択してプロパティ・シートを起動します。それぞれのタブで次のエントリを追加します。

  2. 「アクティビティ」タブ:

    • 内部名: Insert_Notification

    • 表示名: Insert_Notification

    • 説明: Insert_Notification

    • メッセージ: Insert_Message(前の手順で作成済)

    • 結果タイプ: 承認(選択肢タイプから)

  3. 「OK」をクリックします。

通知Insert_Notificationをテンプレートとして使用し、デフォルトのコピーおよび貼付け機能を使用して次の通知を作成します。

B.4 Oracle Workflowでのビジネス論理のモデル化

これで必要なオブジェクトがすべて作成されたので、ビジネス論理をモデル化できます。次の手順は、このプロセスを示しています。

  1. Oracle Workflowオブジェクト・ナビゲータでOAIプロセス・バンドル: POアイテム・タイプを展開します。

  2. 「プロセス」ノードを展開します。

  3. OAIビジネス・プロセス: POを右クリックし、「プロセスの詳細」を選択します。

    プロセスの詳細は、OAIビジネス・プロセス: POをダブルクリックして表示することもできます。

  4. 次のアイテムを、Oracle Workflowオブジェクト・ナビゲータからOracle Workflowワークスペースへ移動します。

    • Insert_Notification

    • Update_Notification

    • Delete_Notification

  5. アイテムを図B-16のように再配置します。

    図 B-16    Oracle Workflow Builderに配置されたアイテム


    画像の説明

  6. サブスクライブ・イベントは、このプロセスのエントリ・ポイントです。各イベントの「開始」および「終了」プロパティを編集し、「開始」に設定する必要があります。オブジェクトをダブルクリックしてプロパティ・シートを起動します。「開始」および「終了」プロパティは、「ノード」タブの下にあります。

    次のイベントをサブスクライブします。

    • Purchase_Order.PO_Insert

    • Purchase_Order.PO_Update

    • Purchase_Order.PO_Delete

  7. パブリッシュ・イベントは、このプロセスからのエグジット・ポイントです。各イベントの「開始」および「終了」プロパティを編集し、「終了」に設定する必要があります。オブジェクトをダブルクリックしてプロパティ・シートを起動します。「開始」および「終了」プロパティは、「ノード」タブの下にあります。

    次のイベントをパブリッシュします。

    • Purchase_Order.PO_Insert

    • Purchase_Order.PO_Update

    • Purchase_Order.PO_Delete

    • Purchase_Order.PO_Cancel

  8. ユーザーがOracle Workflow Monitorで通知を受け取るために、そのユーザーに通知を割り当てる必要があります。各通知について、実行者の値のプロパティをSYSADMINに設定します。オブジェクトをダブルクリックしてプロパティ・シートを起動します。実行者の値のフィールドは、「ノード」タブの下にあります。

    次の通知を割り当てます。

    • Insert_Notification

    • Update_Notification

    • Delete_Notification

  9. オブジェクト間にマッピング・ラインを描いて、プロセス・フローを定義する必要があります。ラインを描くには、あるオブジェクトを右クリックして別のオブジェクトまでドラッグ・アンド・ドロップします。

    1. Subscribe Purchase_Order.PO_InsertInsert_Notification間にマッピング・ラインを描きます。

    2. Insert_Notificationとパブリッシュ・イベント
      Publish Purchase_Order.PO_Insertとの間にマッピング・ラインを描きます。ラインを描くと表示されるリストから「承認」を選択します。

    3. Insert_Notificationとパブリッシュ・イベント
      Publish Purchase_Order.PO_Cancelとの間にマッピング・ラインを描きます。ラインを描くと表示されるリストから「否認」を選択します。

    4. UpdateとDeleteの各オブジェクトについても同じ手順を繰り返します。

  10. 作業結果をデータベースに保存します。図B-17に、Oracle Workflow Builderでビジネス・プロセスが完成した状態を示します。

    図 B-17    Oracle Workflow Builderでビジネス・プロセスが完成した状態


    画像の説明

B.5 配置

ビジネス・オブジェクトをモデル化した後、OracleAS Integration InterConnectのビジネス・オブジェクトを配置します。次の項では、配置プロセスについて説明します。

B.5.1 キューの設定

iStudioのAQAPPアプリケーションは、従来のアプリケーションと通信するアドバンスト・キューイング・アダプタに対応しています。従来のアプリケーションはOracleアドバンスト・キューイングを使用し、挿入、更新および削除されたレコードをデータベース・トリガーによってキューに入れます。OracleAS Integration InterConnect環境との間で通信を行うには、これらの外部キューで送受信できるようにアダプタを構成する必要があります。

次の手順はこのタスクを示しています。

  1. iStudioの「配置」タブで「アプリケーション」リストを展開し、AQAPPにナビゲートします。

  2. AQAPPノードを展開し、「ルーティング」ノードにナビゲートします。

  3. 「ルーティング」ノードを展開し、「アプリケーション・キュー」を選択します。「iStudio」ウィンドウに「アプリケーション・キュー」プロパティ・シートが表示されます。

  4. 「編集」メニューから「編集」を選択します。 図B-18のような「アプリケーション・キューの編集」ダイアログ・ボックスが表示されます。

    図 B-18    iStudioのアプリケーション・キュー


    画像の説明

  5. 各イベントにキュー名を追加します。

    キュー名  イベント 

    INBOUND_QUEUE 

    PO_Cancel 

    OUTBOUND_QUEUE 

    PO_Insert、PO_UpdateおよびPO_Delete 

  6. 「OK」をクリックします。

B.5.2 アダプタの同期化

各アダプタでは、リポジトリとの通信を最小限にしてパフォーマンスを向上させるために、様々なキャッシュ設定が行われています。メタデータの更新後に、アダプタとリポジトリのメタデータを同期化する必要があります。次の手順でこのタスクを説明します。

  1. メニューから「ファイル」「アダプタを同期化」を選択します。 「アダプタを同期化」ダイアログ・ボックスが表示されます。

  2. アダプタを同期化するアプリケーションを選択し、「OK」をクリックします。

B.5.3 コードのエクスポートとインストール

アダプタ・タイプによっては、ファイルにエクスポートし、ターゲットのアプリケーション・データベースにインストールする必要のあるコードがあります。 次の手順は、iStudioの「アプリケーションのエクスポート」ダイアログ・ボックスを使用してコードをエクスポートする方法を示しています。

  1. 「iStudio」ウィンドウの「配置」タブをクリックします。「アプリケーション」を右クリックして「PL/SQLのエクスポート」を選択します。 「アプリケーションのエクスポート」ダイアログ・ボックスが表示されます。

  2. コードをエクスポートするアプリケーションを選択します。

  3. 「ファイルの接頭辞」フィールドにファイル接頭辞を入力し、「OK」をクリックします。

結果のテキスト・ファイルは、ターゲット・スキーマで実行されるSQL*Plusスクリプトです。

関連項目:

「PL/SQLストアド・プロシージャの配置」 

例 B-1    コードのエクスポートとインストール

コードのエクスポートおよびインストールについて、次の例を使用して説明します。この例では次の条件があります。

B.6 まとめ

最終段階として、統合をテストします。

  1. あるレコードを従来のシステムに挿入します。

  2. 従来のシステムのデータベース・トリガーは、レコードをOUTBOUND_QUEUEに入れます。

  3. OracleAS Integration InterConnectはメッセージを受信してトランスフォーメーションを実行し、共通ビューにデータを変換してメッセージをOracle Workflowにルーティングします。

  4. Oracle Workflowはビジネス論理を適用して、通知を発行します。

  5. システム管理者はOracle Workflow Monitorにログオンし、Insert_notificationを受信してレコードを承認します。

  6. OracleAS Integration InterConnectはメッセージを受信してトランスフォーメーションを実行し、主キーを相互参照し、データをアプリケーション・ビューに変換してメッセージを注文処理システムにルーティングします。

  7. 配置済のコードがメッセージを受信し、レコードを注文処理システムに挿入します。

  8. Oracle InterConnect Managerを使用して挿入されたレコードを検査し、統合のスループットを監視します。

このプロセスを、更新や削除についても繰り返します。


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引