Oracle Fusion Middleware Oracle E-Business Suite Adapterユーザーズ・ガイド 12c (12.1.3) 部品番号 E61973-02 | ![]() 目次 | ![]() 前 | ![]() 次 |
この章の構成は、次のとおりです。
Oracle Workflowのビジネス・イベント・システム(BES)は、Oracle Advanced Queuing(AQ)のインフラストラクチャを利用して、システム間でビジネス・イベントを交換する、アプリケーション・サービスです。ビジネス・イベント・システムは、イベント・マネージャとワークフロー・プロセス・イベント・アクティビティで構成されます。
イベント・マネージャには、ビジネス・イベントのレジストリ、システム、そのシステム内の名前付き通信エージェント、およびイベントが特定のシステムに重要であることを示すサブスクリプションが含まれます。イベントは、ローカルに発生するか、AQを介して外部システムまたはローカル・システムから受信します。ローカル・イベントが発生すると、サブスクリプションが遅延しないかぎり、イベントを発生させたコードと同じトランザクションでサブスクライブ・コードが実行されます。
サブスクリプションには、次のタイプの処理が含まれます。
イベント情報に関するカスタム・コードの実行
ワークフロー・プロセスへのイベント情報の送信
他のキューまたはシステムへのイベント情報の送信
各ビジネス・イベントは、統合または拡張ポイントを使用する準備ができていることを示します。現在、Oracle E-Business Suiteには、900を超える事前構成済のビジネス・イベントが付属しています。
ビジネス・イベント・システムの使用には、次のものが含まれます。
システム統合メッセージング・ハブ - ビジネス・イベント・システムは、複雑なシステム統合シナリオのメッセージング・ハブとして機能します。イベント・マネージャを使用すると、イベントおよびオリジネータに基づいてシステム間のルーティングをハードウェアに組み込むことができます。
分散アプリケーション・メッセージング - Applicationsは、ビジネス・エンティティに生成および受信イベント・メッセージ・ハンドラを提供できます。たとえば、メッセージ・ハンドラを使用すると、分散アプリケーションのマスター/コピー・レプリケーションを実装できます。
メッセージ・ベースのシステム統合 - ビジネス・イベントの発生時にシステム間でメッセージの送信が行われるサブスクリプションを設定できます。このように、イベント・マネージャを使用すると、ポイント間のメッセージング統合を実装できます。
ビジネス・イベント・ベースのワークフロー・プロセス - ビジネス・イベントの内容に基づいて、詳細なルーティングや処理を含む、高度なワークフロー・プロセスを開発できます。
パッケージ化されたアプリケーションの一般的なカスタマイズ: アナリストは、インターネットまたはイントラネット・アプリケーションに、関心のあるビジネス・イベントを登録できます。そのアプリケーションのユーザーは、そのイベントへのサブスクリプションを登録して、カスタム・コードまたはワークフロー・プロセスを起動できます。
ビジネス・イベントは、システム内の他のオブジェクトまたは外部エージェントにとって重要な事態が、インターネットまたはイントラネット・アプリケーション、あるいはプログラムで発生することです。たとえば、発注の作成は、購買アプリケーションで発生するビジネス・イベントの例です。
イベントのインスタンスを一意に識別する文字列です。イベント名、イベント・キーおよびイベント・データをすべて組み合せることで、イベントの内容を表します。
ビジネス・イベントを通信するための標準のワークフロー構造で、データ型WF_EVENT_Tで定義されます。イベント・メッセージには、イベント・データおよび複数のヘッダー・プロパティ(イベント名、イベント・キー、アドレッシング属性およびエラー情報など)が含まれます。
アクティビティとしてモデル化されたビジネス・イベントで、ワークフロー・プロセスに含まれます。
イベントを表すその他の詳細です。イベント・データはXML文書として構造化できます。イベント名、イベント・キーおよびイベント・データをすべて組み合せることで、イベントの内容を表します。
特定のイベントがシステムにとって重要であることを示し、トリガー・イベントが発生したときに実行される処理を指定する登録です。サブスクリプション処理には、カスタム・コードのコール、ワークフロー・プロセスへのイベント・メッセージの送信、エージェントへのイベント・メッセージの送信が含まれます。
イベントの発生直後にイベントのサブスクリプションを実行しない場合、サブスクリプションを遅延できます。これにより、コール側アプリケーションに制御を迅速に戻し、コストのかかるサブスクリプション処理をイベント・マネージャが後で実行するように設定できます。
エージェントは、システム内の名前付きの通信ポイントです。システム内およびシステム間の通信は、エージェント間でメッセージを送信することで実行されます。1つのシステムで、異なる通信方法を表す複数のエージェントを使用できます。たとえば、1つのシステムで、インバウンドおよびアウトバウンド通信、異なるプロトコルによる通信、異なる伝播頻度による通信、またはその他の通信方法をサポートする個別のエージェントを使用できます。
ビジネス・イベント・グループは、個別のビジネス・イベントが複数含まれるイベント・タイプです。イベント・グループを一度定義すると、イベント・グループに登録されていたサブスクリプションは、そのグループ内のいずれかの個別イベントがトリガーされると実行されます。
ビジネス・イベント・グループのサポートにより、イベント・グループに属する別々のビジネス・イベントを、単一のパートナ・リンクを経由して扱えるようになります。イベント・グループ用に作成されたサービスは、グループ内の任意のイベントに対応するペイロードをデキューできます。
イベント・グループの一部であるアウトバウンド・ビジネス・イベントへの既存のパートナ・リンクをサポートするには、回避策に従う必要があります。詳細は、「既存パートナ・リンク経由のビジネス・イベントのサポート」を参照してください。
注意: グループの下の個別イベントがサブスクライブ済の場合、2つのメッセージはWF_BPEL_Qキューにエンキューされます。1つのメッセージしか必要としないユーザーは、WF_BPEL_Qにメッセージをエンキューする個別イベントのサブスクライブを無効にする必要が生じる場合があります。
ビジネス・イベント・グループを使用したパートナ・リンクの作成に関する詳細は、「ビジネス・イベント・グループを使用したパートナ・リンクの作成」を参照してください。
この項では、Oracle JDeveloperで「アダプタ構成ウィザード」を使用してOracle E-Business Suite Adapterを構成するために必要なタスクを説明します。
ビジネス・イベントを消費するサービス・アーティファクトの作成
ビジネス・イベントをリッスンするためのパートナ・リンクを作成するあいだに、次のタスクが背景で実行されます。
WF_BPEL_Qキューの作成
WF_AGENTS表のWF_BPEL_Qのエントリの作成
リッスン対象イベント用のサブスクリプションの作成
異なるOracle E-Business Suiteインスタンス上で上記エントリの再作成を可能にするために、プロジェクト・フォルダ内にスクリプトが生成されます。また、該当するインスタンスに対して手動で実行できるドロップ・スクリプトが作成され、前述のすべてのタスクをクリーンアップできます。ドロップ・スクリプトの実行はオプションであり、推奨されていません。ドロップ・スクリプトはWF_BPEL_Qキューを削除しますが、それが同一Oracle E-Business Suiteインスタンス上でイベントをリッスンする他のコンポジットに影響を与える可能性があります。
同一のビジネス・イベントを使用する複数のBPELプロセス
Oracle E-Business Suite Adapterでは、同一のビジネス・イベントを使用する複数のBPELプロセスを処理できます。1つのビジネス・イベントに対してOracle E-Business Suite Adapterが作成するサブスクリプションは、そのサブスクリプションを使用するBPELプロセスの数に関係なく1つのみです。内部的に、このサブスクリプションよってビジネス・イベント・メッセージがマルチ・コンシューマAQに転送されます。各BPELプロセスはイベントに対して固有のコンシューマであるため、キューにメッセージが入れられるとすべてのBPELプロセスが通知されます。したがって、ユーザーは各BPELプロセスに個別にサブスクリプションを作成する必要はありません。必要があるのはイベントに対するサービスを作成することのみで、各BPELプロセスへのメッセージ配信はOracle E-Business Suite Adapterによって処理されます。
たとえば、同一のビジネス・イベント(BE1イベントなど)を使用する3つのBPELプロセス(BPEL1、BPEL2およびBPEL)があるとします。BPELプロセスそれぞれについて、Oracle E-Business Suite Adapterを使用して、BE1イベント向けサービスを作成します。Oracle E-Business Suite Adapterにより、3つのBPELプロセス(BPEL1、BPEL2およびBPEL)すべてに対して1つのサブスクリプションが作成されます。このサブスクリプションにより、BE1イベント・メッセージがマルチ・コンシューマAQに入れられます。
実行時、BE1イベントが発生すると、サブスクリプションは3つすべてのBPELプロセスに適用可能であるため、この3つのデプロイされたBPELプロセスはすべてアクティブ化され、同一のBE1イベント・メッセージを受信します。
BPELプロセスを使用したSOAコンポジット・アプリケーションのシナリオ
発注XMLのビジネス・イベントの呼出しを例として説明します。
発注が作成されて承認されると、発注承認済ビジネス・イベントoracle.apps.po.evnt.xmlpoが発生します。このイベントのサブスクリプションがバックグラウンドで作成され、ビジネス・イベントがリスニングされてイベント詳細が取得されます。イベント・データがBPELプロセス・アクティビティによって渡され、出力ファイルとしてXMLファイルに書き込まれます。
BPELプロセスを使用したSOAコンポジット・アプリケーションがデプロイメント後に正常に実行された場合は、発注の承認時の同じ発注情報を出力ファイルから取得する必要があります。
WF_Deferredエージェント・リスナーが稼動中でありターゲット・インスタンスで実行中である必要があります。
BPELにサブスクライブするために、BPELでイベントが有効になっている必要があります。イベントを無効モードにしないでください。
BPELプロセスを使用したSOAコンポジット・アプリケーションの作成フロー
発注XMLのビジネス・イベントの呼出しのシナリオに従って、次の設計時タスクについてこの章で説明します。
BPELプロセスを使用した新しいSOAコンポジット・アプリケーションを作成する手順は、次のとおりです。
Oracle JDeveloperを起動します。
「アプリケーション・ナビゲータ」で「新規アプリケーション」をクリックします。
「新規ギャラリ」ページが表示されます。項目リストで「SOAアプリケーション」を選択します。
「新規ギャラリ」ページ
「OK」をクリックします。
「SOAアプリケーションの作成 - アプリケーションの名前付け」ページが表示されます。
「SOAアプリケーションの作成 - アプリケーションの名前付け」ページ
「アプリケーション名」フィールドにアプリケーションに適した名前を入力します。
「次」をクリックします。「SOAアプリケーションの作成 - プロジェクトの名前付け」ページが表示されます。
「SOAアプリケーションの作成 - プロジェクトの名前付け」ページ
「プロジェクト名」フィールドに適切なプロジェクト名を入力します。例: GetPOAckBusinessEvent。
「プロジェクトの機能」セクションに「SOAスイート」が表示されます。
「次」をクリックします。「SOAアプリケーションの作成 - SOA設定の構成」ページが表示されます。
「SOAアプリケーションの作成 - SOA設定の構成」ページ
「開始」フィールドでは、デフォルトで選択されている「標準コンポジット」をそのままにします。
「標準コンポジット」リストからBPELプロセスを使用するコンポジットを選択し、「終了」をクリックします。新しいアプリケーションとSOAプロジェクトが作成されました。これにより、SOAコンポジットが自動的に作成されます。
「BPELプロセスの作成」ページが表示されます。
「BPELプロセスの作成」ページ
デフォルトで選択されている「BPEL 2.0仕様」をそのままにします。BPEL 2.0仕様をサポートするBPELプロジェクトが作成されます。
「名前」フィールドに適切なBPELプロセス名を入力します。例: GetPOAckBusinessEvent。
「テンプレート」フィールドから「サービスを後で定義」を選択します。「OK」をクリックします。
空のBPELプロセスが作成されます。指定した名前(GetPOAckBusinessEvent.bpelやGetPOAckBusinessEvent.wsdlなど)を使用したbpelおよびwsdlを含む必要なソース・ファイル、およびGetPOAckBusinessEvent (composite.xml)も生成されます。
アウトバウンド・ビジネス・イベントを構成するには、パートナ・リンクを作成して、アウトバウンド・イベントを公開できるようにする必要があります。
このタスクにより、BPELプロセスにパートナ・リンクが追加されます。パートナ・リンクは、パートナ・サービスと相互動作するBPELプロセスのリンク名、タイプおよびロールを定義するものです。
パートナ・リンクを追加する手順は、次のとおりです。
「コンポーネント・パレット」で「BPELサービス」をクリックします。
Oracle E-Business Suite」(旧称Oracle Applications)を「BPELサービス」リストからプロセス・ダイアグラムの右側の「パートナ・リンク」スイムレーンにドラッグ・アンド・ドロップします。「Oracle E-Business Suite Reference」ページが表示されます。
「名前」フィールドに参照名を入力します。例: GetPOApprovalEvent。
「次」をクリックします。「サービス接続」ダイアログが表示されます。
データベース・サービス接続の指定
データベース接続については次のいずれかのオプションを実行できます。
注意: Oracle E-Business Suiteが実行されているデータベースに接続する必要があります。
新しいデータベース接続を作成するには、「新規データベース接続を作成します」アイコンをクリックします。
新しいデータベース接続を定義する方法は、「新規データベース接続の作成」を参照してください。
以前に構成した既存のデータベース接続は、「接続」ドロップダウン・リストから選択できます。
「サービス接続」ページが開いて、選択した接続情報が表示されます。データベース接続に対応するJNDI(Java Naming and Directory Interface)名が、「データベース・サーバーのJNDI名」フィールドに自動的に表示されます。JNDI名を指定することもできます。
注意: JNDI名を指定する場合、データベースにアクセスするには、Oracle E-Business Suite Adapterのデプロイメント・ディスクリプタにより、このJNDI名をアダプタで必要な構成プロパティに関連付ける必要があります。
JNDI名は、サービスがBPELサーバーにデプロイされるときに使用される接続のプレースホルダとなります。これによって、開発用とその後の本番用とで異なるデータベースを使用できます。
注意: JNDIの概念の詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
新規のサービス接続の作成を完了した後、Oracle E-Business Suiteで使用可能なリストを参照してビジネス・イベントを追加できます。
「次」をクリックします。
Oracle E-Business Suiteリリース12に接続している場合は、IREPファイルがありませんというダイアログが表示されます。これは、ワークスペース内で接続中のデータベースに対応するOracle Integration Repositoryデータ・ファイルが見つからないことを示します。データファイルがないと、Integration Repositoryツリーの参照や検索がかなり低速になります。データファイルを抽出し、Integration Repositoryデータファイルのローカル・コピーを作成するように選択できます。正常に作成されたローカル・コピーは、次回にアダプタにより自動的に使用され、ローカルIntegration Repositoryからデータが取得されます。
次のいずれかのオプションを選択できます。
Integration Repositoryデータファイルを抽出するには、「はい」をクリックします。
システムによりIntegration Repositoryデータファイルのローカル・コピーが正常に作成されると、データベースへの次回接続時には、「操作」ダイアログに「IRepデータ・ファイル」フィールドが表示されます。これは、ファイル名の一部に作成日時を含んだローカル・コピーが存在することを示します。
ローカルIntegration Repositoryデータファイルの使用
接続中の本番データベースからIntegration Repositoryデータファイルを問い合せてIntegration Repositoryツリーを表示するには、「いいえ」をクリックします。
この例では、「いいえ」をクリックします。「操作」ページで「次へ」をクリックして、Oracle E-Business Suiteモジュール・ブラウザを開きます。
Oracle E-Business Suiteモジュール・ブラウザは、Oracle Integration Repositoryからのインタフェース・データを、Oracle E-Business Suite Adapterでサポートされるその他のインタフェースに関する情報と組み合せて、ツリー階層を作成します。
ビジネス・イベントを選択するには、ナビゲーション・ツリーを「製品ファミリ」→「その他インタフェース」→「ビジネス・イベント」→「アウトバウンド」に展開します。方向アウトバウンドは、Oracle E-Business Suiteパースペクティブからになります。この場合は、Oracle E-Business Suiteからビジネス・イベントをリスニングします。適切なビジネス・イベント(oracle.apps.po.event.xmlpoなど)を選択し、「OK」をクリックします。「アプリケーション・インタフェース」ページが開き、選択したビジネス・イベントが表示されます。
モジュール・ブラウザからのビジネス・イベントの選択
注意: ビジネス・イベント・グループを使用したパートナ・リンクの作成
ビジネス・イベント・グループは、Oracle E-Business Suiteモジュール・ブラウザの「その他インタフェース」→「ビジネス・イベント」→「アウトバウンド」→「グループ」ノードにあります。
「グループ」ノードからビジネス・イベント・グループ(oracle.apps.fem.event.group.allなど)が選択されると、イベント・グループの所有者名を含むイベント・グループの詳細情報、生成された機能情報(ある場合)および選択されたイベント・グループに含まれる個別のイベントが、Oracle E-Business Suiteモジュール・ブラウザ・ウィンドウの右側ペインにリストされます。
Oracle E-Business Suiteモジュール・ブラウザからのビジネス・イベント・グループの選択
さらに、ビジネス・イベント・ペイロードに対しては後で「WFイベント・スキーマ定義」ページで「任意のスキーマ」を選択します。これにより、任意のスキーマのXMLペイロードをイベント・ペイロードに添付できます。また、パートナ・リンクが一度作成されたら、選択中のイベント・グループ(手順10で説明)のJCAプロパティ「MessageSelectorRule」を検証することもできます。
この機能は、Oracle E-Business Suiteリリース12およびリリース11.5.10に適用されます。ビジネス・イベント・グループの詳細は、「ビジネス・イベント・グループ」を参照してください。
「OK」をクリックすると、「アプリケーション・インタフェース」ページが表示されます。
「アダプタ構成ウィザード」 - 「アプリケーション・インタフェース」ページ
「アプリケーション・インタフェース」ページで「次へ」をクリックします。ビジネス・イベント・ペイロードの「WFイベント・スキーマ定義」ページが表示されます。
イベント・スキーマの指定
ビジネス・イベント・ペイロードに使用するオプションとして次のいずれかを指定する必要があります。
注意: 「スキーマなし」または「任意のスキーマ」オプションを選択した場合、ビジネス・イベントのスキーマ情報をさらに指定する必要はなく、次のステップに進みます。
スキーマなし
「スキーマなし」オプションを選択すると、ペイロード・データは文字列の形式で使用できます。このオプションを選択すると、XML以外のイベント・ペイロードも受信できます。
任意のスキーマ
「任意のスキーマ」オプションを選択すると、任意のスキーマのXMLペイロードをイベント・ペイロードに添付できます。このオプションは、ペイロードがXMLであることがわかっていて、スキーマが不明の場合に選択します。
注意: パートナ・リンクを作成するためにビジネス・イベント・グループを選択している場合、「任意のスキーマ」オプションを選択してください。これにより、任意のスキーマをビジネス・イベント・グループに添付できます。
スキーマの指定
「スキーマの指定」を選択すると、「スキーマの場所」および「スキーマ要素」フィールドが参照可能になります。スキーマ・ファイルの場所を指定してから、アウトバウンド・ビジネス・イベントのペイロードを定義するスキーマ要素を選択する必要があります。
ビジネス・イベント・ペイロード・スキーマの選択
「スキーマなし」を選択して、「次へ」をクリックします。
ビジネス・イベント・サービスの定義が終了したことを示す「終了」ページが表示されます。
「BPELサービス」ダイアログのトランザクション・プロパティの設定 が表示されます。「配信」フィールドで「sync」が、「トランザクション」フィールドで「required」が選択されていることを確認します。
「BPELサービス」でトランザクション・プロパティを設定
「OK」をクリックし、パートナ・リンク構成を完了します。
ウィザードでは、oracle.apps.po.event.xmlpoビジネス・イベント・サービスに対応するGetPOApprovalEvent WSDLファイルを生成します。
必要なWSDL設定を使用してパートナ・リンクが作成され、プロセス・ダイアグラムの境界領域で新しいアイコンを使用してBPELプロジェクト内に表示されます。
イベント・グループのパートナ・リンクに対するJCAプロパティ「MessageSelectorRule」の検証
パートナ・リンクを作成するためにビジネス・イベント・グループを選択している場合、SOAの「コンテンツ」→「アダプタ」フォルダでパートナ・リンク・サービス(BE_Group_apps.jcaなど)を選択すると、ビジネス・イベント・グループのJCAプロパティを検証できます。
「ソース」タブをクリックして.jcaファイルを表示します。JCAプロパティ「MessageSelectorRule」には次の値が格納されていることに注意してください。
value="tab.user_data.getvalueforparameter ('GROUP') = 'oracle.apps.fem.event.group.all'"
次のタスクは、ビジネス・イベントのアダプタ・サービス用に構成したパートナ・リンクからイベント詳細を受信するように、receiveアクティビティを構成することです。
receiveアクティビティを構成する手順は、次のとおりです。
JDeveloper BPEL Designerの「コンポーネント・パレット」で、「BPELコンストラクト」を展開します。「Receive」を、「Web Service」セクションから、プロセス・ダイアグラムの中央スイムレーンにドラッグ・アンド・ドロップします。
receiveアクティビティを前に作成したパートナ・リンクGetPOApprovalEventにリンクします。
receiveアクティビティのパートナ・リンクへの関連付け
「受信」ダイアログが表示されます。
receiveアクティビティの適切な名前を入力します。
パートナ・リンクがアウトバウンド・ビジネス・イベントで構成されているため、「操作」で自動的に「デキュー」が選択されます。
「変数」を指定して、パートナ・リンクからメッセージ・データを受信するには、「変数」フィールドの右側にある「作成」アイコンをクリックします。「変数の作成」ダイアログ・ボックスが表示されます。
「OK」をクリックして、デフォルトの名前を受け入れます。
receiveアクティビティの構成
「受信」ダイアログで「適用」をクリックし、「OK」をクリックします。
アウトバウンド・ビジネス・イベントを構成する場合は、ファイル・アダプタ用にもう1つパートナ・リンクを追加する必要があります。これにより、アウトバウンド・ビジネス・イベントによってデータがXMLファイルに書き込まれます。
ファイル・アダプタ用パートナ・リンクを追加する手順は、次のとおりです。
Oracle JDeveloper BPEL Designerの「コンポーネント・パレット」で、「BPELサービス」をクリックします。
「ファイル・アダプタ」を「BPELサービス」リストからプロセス・ダイアグラムの右側の「パートナ・リンク」スイムレーンにドラッグ・アンド・ドロップします。ファイル・アダプタ参照ページが表示されます。
ファイル・アダプタ参照ページ
ファイル・アダプタ・サービスの名前を入力します。たとえば、WriteEventDataと入力します。
「次」をクリックします。「アダプタ・インタフェース」ページが表示されます。
アダプタ・インタフェースの指定
「操作およびスキーマから定義(後で指定)」ラジオ・ボタンを選択し、「次へ」をクリックします。
ファイル・サーバーの接続ページが表示されます。「ファイル・サーバーのJNDI名」フィールドのデフォルト値は変更せず、そのままにします。
「次へ」をクリックします。
「操作」ページで、操作タイプを指定します。たとえば、「Write File」ラジオ・ボタンを選択します。この操作タイプは、「操作名」フィールドに自動的に移入されます。
操作の指定
「次へ」をクリックして、「ファイル構成」ページにアクセスします。
出力ファイルの構成
「ディレクトリは次のように指定します」フィールドで、「論理名」ラジオ・ボタンを選択します。「発信ファイルのディレクトリ(論理名)」にoutputDirと入力し、出力ファイルの命名規則(EventAck%yyMMddHHmmss%.xmlなど)を指定します。
ヒント: パーセント記号(%)を入力する場合、ファイル名の一部として日付変数のリストまたは順序番号変数(SEQ)から選択できます。
デフォルトの書込み条件「メッセージ数の到達 1」を確認します。
「次へ」をクリックすると、「メッセージ」ページが表示されます。書き込まれる出力ファイルの場合、スキーマを指定する必要があります。
「参照」をクリックして、「タイプ・チューザ」にアクセスします。
「プロジェクトのスキーマ・ファイル」→「WF_EVENT_T_GetPOApprovalEvent.xsd」をクリックして、ノードを展開します。要素として「WF_EVENT_T」を選択して、「OK」をクリックします。
選択したスキーマ情報は、「URL」フィールドと「スキーマ要素」フィールドに自動的に移入されます。
選択したメッセージ・スキーマの移入
「次へ」をクリックし、「終了」をクリックします。これで構成が完成し、必要なWSDL設定を使ったファイル・アダプタ・サービスでのパートナ・リンクが作成されます。パートナ・リンクに対応するWSDLファイルWriteEventData.wsdlも生成されます。
BPELプロセス・ダイアグラムにWriteEventDataパートナ・リンクが表示されます。「パートナ・リンク」サービス・アイコンをダブルクリックします。パートナリンクの編集 ダイアログが開き、詳細が表示されます。
パートナ・リンク構成の完了
ファイル・アダプタ用のパートナ・リンクを追加した後、invokeアクティビティをファイル・アダプタ・リンクに関連付けるよう構成する必要があります。
invokeアクティビティによって、出力ディレクトリとして指定したXMLファイルにビジネス・イベント情報を書き込むことができます。
invokeアクティビティを構成する手順は、次のとおりです。
Oracle JDeveloper BPEL Designerの「コンポーネント・パレット」で、「BPELコンストラクト」を展開します。「Invoke」アクティビティを、「Web Service」セクションから、プロセス・ダイアグラムの中央スイムレーンの「Receive」アクティビティの後ろにドラッグ・アンド・ドロップします。
invokeアクティビティをWriteEventDataファイル・アダプタ・サービスにリンクします。
invokeアクティビティは、パートナ・リンクにイベント・データを送信します。「Invokeの編集」ダイアログが表示されます。
Invokeアクティビティの名前を入力します。「入力」タブで「入力変数」ラジオ・ボタンが選択されていることを確認します。「入力変数」フィールドの横にある「作成」アイコンをクリックして、新しい変数を作成します。「変数の作成」ダイアログ・ボックスが表示されます。
「グローバル変数」を選択し、変数の名前を入力します。デフォルト名を受け入れることもできます。「OK」をクリックして、「Invokeの編集」ダイアログに戻ります。
invokeアクティビティの編集
「適用」をクリックして、「OK」をクリックし、invokeアクティビティの構成を完了します。
assignアクティビティを使用して、receiveアクティビティから出力を取得してinvokeアクティビティに入力します。
assignアクティビティを構成する手順は、次のとおりです。
Oracle JDeveloper BPEL Designerの「コンポーネント・パレット」で、「BPELコンストラクト」を展開します。「Assign」アクティビティを、「基本アクティビティ」セクションから、プロセス・ダイアグラムの中央スイムレーンにある「Receive」アクティビティと「Invoke」アクティビティの間にドラッグ・アンド・ドロップします。
「Assign」アクティビティをダブルクリックして、「Assignの編集」ダイアログにアクセスします。
「一般」タブをクリックして、assignアクティビティの名前を入力します。例: setEventData。
「コピー・ルール」タブを選択してターゲット・ツリーを展開します。
「From」ナビゲーション・ツリーで、「変数」→「プロセス」→「変数」→「Receive_DEQUEUE_InputVariable」の順にナビゲートして、「WF_EVENT_T」を選択します。
「To」ナビゲーション・ツリーで、「変数」→「プロセス」→「変数」→「Invoke_Write_InputVariable」→「本体」→「ns3:WF_EVENT_T」の順にナビゲートします。
ソース・ノード(WF_EVENT_T)を、選択したターゲット・ノード(本体)にドラッグして接続します。 これでソース・ノードとターゲット・ノードを接続する線が作成されます。コピー・ルールは、「Assignの編集」ダイアログ・ボックスの下部にある「From」セクションと「To」セクションに表示されます。
パラメータの割当て
「適用」をクリックし、「Assignの編集」ダイアログ・ボックスの「OK」をクリックして、assignアクティビティの構成を完了します。
完了したアウトバウンド・ビジネス・イベントBPELプロセス・プロジェクト
「GetPOApprovalEvent (composite.xml)」をクリックして、Oracle JDeveloperのコンポジット・ダイアグラムを表示します。
注意: 「GetPOApprovalEvent (composite.xml)」の「ソース」タブをクリックして、参照WriteEventDataの物理ディレクトリoutputDirの値を入力します(/usr/tmpなど)。
<property name="outputDir" type="xs:string" many="false" override="may">/usr/tmp</property>
プロパティの物理ディレクトリの指定
Oracle JDeveloperのコンポジット・ダイアグラム
BPELプロセスを使用したSOAコンポジットを設計したら、それをコンパイル、デプロイおよびテストできます。
SOAコンポジットに含まれるBPELクライアントからサービス(GetPOApprovalEvent)を起動するには、Oracle WebLogic管理対象サーバーにSOAコンポジットをデプロイする必要があります。それにはOracle JDeveloperが使用できます。コンポジットをデプロイしたら、Oracle Enterprise Manager Fusion Middleware Controlコンソールからテストできます。
前提条件
Oracle JDeveloperを使用してBPELプロセスとともにSOAコンポジットをデプロイする前に、設計時環境とランタイム・サーバーとの間の接続を確立する必要があります。詳細は、「Oracle WebLogic Serverのデータ・ソースの構成」と「アプリケーション・サーバーの接続の作成」を参照してください。
注意: WebLogic Serverのローカル・インスタンスを使用する場合は、Oracle JDeveloperから「実行」→「サーバー・インスタンスの起動」を選択して、WebLogic Serverを起動します。WebLogic Admin Serverの「DefaultServer」インスタンスが正常に起動されると、「実行中: DefaultServer」および「メッセージ」ログに「<サーバーが実行モードで起動されました」および「DefaultServerが起動されました」というメッセージが表示されます。
BPELプロセスを使用したSOAコンポジット・アプリケーションをデプロイする手順は、次のとおりです。
JDeveloper BPEL Designerの「アプリケーション・ナビゲータ」で、SOAコンポジット・プロジェクト名(GetPOAckBusinessEventなど)を選択します。
プロジェクト名を右クリックし、表示されるメニューから「デプロイ」→[プロジェクト名]→[serverConnection]を選択します。
接続が適切にセットアップされていれば、たとえば、「デプロイ」→「GetPOAckBusinessEvent」→「soa-server1」を選択してプロセスをデプロイできます。
注意: サーバー接続を初めてセットアップすると、「デプロイメント・アクション」ウィンドウが表示されます。「アプリケーション・サーバーにデプロイ」を選択して、「次へ」をクリックします。
「構成のデプロイ」ウィンドウで、次の情報が選択されていることを確認してから「次へ」をクリックすると新しいアプリケーション・サーバーが追加されます。
新規リビジョンID: 1.0
コンポジット・リビジョンをデフォルトとしてマークします: このチェック・ボックスを選択します。
同じリビジョンIDで既存のコンポジットを上書きします: このチェック・ボックスを選択します。
JDeveloperからOracle WebLogic Server接続を新規作成する手順は、「アプリケーション・サーバー接続の作成」に記載されています。
「サーバーの選択」ページで、前に確立したサーバー接続「soa-server1」を選択します。「次」をクリックします。
「SOAサーバー」ページでデフォルトのターゲットSOAサーバー('soa-server1')の選択を受け入れます。
「次へ」をクリックし、「終了」をクリックします。
Oracle JDeveloperセッションからコンポジットを初めてデプロイする場合は、「認証リクエスト」画面が表示されます。Oracle SOA Suiteのインストール中に、指定されたユーザー名とパスワードを入力します。「OK」をクリックします。
デプロイメント処理が開始されます。「SOA - ログ」ウィンドウと「デプロイメント - ログ」ウィンドウでデプロイメントの進行とコンパイルの成功を確認します。
BPELプロセスを使用したSOAコンポジット・アプリケーションを一度デプロイしたら、Oracle Enterprise Manager Fusion Middleware Controlコンソールからプロセスを管理およびモニターできます。また、プロセスを手動で開始してテストすることもできます。
BPELプロセスを使用したSOAコンポジット・アプリケーションをテストする手順は、次のとおりです。
Oracle Enterprise Manager Fusion Middleware Controlコンソールにナビゲートします(http://<サーバー名>:<ポート番号>/em)。デプロイしたコンポジットが「アプリケーション・ナビゲーション」ツリーに表示されます。
ユーザー名(weblogicなど)とパスワードを入力して、「ログイン」をクリックし、ファームにログインします。
複数のターゲットOracle Enterprise Manager Fusion Middleware Controlコンソール・ファームがある場合は、適切なターゲット・インスタンス・ファームを選択する必要がある場合があります。
ファームのベース・ドメインで、「SOA」→「soa-infra (soa_server1)」→「デフォルト」を展開して、SOAインフラストラクチャ・ホーム・ページとメニューをナビゲートし、その管理対象サーバーのSOAインフラストラクチャで実行されているデプロイ済のSOAコンポジット・アプリケーションにアクセスします。
注意: 「ファーム」メニューは常にナビゲータの最上部に表示されます。ナビゲータで「SOA」フォルダを展開し、その下に表示されるリンクをクリックすると、ページの最上部で「SOAインフラストラクチャ」メニューを使用できるようになります。
XML Gatewayの職責を使用してOracle E-Business Suiteにログオンします。
これにより、発注に定義された仕入先が有効であるようにXML Gateway取引先が適切に設定されていることを確認できます。
ナビゲーション・メニューから「取引先の定義」を選択して、「取引先の設定」ウィンドウにアクセスします。
次のように、「取引先設定」フォームでヘッダー値を入力します。
取引先タイプ: 仕入先
取引先名: Advanced Network Devices
取引先サイト: 取引先サイトの情報、たとえば、2000 Century Way, Santa Clara, CA 95613-4565と入力します。
会社管理者Eメール: 有効なEメール・アドレスを入力します。
次の取引先の詳細を入力します。
トランザクション・タイプ: PO
トランザクション・サブタイプ: PRO
標準コード: OAG
外部トランザクション・タイプ: PO
外部トランザクション・サブタイプ: Process
方向: OUT
マップ: itg_process_po_007_out
接続/ハブ: DIRECT
プロトコル・タイプ: HTTP
ユーザー名: operation
パスワード: 該当するパスワードを2回入力します。
プロトコル・アドレス: http://appsadapter.sample.com
ソース取引先ロケーション・コード: STPLC
「取引先の設定」フォーム
取引先の詳細を保存します。
「購買、Visionオペレーション (USA)」を選択して職責を切り替え、ナビゲーション・メニューから「発注」フォームを選択します。
購買オーダー・フォームが表示されます。
「発注」ウィンドウで以前に定義した取引先を反映するヘッダー値を使用して発注を作成します。
仕入先: 仕入先の情報(「Advanced Network Devices」など)を入力します。
サイト: サイトの情報(「SANTA CLARA-ERS」など)を選択します。
「明細」タブで、次の値を使用してデータ行を入力します。
タイプ: 商品
品目: CM13139
数量: 1
摘要: ハード・ドライブ - 8GB
約束の日: dd-mmm-yyyyという書式で将来の日付(23-JUN-2009など)を入力します。
発注を保存します。発注のステータスは「未完了」になっています。
発注の設定
「承認」をクリックします。「ドキュメントの承認」フォームが表示されます。
発注の承認
「OK」をクリックして、承認を確定します。
注意: 取引先が設定され有効になっているため、送信方法は自動的にXMLに設定されます。
発注のステータスは「承認」に変更されました。将来参照するために、「発注、改訂」フィールドの値(たとえば、この場合には発注番号4449)を記録します。
発注が承認されると、ビジネス・イベントoracle.apps.po.event.xmlpoが発生します。
WF_Deferred Agent Listenerがターゲット・データベースで実行中であることを確認する手順は、次のとおりです。
システム管理者の職責を使用してOracle E-Business Suiteにログインします。
「ワークフロー管理者Webアプリケーション」職責を選択して、メニューから「Oracle Applications Manager」→「ワークフロー・マネージャ」を選択します。
「アプリケーション・マネージャ」ページで、「エージェント・リスナー」アイコンをクリックします。「サービス・コンポーネント」ページが表示され、インストール済のエージェント・リスナーのリストが表示されます。
エージェント・リスナー・ステータスの確認
ワークフロー遅延エージェント・リスナーのステータスが「実行中」になっていることを確認します。
ここで、OAコンポジット・アプリケーションに含まれるデプロイ済BPELプロセスは、oracle.apps.po.event.xmlpoビジネス・イベントをリスニングします。イベントが発生してからBPELプロセスがアクティブ化するまで2から3分かかります。
書込み操作に指定したディレクトリ(outputDir、通常はc:\tempの下)に移動します。出力ファイル(EventAck%yyMMddHHmmss.xmlなど)を開き、発注番号が承認済の発注の番号と同じであることを確認します。
出力の発注番号の確認
ビジネス・イベント・システム統合で問題が発生した場合は、次のトラブルシューティング手順を確認します。
ワークフロー遅延エージェント・リスナーが実行中であることを確認します。
ビジネス・イベントがコンポジットのデプロイ後に発生していることを確認します。
Oracle E-Business Suite Adapterのパートナ・リンクがOracle E-Business Suiteのあるインスタンスで作成され、デプロイは別のインスタンスで行われている場合、ターゲット・データベースで次の事項を確認してください。
WF_BPEL_Qキューが存在している
発生中のビジネス・イベントのカスタム・サブスクリプションが存在している
注意: 前述の2点は、Oracle E-Business Suiteのターゲット・データベース上でXX_BPEL_WFEVENT_<parnerlink_name>.sql (プロジェクト・フォルダに存在)を実行することで容易に再現できます。
アダプタのロギングを有効化して、ミドルウェア側に問題がないか確認します。Oracle E-Business Suite Adapterのロギングの有効化の詳細は、「アダプタのロギングの有効化」を参照してください。
Copyright © 2005, 2015, Oracle and/or its affiliates. All rights reserved.