ヘッダーをスキップ
Oracle BPEL Process Manager Order Bookingチュートリアル
10g (10.1.3.1.0)
B31877-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

9 ファイル・アダプタの書込み機能の使用

この章では、ファイル・アダプタに書込み機能を追加して、注文フォームに入力されたデータを受け取る方法について説明します。

この章の内容は次のとおりです。

9.1 概要

チュートリアルのこのフェーズでは、第8章「ファイル・アダプタの読取り機能の使用」で設計したプロセスに処理を追加します。このフェーズを実行する前に、前のフェーズが正常に完了したことを確認してください。このフェーズでは、ファイル・アダプタに書込み機能を追加し、第7章「変換ロジックの追加」で設計した変換ロジックを使用します。次の主要タスクを実行します。

9.2 注文確認の書込みを可能にするためのファイル・アダプタの書込み機能の設計

この項では次のタスクを実行します。

9.2.1 ファイル・アダプタのファイル書込み機能を使用するパートナ・リンクの作成


概要:

ここでは、ファイル・アダプタを使用するアウトバウンドのパートナ・リンクを作成します。ファイルを特定のディレクトリに書き込むようにファイル・アダプタを構成します。このフェーズでは、POAcknowledgeプロジェクトから作業を開始します。

  1. Designerウィンドウの「アプリケーション・ナビゲータ」セクションで「POAcknowledge」プロジェクトをクリックします。

  2. 「POAcknowledge.bpel」をダブルクリックします。

  3. 「コンポーネント・パレット」セクションから「Services」を選択します。

  4. 「コンポーネント・パレット」セクションからDesignerのウィンドウの右側にPartnerLinkアクティビティをドラッグ・アンド・ドロップします。

  5. 「名前」フィールドは空のままにしておきます。 名前は、アダプタ構成ウィザードの実行時に手順9で入力したサービス名をもとに自動的に作成されます。

  6. 上にある3番目のアイコン(「アダプタ・サービスの定義」アイコン)をクリックします。これにより、アダプタ構成ウィザードが起動します。

    adapter_service.gifの説明
    図adapter_service.gifの説明

  7. ようこそウィンドウで「次へ」をクリックします。

  8. アダプタ・タイプ・ウィンドウで「ファイル・アダプタ」を選択し、「次へ」をクリックします。

  9. サービス名ウィンドウの「サービス名」フィールドにFileWriteと入力し、「次へ」をクリックします。

  10. 操作ウィンドウで、「操作タイプ」「Write File」を選択し、「次へ」をクリックします。「操作名」フィールドには、自動的にWriteと入力されます。

  11. 「ディレクトリは次のように指定します」では「物理パス」を選択します。

  12. 「発信ファイルのディレクトリ(物理パス)」フィールドの隣の「参照」をクリックします。

  13. 作成するファイルを保管するディレクトリ(Windowsオペレーティング・システムの場合はdrive_letter:\temp、UNIXオペレーティング・システムの場合は/temp)を選択します。このディレクトリが存在しない場合は、適切な権限で新規に作成する必要があります。

  14. 「選択」をクリックします。

  15. ファイル・ネーミング規則フィールドにpo_%と入力します。

    ネーミング規則のリストが自動的に表示されます。

  16. 表示されるリストからyyMMddHHmmssを選択します。

    終わりの%記号は自動的に付加されます。

  17. 選択の最後に.xmlを入力します。

    これで、po_%yyMMddHHmmss%.xmlという名前がファイル・ネーミング規則フィールドに表示されています。

  18. 「メッセージ数の到達」「経過時間の超過」および「ファイル・サイズの超過」チェック・ボックスの選択を解除し、「次へ」をクリックします。

  19. メッセージ・ウィンドウの「スキーマの場所」フィールドの隣の「参照」をクリックします。

  20. タイプの選択ウィンドウで、「プロジェクトのスキーマ・ファイル」「POAcknowledge.xsd」「POAcknowledge」の順に選択します。

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

    「スキーマの場所」フィールドおよび「スキーマ要素」フィールドに、それぞれの値(POAcknowledge.xsdPOAcknowledge)が自動的に入力されます。

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

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

    パートナ・リンク・ウィンドウに戻ります。他のフィールドには、すべて値が自動的に入力されます。表示されるウィンドウは、次のような形式になります。

    フィールド
    名前 FileWrite
    WSDLファイル file:/c:/oraJDev/jdev/mywork/OrderBookapplication/POAcknowledge/bpel/FileWrite.wsdl

    注意: このドライブ文字を含んだディレクトリ・パスは、Windowsオペレーティング・システムの場合の例です。このチュートリアルをUNIXオペレーティング・システム上で実行している場合、ディレクトリ・パスは異なります。 また、oraJDevは、この例でのOracle JDeveloperのホーム・ディレクトリを表します。

    パートナ・リンク・タイプ Write_plt
    パートナ・ロール Write_role
    マイ・ロール 何も指定しません。

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

  25. 「ファイル」メイン・メニューから「保存」を選択します。

    FileWrite.wsdl「POAcknowledge」「インテグレーション・コンテンツ」「FileWrite」の下に表示されます。このファイルには、アダプタ構成ウィザードで指定したパラメータが含まれています。

9.2.2 Invokeアクティビティの作成


概要:

このInvokeアクティビティでは、注文確認データの結果をファイルに書き込みます。

  1. 「コンポーネント・パレット」セクションから「Process Activities」を選択します。

  2. 「コンポーネント・パレット」セクションから「transformPO」Transformアクティビティの下にInvokeアクティビティをドラッグ・アンド・ドロップします。

  3. Invokeアイコンをダブルクリックして、Invokeウィンドウを表示します。

  4. 次の詳細を入力します。

    フィールド
    名前 invokeFileOut
    パートナ・リンク FileWrite

    「操作」フィールドには、値(Write)が自動的に入力されます。

  5. 「入力変数」フィールドの右側にある最初のアイコンをクリックします。これは変数自動作成アイコンです。

  6. 表示される変数の作成ウィンドウで「OK」をクリックします。

    invokeFileOut_write_InputVariableという変数が、「入力変数」フィールドに自動作成されます。この変数は、FileWritePOAcknowledge_msgというメッセージ・タイプに自動的に割り当てられます。

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

  8. 「ファイル」メイン・メニューから「保存」を選択します。

9.2.3 Assignアクティビティの作成

  1. 「コンポーネント・パレット」セクションから「invokeFileOut」Invokeアクティビティの上にAssignアクティビティをドラッグ・アンド・ドロップします。

  2. assignアイコンをダブルクリックして、割当てウィンドウを表示します。

  3. 「一般」タブをクリックします。

  4. 「名前」フィールドにassignFileWriteInと入力します。

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

  6. 「コピー操作」タブをクリックします。

  7. 「作成」をクリックし「コピー操作」を選択して、コピー操作の作成ウィンドウを表示します。

  8. 次の詳細を入力します。

    フィールド
    送信元
    • タイプ
    変数
    • 変数
    「変数」「outputVariable」「ペイロード」の順に開いて選択します。
    宛先
    • タイプ
    変数
    • 変数
    「変数」「invokeFileOut_Write_InputVariable」「POAcknowledge」の順に開いて選択します。

  9. 「OK」をクリックして、コピー操作の作成ウィンドウおよび割当てウィンドウを閉じます。

  10. 「ファイル」メイン・メニューから「保存」を選択します。

9.2.4 POAcknowledgeサービスのデプロイ

  1. 「アプリケーション・ナビゲータ」セクションに移動します。

  2. 「POAcknowledge」を右クリックします。

  3. 「デプロイ」my_integration_server_connection「defaultドメインにデプロイ」の順に選択します。

    これでBPELプロセスがコンパイルされます。ウィンドウ下部にエラーが表示されていないかどうか確認します。エラーが発生していなければ、デプロイは成功しています。 デプロイに失敗した場合は、手順4を参照してください。

9.2.5 POAcknowledgeプロセスの実行および確認

  1. 「スタート」「すべてのプログラム」「Oracle - Oracle_Home「Oracle BPEL Process Manager」「BPEL Control」の順に選択し、Oracle BPEL Controlにログインします(すでに開いている場合はページをリフレッシュします)。

  2. Oracle BPEL Controlにログインするために次の情報を入力して「ログイン」をクリックします。

    フィールド
    ユーザー名 oc4jadmin
    パスワード password

    passwordは、インストール時に入力した値です。

    Oracle BPEL Controlの「ダッシュボード」タブが表示されます。作業中のBPELプロセスであるPOAcknowledgeが、「デプロイ済のBPELプロセス」リスト内に表示されます。

  3. POAcknowledgeをクリックします。

  4. 「HTMLフォーム」のすべてのフィールドに詳細を入力し、「XMLメッセージの転送」をクリックします。

  5. Oracle BPEL Controlをリフレッシュします。

  6. 「インスタンス」タブをクリックします。

  7. POAcknowledgeインスタンスをクリックします。

  8. 「監査」リンクをクリックして、変換ロジックを確認します。

  9. 手順13で選択したディレクトリ(Windowsオペレーティング・システムの場合はdrive_letter:\temp、UNIXオペレーティング・システムの場合は/temp)に書き込まれた出力ファイルを確認します。

9.2.6 パートナ・リンクの作成


概要:

ここでは、元のOrderBookingプロセスを拡張して、新規作成したPOAcknowledgeサービスをコールし、注文確認をファイルに書き込みます。これらの手順は、OrderBookingプロセスで実行します。

  1. 「アプリケーション・ナビゲータ」セクションのOrderBookingプロセスを開きます。

  2. 「OrderBooking.bpel」をダブルクリックします。

  3. 「コンポーネント・パレット」セクションから「Services」を選択します。

  4. 「コンポーネント・パレット」セクションからDesignerのウィンドウの右側にPartnerLinkアクティビティをドラッグ・アンド・ドロップします。

  5. 次の値を入力して、OrderBookingプロセス用パートナ・リンクを作成します。


    注意:

    次の「WSDLファイル」フィールドでは、懐中電灯(左から2番目にある「サービス・エクスプローラ」という名前のアイコン)をクリックしてサービス・エクスプローラ・ウィンドウにアクセスすると、注文確認サービスが自動的に選択されます。

    フィールド
    名前 WritePOA

    注意: WritePOAは、「WSDLファイル」を選択した後に入力してください。 これは、名前が「WSDLファイル」フィールドの選択を基に自動的にPOAcknowledgeにデフォルト設定されるためです。

    WSDLファイル 「サービス・エクスプローラ」の懐中電灯アイコンをクリックし、BPELサービスmy_ integration_server_connection「プロセス」「デフォルト」→「POAcknowledge」の順に開いて選択することで次のURLにアクセスします。

    http://localhost:8888/orabpel/default/POAcknowledge/POAcknowledge?wsdl

    関連項目: サービス・エクスプローラ・ウィンドウでWSDLファイルを追加しようとして解析エラーが表示された場合は、「Oracle JDeveloperのWebブラウザ設定でのホスト名の設定」を参照してください。

    パートナ・リンク・タイプ POAcknowledge
    パートナ・ロール POAcknowledgeProvider
    マイ・ロール POAcknowledgeRequester

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

  7. 「ファイル」メイン・メニューから「保存」を選択します。

9.2.7 Scopeアクティビティの作成


概要:

ここでは、Scopeアクティビティを作成して、実行する論理的な手順を形成するすべてのアクティビティをグループ化します。

  1. 「コンポーネント・パレット」セクションから「Process Activities」を選択します。

  2. 「コンポーネント・パレット」セクションから「SelectSupplier」Switchアクティビティの下にScopeアクティビティをドラッグ・アンド・ドロップします。

  3. scopeアイコンをダブルクリックして、Scopeウィンドウを表示します。

  4. 「一般」タブの「名前」フィールドにWritePOAcknowledgementと入力します。

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

    このフェーズでは、このScopeアクティビティの中にInvokeReceiveおよびAssignアクティビティを作成します。

  6. +記号をクリックして、Scopeアクティビティを開きます。

  7. 「ファイル」メイン・メニューから「保存」を選択します。

9.2.8 InvokeおよびReceiveアクティビティの作成


概要:

ここでは、InvokeおよびReceiveアクティビティを作成します。Invokeアクティビティは、入力データを送信する初期操作となります。Receiveアクティビティは、外部サービスが処理された後、データを受信するコールバック・インタフェースとなります。

  1. 「コンポーネント・パレット」セクションから「WritePOAcknowledgement」Scopeアクティビティの中にInvokeアクティビティをドラッグ・アンド・ドロップします。

  2. Invokeアイコンをダブルクリックして、Invokeウィンドウを表示します。

  3. 次の詳細を入力します。

    フィールド
    名前 invokeFileWrite
    パートナ・リンク WritePOA

    「操作」フィールドには、値(initiate)が自動的に入力されます。

  4. 「入力変数」フィールドの右側にある最初のアイコンをクリックします。これは変数自動作成アイコンです。

  5. 表示される変数の作成ウィンドウで「OK」をクリックします。

    invokeFileWrite_initiate_InputVariableという変数が、「入力変数」フィールドに自動作成されます。この変数は、POAcknowledgeRequestMessageというメッセージ・タイプに自動的に割り当てられます。

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

  7. 「コンポーネント・パレット」セクションから「WritePOAcknowledgement」Scopeアクティビティの中の「invokeFileWrite」Invokeアクティビティの下にReceiveアクティビティをドラッグ・アンド・ドロップします。

  8. Receiveアイコンをダブルクリックして、Receiveウィンドウを表示します。

  9. 次の詳細を入力します。

    フィールド
    名前 receiveFileWrite
    パートナ・リンク WritePOA

    「操作」フィールドには、値(onResult)が自動的に入力されます。

  10. 「変数」フィールドの右側にある最初のアイコンをクリックします。これは変数自動作成アイコンです。

  11. 表示される変数の作成ウィンドウで「OK」をクリックします。

    receiveFileWrite_onResult_InputVariableという変数が、「変数」フィールドに自動作成されます。この変数は、POAcknowledgeResponseMessageというメッセージ・タイプに自動的に割り当てられます。

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

  13. 「ファイル」メイン・メニューから「保存」を選択します。

9.2.9 第1のAssignアクティビティの作成

  1. 「コンポーネント・パレット」セクションから「WritePOAcknowledgement」Scopeアクティビティの中の「invokeFileWrite」Invokeアクティビティの上にAssignアクティビティをドラッグ・アンド・ドロップします。

  2. assignアイコンをダブルクリックして、割当てウィンドウを表示します。

  3. 「一般」タブをクリックします。

  4. 「名前」フィールドにassignFileWriteInと入力します。

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

  6. 「コピー操作」タブをクリックします。

  7. 「作成」をクリックし「コピー操作」を選択して、コピー操作の作成ウィンドウを表示します。

  8. 次の詳細を入力します。

    フィールド
    送信元
    • タイプ
    変数
    • 変数
    「変数」「inputVariable」「ペイロード」の順に開いて選択します。
    宛先
    • タイプ
    変数
    • 変数
    「変数」「invokeFileWrite_initiate_InputVariable」「ペイロード」の順に開いて選択します。

  9. 「OK」をクリックして、コピー操作の作成ウィンドウおよび割当てウィンドウを閉じます。

  10. 「ファイル」メイン・メニューから「保存」を選択します。

9.2.10 第2のAssignアクティビティの作成

  1. 「コンポーネント・パレット」セクションから「WritePOAcknowledgement」Scopeアクティビティの中の「receiveFileWrite」Receiveアクティビティの下にAssignアクティビティをドラッグ・アンド・ドロップします。

  2. assignアイコンをダブルクリックして、割当てウィンドウを表示します。

  3. 「一般」タブをクリックします。

  4. 「名前」フィールドにassignFileWriteCommentsと入力します。

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

  6. 「コピー操作」タブをクリックします。

  7. 「作成」をクリックし「コピー操作」を選択して、コピー操作の作成ウィンドウを表示します。

  8. 次の詳細を入力します。


    注意:

    式を手動で入力するかわりに、「式」フィールドで[Ctrl]キーを押しながら[Space]バーを押して入力することもできます。表示される値のリストをスクロールし、該当する値をダブルクリックします。必要に応じて値を編集します。情報を入力すると、末尾にスラッシュが表示される場合があります。これは、追加情報の入力が求められていることを意味します。追加情報を入力するか、[Esc]キーを押して末尾のスラッシュを削除し、情報の入力を終了します。

    フィールド
    送信元
    • タイプ
    concat(bpws:getVariableData('inputVariable','payload','/ns1:PurchaseOrder/ns1:OrderInfo/ns1:OrderComments'), ' - Write POAck complete')
    宛先
    • タイプ
    変数
    • 変数
    「変数」「inputVariable」「ペイロード」「ns1:PurchaseOrder」「ns1:OrderInfo」「ns1:OrderComments」の順に開いて選択します。

  9. 「OK」をクリックして、コピー操作の作成ウィンドウおよび割当てウィンドウを閉じます。

    完了後、Designerのウィンドウには次のように表示されます。

    obph8.gifの説明
    図obph8.gifの説明

  10. -記号をクリックして、「WritePOAcknowledgement」Scopeアクティビティを閉じます。

  11. 「ファイル」メイン・メニューから「保存」を選択します。

9.2.11 Order Bookingプロセスの検証、コンパイルおよびデプロイ

  1. 「アプリケーション・ナビゲータ」セクションに移動します。

  2. 「OrderBooking」を右クリックします。

  3. 「デプロイ」my_integration_server_connection「defaultドメインにデプロイ」の順に選択します。

  4. 要求に応じてプロジェクトのバージョン番号を増やし(たとえば、1.5と入力)、「OK」をクリックします。

    これでBPELプロセスがコンパイルされます。 ウィンドウ下部のボタンをクリックしてエラーの有無を確認します。エラーが発生していなければ、デプロイは成功しています。

9.2.12 Order Bookingプロセスの実行および確認

  1. 「スタート」「すべてのプログラム」「Oracle - Oracle_Home「Oracle BPEL Process Manager」「BPEL Control」の順に選択し、Oracle BPEL Controlにログインします(すでに開いている場合はページをリフレッシュします)。

  2. Oracle BPEL Controlにログインするために次の情報を入力して「ログイン」をクリックします。

    フィールド
    ユーザー名 oc4jadmin
    パスワード password

    Oracle BPEL Controlの「ダッシュボード」タブが表示されます。作業中のBPELプロセスであるPOAcknowledgeおよびOrderBooking「デプロイ済のBPELプロセス」リスト内に表示されます。

  3. 手順4で増分したOrderBookingインスタンスのバージョンをクリックし、次のいずれかの方法で起動します。

    • http://localhost:8888/CreateOrderBookingUIで提供されているCreateOrderBookingUIアプリケーションを開き、必要事項を入力し、プロセスを開始します。

    • 「HTMLフォーム」のすべてのフィールドに詳細を入力し、「XMLメッセージの転送」をクリックします。

    • 「XMLソース」ラジオ・ボタンをクリックします。テキスト・エディタを使用して、OrderBookingPO_1.xmlファイルの内容をコピーし、表示されるフィールドに貼り付けます。「XMLメッセージの転送」をクリックします。


      注意:

      Internet Explorerからコピーして貼り付けないでください。このタスクは、テキスト・エディタを使用して実行する必要があります。

  4. 以前に選択したディレクトリ(Windowsオペレーティング・システムの場合はdrive_letter:\temp、UNIXオペレーティング・システムの場合は/temp)にOrderBookingPO_1.xmlファイルをコピーして、プロセス・インスタンスを呼び出します。この手順は、「注文プロセスの実行および確認」セクションのBatchOrderProcessingプロセスが完了している場合はオプションです。

  5. 手順11で説明したグラフィカル・ユーザー・インタフェースJSPページを使用して、SelectManufacturingの手動価格見積りタスクを完了します。

  6. Oracle BPEL Controlに戻ります。

  7. Oracle BPEL Controlをリフレッシュします。

  8. 画面上部の「インスタンス」タブをクリックします。

    インスタンスが作成されたかどうか確認します。これらはすべて「インスタンス」リストに表示されます。「最終更新日時」リストには、作成日時が表示されます。

  9. インスタンスをクリックします。

  10. ディレクトリ(Windowsオペレーティング・システムの場合はdrive_letter:\temp、UNIXオペレーティング・システムの場合は/temp)のコンテンツを確認します。po_timestamp.xmlという名前の出力ファイルが作成されます。属性を確認します(姓と名の連結など)。

9.3 まとめ

ファイル・アダプタに書込み機能を追加し、注文フォームに入力されたデータを受け取りました。この入力データは注文確認に変換され、その結果がファイルに書き込まれました。次の主要タスクを実行しました。