Oracle Fusion Middleware Adapter for Oracle Applicationsユーザーズ・ガイド 11g リリース1(11.1.1) B61389-01 | 目次 | 戻る | 次へ |
この章の構成は、次のとおりです。
コンカレント・プログラムは、実行ファイルのインスタンスです。コンカレント・プログラムでは、コンカレント・プログラム実行可能ファイルを使用して適切な実行ファイルが検出されます。複数のコンカレント・プログラムが同じ実行ファイルを使用し、それぞれパラメータのデフォルト値が異なる特定のタスクを実行できます。コンカレント・マネージャはバックグラウンドで実行され、コンカレント・プログラムが実行されるのを待機します。コンカレント・プログラムが実行されると、ただちにコンカレント・マネージャによって実行キューに入れられます。コンカレント・マネージャはコンカレント・プログラムのコンカレント実行も管理します。
オープン・インタフェース表に関連付けられているコンカレント・プログラムは、インタフェース表から実表にデータを移動します。他のコンカレント・プログラムは、Oracle E-Business Suiteのビジネス・ロジック・レベルおよびアプリケーション・レベルの処理を実行します。
この項では、コンカレント・プログラムを使用するようにAdapter for Oracle Applicationsを構成する方法について説明します。この項では、Oracle JDeveloperで「アダプタ構成ウィザード」を使用してAdapter for Oracle Applicationsを構成する際の必須タスクについて説明します。
BPELプロセスのシナリオ
オープン・インタフェース: オーダー・インポート・コンカレント・プログラム(OEOIMP)を例として説明します。このコンカレント・プログラムを使用すると、オーダー・インポート処理を実行して、Order Managementのオープン・インタフェース表からオーダー詳細を取得し、受注を作成できます。
オーダー作成のリクエストを受信すると、オーダー詳細がオープン・インタフェース表(OE_HEADER_IFACE_ALLとOE_LINES_IFACE_ALL)に渡されて挿入されます。挿入が完了すると、コンカレント・プログラムが起動され、オーダー・データをオープン・インタフェース表からOrder Managementの実表にインポートします。
デプロイ後にBPELプロセスが正常に実行された場合は、オーダーがOracle Applicationsに作成されています。購買オーダーIDはペイロードの入力値と同じである必要があります。
アプリケーション・コンテキストのヘッダー変数の移入
Oracle Applicationsのコンテキスト情報を提供するには、BPEL PMに特定の変数を移入する必要があります。十分な権限を持つOracle Applicationsユーザーがプログラムを実行するには、トランザクションのコンテキスト情報が必要です。
コンテキストはヘッダー・プロパティ(「ユーザー名」、「職責」、「職責アプリケーション」、「セキュリティ・グループ」および「NLS言語」を含む)に渡される値を考慮して設定されます。新しいヘッダー・プロパティ「職責アプリケーション」、「セキュリティ・グループ」および「NLS言語」の値が渡されない場合、コンテキスト情報は「ユーザー名」と「職責」に基づいて判断されます。
デフォルトの「ユーザー名」はSYSADMIN、デフォルトの「職責」はSYSTEM ADMINISTRATOR、デフォルトの「セキュリティ・グループ・キー」は「標準」、およびデフォルトの「NLS言語」はUSです。
生成WSDLに指定されているデフォルト値は変更できます。これは、コンテキスト情報を静的に変更する方法です。これらの値は、デプロイ済のビジネス・プロセスのすべての起動に適用されます。ただし、ビジネス・プロセスの起動ごとに異なるコンテキスト情報を提供する必要がある場合は、ヘッダー値に動的に値を移入できます。コンテキスト情報はinvokeアクティビティを構成することにより指定できます。
アプリケーション・コンテキストの詳細は、「正規化されたメッセージ・プロパティのサポート」を参照してください。
BPELプロセスの作成フロー
この章では、プロセス・シナリオに基づき、次の設計時タスクについて説明します。
新規BPELプロジェクトを作成する手順は、次のとおりです。
JDeveloper BPEL Designerを開きます。「アプリケーション・ナビゲータ」で「新規アプリケーション」をクリックします。
「SOAアプリケーションの作成 - アプリケーションの名前付け」ページが表示されます。
「SOAアプリケーションの作成 - アプリケーションの名前付け」ページ
「アプリケーション名」フィールドに適切なアプリケーション名を入力し、「アプリケーション・テンプレート」リストから「SOAアプリケーション」を選択します。
「次」をクリックします。「SOAアプリケーションの作成 - プロジェクトの名前付け」ページが表示されます。
「プロジェクト名」フィールドに適切なプロジェクト名を入力します。例: OrderImportConcurrentProgram。
「SOAアプリケーションの作成 - プロジェクトの名前付け」ページ
「プロジェクト・テクノロジ」タブで、「SOA」が「使用可能」テクノロジ・リストから選択されて、「選択済」テクノロジ・リストに表示されていることを確認します。
「次」をクリックします。「SOAアプリケーションの作成 - SOA設定の構成」ページが表示されます。
「SOAアプリケーションの作成 - SOA設定の構成」ページ
「BPELプロセス名」フィールドに、内容の説明となる名前を入力します。例: OrderImportConcurrentProgram。
「コンポジット・テンプレート」リストから「BPELを使用するコンポジット」を選択して、「終了」をクリックします。新しいアプリケーションとSOAプロジェクトが作成されました。これにより、SOAコンポジットが自動的に作成されます。
「BPELプロセスの作成」ページが表示されます。
「BPELプロセスの作成」ページ
「名前」フィールドに適切なBPELプロセス名を入力します。例: OrderImportConcurrentProgram。
「テンプレート」フィールドで「非同期BPELプロセス」を選択します。「OK」をクリックします。
receiveアクティビティとreplyアクティビティを持つ非同期BPELプロセスが作成されます。指定した名前を使用したbpelおよびwsdlファイル(例: OrderImportConcurrentProgram.bpelとOrderImportConcurrentProgram.wsdl)を含む必要なソース・ファイルとcomposite.xmlも生成されます。
次のタスクは、BPELプロセスにパートナ・リンクを追加することです。パートナ・リンクは、パートナ・サービスと相互動作するBPELプロセスのリンク名、タイプおよびロールを定義するものです。
前に説明したBPELプロセス・シナリオに基づいて、次の2つのパートナ・リンクを構成する必要があります。
最初のパートナ・リンクInsertOrderを追加して、選択したオープン・インタフェース表にオーダー詳細を挿入します
2番目のパートナ・リンクImportOrderCPを追加して、購買オーダー・データをオープン・インタフェース表からOrder Managementの実表にインポートします
最初のパートナ・リンクを追加する手順は、次のとおりです。
「コンポーネント・パレット」で「BPELサービス」をクリックします。
「Oracle Applications」を「BPELサービス」リストからプロセス・ダイアグラムの右側の「パートナ・リンク」スイムレーンにドラッグ・アンド・ドロップします。「アダプタ構成ウィザード」の「ようこそ」ページが表示されます。「次」をクリックします。
「サービス名」フィールドにサービス名を入力します。例: InsertOrder。
「次」をクリックします。「サービス接続」ダイアログが表示されます。
データベース・サービス接続の指定
データベース接続については次のいずれかのオプションを実行できます。
注意: Oracle Applicationsを実行しているデータベースに接続する必要があります。
新しいデータベース接続を作成するには、「新規データベース接続を作成します」アイコンをクリックします。
新しいデータベース接続を定義する方法は、「新規データベース接続の作成」を参照してください。
以前に構成した既存のデータベース接続は、「接続」ドロップダウン・リストから選択できます。
「サービス接続」ページが開いて、選択した接続情報が表示されます。データベース接続に対応するJNDI(Java Naming and Directory Interface)名が、「データベース・サーバーのJNDI名」フィールドに自動的に表示されます。JNDI名を指定することもできます。
注意: JNDI名を指定する場合、データベースにアクセスするには、Oracle Applicationsアダプタのデプロイメント・ディスクリプタにより、このJNDI名をアダプタで必要な構成プロパティに関連付ける必要があります。
JNDI名は、サービスがBPELサーバーにデプロイされるときに使用される接続のプレースホルダとなります。これによって、開発用とその後の本番用とで異なるデータベースを使用できます。
注意: JNDIの概念の詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
「サービス接続」ダイアログ・ボックスで「次へ」をクリックします。Oracle Applicationsで使用可能なコンカレント・プログラムのリストを参照することにより、コンカレント・プログラムを追加できます。
Oracle E-Business Suiteリリース12の場合
Oracle E-Business Suiteリリース12に接続している場合は、IREPファイルがありませんというダイアログ・ボックスが表示されます。これは、ワークスペース内で接続中のデータベースに対応するOracle Integration Repositoryデータ・ファイルが見つからないことを示します。データファイルがないと、Integration Repositoryツリーの参照や検索がかなり低速になります。データファイルを抽出し、Integration Repositoryデータファイルのローカル・コピーを作成するように選択できます。正常に作成されたローカル・コピーは、次回にアダプタにより自動的に使用され、ローカルIntegration Repositoryからデータが取得されます。
次のいずれかのオプションを選択できます。
Integration Repositoryデータファイルを抽出するには、「はい」をクリックします。
Integration Repositoryデータファイルの抽出
システムによりIntegration Repositoryデータファイルのローカル・コピーが正常に作成されると、データベースへの次回接続時には、「操作」ダイアログ・ボックスに「IRepデータファイル」フィールドが表示されます。これは、ファイル名の一部に作成日時を含んだローカル・コピーが存在することを示します。
ローカルIntegration Repositoryデータファイルの使用
接続中の本番データベースからIntegration Repositoryデータファイルを問い合せてIntegration Repositoryツリーを表示するには、「いいえ」をクリックします。
注意: アダプタで次回はワークスペース内のローカル・コピーからデータを問い合せるように、Integration Repositoryデータファイルのローカル・コピーを作成することをお薦めします。これにより、パフォーマンスが向上します。
リリース11.5.10より前のOracle E-Business Suiteの場合
リリース11.5.10より前のOracle Applicationsインスタンスに接続している場合は、「アダプタ構成ウィザード」でインタフェース・タイプを選択する必要があります。「表/ビュー/API/コンカレント・プログラム」を選択して次に進んでください。
「オブジェクト取得」をクリックして「Oracle Applicationsモジュール・ブラウザ」を開きます。
「Oracle Applicationsモジュール・ブラウザ」からのコンカレント・プログラムの選択
「Oracle Applicationsモジュール・ブラウザ」には、Oracle Applicationsで使用可能な各種の製品ファミリが表示されます。たとえば、Applications TechnologyやOrder Management SuiteはOracle Applicationsの製品ファミリです。製品ファミリには、個別製品が含まれています。たとえば、Order Management SuiteにはOrder Management製品が含まれています。個々の製品には、関連するビジネス・エンティティが含まれています。たとえば、Order Management製品にはSales Orderビジネス・エンティティが含まれています。
ビジネス・エンティティには、統合用に公開されている各種アプリケーション・モジュールが含まれています。これらのモジュールは、提供するインタフェース別にグループ化されています。コンカレント・プログラムは、「OpenInterfaces」カテゴリの下にあります。
「Order Management Suite (OM_PF)」→「Order Management (ONT)」→「受注 (ONT_SALES_ORDER)」→「OpenInterfaces」→「Order Management受注オープン・インタフェース (OEOIMP)」→「表」にナビゲートして、「OE_HEADERS_IFACE_ALL」を選択します。
「OK」をクリックします。「アプリケーション・インタフェース」ページが開き、選択したオープン・インタフェース表が表示されます。
「アダプタ構成ウィザード」 - 「アプリケーション・インタフェース」ページ
「オブジェクト取得」をクリックして、「Oracle Applicationsモジュール・ブラウザ」をもう一度開き、同じナビゲータ・パス「Order Management Suite (OM_PF)」→「Order Management (ONT)」→「受注 (ONT_SALES_ORDER)」→「OpenInterfaces」→「Order Management受注オープン・インタフェース (OEOIMP)」→「表」を使用して、別のオープン・インタフェース表OE_LINES_IFACE_ALLを選択します。
「OK」をクリックします。「アプリケーション・インタフェース」ページが開き、選択した2つの表が表示されます。
「アダプタ構成ウィザード」 - 「アプリケーション・インタフェース」ページ
「OK」をクリックします。
「次」をクリックします。「操作タイプ」ページが表示されます。
「アダプタ構成ウィザード」 - 「操作タイプ」ページ
「表に対して操作を実行」ラジオ・ボタンを選択し、「挿入」チェック・ボックスを選択します。「選択」チェック・ボックスが選択解除されていることを確認します。
「次」をクリックします。「表の選択」ページが表示されます。
「アダプタ構成ウィザード」 - 「表の選択」ページ
このサービスの問合せのルート・データベース表としてOE_HEADERS_IFACE_ALLを選択します。
「次」をクリックします。「主キーの定義」ページが表示されます。
「アダプタ構成ウィザード」 - OE_HEADERS_IFACE_ALLの「主キーの定義」ページ
OE_HEADERS_IFACE_ALL表に対して次の主キーを選択します。
ORDER_SOURCE_ID
ORIG_SYS_DOCUMENT_REF
「次」をクリックします。
OE_LINES_IFACE_ALL表に対して同じ主キーを選択します。
「アダプタ構成ウィザード」 - OE_LINES_IFACE_ALLの「主キーの定義」ページ
「次」をクリックします。「リレーションシップ」ページが表示されます。「作成」をクリックして、「リレーションシップの作成」ダイアログを開きます。
リレーションシップの定義
次の情報を入力して、ヘッダーと詳細表間のリレーションシップを定義します。
親表としてOE_HEADERS_IFACE_ALL、および子表としてOE_LINES_IFACE_ALLを選択します。
マッピング・タイプ「OE_HEADERS_IFACE_ALLとOE_LINES_IFACE_ALLのリレーションシップは1対多」を選択します。
注意: 表どうしの外部キー制約がすでにデータベースに存在する場合、表のインポート中に2つのリレーションシップが自動的に作成されます。1つは、ソース表(外部キー制約が含まれる表)からターゲット表への1対多リレーションシップです。もう1つのリレーションシップは、ターゲット表からソース表への1対1バック・ポインタです。
「私有」チェック・ボックスを選択します。
主キー・フィールドに外部キー・フィールドを関連付けます。
OE_HEADERS_IFACE_ALL.ORDER_SOURCE_ID: ORDER_SOURCE_ID
OE_HEADERS_IFACE_ALL.ORIG_SYS_DOCUMENT_REF: ORIG_SYS_DOCUMENT_REF
「リレーションシップ名」フィールドは、デフォルトでは自動的に移入されます。必要に応じて、作成しているリレーションシップに新しい名前を指定できます。
「OK」をクリックします。「リレーションシップ」ページに、新しく作成されたリレーションシップ情報が表示されます。
「アダプタ構成ウィザード」 - 「リレーションシップ」ページ
「次」をクリックします。「属性のフィルタ処理」ページが表示されます。デフォルトで選択されている内容を変更せずにそのままにします。
「アダプタ構成ウィザード」 - 「属性のフィルタ処理」ページ
「次」をクリックします。「詳細オプション」ページが表示されます。
「次」をクリックします。
「終了」をクリックします。選択したインタフェースに対応するWSDLファイルが生成されます。このWSDLファイルをパートナ・リンクに使用できます。
パートナ・リンク構成の完了
「適用」をクリックし、「OK」をクリックします。必要なWSDL設定を使用してパートナ・リンクが作成されます。
2番目のパートナ・リンクを追加する手順は、次のとおりです。
「コンポーネント・パレット」で「BPELサービス」をクリックします。
「Oracle Applications」を「BPELサービス」リストからプロセス・ダイアグラムの右側の「パートナ・リンク」スイムレーンの最初のパートナ・リンクの後ろにドラッグ・アンド・ドロップします。「アダプタ構成ウィザード」の「ようこそ」ページが表示されます。「次」をクリックします。
「サービス名」フィールドにサービス名を入力します。例: ImportOrderCP。
「次」をクリックします。「サービス接続」ダイアログが表示されます。
データベース・サービス接続の指定
データベース接続については次のいずれかのオプションを実行できます。
注意: Oracle Applicationsを実行しているデータベースに接続する必要があります。
新しいデータベース接続を作成するには、「新規データベース接続を作成します」アイコンをクリックします。
新しいデータベース接続を定義する方法は、「新規データベース接続の作成」を参照してください。
以前に構成した既存のデータベース接続は、「接続」ドロップダウン・リストから選択できます。
「サービス接続」ページが開いて、選択した接続情報が表示されます。データベース接続に対応するJNDI(Java Naming and Directory Interface)名が、「データベース・サーバーのJNDI名」フィールドに自動的に表示されます。JNDI名を指定することもできます。
注意: JNDI名を指定する場合、データベースにアクセスするには、Oracle Applicationsアダプタのデプロイメント・ディスクリプタにより、このJNDI名をアダプタで必要な構成プロパティに関連付ける必要があります。
JNDI名は、サービスがBPELサーバーにデプロイされるときに使用される接続のプレースホルダとなります。これによって、開発用とその後の本番用とで異なるデータベースを使用できます。
注意: JNDIの概念の詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
新規のサービス接続の作成を完了した後、Oracle Applicationsで使用可能なリストを参照してコンカレント・プログラムを追加できます。
「次」をクリックします。
Oracle E-Business Suiteリリース12の場合
Oracle E-Business Suiteリリース12に接続している場合は、IREPファイルがありませんというダイアログが表示されます。これは、ワークスペース内でOracle Applicationsに接続中のデータベースに対応するOracle Integration Repositoryデータファイルが見つからないことを示します。データファイルがないと、Integration Repositoryツリーの参照や検索がかなり低速になります。データファイルを抽出し、Integration Repositoryデータファイルのローカル・コピーを作成するように選択できます。正常に作成されたローカル・コピーは、次回にアダプタにより自動的に使用され、ローカルIntegration Repositoryからデータが取得されます。
次のいずれかのオプションを選択できます。
Integration Repositoryデータファイルを抽出するには、「はい」をクリックします。
Integration Repositoryデータファイルの抽出
システムによりIntegration Repositoryデータファイルのローカル・コピーが正常に作成されると、データベースへの次回接続時には、「操作」ダイアログに「IRepデータ・ファイル」フィールドが表示されます。これは、ファイル名の一部に作成日時を含んだローカル・コピーが存在することを示します。
ローカルIntegration Repositoryデータファイルの使用
接続中の本番データベースからIntegration Repositoryデータファイルを問い合せてIntegration Repositoryツリーを表示するには、「いいえ」をクリックします。
注意: アダプタで次回はワークスペース内のローカル・コピーからデータを問い合せるように、Integration Repositoryデータファイルのローカル・コピーを作成することをお薦めします。これにより、パフォーマンスが向上します。
「操作」ページで「次へ」をクリックして、「Oracle Applicationsモジュール・ブラウザ」を開きます。
リリース11.5.10より前のOracle E-Business Suiteの場合
リリース11.5.10より前のOracle Applicationsインスタンスに接続している場合は、「アダプタ構成ウィザード」でインタフェース・タイプを選択する必要があります。「表/ビュー/API/コンカレント・プログラム」を選択して次に進んでください。
「アプリケーション・インタフェース」ダイアログで、「オブジェクト取得」をクリックして「Oracle Applicationsモジュール・ブラウザ」を開きます。
「Oracle Applicationsモジュール・ブラウザ」は、Oracle Integration Repositoryからのインタフェース・データを、Oracle Applicationアダプタでサポートされるその他のインタフェースに関する情報と組み合せて、ツリー階層を作成します。
Oracle Applicationsモジュール・ブラウザからのコンカレント・プログラムの指定
「Order Management Suite (OM_PF)」→「Order Management (ONT)」→「受注 (ONT_SALES_ORDER)」→「OpenInterfaces」→「Order Management受注オープン・インタフェース」→「ConcurrentPrograms」にナビゲートして、コンカレント・プログラム「OEOIMP (OEOIMP)」を選択します。
「OK」をクリックします。「アプリケーション・インタフェース」ページが表示されます。
「アダプタ構成ウィザード」 - 「アプリケーション・インタフェース」ページ
「次へ」をクリックし、「終了」をクリックしてAdapter for Oracle Applicationsの構成プロセスを完了します。
XMLスキーマに対応するWSDLファイルが生成されます。このWSDLファイルをパートナ・リンクに使用できます。
パートナ・リンクの作成
「適用」をクリックし、「OK」をクリックします。必要なWSDL設定を使用してパートナ・リンクが作成されます。
入力ファイルからペイロードを同期読取りしてオーダー詳細とコンカレント・プログラムの詳細を取得することによって、BPELプロセスを構成するには、この手順を使用します。
次の2つのパートナ・リンクを構成します。
同期Read操作を使用して入力ファイルからオーダー詳細を取得します。
同期Read操作を使用して入力ファイルからコンカレント・プログラムの詳細を取得します。
最初のファイル・アダプタ用パートナ・リンクを追加して、オーダー詳細を読み取る手順は、次のとおりです。
JDeveloper BPEL Designerの「コンポーネント・パレット」で、「BPELサービス」をクリックします。
「ファイル・アダプタ」を「BPELサービス」リストから、右側の「パートナ・リンク」スイムレーンの最初のパートナ・リンクInsertOrderの前にドラッグ・アンド・ドロップします。「アダプタ構成ウィザード」の「ようこそ」ページが表示されます。
「次」をクリックします。
「サービス名」ダイアログで、ファイル・アダプタ・サービスの名前を入力します(getOrderDetailsなど)。
「次」をクリックします。「アダプタ・インタフェース」ページが表示されます。
アダプタ・インタフェースの指定
「操作およびスキーマから定義(後で指定)」ラジオ・ボタンを選択し、「次へ」をクリックします。
「操作」ページで、操作タイプを指定します。たとえば、「同期Read File」ラジオ・ボタンを選択します。この操作タイプは、「操作名」フィールドに自動的に移入されます。
操作の指定
「次へ」をクリックして、「ファイル・ディレクトリ」ページにアクセスします。
「論理名」ラジオ・ボタンを選択して、受信ファイルのディレクトリ(inputDirなど)を指定します。
「正常な取得後にファイルを削除」チェック・ボックスが選択されていないことを確認します。
入力ファイルの構成
「次へ」をクリックして、「ファイル名」ページを開きます。
同期Read File操作のファイル名を入力します。たとえば、order_data.xmlと入力します。「次へ」をクリックします。「メッセージ」ページが表示されます。
「URL」フィールドの横の「スキーマ・ファイルを参照」アイコンを選択して、「タイプ・チューザ」を開きます。
「タイプ・エクスプローラ」をクリックして、「プロジェクトのスキーマ・ファイル」→「InsertOrder_table.xsd」→「OeHeadersIfaceAllCollection」を選択します。「OK」をクリックします。
選択したスキーマ情報は、「URL」フィールドと「スキーマ要素」フィールドに自動的に移入されます。
メッセージ・スキーマの指定
「次へ」をクリックし、「終了」をクリックします。パートナ・リンクに対応するWSDLファイルが生成されます。メインの「パートナ・リンクの作成」ダイアログ・ボックスが表示され、新規WSDLファイルgetOrderDetails.wsdlが指定されています。
パートナ・リンク構成の完了
「適用」をクリックし、「OK」をクリックして構成を完了し、ファイル・アダプタ・サービスに必須のWSDL設定を持つパートナ・リンクを作成します。
BPELプロセス・ダイアグラムにgetOrderDetailsパートナ・リンクが表示されます。
2番目のファイル・アダプタ用パートナ・リンクを追加して、コンカレント・プログラムの詳細を読み取る手順は、次のとおりです。
JDeveloper BPEL Designerの「コンポーネント・パレット」で、「BPELサービス」をクリックします。
「ファイル・アダプタ」を「BPELサービス」リストから、右側の「パートナ・リンク」スイムレーンの最初のファイル・アダプタ用パートナ・リンクgetOrderDetailsの後ろにドラッグ・アンド・ドロップします。「アダプタ構成ウィザード」の「ようこそ」ページが表示されます。
「次」をクリックします。
「サービス名」ページで、ファイル・アダプタ・サービスの名前を入力します(getCPDetailsなど)。
「次」をクリックします。「アダプタ・インタフェース」ページが表示されます。
アダプタ・インタフェースの指定
「操作およびスキーマから定義(後で指定)」ラジオ・ボタンを選択し、「次へ」をクリックします。
「操作」ページで、操作タイプを指定します。たとえば、「同期Read File」ラジオ・ボタンを選択します。この操作タイプは、「操作名」フィールドに自動的に移入されます。
操作の指定
「次へ」をクリックして、「ファイル・ディレクトリ」ページにアクセスします。
「論理名」ラジオ・ボタンを選択して、受信ファイルのディレクトリ(inputDirなど)を指定します。
「正常な取得後にファイルを削除」チェック・ボックスが選択されていないことを確認します。
入力ファイルの構成
「次へ」をクリックして、「ファイル名」ページを開きます。
同期Read File操作のファイル名を入力します。たとえば、cp_data.xmlと入力します。「次へ」をクリックして、「メッセージ」ページを開きます。
「URL」フィールドの横の「スキーマ・ファイルを参照」アイコンを選択して、「タイプ・チューザ」を開きます。
スキーマのURLと要素の選択
「タイプ・エクスプローラ」をクリックして、「プロジェクトのスキーマ・ファイル」→「APPS_XX_BPEL_FND_REQUEST_WRAPPER_SUBMIT_REQUEST.xsd」→「InputParameters」を選択します。「OK」をクリックします。
選択したスキーマ情報は、「URL」フィールドと「スキーマ要素」フィールドに自動的に移入されます。
メッセージ・スキーマの指定
「次へ」をクリックし、「終了」をクリックします。パートナ・リンクに対応するWSDLファイルが生成されます。メインの「パートナ・リンクの作成」ダイアログ・ボックスが表示され、新規WSDLファイルgetCPDetails.wsdlが指定されています。
パートナ・リンク構成の完了
「適用」をクリックし、「OK」をクリックして構成を完了し、ファイル・アダプタ・サービスに必須のWSDL設定を持つパートナ・リンクを作成します。
BPELプロセス・ダイアグラムにgetCPDetailsパートナ・リンクが表示されます。
パートナ・リンクを追加および構成した後、次の4つのinvokeアクティビティを構成する必要があります。
同期Read操作を使用してgetOrderDetailsパートナ・リンクを起動することによって、オーダー詳細を取得し、入力ファイルからオーダーを読み取ります。
同期Read操作を使用してgetCPDetailsパートナ・リンクを起動することにより、コンカレント・プログラムの詳細を取得して、入力ファイルからコンカレント・プログラム情報を読み取ります。
InsertOrderパートナ・リンクを起動することにより、オーダー・データをオープン・インタフェース表に挿入します。
ImportOrderCPコンカレント・プログラムのパートナ・リンクを起動することにより、オーダー・データをオープン・インタフェース表からOracle Applicationsにインポートします。
パートナ・リンクに対する最初のinvokeアクティビティを追加して、オーダー詳細を取得する手順は、次のとおりです。
JDeveloper BPEL Designerの「コンポーネント・パレット」で、「BPELアクティビティとコンポーネント」を選択します。最初の「Invoke」アクティビティを、プロセス・ダイアグラムの中央スイムレーンの「receiveInput」アクティビティと「callbackClient」アクティビティの間にドラッグ・アンド・ドロップします。
invokeアクティビティの追加
invokeアクティビティをgetOrderDetailsサービスにリンクします。「Invokeの編集」ダイアログが表示されます。
invokeアクティビティの名前を入力し、「入力変数」フィールドの横にある「作成」アイコンをクリックして、新規変数を作成します。「変数の作成」ダイアログ・ボックスが表示されます。
「グローバル変数」を選択し、変数の名前を入力します。デフォルト名を受け入れることもできます。「OK」をクリックします。
「出力変数」フィールドの横にある「作成」アイコンをクリックして、新しい変数を作成します。「変数の作成」ダイアログ・ボックスが表示されます。
「グローバル変数」を選択し、変数の名前を入力します。デフォルト名を受け入れることもできます。「OK」をクリックして、「Invokeの編集」ダイアログ・ボックスに戻ります。
「適用」をクリックして、「OK」をクリックし、invokeアクティビティの構成を完了します。
プロセス・ダイアグラムにinvokeアクティビティが表示されます。
パートナ・リンクに対する2番目のinvokeアクティビティを追加して、コンカレント・プログラムの詳細を取得する手順は、次のとおりです。
JDeveloper BPEL Designerの「コンポーネント・パレット」で、「BPELアクティビティとコンポーネント」を選択します。2番目の「Invoke」アクティビティを、プロセス・ダイアグラムの中央スイムレーンの最初の「Invoke」アクティビティの直後にドラッグ・アンド・ドロップします。
invokeアクティビティをgetCPDetailsサービスにリンクします。「Invokeの編集」ダイアログが表示されます。
最初のinvokeアクティビティの手順で説明した手順3から6を繰り返します。
入力変数と出力変数は、「Invokeの編集」ダイアログ・ボックスで移入します。
パートナ・リンクに対する3番目のinvokeアクティビティを追加して、オープン・インタフェース表にオーダー・データを挿入する手順は、次のとおりです。
JDeveloper BPEL Designerの「コンポーネント・パレット」で、「BPELアクティビティとコンポーネント」を選択します。3番目の「Invoke」アクティビティを、プロセス・ダイアグラムの中央スイムレーンの2番目の「invoke」アクティビティと「callbackClient」アクティビティの間にドラッグ・アンド・ドロップします。
invokeアクティビティをInsertOrderサービスにリンクします。「Invokeの編集」ダイアログ・ボックスが表示されます。
最初のinvokeアクティビティの手順で説明した手順3から4を繰り返します。「Invokeの編集」ダイアログ・ボックスの「OK」をクリックして、2番目のinvokeアクティビティの構成を終了します。
パートナ・リンクに対する4番目のinvokeアクティビティを追加して、オーダー情報をOracle Applicationsにインポートする手順は、次のとおりです。
JDeveloper BPEL Designerの「コンポーネント・パレット」で、「BPELアクティビティとコンポーネント」を選択します。4番目の「Invoke」アクティビティを、プロセス・ダイアグラムの中央スイムレーンの3番目の「invoke」アクティビティと「callbackClient」アクティビティの間にドラッグ・アンド・ドロップします。
invokeアクティビティをImportOrderCPサービスにリンクします。「Invokeの編集」ダイアログ・ボックスが表示されます。
最初のinvokeアクティビティの手順で説明した手順3から6を繰り返します。
入力変数と出力変数は、「Invokeの編集」ダイアログ・ボックスで移入します。
BPELプロセスを完了するために必要なアプリケーション・コンテキストに渡す必要があるヘッダー・メッセージ・プロパティを設定するには、次の手順を使用します。
「Invokeの編集」ダイアログ・ボックスの「プロパティ」タブを選択します。
下にスクロールして、リストから「jca.apps.Username」プロパティを見つけて関連付けられている値フィールドをダブルクリックし、「アダプタ・プロパティ値」アイコンを有効化します。
ヘッダー・メッセージ・プロパティの設定
アイコンをクリックして、選択した「jca.apps.Username」プロパティの「アダプタ・プロパティ値」ダイアログを開きます。
ヘッダー・メッセージのプロパティ値の入力
「式」ラジオ・ボタンを選択し、プロパティ値として「'OPERATIONS'」を入力します。
「OK」をクリックします。
手順2から手順4を繰り返して、次のプロパティを割り当てます。
jca.apps.Responsibility: 受注管理スーパーユーザー, Visionオペレーション (USA)
jca.apps.ORG_ID: 204
「適用」をクリックして、「OK」をクリックし、invokeアクティビティを完了します。
BPELプロセス・シナリオに基づいて、次の2つのassignアクティビティを構成する必要があります。
ファイル・アダプタの同期Read(getOrderDetails)サービスの出力をオープン・インタフェースInsertOrderサービスの入力として渡します。
コンカレント・プログラム(ImportOrderCP)サービスのペイロードを設定します。
最初のassignアクティビティを追加する手順は、次のとおりです。
JDeveloper BPEL Designerの「コンポーネント・パレット」で、「BPELアクティビティとコンポーネント」を選択します。
最初の「Assign」アクティビティを、プロセス・ダイアグラムの中央スイムレーンの前に作成した1番目と2番目の「Invoke」アクティビティの間にドラッグ・アンド・ドロップします。
「Assign」アクティビティをダブルクリックして、「Assignの編集」ダイアログにアクセスします。
「一般」タブをクリックして、assignアクティビティの名前を入力します。例: SetOrderDetails。
「コピー操作」タブを選択し、「プラス」記号アイコンをクリックして、メニューから「コピー操作」を選択します。「コピー操作の作成」ウィンドウが表示されます。
コピー操作アクションの指定
次のパラメータ情報を入力します。
「From」ナビゲーション・ツリーで、「変数」タイプを選択し、「変数」→「プロセス」→「変数」→「Invoke_SynchRead_OutputVariable」にナビゲートして、「本体」を選択します。
「To」ナビゲーション・ツリーで、「変数」タイプを選択し、「変数」→「プロセス」→「変数」→「Invoke_insert_InputVariable」にナビゲートして、「OeHeadersIfaceAllCollection」を選択します。
「OK」をクリックします。「Assignの編集」ダイアログ・ボックスが表示されます。
「適用」をクリックして、「OK」をクリックし、assignアクティビティの構成を完了します。
2番目のassignアクティビティを追加する手順は、次のとおりです。
JDeveloper BPEL Designerの「コンポーネント・パレット」で、「BPELアクティビティとコンポーネント」を選択します。
2番目の「Assign」アクティビティを、プロセス・ダイアグラムの中央スイムレーンの前に作成した3番目と4番目の「Invoke」アクティビティの間にドラッグ・アンド・ドロップします。
「Assign」アクティビティをダブルクリックして、「Assignの編集」ダイアログにアクセスします。
「一般」タブをクリックして、assignアクティビティの名前を入力します。例: SetCPDetails。
「コピー操作」タブを選択し、「プラス」記号アイコンをクリックして、メニューから「コピー操作」を選択します。「コピー操作の作成」ウィンドウが表示されます。
次のパラメータ情報を入力します。
「From」ナビゲーション・ツリーで、「変数」タイプを選択し、「変数」→「プロセス」→「変数」→「Invoke_SynchRead_OutputVariable_1」にナビゲートして、「本体」を選択します。
「To」ナビゲーション・ツリーで、「変数」タイプを選択し、「変数」→「プロセス」→「変数」→「Invoke_ImportOrderCP_InputVariable」にナビゲートして、「InputParameters」を選択します。
「OK」をクリックします。「Assignの編集」ダイアログ・ボックスが表示されます。
「適用」をクリックして、「OK」をクリックし、assignアクティビティの構成を完了します。
完成したコンカレント・プログラムBPELプロセス・プロジェクト
「composite.xml」をクリックして、Oracle JDeveloperのコンポジット・ダイアグラムを表示します。
注意: 「composite.xml」の「ソース」タブをクリックして、参照getOrderDetailsおよびgetCPDetailsの物理ディレクトリinputDirの値を入力します(/usr/tmpなど)。
<property name="inputDir" type="xs:string" many="false" override="may">/usr/tmp</property>
プロパティの物理ディレクトリの指定
BPELプロセスの設計後、次のステップはそれをデプロイし、実行し、監視することです。
BPELプロセスは実行前にデプロイする必要があります。BPELプロセスはコンパイルされてから、接続を確立したアプリケーション・サーバー(Oracle WebLogic Server)にデプロイされます。
前提条件
Oracle JDeveloperを使用してBPELプロセスをデプロイする前に、次のことを確認する必要があります。
設計時環境とアプリケーション・サーバー間の接続を確立している必要があります。
詳細は、「Oracle WebLogic Serverのデータ・ソースの構成」と「アプリケーション・サーバーの接続の作成」を参照してください。
Oracle WebLogic Serverサーバーを起動しておきます。
BPELプロセスをデプロイする前に、接続を確立したOracle WebLogic Serverを起動する必要があります。
WebLogic Serverのローカル・インスタンスを使用する場合は、Oracle JDeveloperから「実行」→「サーバー・インスタンスの起動」を選択して、WebLogic Serverを起動します。
WebLogic Admin Serverの「DefaultServer」インスタンスが正常に起動されると、「実行中: DefaultServer」および「メッセージ」ログに<サーバーが実行モードで起動されました>および「DefaultServerが起動されました」というメッセージが表示されます。
BPELプロセスをデプロイする手順は、次のとおりです。
「アプリケーション・ナビゲータ」でBPELプロジェクトを選択します。
プロジェクト名を右クリックし、表示されるメニューから「デプロイ」→[プロジェクト名]→[serverConnection]を選択します。
BPELプロセスのデプロイ
BPELプロセスがコンパイルされ、デプロイされます。「メッセージ」ウィンドウで進行状況を確認できます。
メッセージ・ログ
デプロイ・ログ
BPELプロセスがデプロイされると、Oracle Enterprise Manager Fusion Middleware Controlコンソールからプロセスを管理および監視できます。また、プロセスを手動で開始して、プロセスと統合インタフェースをテストすることもできます。
BPELプロセスをテストする手順は、次のとおりです。
Oracle Enterprise Manager Fusion Middleware Controlコンソールにナビゲートします(http://<サーバー名>:<ポート番号>/em)。デプロイしたコンポジットが「アプリケーション・ナビゲーション」ツリーに表示されます。
ユーザー名(weblogicなど)とパスワードを入力して、「ログイン」をクリックし、ファームにログインします。
複数のターゲットOracle Enterprise Manager Fusion Middleware Controlコンソール・ファームがある場合は、適切なターゲット・インスタンス・ファームを選択する必要がある場合があります。
ファームのベース・ドメインで、「SOA」→「soa-infra」を展開して、SOAインフラストラクチャ・ホーム・ページとメニューをナビゲートし、その管理対象サーバーのSOAインフラストラクチャで実行されているデプロイ済のSOAコンポジット・アプリケーションにアクセスします。
注意: 「ファーム」メニューは常にナビゲータの最上部に表示されます。ナビゲータで「SOA」フォルダを展開し、その下に表示されるリンクをクリックすると、ページの最上部で「SOAインフラストラクチャ」メニューを使用できるようになります。
SOAインフラストラクチャから、開始するSOAコンポジット・アプリケーション(「OrderImportConcurrentProgram」など)をクリックします。
デプロイ済SOAコンポジットの表示
ページの最上部で「テスト」をクリックします。
インスタンスを起動するための「Webサービスのテスト」ページが表示されます。「入力引数」セクションで使用するXMLペイロード・データを指定できます。
プロセスに必要な入力文字列を入力して、「Webサービスのテスト」をクリックし、プロセスを起動します。
Webサービスのテスト
完了すると、「レスポンス」タブにテスト結果が表示されます。
BPELプロセス名をクリックして、「インスタンス」タブを選択します。
最後にページのデータがリフレッシュされてからの各インスタンスのSOAコンポジット・アプリケーション・インスタンスID、名前、対話ID、および最新の状態が表示されます。
「インスタンスID」列で特定のインスタンスIDをクリックすると、様々なサービス・コンポーネントとバインディング・コンポーネントのメッセージ・フローが表示されます。「フローのトレース」ページが表示されます。
「トレース」セクションに、一連のメッセージ・フロー(サービス・バインディング・コンポーネント(orderimportconcurrentprogram_client_ep)、BPELコンポーネント(OrderImportConcurrentProgram)および参照バインディング・コンポーネント(getOrderDetails、getCPDetails、InsertOrderおよびImportOrderCP))が表示されます。関連するすべてのコンポーネントが、メッセージを正常に受信および処理しました。
「インスタンス」タブをクリックし、最新のインスタンスIDをクリックして、プロセス・フローのトレースを表示します。
「フローのトレース」ページが表示されます。
「フローのトレース」ページ
テスト中にエラーが発生した場合は、「フォルト」セクションに表示されます。
BPELサービス・コンポーネント・インスタンスのリンク(OrderImportConcurrentProgramなど)をクリックすると、「インスタンス」ページが表示され、「監査証跡」タブで、BPELアクティビティの実行詳細を表示できます。
BPELプロセス・フロー・ダイアグラムを確認するには、フロー・タブをクリックします。アクティビティの詳細およびプロセス全体のペイロードのフローを表示するには、プロセス・ダイアグラムのアクティビティをクリックします。
BPELプロセスを検証するには、Oracle Applicationsフォームにログオンして、コンカレント・プログラムの実行のステータスをチェックできます。BPELプロセスが正常に実行されると、購買オーダーもOracle Applicationsに作成されます。
Oracle Applicationsでレコードを検証する手順は、次のとおりです。
「受注管理スーパーユーザー, Visionオペレーション (USA)」職責でOracle Applicationsにログオンします。
「受注, 返品」→「受注」を選択して、「受注」フォームを開きます。
[F11]キーを押して、オーダーを検索します。「顧客発注」フィールドに、xmlファイルに存在するオーダーIDを入力します。たとえば、order_id_01と入力し、[CTRL]+[F11]キーを押して、問合せを実行します。
新しく作成されたオーダーが、オーダーID order_id_01として表示されます。
「明細項目」タブを選択して、オーダーの数量と品目タイプがxmlファイルに存在する値と同じであるかどうかを確認します。
または、次のSQL文を使用して、データベースに問合せることにより、結果を検証することもできます。
Select orig_sys_document_ref from oe_order_headers_all where orig_sys_document_ref = ‘order_id_01';
コンカレント・プログラムの統合で問題が発生した場合は、次のトラブルシューティング手順を実行します。
複雑なデータ型(ブールなど)を使用している場合は、コンカレント・プログラムのターゲット・インスタンスにPL/SQLラッパーが適用されていることを確認します。
「オープン・インタフェース・トラッキング」フォームでトランザクション・データを確認します。
リクエストIDを使用して、コンカレント・プログラムのステータスをチェックします。
統合の問題が解消されない場合は、デバッグを有効化できます。
BPEL Process Managerを使用してデバッグを有効化できます。
デバッグを有効化する手順は、次のとおりです。
BPEL Process Managerドメインにログインします。
yourdomain.collaxa.cube.wsを選択します。
「デバッグ」を選択します。
デバッグ情報がドメインのログ・ファイルに出力されます。BPEL Process Managerでログ・ファイルを調べるには、「ホーム」→「BPELドメイン」→「yourdomain」→「Logs」にナビゲートします。ログ・ファイルはyourdomain.logです。
Copyright © 2005, 2009, Oracle and/or its affiliates.All rights reserved.