Trading Partner Integration のチュートリアル

     前  次    新しいウィンドウで目次を開く     
ここから内容

チュートリアル : ebXML ソリューションの構築

ebXML 言語 (Electronic Business using eXtensible Markup Language) は、企業がインターネット経由でビジネスを遂行するためのビジネス プロトコルです。WorkSpace Studio では、開始者プロセスに ebXML コントロールを、参加者プロセスに ebXML 参加者ビジネス プロセス テンプレートを使用し、トレーディング パートナ間で ebXML ビジネス メッセージを交換するビジネス プロセス システムを構築します。ebXML コントロールは、会話で ebXML メッセージの送受信を行う、事前定義のカスタマイズ可能メソッドを開始者ビジネス プロセスに提供します。ebXML 参加者ビジネス プロセス テンプレートは、ebXML 会話のパブリック参加者ビジネス プロセスを構築するための土台になります。ebXML 参加者ビジネス プロセスの構築でテンプレートは必須ではありませんが、テンプレートには、ebXML 開始者ビジネス プロセスと簡単に統合するために必要となるノードとビジネス プロセス アノテーションが含まれています。このチュートリアルの目的は、WorkSpace Studio と WebLogic Integration で ebXML トレーディング パートナ管理に使用できる、さまざまなオプションについて説明することです。

 


始める前に

ここでは、このチュートリアルを使用する前に実行する必要があるタスクについて説明します。内容は以下のとおりです。

前提条件

このチュートリアルを使用するには、以下の作業を完了している必要があります。

参考資料

ebXML ソリューションを WebLogic Integration で実装する方法について理解を深めるには、以下の資料に目を通しておくことが推奨されます。

 


チュートリアルの概要

このチュートリアルでは、最初の数例で、WorkSpace Studio ユーザ インタフェースと WebLogic Integration Administration Console ユーザ インタフェースを使用して、例で概説されている手順を実行する方法について詳しく指示します。それに続く例は、最初の数節で学習する操作方法に基づいており、手順についてそれほど詳しく説明しません。

このチュートリアルは、以下のパートで構成されています。

手順 1 : はじめに

この節では、ビジネス プロセス アプリケーションの作成方法について説明します。ここでは、チュートリアルの例で必要になるビジネス プロセス、およびその他のコンポーネントを作成します。チュートリアル ファイルの ZIP アーカイブに含まれているサンプル データとスキーマのインポート方法についても説明します。

手順 2 : 一方向 ebXML 交換による XML メッセージの送信

この例では、単純な一方向 ebXML 交換で、あるトレーディング パートナから別のトレーディング パートナに XML メッセージを送信する方法について説明します。参加者ビジネス プロセスと開始者ビジネス プロセスの作成方法、および ebXML コントロールとファイル コントロールの作成方法とコンフィグレーション方法について学習します。この節では、WorkSpace Studio テスト ブラウザを使用してビジネス プロセスのデプロイとテストを行う方法についても詳しく説明します。

手順 3 : 型付き XML によるトレーディング パートナ情報の動的な選択

この例は、前の例と似ていますが、トレーディング パートナ情報を ebXML コントロールで静的に指定するのではなく、XQuery セレクタを使用して動的に指定する方法について示します。ebXML コントロールをコンフィグレーションして、型付き XML データと特定メソッド名を使用する方法についても説明します。

手順 4 : ebXML 交換による生データ (バイナリ ファイル) の送信

この例では、ebXML を使用し、メッセージ ブローカ チャネルによって 2 つのトレーディング パートナ間でバイナリ データを送信する方法について学習します。

手順 5 : 応答のある ebXML 会話の作成

この節では、Client Response ノードを参加者ビジネス プロセスに追加し、ebXML コントロール コールバック機能を使用して応答メッセージを送信することで、要求メッセージ (注文) の受信時に応答 (請求) メッセージを返送する ebXML 会話の実装方法について説明します。

手順 6 : パブリック/プライベート パターンの実装

この例では、サブプロセスを使用して、パブリック/プライベート パターンを実装する方法について説明します。パブリック/プライベート パターンを使用すると、バックエンド統合の詳細をプライベート プロセス定義に収容することができ、パブリック プロセス定義がトレーディング パートナ対話専用になります。

手順 7 : TPM コントロールとコールバックの使用

この節では、トレーディング パートナ情報を TPM リポジトリから実行時に取得する方法について学習します。ebXML コントロールの onAck コールバックの使用方法についても学習します。

手順 8 : ディレクトリ名に基づいたパートナ ID の動的な設定

この例では、チュートリアル ファイルに組み込まれているビルド済みアプリケーションを調べ、サブディレクトリ名を読み取ってパートナ ID として使用する方法について学習します。ビジネス プロセスでは、ebXML コントロールに組み込まれている setProperties メソッドが使用されて、パートナ ID が動的に設定されます。

手順 9 : 分散設定の作成

この例では、あるトレーディング パートナが、ある WebLogic Integration インスタンスで動作し、別のトレーディング パートナが、別のインスタンスで動作する分散設定に移行する方法について概説します。これは、2 つのトレーディング パートナが、物理的に離れた 2 つのシステムで動作するプロダクション シナリオで使用する設定です。

手順 10 : 非デフォルト プロトコル設定のコンフィグレーション

この節では、WebLogic Integration Administration Console でサービスとサービス プロファイルを追加し、トレーディング パートナ通信を制御できるようにする方法について学習します。

 


手順 1 : はじめに

ebXML チュートリアルを始める前に、「チュートリアルの設定」で説明した手順を実行する必要があります。この手順をまだ完了していない場合は、先に進む前にこの手順を完了してください。

この手順では、WorkSpace Studio を使用してアプリケーションを作成し、ebXML チュートリアル ビジネス プロセスを構築します。次に、チュートリアル ファイルに付属の ZIP アーカイブに含まれているサンプル データとスキーマをインポートします (「手順 3 : チュートリアル ファイルのインストール」を参照)。このサンプル データとスキーマは、ebXML チュートリアル例の機能について説明するために使用します。最後に、このチュートリアル全体でファイルの読み書きに使用する、2 つのディレクトリをハード ドライブに作成します。

この節では、次の手順について説明します。

ビジネス プロセス アプリケーションの作成

WebLogic Integration では、WorkSpace Studio が拡張され、統合エンタープライズ アプリケーションを構築できるようになります。アプリケーションには、プロジェクトとファイルが含まれます。プロジェクトには、ビジネス プロセス、Web サービス、XML ファイルなど、複数のコンポーネントを含めることができます。この節では、ビジネス プロセス アプリケーションを作成し、後で ebXML チュートリアル プロセスとプロセス コンポーネントを構築します。

ビジネス プロセス アプリケーションを作成するには
  1. [スタートすべてのプログラムBEAWorkSpace Studio 1.1] を選択して、[BEA WorkSpace Studio] を起動します。
  2. インストール後はじめて WorkSpace Studio を起動した場合は、WorkSpace Studio とともにインストールされるサンプル サービスを含むサンプル プロジェクトが表示されます。その他の場合は、最後に開いたプロジェクトが表示されます。

  3. BEA WorkSpace Studio のメニューから、[ファイル|新規プロジェクト] をクリックします。
  4. [ウィザードを選択] ダイアログ ボックスが表示されます。

  5. [WebLogic Integration] を展開して [プロセス アプリケーション] を選択し、[次へ] をクリックします。
  6. [プロセス アプリケーション] ダイアログ ボックスが表示されます。

  7. [プロセス アプリケーション] ダイアログ ボックスで、以下のように入力します。
    1. [EAR プロジェクト名] フィールドに ebXML と入力します。
    2. [Web プロジェクト名] フィールドに ebXMLWeb と入力します。
    3. [ユーティリティ プロジェクト名] フィールドに Schemas と入力します。
    4. [WebLogic Integration システムおよびコントロール スキーマをユーティリティ プロジェクトに追加] チェック ボックスを選択します。この操作により、システム スキーマが Utility Project/schemas フォルダに追加されます。
    5. [終了] をクリックします。
  8. 表示された [関連付けられたパースペクティブを開きますか?] ダイアログ ボックスで、[はい] をクリックし、プロセス パースペクティブに切り替えます。
  9. ebXML プロセス アプリケーションが作成され、[パッケージ・エクスプローラー] ペインに表示されます (図 3-1 を参照)。

    図 3-1 ebXML アプリケーション

    このチュートリアルで使用するコンポーネントは、次のとおりです。

    ebXML - JAR ファイル、デプロイメント記述子のビルド ファイル、および自動生成されたファイルが含まれる。J2EE アプリケーションおよびそのコンポーネントは、WebLogic Server に EAR ファイルとしてデプロイされます。

    ebXMLWeb - Web アプリケーション プロジェクト フォルダ。アプリケーションには必ず、1 つ以上のプロジェクトが含まれます。プロジェクトは、WebLogic Server Web アプリケーションを表します。言い換えると、プロジェクトを作成するということは、Web アプリケーションを作成することです。プロジェクト名は、クライアントがアプリケーションへのアクセスに使用する URL に組み込まれます。

    注意 : Web アプリケーション プロジェクト フォルダは、アプリケーションに付けた名前に Web が付加された名前になります。

    Schemas - アプリケーションで使用する XML スキーマとメッセージ ブローカ チャネル ファイルが含まれるスキーマ プロジェクト。ebXML メッセージのパッケージ化に使用する ebXML エンベロープ スキーマも含まれます。

  10. ebXMLWeb フォルダを展開します。
  11. ビジネス プロセス アプリケーションの作成時には、processes フォルダが ebXMLWeb フォルダ内に作成されます。このチュートリアルでは必要ないので、次のように削除できます。

  12. [ebXMLWeb|src|processes] に移動します。
  13. processes フォルダを右クリックし、ドロップダウン メニューから [削除] を選択します。
  14. 確認ダイアログで [はい] をクリックします。

このチュートリアルの最初の手順が完了し、チュートリアル ebXML ビジネス プロセスを作成する準備が整いました。ビジネス プロセス アプリケーションの詳細については、『ビジネス プロセス構築ガイド』を参照してください。

チュートリアル サンプル データのインポート

このチュートリアルでは、サンプル データ ファイルを ebXML メッセージで送信します。独自の XML データ ファイルを使用できますが、http://dev2dev.bea.com Web サイトからダウンロードした tptutorial.zip アーカイブでサンプル データ ファイルが提供されています (「手順 3 : チュートリアル ファイルのインストール」を参照)。

サンプル データをプロジェクト アプリケーションにインポートするには
  1. [パッケージ・エクスプローラー] ペインで ebXMLWeb を右クリックし、[インポート] を選択します。
  2. [インポート] ダイアログ ボックスが表示されます。

  3. [インポート] ダイアログ ボックスで、[一般ファイル・システム] を選択して [次へ] をクリックします。
  4. [ファイル・システム] ウィンドウで、[ソース・ディレクトリー] の横の [参照] をクリックして、[unzip location]\tptutorialapps\ebxml\ebxmlWeb\webContent\sampledata に移動します。[unzip location] は、tptutorial.zip からファイルを解凍したディレクトリです (「手順 3 :チュートリアル ファイルのインストール」を参照)。
  5. [sampledata] チェック ボックスをチェックします (図 3-2 を参照)。
  6. 図 3-2 ファイル システムのインポート


    ファイル システムのインポート

  7. [終了] をクリックします。
  8. sampleinvoice.xmlsampleorder.xml が [パッケージ・エクスプローラー] ペインの ebXMLWeb の下に追加されます。

チュートリアル スキーマのインポート

このチュートリアルでは、ebXML メッセージで送信する XML データに、特別なスキーマを使用します。この節では、ebXML アプリケーションのスキーマ フォルダにスキーマをインポートする方法について説明します。

チュートリアル スキーマをインポートするには
  1. [パッケージ・エクスプローラー] ペインで、Schemas を右クリックします。
  2. ドロップダウン メニューから [インポート] を選択します。
  3. [インポート] ダイアログ ボックスが表示されます。

  4. [インポート] ダイアログ ボックスで、[一般|ファイル・システム] を選択して [次へ] をクリックします。
  5. [ファイル・システム] ウィンドウで、[ソース・ディレクトリー] の横の [参照] をクリックして、[unzip location]\tptutorialapps\ebxml\Schemas\schemas に移動します。[unzip location] は、tptutorial.zip からファイルを解凍したディレクトリです (「手順 3 :チュートリアル ファイルのインストール」を参照)。
  6. [Schemas] チェック ボックスをチェックします (図 3-3 を参照)。
  7. 図 3-3 スキーマのインポート


    スキーマのインポート

  8. [終了] をクリックします。

XSD ファイルまたは MFL ファイルをインポートすると、現行スキーマ プロジェクト フォルダのビルドがトリガされます。ビルドでは、スキーマ ファイルが適切にフォーマットされているかどうかが確認されます。XSD ファイルの場合は、XML スキーマの要素名と属性名が、現行スキーマ プロジェクト フォルダにすでにインポートされている XSD ファイルと矛盾しないことも確認されます。スキーマのインポート時に生成されるものについては、「XML スキーマのインポート」を参照してください。

読み込みおよび書き込み用ディレクトリの作成

ebXML でメッセージを交換する方法を学習するため、このチュートリアルのいくつかの例で、ハード ドライブのディレクトリにファイルを書き出したり、そこからファイルを読み取ったりします。このチュートリアルの例を始める前に、次の 2 つのディレクトリをハード ドライブに作成してください。

注意 : ここでは、「ビジネス プロセス アプリケーションの作成」でアプリケーションを C ドライブに作成したと想定しています。別のドライブにアプリケーションを作成した場合は、そのドライブのルート レベルに、上のディレクトリを配置してください。

 


手順 2 : 一方向 ebXML 交換による XML メッセージの送信

この例では、あるトレーディング パートナから別のトレーディング パートナへ、ebXML を使用して XML メッセージを送信する方法について学習します。片方のトレーディング パートナが、注文の受信と処理を行う、と考えてください。このパートナを売り手と呼び、これが、ebXML 会話の参加者になります。もう片方のトレーディング パートナは買い手であり、XML 注文を売り手に送信します。買い手は、会話の開始者です。売り手は、メッセージを受信してファイルに単純に書き込みます。この節では、次の手順について説明します。

Seller ビジネス プロセスの構築

Seller ビジネス プロセスは、ebXML 会話の参加者です。ebXML 参加者プロセスを構築するには、ebXML 参加者プロセス ファイルを使用できます。このファイルでは、参加者プロセスの構築に必要なノード、変数、その他のコンポーネントが事前にコンフィグレーションされています。この例では、ビジネス プロセスに File コントロールを追加し、ハード ドライブに配置されているファイルにテスト データを書き込みます。この節では、次のタスクを実行します。

Seller ビジネス プロセス ファイルを作成するには
  1. [パッケージ・エクスプローラー] ペインで ebXMLWeb を展開し、src を選択します。
  2. src フォルダを右クリックして、[新規パッケージ] を選択します。
  3. [新規 Java パッケージ] ダイアログ ボックスが表示されます。

  4. [新規 Java パッケージ] ダイアログ ボックスで、新しいパッケージの名前として ebxml.oneway と入力します。
  5. [終了] をクリックします。
  6. [パッケージ・エクスプローラー] の ebXMLWeb/src ディレクトリの下に、ebxml.oneway パッケージが表示されます。

  7. ebxml.oneway パッケージを右クリックします。
  8. [新規|その他] を選択します。
  9. [ウィザードを選択] ダイアログ ボックスが表示されます。

  10. WebLogic Integration を展開して、[ebXML 参加者プロセス] を選択します。
  11. [次へ] をクリックします。
  12. [新しいプロセス] ダイアログ ボックスが表示されます。

  13. [新しいプロセス] ダイアログ ボックスの [名前] フィールドに Seller と入力します (図 3-4 を参照)。
  14. 図 3-4 [新しいプロセス] ダイアログ ボックス
    [新しいプロセス] ダイアログ ボックス
  15. [終了] をクリックします。
  16. [パッケージ・エクスプローラー] ペイン内の ebxml.oneway パッケージに、新しい ebXML 参加者プロセス ファイルが作成され、デザイン ビューに表示されます (図 3-5 を参照)。

    図 3-5 Seller ebXML 参加者プロセス


    Seller ebXML 参加者プロセス

    ebXML 参加者プロセス ファイルは、ebXML 開始者ビジネス プロセスと簡単に統合するために必要となるノードとビジネス プロセス アノテーションが事前にコンフィグレーションされた状態で作成されます。ebXML 参加者プロセス ファイルの詳細については、「ebXML 参加者ビジネス プロセスの構築」を参照してください。

  17. この例では、buyer プロセスに応答しないので、Respond to request ノードは削除できます。そのノードを右クリックし、ドロップダウン メニューから [削除] を選択します。

この例では、buyer プロセスに応答する代わりに、受信 ebXML メッセージをファイルに書き込むファイル コントロールを追加します。このファイル コントロールを Control Send with Return ノードとしてビジネス プロセスに追加します。

ファイル コントロールとコントロール ノードを作成するには
  1. [データ パレット] が BEA WorkSpace Studio に表示されていない場合は、BEA WorkSpace Studio のメニューから [ウィンドウ|ビューの表示|データ パレット] を選択します。
  2. [データ パレット] で Seller ebXML 参加者プロセス をクリックします。ビジネス コントロールが対話できるリソースを表すコントロールのドロップダウン リストが表示されます。プロジェクトですでに利用可能なコントロールのインスタンスが [コントロール] タブに表示されます。
  3. [Integration コントロール] ドロップダウン メニューから [ファイル] を選択します。
  4. [コントロールの挿入 : ファイル] ウィンドウが開きます。

  5. [コントロールの挿入 : ファイル] ダイアログ ボックスで、以下の情報を入力します。
    • [フィールド名] に、変数名として file と入力します。この変数は、ビジネス プロセスから新しいファイル コントロール インスタンスにアクセスするときに使用します。この名前は、有効な Java 識別子である必要があります。
    • [次へ] をクリックします。
  6. [コントロールの作成] ダイアログ ボックスで、以下の情報を入力します。
    • [名前] フィールドに、作成する新しいコントロール ファイルの名前として File と入力します。
    • [次へ] をクリックします。
  7. [コントロールの挿入 - ファイル] ダイアログ ボックスが表示されます。
  8. [コントロールの挿入 - ファイル] ダイアログ ボックスで、以下の情報を入力します。
    • [ディレクトリ名] フィールドに、ディレクトリ名として /tptutorial と入力します。これは、Seller.java によって受信されたメッセージが書き込まれるディレクトリです。このチュートリアルでは、読み書きを行うディレクトリとして「読み込みおよび書き込み用ディレクトリの作成」で作成したチュートリアル ディレクトリを常に使用します。
    • [ファイル名フィルタ] フィールドに、ファイル名として order.xml と入力します。これは、Seller.java によって受信されたメッセージが書き込まれるファイルの名前です。
    • 受信メッセージに格納されるデータ型として、[データのタイプ] ドロップダウン メニューから [XmlObject] を選択します (図 3-6)。
    • 図 3-6 ファイル コントロールのプロパティ
      ファイル コントロールのプロパティ
  9. [終了] をクリックします。
  10. ファイル コントロール インスタンス (file) が、[データ パレット] のコントロールのリストに追加され、ファイル コントロールに対応するコントロール ファイル (File.java) が [パッケージ・エクスプローラー] ペインに追加されます。ファイル コントロールの詳細については、「ファイル コントロール」を参照してください。

  11. [データ パレット] で、[コントロール] の下にあるファイル コントロール (file) の横の [+] をクリックして展開します。
  12. ファイル コントロールに関連するメソッドが表示されます (図 3-7 を参照)。

    図 3-7 ファイル コントロールのメソッド
    ファイル コントロールのメソッド

  13. FileControlPropertiesDocument write(XmlObject someData) メソッドを選択します。
  14. 選択したメソッドをデザイン ビューにドラッグし、Receive request ノードに続けて表示される ファイル コントロールのメソッド

    にドロップします。
  15. write という名前の新しい Control Send with Return ノードがビジネス プロセスに追加されます。Control Send with Return ノードの詳細については、「コントロールを使用してリソースと対話する」を参照してください。

次の手順では、適切な変数とメソッドを割り当てて、作成したコントロール ノードをコンフィグレーションします。

コントロール ノードをコンフィグレーションするには
  1. 新しい write ノードをダブルクリックします。
  2. write ノード ビルダが起動します。

  3. [データの送信] をクリックします。
  4. [割り当てる変数を選択します] ドロップダウン メニューから、write メソッドに割り当てる変数として [payload] を選択します (図 3-8)。
  5. 図 3-8 データの送信のコンフィグレーション


    データの送信のコンフィグレーション

  6. [閉じる] をクリックして、ノード ビルダを閉じます。
  7. [ファイル|保管] を選択するか、〔Ctrl〕+〔S〕を押して、作業内容を保存します

売り手側 ebXML プロセスが完成しました。Receive request ノードが Buyer 開始者プロセスから XML メッセージを受信するとこのプロセスが起動し、Receive request ノードが XML を変数に割り当て、write ノードが file コントロールを通して、order.xml という名前のファイルに XML メッセージを書き込みます。

注意 : ノードの [データの受信] タブがコンフィグレーションされておらず、ノードが未完成としてマークされているので、グレーのチェック ボックスが表示されます。しかし、この例ではデータを受信しないので、これ以上コンフィグレーションしなくても、ビジネス プロセスは適切に動作します。
ebXML ソース ビュー パラメータを表示するには

ビジネス プロセスの ebXML バインディング情報とサービス名は、ソース ビューの [JPD コンフィグレーション] ペインに表示されます。これらのプロパティを表示するには、以下の手順に従います。

  1. ソース ビュー タブをクリックします。
  2. public class Seller implements com.bea.jpd.ProcessDefinition をクリックします。Seller クラスが [プロパティ] に表示されます。
  3. [プロパティ] ペインの次の点に注目してください。
    • process セクションで、bindingEBXML としてリストされている。
    • EBXML セクションで、ebxmlServiceName プロパティが Seller に設定されている。これは、プロセスに付けた名前であり、ebXML メッセージ エンベロープの eb:Service エントリに対応します。開始者ビジネス プロセスが、ebXML サービス名として使用する名前でもあります。これは、トレーディング パートナがこのサービスの識別に使用する名前であり、開始者プロセスと参加者プロセスで一致します。

ソース ビューの ebXML プロセス アノテーションの詳細については、ebxml アノテーション タイプを参照してください。

Seller ビジネス プロセスをテストする準備が整いました。WorkSpace Studio は、ビジネス プロセスの機能をテストするためにブラウザベース インタフェースを備えています。このテスト ビュー インタフェースを使用すると、クライアントの役割を実行し、ビジネス プロセスのメソッドを起動して応答を確認できます。

Seller プロセスをテストするには
  1. [サーバー] ビューが表示されていない場合は、BEA WorkSpace Studio のメニューで [ウィンドウビューの表示その他サーバーサーバー] を選択し、[OK] をクリックします。[サーバー] ビューが表示されます。
  2. [パッケージ・エクスプローラー] ペインで、Seller.java ビジネス プロセスを選択し、右クリックします。
  3. [実行] をクリックし、[サーバーで実行] をクリックします。
  4. [新規サーバーの定義] ダイアログ ボックスで、[既存のサーバーを選択] を選択して [次へ] をクリックします。
  5. [BEA WebLogic v10.0 Server] ダイアログ ボックスで、サーバを手動で定義し、「手順 1 : 新しい WebLogic Integration ドメインの作成」でドメインを設定したときに作成したサーバを選択します。
  6. [終了] をクリックします。
  7. サーバが起動し、アプリケーションがデプロイされます。WebLogic Server が実行されると、以下のインジケータが [サーバー] ビューに表示されます (図 3-9 を参照)。
  8. 図 3-9 サーバ状況


    サーバ状況

  9. アプリケーションがデプロイされた後、テスト ブラウザが表示されます (図 3-10 を参照)。
  10. 図 3-10 Seller.jpd プロセスのテスト ブラウザ


    Seller.jpd プロセスのテスト ブラウザ

  11. テスト ブラウザのウィンドウの [テスト フォーム] をクリックします。
  12. テスト データを入力するには、次のいずれかを実行します。
    • [参照...] をクリックし、C:\myapps\tptutorialapps\ebXML\ebXMLWeb\WebContent\sampledata\sampleorder.xml に移動する。
    • C:\myapps\tptutorialapps\ebXML\ebXMLWeb\WebContent\sampledata\sampleorder.xml の内容を、ファイルの 1 行目を除いて切り取り、xml 変数 (payload) フィールドに貼り付ける。
  13. [request] をクリックします。
  14. [テスト フォーム] ページが更新され、要求パラメータの概要が表示されます。

  15. [更新] をクリックして、概要を更新します。
  16. [Operation request] セクションまで下にスクロールし、sampleorder.xml ファイルの内容を確認します。
  17. ファイル ブラウザかコマンドライン ツールを使用して、C:\tptutorial ディレクトリに移動します。
  18. ここには、sampleorder.xml と同じ内容のファイル order.xml が含まれます。このファイルは、「Seller ビジネス プロセス ファイルを作成するには」で作成とコンフィグレーションを行ったファイル コントロールによって書き込まれました。

テスト ブラウザのさまざまなオプション、およびそれを使用してビジネス プロセスをテストする方法については、「ビジネス プロセスの実行およびテスト」を参照してください。

Seller ビジネス プロセスがデプロイされ、ebXML メッセージを受信する準備が整いました。デフォルトの場合は、デフォルトの ebXML 2.0 バインディングで指定されるプロトコルが使用されるので、さらにコンフィグレーションする必要はありません。しかし、プロダクション シナリオでは、一般的に、WebLogic Workshop Administration Console を使用して TPM サービス プロファイルを作成します。サービス プロファイルの作成方法については、「トレーディング パートナ管理」の「サービス プロファイルのサービスへの追加」を参照してください。

Buyer ビジネス プロセスの構築

Buyer ビジネス プロセスは、ebXML 会話の開始者です。Buyer ビジネス プロセスを作成したら、ebXML コントロールを使用し、Seller 参加者ビジネス プロセスとやり取りします。この節では、次の手順について説明します。

Buyer ビジネス プロセス ファイルを作成するには
  1. [パッケージ・エクスプローラー] ペインで、ebxml.oneway を右クリックし、[新規プロセス] を選択します。
  2. [新しいプロセス] ダイアログ ボックスが開きます (図 3-11 を参照)。

    図 3-11 新しいプロセス


    新しいプロセス

    今回は、開始者ビジネス プロセス ファイルを作成し、ebXML File コントロールを使用して参加者プロセスとやり取りするので、ebXML 参加者プロセス ファイルではなく、デフォルトのプロセス ファイルを作成します。

  3. [名前] フィールドに、Buyer と入力します。
  4. [終了] をクリックします。
  5. 新しい Buyer.java ファイルが [パッケージ・エクスプローラー] ペインに追加され、デザイン ビューに表示されます (図 3-12 を参照)

    図 3-12 Buyer ビジネス プロセス
    新しいプロセス

    Buyer.java ファイルには、開始ノード、開始イベントのプレースホルダ、終了ノードが含まれます。

  6. 開始イベントのプレースホルダをダブルクリックします。
  7. 開始イベントの内容を選択するウィンドウが表示されます。

  8. [クライアント要求で呼び出す] を選択して、[閉じる] をクリックします。
  9. Client Request ノードが、開始イベントとしてビジネス プロセスに追加されます。

Client Request ノードに正しいメソッドと変数型をコンフィグレーションします。

Client Request ノードをコンフィグレーションするには
  1. Client Request ノードをダブルクリックします。
  2. Client Request ノード ビルダが起動します。

  3. [一般的な設定] タブで、以下を実行します。
    1. clientRequest から startBuyer にメソッド名を変更します。
    2. [追加] をクリックします。
    3. [XML] タブを選択していない場合は選択します。
    4. 型なし XML 型まで下にスクロールし、[XmlObject] を選択します。
    5. [OK] をクリックします。
    6. XmlObject パラメータ型がペインに追加されます。

  4. [データの受信] をクリックします。
  5. [データの受信] タブで、以下を実行します。
    1. [割り当てる変数を選択します] ドロップダウン メニューから [変数の新規作成...] を選択します。
    2. [変数を作成] ウィンドウが開きます。

    3. 変数名として order と入力します。
    4. 型名に XmlObject が事前に選択されていることに注意してください。これが [一般的な設定] タブで指定した型であるためです。
    5. [OK] をクリックします。
    6. 新しい order 変数が、[割り当てる変数を選択します] ドロップダウン リストに追加されます。

    7. [閉じる] をクリックします。
    8. Client Request ノードが完成しました。Client Request ノードについて詳しく学習するには、「クライアントからメッセージを受信する」を参照してください。変数とデータ型について詳しく学習するには、「データ型の操作」を参照してください。

次に、Seller プロセスとのやり取りに使用する ebXML コントロールを追加します。このコントロールは、通信先のサービス (通常の場合は、リモート サービス) を表します。ただし、この例では、このサービスは、Buyer プロセスと同じマシンで動作します。

ebXML コントロールとコントロール ノードを作成するには
  1. [データ パレット] の をクリックして、ドロップダウン リストから [Integration コントロール] を選択し、アプリケーションの統合に使用するコントロールのリストを表示します。
注意 : [データ パレット] ビューが BEA Workshop for WebLogic Platform に表示されない場合は、メニュー バーから [ウィンドウ|ビューの表示|データ パレット] をクリックします。
  1. [Ebxml] を選択します。
  2. [コントロールの挿入 : Ebxml] ウィンドウが開きます。

  3. [コントロールの挿入 : Ebxml] ダイアログ ボックスで、コントロールに使用する変数の名前として sellerControl と入力します。この名前は、有効な Java 識別子である必要があります。
  4. [次へ] をクリックします。
  5. [コントロールの作成] ウィザードが表示されます。

  6. 新しく作成するコントロール ファイルの名前として SellerControl と入力します。
  7. [次へ] をクリックします。
  8. [コントロールの挿入 : Ebxml] ダイアログ ボックスが表示されます。

  9. [コントロールの挿入 : Ebxml] ダイアログ ボックスで、以下の情報を指定します。
    • [from] フィールドは空白にします。デフォルトでは、デフォルト トレーディング パートナである、実行時の 000000001 です。
    • [to] フィールドに 000000002 と入力します。これにより、参加者トレーディング パートナ ID が固定値として設定されます。
    • [serviceName] に Seller と入力します。
    • 受信メッセージに格納されるデータ型として、[method-arg-type] ドロップダウン メニューから [XmlObject] を選択します。
    • [ebXMLActionMode] と [xQueryVersion] はデフォルト設定のままにします (図 3-13 を参照)。
    • 図 3-13 Ebxml コントロールのプロパティ


      Ebxml コントロールのプロパティ

    • [終了] をクリックします。
    • ebXML コントロール インスタンスが、[データ パレット] のコントロールのリストに追加され、ebXML コントロールに対応するコントロール ファイル (SellerControl.java) が [パッケージ・エクスプローラー] ペインに追加されます。コントロール ファイル (SellerControl.java) をダブルクリックしてデザイン ビューで開き、入力した値を確認できます。ebXML コントロールの詳細については、「ebXML コントロール」を参照してください。

  10. [データ パレット] で、ebXML コントロール (sellerControl) の横の [+] をクリックして展開します。
  11. ebXML コントロールに関連するメソッドが表示されます (図 3-14 を参照)。

    図 3-14 ebXML コントロールのメソッド
    ebXML コントロールのメソッド
  12. void request(XmlObject payload) メソッドを選択します。このコントロールのメソッド名は、参加者プロセスの Receive request ノードのメソッド名と一致する必要があります。
  13. 選択したメソッドをデザイン ビューにドラッグし、Client Request ノードに続けて表示される ebXML コントロールのメソッド にドロップします。
  14. request という名前の新しいコントロール送信ノードがビジネス プロセスに追加されます。

次に、正しい変数を割り当て、request ノードをコンフィグレーションします。

Request ノードをコンフィグレーションするには
  1. 新しい request ノードをダブルクリックします。
  2. request ノード ビルダが起動します。

  3. [データの送信] をクリックします。
  4. [割り当てる変数を選択します] ドロップダウン メニューから、request メソッドに割り当てる変数として [order] を選択します。
  5. [閉じる] をクリックして、ノード ビルダを閉じます。
  6. [ファイル|保管] を選択するか、〔Ctrl〕+〔S〕を押して、作業内容を保存します

買い手側 ebXML プロセスが完成しました。このプロセスは、Seller ビジネス プロセスにメッセージを送信します。Seller ビジネス プロセスは、Seller プロセスのファイル コントロールを通して、order.xml というファイルにメッセージを書き込みます。

Buyer ビジネス プロセスをテストするには
  1. BEA WorkSpace Studio に [サーバー] ビューが表示されていない場合は、[ウィンドウビューの表示その他サーバーサーバー] を選択し、[OK] をクリックします。[サーバー] ビューが表示されます。
  2. [パッケージ・エクスプローラー] ペインで、Buyer.java ビジネス プロセスを選択し、右クリックします。
  3. [実行] をクリックし、[サーバーで実行] をクリックします。
  4. [新規サーバーの定義] ダイアログ ボックスで、[既存のサーバーを選択] を選択して [次へ] をクリックします。
  5. [BEA WebLogic v10.0 Server] ダイアログ ボックスで、サーバを手動で定義し、「手順 1 : 新しい WebLogic Integration ドメインの作成」でドメインを設定したときに作成したサーバを選択します。
  6. [終了] をクリックします。
  7. サーバが起動し、アプリケーションがデプロイされます。
  8. アプリケーションがデプロイされた後、テスト ブラウザが表示されます (図 3-15 を参照)。
  9. 図 3-15 Buyer.Jpd テスト ブラウザ
    Buyer.Jpd テスト ブラウザ

  10. テスト ブラウザのウィンドウの [テスト フォーム] をクリックします。
  11. テスト データを入力するには、次のいずれかを実行します。
    • [参照...] をクリックし、C:\myapps\tptutorialapps\ebXML\ebXMLWeb\WebContent\sampledata\sampleorder.xml に移動する。
    • C:\myapps\tptutorialapps\ebXML\ebXMLWeb\WebContent\sampledata\sampleorder.xml の内容を切り取り、xml 変数 (payload) フィールドに貼り付ける。
  12. [startBuyer] をクリックします。
  13. [テスト フォーム] ページが更新され、要求パラメータの概要が表示されます。

  14. [更新] をクリックして、概要を更新します。
  15. ファイルのタイム スタンプが現在のものになっていることをチェックし、order.xml ファイルが C:\tptutorial ディレクトリに正しく書き込まれていることを確認します。

チュートリアルのこのパートは、これで終わりです。片方のトレーディング パートナからもう片方のトレーディング パートナに、XML メッセージが ebXML を通して正常に送信されました。参加者 (Seller) プロセスは、ファイルシステムに XML を書き込みました。

 


手順 3 : 型付き XML によるトレーディング パートナ情報の動的な選択

この例は、前の練習「手順 2 : 一方向 ebXML 交換による XML メッセージの送信」で学習した内容に基づいています。ここでは、トレーディング パートナ情報を ebXML コントロールで静的に指定するのではなく、XQuery セレクタを使用して動的に指定する方法について学習します。次に、開始者 (Buyer) プロセスの ebXML コントロール、および参加者プロセス ファイル (Seller) をカスタマイズし、型付き XML とビジネス固有のメソッド名を使用します。

この節では、次の手順について説明します。

SelectorSeller ビジネス プロセスの構築

この手順では、前の例の参加者プロセスで使用した XmlObject 変数の代わりに、型付き XML データを受け入れる ebXML 参加者ビジネス プロセスを作成します。この節では、以下のタスクを実行します。

SelectorSeller ビジネス プロセス ファイルを作成するには
  1. [パッケージ・エクスプローラー] ペインで、[ebXMLWebsrc] に移動します。
  2. src を右クリックして、[新規パッケージ] を選択します。
  3. [新規 Java パッケージ] ダイアログ ボックスが表示されます。

  4. 名前に ebxml.oneway.selector と入力します。
  5. [終了] をクリックします。
  6. [パッケージ・エクスプローラー] の ebXMLWeb/src ディレクトリの下に、ebxml.oneway.selector パッケージが表示されます。

  7. ebxml.oneway.selector パッケージを右クリックして、[新規その他] を選択します。
  8. [新規] ダイアログ ボックスで、WebLogic Integration を展開し、[ebXML 参加者プロセス] を選択します。
  9. [次へ] をクリックします。
  10. [新しいプロセス] ダイアログ ボックスが表示されます。

  11. [新しいプロセス] ダイアログ ボックスの [名前] フィールドに、SelectorSeller と入力します。
  12. [終了] をクリックします。
  13. [パッケージ・エクスプローラー] ペイン内の ebxml.oneway.selector パッケージに、新しい ebXML 参加者プロセス ファイルが作成され、デザイン ビューに表示されます。

  14. Respond to request ノードを削除します。削除するには、ノードを右クリックしてドロップダウン リストから [削除] を選択します。

次の手順では、「チュートリアル スキーマのインポート」でアプリケーションにインポートしたスキーマで指定されている型の XML データを受け入れるように、Receive request ノードをコンフィグレーションします。

Receive Request ノードをコンフィグレーションするには
  1. Receive request ノードをダブルクリックします。
  2. Receive request ノード ビルダが起動します。

  3. [一般的な設定] タブで、以下を実行します。
    1. request から processOrder にメソッド名を変更します。
    2. [XmlObject payload] を選択します。
    3. [削除] をクリックします。
    4. [追加] をクリックします。
    5. [XML] タブを選択していない場合は選択します。
    6. [型付き] を展開して [Schemas|schemas] に移動し、b2border.xsd を選択します (図 3-16)。
    7. 図 3-16 スキーマの選択


      スキーマの選択

    8. b2border.xsd の横の [+] をクリックして展開します。
    9. 展開したリストから Order を選択します。
    10. [OK] をクリックします。
    11. OrderDocument パラメータ型がペインに追加されます。

  4. [データの受信] をクリックします。
  5. [データの受信] タブで、以下を実行します。
    1. [割り当てる変数を選択します] ドロップダウン メニューから [変数の新規作成...] を選択します。
    2. [変数を作成] ウィンドウが開きます。

    3. 変数名として order と入力します。
    4. 注意 : 変数の型は、com.bea.tutorial.order.OrderDocument になるように、すでに指定されています。これは、前の手順で指定しました。
    5. [OK] をクリックします。
    6. 新しい order 変数が、[割り当てる変数を選択します] ドロップダウン リストに追加されます。

    7. [閉じる] をクリックします。
    8. order 変数をファイルに書き込むファイル コントロールをビジネス プロセス ファイルに追加します。

ファイル コントロールとコントロール ノードを作成するには

ファイル コントロールとコントロール ノードを作成するには」の指示を参照して、新しいファイル コントロールを作成します。時間を節約するため、[パッケージ・エクスプローラー] ペイン内の [oneway] パッケージから File.java をドラッグして、[データ パレット] の [コントロール] に直接ドロップすることもできます。

以前作成したコントロール定義が、このビジネス プロセスの新しいインスタンスで再利用されます。

コントロール ノードをコンフィグレーションするには
  1. 新しい write ノードをダブルクリックします。
  2. write ノード ビルダが起動します。

  3. [データの送信] をクリックします。
  4. [割り当てる変数を選択します] ドロップダウン メニューから、write メソッドに割り当てる変数として [order] を選択します。
  5. [閉じる] をクリックして、ノード ビルダを閉じます。
  6. [ファイル|保管] を選択するか、〔Ctrl〕+〔S〕を押して、作業内容を保存します

これで、SelectorSeller ビジネス プロセスが作成できました。

SelectorSeller プロセスをテストするには
  1. SellectorSeller.java を右クリックして、[実行|サーバーで実行] を選択します。詳細な手順については、「Seller プロセスをテストするには」を参照してください。
  2. アプリケーションがデプロイされた後で、テスト ブラウザが表示されます。
  3. テスト データを入力するには、次のいずれかを実行します。
    • [参照...] をクリックし、C:\myapps\tptutorialapps\ebXML\ebXMLWeb\WebContent\sampledata\sampleorder.xml に移動する。
    • C:\myapps\tptutorialapps\ebXML\ebXMLWeb\WebContent\sampledata\sampleorder.xml の内容を切り取り、xml 変数 (payload) フィールドに貼り付ける。
  4. [processOrder] をクリックします。
  5. ファイルのタイム スタンプが現在のものになっていることをチェックし、order.xml ファイルが C:\tptutorial ディレクトリに正しく書き込まれていることを確認します。

次に、SelectorBuyer 開始者プロセスを作成します。

SelectorBuyer ビジネス プロセスの構築

この例の開始者プロセスでは、前の例で実行したように、ebXML コントロールでトレーディング パートナ ID を静的に指定せず、トレーディング パートナ ID を動的に取得する XQuery セレクタを使用します。この節では、以下のタスクを実行します。

SelectorBuyer ビジネス プロセス ファイルを作成するには
  1. ebxml.oneway.selector パッケージを右クリックして、[新規|プロセス] を選択します。
  2. [名前] フィールドに、SelectorBuyer と入力します。
  3. [終了] をクリックします。
  4. 新しい SelectorBuyer.java ファイルが [パッケージ・エクスプローラー] ペインに追加され、デザイン ビューに表示されます。

  5. SelectorBuyer.java ファイルには、開始ノード、開始イベントのプレースホルダ、終了ノードが含まれます。
  6. 開始イベントのプレースホルダをダブルクリックします。
  7. 開始イベントの内容を選択するウィンドウが表示されます。

  8. [クライアント要求で呼び出す] を選択して、[閉じる] をクリックします。
  9. Client Request ノードが、開始イベントとしてビジネス プロセスに追加されます。

Client Request ノードに正しいメソッドと変数型をコンフィグレーションします。

Client Request ノードをコンフィグレーションするには
  1. Client Request ノードをダブルクリックします。
  2. Client Request ノード ビルダが起動します。

  3. [一般的な設定] タブで、以下を実行します。
    1. [追加] をクリックします。
    2. [XML] タブを選択していない場合は選択します。
    3. [型付き] を展開して [Schemas|schemas] に移動し、b2border.xsd を選択します。
    4. b2border.xsd の横の [+] をクリックして展開します。
    5. 展開したリストから Order を選択します。
    6. [OK] をクリックします。
    7. OrderDocument パラメータ型がペインに追加されます。

  4. [データの受信] をクリックします。
  5. [データの受信] タブで、以下を実行します。
    1. [割り当てる変数を選択します] ドロップダウン メニューから [変数の新規作成...] を選択します。
    2. [変数を作成] ウィンドウが開きます。

    3. 変数名として order と入力します。
    4. 注意 : 変数の型は、com.bea.tutorial.order.OrderDocument になるように、すでに指定されています。これは、前の手順で指定しました。
    5. [OK] をクリックします。
    6. 新しい order 変数が、[割り当てる変数を選択します] ドロップダウン リストに追加されます。

    7. [閉じる] をクリックします。

次の手順では、ebXML コントロールを追加し、XQuery セレクタでこのコントロールをコンフィグレーションします。

ebXML コントロールを作成するには
  1. [データ パレット] の スキーマの選択 をクリックして、ドロップダウン リストから [Integration コントロール] を選択し、アプリケーションの統合に使用するコントロールのリストを表示します。
  2. [Ebxml] を選択します。
  3. [コントロールの挿入 : Ebxml] ダイアログ ボックスが表示されます。

  4. [コントロールの挿入 : Ebxml] ダイアログ ボックスで、コントロールに使用する変数の名前として selectorSellerControl と入力します。この名前は、有効な Java 識別子である必要があります。
  5. [次へ] をクリックします。
  6. [コントロールの作成] ウィザードが表示されます。

  7. 新しく作成する java ファイルの名前として SelectorSellerControl と入力します。
  8. [次へ] をクリックします。
  9. [Insert control: Ebxml] ダイアログ ボックスが表示されます。

  10. [コントロールの挿入 : Ebxml] ダイアログ ボックスで、以下の情報を指定します。
    • [from] フィールドは空白にします。デフォルトでは、デフォルト トレーディング パートナである、実行時の 000000001 です。
    • [to] フィールドは空白にします。これは、次の節で定義する XQuery セレクタにより、実行時に決まります。
    • [serviceName] に SelectorSeller と入力します。
    • 受信メッセージに格納されるデータ型として、[method-arg-type] ドロップダウン メニューから [XmlObject] を選択します。
    • [ebXMLActionMode] と [xQueryVersion] はデフォルト設定のままにします。

  11. [終了] をクリックします。
  12. ebXML コントロール インスタンスが、[データ パレット] のコントロールのリストに追加され、ebXML コントロールに対応する java ファイル (SelectorSwllerControl.java) が [パッケージ・エクスプローラー] ペインに追加されます。java ファイルをダブルクリックしてデザイン ビューで開き、入力した値を確認できます。

続いて、ebXML コントロールのコントロール定義ファイルを修正します。次の節では、メソッド名とメッセージ タイプを変更し、XQuery セレクタを追加します。

ebXML コントロール定義ファイルを変更するには
  1. [データ パレット] で、ebXML selectorSellerControl を右クリックします。
  2. ドロップダウン メニューから [Edit] を選択します。
  3. SelectorSellerControlソース ビューに表示されます。

  4. ソース ビューで、requestprocessOrder に名前変更します。
  5. メソッド名が、参加者ビジネス プロセスのメソッド名と一致しました。このメソッド名は、ebXML メッセージ エンベロープの eb:Action 要素に対応します。

  6. void processOrder(XmlObject payload);void processOrder(OrderDocument payload); に変更します。
  7. インポートする提案パッケージが、ツールチップ エディタに表示されます。Import'OrderDocument'Ecom.bea.tutoriat.order) を選択します。
  8. この ebXML コントロールは、一般的な型なし XML ではなく、「チュートリアル スキーマをインポートするには」でインポートしたスキーマに従って、型付き XML を使用するように設定されました。

  9. ソース ビューで、processOrder を選択します。
  10. [プロパティ] ペインで、EBXMLControl.EbxmlMethod を展開し、toSelector に次の値を追加します。
  11. "declare namespace ns0=\"bea.com/tutorial/order\"    data($payload/ns0:Supplier_ID)
注意 : [プロパティ] ペインが BEA WorkSpace Studio に表示されていない場合は、BEA WorkSpace Studio のメニュー バーから [ウィンドウ|ビューの表示|プロパティ] を選択します。
  1. [ファイル|保管] を選択するか、〔Ctrl〕+〔S〕を押して、作業内容を保存します
  2. ウィンドウの右上にある [x] をクリックし、SelectorSellerControl.java を閉じます。

セレクタで生成した XQuery 文の指定に従って、トレーディング パートナ ID をメッセージから選択するように、ebXML コントロールがコンフィグレーションされました。次の手順では、processOrder コントロール送信ノードをビジネス プロセスに追加します。

processOrder コントロール送信ノードを作成するには
  1. [データ パレット] で、selectorSellerControl の横の [+] をクリックして展開します。
  2. void processOrder(OrderDocument payload) メソッドを選択します。このコントロールのメソッド名は、参加者プロセスの Receive request ノードのメソッド名と一致する必要があります。
  3. 選択したメソッドをデザイン ビューにドラッグし、Client Request ノードに続けて表示される スキーマの選択 にドロップします。
  4. processOrder という名前の新しいコントロール送信ノードがビジネス プロセスに追加されます。

  5. 入力変数として order 変数を指定するには、以下を実行します。
    1. [データ パレット] で、XML 変数のリストから [order] を選択します。
    2. この変数をドラッグして、processOrder コントロール送信ノードにドロップします。

これで、SelectorBuyer ビジネス プロセスが作成できました。この節では、参加者プロセスと開始者プロセスをカスタマイズして、型付き XML とカスタム メソッド名を使用する方法について学習しました。XQuery セレクタを使用して、ターゲット トレーディング パートナ ID を静的に宣言するのではなく、payload メッセージから取得する方法についても学習しました。次の節では、ビジネス プロセスのテスト方法について説明します。

SelectorBuyer プロセスをテストするには
  1. [サーバー] ビューが表示されていない場合は、BEA WorkSpace Studio のメニューで [ウィンドウビューの表示その他サーバーサーバー] を選択し、[OK] をクリックします。[サーバー] ビューが表示されます。
  2. [パッケージ・エクスプローラー] ペインで、SelectorBuyer.java ビジネス プロセスを選択し、右クリックします。
  3. [実行] をクリックし、[サーバーで実行] をクリックします。
  4. [新規サーバーの定義] ダイアログ ボックスで、[既存のサーバーを選択] を選択して [次へ] をクリックします。
  5. [終了] をクリックします。
  6. アプリケーションがデプロイされた後で、テスト ブラウザが表示されます。
  7. テスト ブラウザのウィンドウの [テスト フォーム] をクリックします。
  8. テスト データを入力するには、次のいずれかを実行します。
    • [参照...] をクリックし、C:\myapps\tptutorialapps\ebXML\ebXMLWeb\WebContent\sampledata\sampleorder.xml に移動する。
    • C:\myapps\tptutorialapps\ebXML\ebXMLWeb\WebContent\sampledata\sampleorder.xml の内容を切り取り、xml 変数 (payload) フィールドに貼り付ける。
  9. [clientRequest] をクリックします。
  10. ファイルのタイム スタンプが現在のものになっていることをチェックし、order.xml ファイルが C:\tptutorial ディレクトリに正しく書き込まれていることを確認します。

 


手順 4 : ebXML 交換による生データ (バイナリ ファイル) の送信

この例では、ebXML を使用し、メッセージ ブローカ チャネルによって 2 つのトレーディング パートナ間でバイナリ データを送信します。この例は、前節で説明した例に基づいています。以前説明したタスクの実行方法に関する詳細を確認したい場合は、前節を参照してください。この節では、次の手順について説明します。

BinarySeller ビジネス プロセスの構築

この例は、前の例での学習内容に基づいています。詳しい指示が必要になったら、「Seller ビジネス プロセスの構築」を参照してください。この節では、以下のタスクを実行します。

BinarySeller ビジネス プロセスを作成するには
  1. [プロジェクト・エクスプローラー] で、ebXMLWeb を展開して src フォルダを選択します。
  2. src フォルダを右クリックして、[新規|パッケージ] を選択します。
  3. [名前] に、ebxml.oneway.binary と入力します。
  4. [終了] をクリックします。
  5. ebxml.oneway.binary パッケージ の下に BinarySeller という名前の新しい ebXML 参加者プロセスを作成します。
  6. Respond to request ノードを削除します。
  7. Receive request ノードを次のように修正します。
    1. [一般的な設定] タブで、XmlObject パラメータ データ型を削除します。
    2. [追加] をクリックします。
    3. [非 XML] タブを選択します。
    4. [型なし] に移動し、RawData パラメータ データ型を選択します。
    5. RawData 型の data という名前の変数を新しく作成します。
    6. [閉じる] をクリックします。
  8. 次の値を指定して、ファイル コントロールを新しく作成します。
    • 変数名 : file
    • 新しいコントロール名 : File
    • ディレクトリ名 : /tptutorial/binary-in
    • データのタイプ : RawData
  9. file コントロールの write メソッド (FileControlPropertiesDocument write(RawData someData) をドラッグし、ビジネス プロセスの Receive request ノードの後にドロップします。
  10. write ノードをダブルクリックし、[データの送信] タブで、write メソッドに割り当てる変数として data を指定します。
BinarySeller ビジネス プロセスをテストするには
  1. [パッケージ・エクスプローラー] ペインで、BinarySeller.java ビジネス プロセスを選択し、右クリックします。
  2. [実行] をクリックし、[サーバーで実行] をクリックします (手順の詳細については、「Seller プロセスをテストするには」を参照)。
  3. バイナリ ペイロード テスト データとして、任意のバイナリ ファイル (イメージ ファイルなど) を使用します。
  4. ファイルのタイム スタンプが現在のものになっていることをチェックし、data.bin ファイルが C:\tptutorial\binary-in ディレクトリに正しく書き込まれていることを確認します。

BinaryBuyer ビジネス プロセスの構築

この例の開始者側は、前の例のプロセスと非常に似ていますが、プロセスがディレクトリからファイルを選択する原因となるファイル イベントのサブスクリプションによって起動します。この節では、以下のタスクを実行します。

BinaryBuyer ビジネス プロセス ファイルを作成するには

Buyer ビジネス プロセスの構築」で説明した指示に従い、次のタスクを実行します。

  1. ebxml.oneway.binary パッケージに、BinaryBuyer という名前の新しいビジネス プロセスを作成します。
  2. 開始イベントをダブルクリックし、[メッセージ ブローカ チャネルをサブスクライブし、イベント (タイマー、電子メール、ファイル、アダプタなど) から開始する] オプションを選択します。
  3. [閉じる] をクリックします。

Message Broker Subscription ノードのコンフィグレーションを始める前に、Subscription ノードがイベントをリスンできるようにするサブスクリプション チャネル ファイルを作成する必要があります。

チャネル ファイルを作成するには
  1. [パッケージ・エクスプローラー] ペインで、ebxml.oneway.binary を選択します。
  2. ebxml.oneway.binary フォルダを右クリックします。
  3. [新規|チャネル定義] を選択します。
  4. ファイル名に tptutorial.channel と入力します (図 3-17 を参照)。
  5. 図 3-17 新しいチャネル定義
    新しいチャネル定義
  6. [終了] をクリックします。
  7. 新しいチャネル ファイルが作成され、[パッケージ・エクスプローラー] ペイン内の ebxml.oneway.binary パッケージの下に追加されて画面に表示されます。アプリケーション ビルドも自動的に始まり、Schemas プロジェクトがビルドされます。

  8. チャネル ファイル コードで、次の行を見つけます。
    <channel name="SampleRawDataChannel" messageType="rawData"/>
  9. この行の前後にあるコメント タグ <!----> を削除します。
  10. [ファイル保管] を選択するか、〔Ctrl〕+〔S〕を押して、チャネル ファイルを保存します。
  11. Schemas プロジェクトが再度ビルドされます。

  12. チャネル ファイルを閉じます。

これで、ファイルに定義されているサンプル チャネルは、Subscription ノードで選択できるようになりました。

Subscription ノードをコンフィグレーションするには
  1. Subscription ノードをダブルクリックします。
  2. Subscription ノード ビルダが起動します。

  3. [一般的な設定] タブで、[チャネル名] ドロップダウン リストから SampleRawDataChannel を選択します。
  4. [データの受信] タブで、以下を実行します。
    1. RawData 型の data という名前の変数を作成します。
    2. その変数を選択して、subscription メソッドに割り当てます。
  5. [閉じる] をクリックします。

Subscription ノードがコンフィグレーションできました。

次の節では、参加者ビジネス プロセスとのやり取りに使用する ebXML コントロールを作成します。

ebXML コントロールを作成するには
  1. ebXML コントロールとコントロール ノードを作成するには」の指示に従い、次の値で ebXML を作成します。
    • [フィールド名] : binarySellerControl
    • [名前] : BinarySellerControl
    • [serviceName] : BinarySeller (参加者プロセスの値と一致させる必要がある)
    • [from] : 空欄にしておく
    • [to] : 000000002
    • [method-arg-type] : RawData
  2. [終了] をクリックします。
  3. [データ パレット] から void request(RawData payload) メソッドをドラッグし、Subscription ノードの下のビジネス プロセスに表示されるターゲットにドロップします。
  4. [データ パレット] から [非 XML] リストの data 変数をドラッグし、request ノードにドロップします。

BinaryBuyer ビジネス プロセスが完成しました。実行とテストを行い、適切に動作することを確認します。

BinaryBuyer ビジネス プロセスをテストするには
  1. [サーバー] ビューが表示されていない場合は、BEA WorkSpace Studio のメニューで [ウィンドウ|ビューの表示|その他|サーバー|サーバー] を選択し、[OK] をクリックします。[サーバー] ビューが表示されます。
  2. [パッケージ・エクスプローラー] ペインで、BinaryBuyer.java ビジネス プロセスを選択して右クリックします (手順の詳細については、「Seller プロセスをテストするには」を参照)。
  3. アプリケーションがデプロイされた後、テスト ブラウザが表示されます。テスト ブラウザのウィンドウの [テスト フォーム] をクリックします。
  4. バイナリ ペイロード テスト データとしてイメージ ファイルを使用します。
  5. [subscription] をクリックします。
  6. ファイルのタイム スタンプが現在のものになっていることをチェックし、data.bin ファイルが C:\tptutorial\binary-in ディレクトリに正しく書き込まれていることを確認します。
注意 : ビジネス プロセスをテストする前に、「チャネル ファイルを作成するには」を実行したことを確認してください。プロセスのテスト前にチャネル ファイルを作成しないと、エラーが発生します。

ファイル イベント ジェネレータの作成

この節では、生データ型のファイルがディレクトリに挿入されたときに BinaryBuyer ビジネス プロセスを起動するファイル イベントを作成します。

ファイル イベントを作成するには
  1. 新しいディレクトリ C:\tptutorial\errors をハード ドライブに作成します。
  2. WebLogic Server が起動していない場合は、起動します。
  3. WebLogic Server が起動したら、WorkSpace Studio のメニューから [実行| WebLogic Integration|WebLogic Integration Administration Console] を選択して WebLogic Administration Console を開きます。
  4. 手順 1 : 新しい WebLogic Integration ドメインの作成」で指定したサーバ ユーザ名とパスワードを使用し、コンソールにログインします。
  5. 左側のペインで [イベント ジェネレータ] をクリックします。
  6. 左側のペインで [ファイル|新規作成] をクリックします。
  7. [新しいファイル イベント ジェネレータの作成] ページが開きます。

  8. [ジェネレータ名] に TPTutorial1 と入力します。
  9. [送信] をクリックします。
  10. [ファイル イベント ジェネレータ定義] ページが開きます。

  11. [新しいチャネル ルールを定義] をクリックします。
  12. [ファイル ジェネレータ チャネル ルール定義] ページが開きます。

  13. 次のパラメータを入力します。
    • [ファイル タイプ] : ディスク ファイル
    • [チャネル名] : /SamplePrefix/Samples/SamplesRawDataChannel (rawData)
    • [メッセージ エンコーディング] : 空欄にしておく
    • [ディレクトリ] : <Base Directory>/tptutorial/binary-out
    • [ファイル名で渡す] : いいえ
    • [サブディレクトリをスキャン] : いいえ
    • [ファイル パターン] : 空欄にしておく。デフォルトは *.*
    • [到着順にソートしますか?] : いいえ
    • [ポーリング間隔] : 3 秒 (長い待ち時間を避けられる短さ)
    • [読み込み制限] : 0
    • [読み込み後のアクション] : 削除
    • [アーカイブ ディレクトリ] : 空欄にしておく
    • [エラー ディレクトリ] :<Home Directory> /tptutorial/errors
    • [説明] : 生データ ファイル
  14. [送信] をクリックします。

ファイル イベントが作成できました。WebLogic Integration Administration Console とイベント ジェネレータの詳細については、「イベント ジェネレータ」を参照してください。

生データの送信サンプルをテストするには
  1. [パッケージ・エクスプローラー] ペインで、BinaryBuyer.java ビジネス プロセスを選択して右クリックします (手順の詳細については、「Seller プロセスをテストするには」を参照)。
  2. 作成した binary-out ディレクトリにバイナリ ファイルを配置します。数秒でこのファイルは消えて、data.bin という名前のファイルが binary-in ディレクトリに表示されます。
注意 : メッセージ トラッキングについて : この例と前の例では、ebXML で送信されたすべてのメッセージは、トラッキング データベースで追跡されます。WebLogic Integration Administration Console で、[トレーディング パートナ管理|メッセージ トラッキング] を選択し、メッセージを確認してください。基本的なメッセージ情報とペイロード情報が、両方とも追跡されます。メッセージの作成か使用を行ったプロセスに、メッセージからナビゲートすることもできます。詳細については、「トレーディング パートナ管理」を参照してください。

 


手順 5 : 応答のある ebXML 会話の作成

このサンプルでは、要求メッセージ (発注書の要求) に応答メッセージ (請求書) が続く ebXML 会話の実装方法について説明します。会話の最初の部分は、これまでに開発した一方向のシナリオとまったく同じです。このサンプルでは、Client Response ノードを参加者ビジネス プロセスに追加して、応答メッセージに ebXML コントロール コールバックを使用します。この節では、次の手順について説明します。

RoundtripSeller ビジネス プロセスの構築

このサンプルでは、これまでに完了したサンプルに基づいて構築を行います。以降の節に関して詳細な情報が必要な場合は、前述の「Seller ビジネス プロセスの構築」を参照してください。

ビジネス プロセス ファイルを作成して Receive Request ノードをコンフィグレーションするには
  1. [パッケージ・エクスプローラー] ペインで、[ebxmlWeb] を展開して、src を選択します。
  2. src を右クリックして、[新規|パッケージ] の順に選択します。
  3. [Java パッケージ] ダイアログ ボックスが表示されます。

  4. [名前] フィールドに ebxml.roundtrip と入力して、[終了] をクリックします。
  5. ebxmlWeb\src に、ebxml.roundtrip というパッケージが表示されます。

  6. この roundtrip パッケージ内に、RoundtripSeller という新しい ebXML 参加者プロセスを作成します。
  7. Receive Request ノードをダブルクリックして、次のようにコンフィグレーションします。
    1. [一般的な設定] タブで、メソッドの名前を processOrder に変更します。
    2. XmlObject payload パラメータ タイプを削除します。
    3. [追加] をクリックし、XML リストから Order というパラメータ型を選択します (b2border.xsd から)。
    4. [データの受信] タブで、order という新しい変数を作成し、メソッドに割り当てる変数として選択します。
    5. [閉じる] をクリックします。

分かりやすくするために、このサンプルでは発注と請求のプロセスを簡略化しています。販売者は受信した発注書を再びファイルに書き出し、応答用にファイル システムから請求書ドキュメントを読み込みます。この請求書は各発注で同じものとなります。プロダクション シナリオでは、販売者プロセスで代わりにデータベースから情報を読み込み、それをメッセージ キューから取得したり、バックエンド アプリケーションからアプリケーション ビュー コントロール由来のイベントとして受け取ったりすることもあります。また、このプロセスにおいて、発注書の処理をサブプロセスで代理する場合もあります。これについては、次のサンプル「手順 6 : パブリック/プライベート パターンの実装」で示します。

ファイル コントロールを作成してコントロール ノードをコンフィグレーションするには
  1. file という新しいファイル コントロールを追加して、order.xml を C:\tptutorial\ に書き出すようにコンフィグレーションします。
  2. 注意 : ebxml.oneway フォルダ内の File.java を [データ パレット] にドラッグ アンド ドロップすると、時間を節約できます。そのようにすると、File.java コントロールの新しいインスタンスが作成されます。
  3. FileControlPropertiesDocument write(XmlObject someData) メソッドを Receive Request ノードの下に表示される対象にドラッグ アンド ドロップします。
  4. write ノードをダブルクリックします。
  5. [データの送信] を選択してから、Order 変数を選択します。
  6. お使いのハード ドライブに C:\tptutorial\invoice という新しいディレクトリを作成します。
  7. ファイル C:\myapps\tptutorialapps\ebxml\ebxmlWeb\WebContent\sampledata\sampleinvoice.xmlC:\tptutorial\invoice ディレクトリにコピーします。
  8. sampleinvoice.xmlinvoice.xml という名前に変更します。
  9. InvoiceFile という 2 番目の新しい ファイル コントロールを作成し、次のコンフィグレーションを使用して <ホーム ディレクトリ>\tptutorial\invoice ディレクトリから XmlObject (invoice.xml) を読み込むようにコンフィグレーションします。
    • [フィールド名] : InvoiceFile
    • [ファイル名フィルタ] : invoice.xml
    • [データのタイプ] : XmlObject
    • [ディレクトリ名] : /tptutorial/invoice
  10. XmlObject read() メソッドを Invoicefile コントロールから write ノードの下に表示される対象にドラッグ アンド ドロップします。
  11. read ノードをダブルクリックします。
  12. [データの受信] をクリックします。
  13. このメソッドでは型なしの XML (XmlObject) が予期されますが、ここで invoice.xml ファイルには型付きの XML が含まれています。そのため、この 2 つの間で単純なトランスフォーメーションが必要になります。

  14. [トランスフォーメーション] オプションを選択します。
  15. [変数の選択|変数の新規作成...] の順にクリックします。
  16. [変数を作成] ウィンドウが開きます。

  17. 変数名として invoice を入力します。
  18. XML リストで b2binvoice.xml を展開し、Invoice を選択します。
  19. [OK] をクリックします。
  20. [変数を作成] ウィンドウが閉じ、新しい変数がノード ビルダの [変数] ペインにリストされます。

  21. [トランスフォーメーションの作成] をクリックします。
  22. [トランスフォーメーション ツール] ウィンドウが開きます。

  23. [ソース] ペインの XmlObjectDoc を [対象] ペインの Invoice ルートにドラッグ アンド ドロップします (図 3-18 を参照)。
  24. 図 3-18 トランスフォーメーション ツール


    トランスフォーメーション ツール

    XQuery トランスフォーメーションが作成され、対応するトランスフォーメーション コントロールが RoundtripSellerTransformation.java ファイル内に作成および格納されます。このファイルはトランスフォーメーション ツールを開いたときに [パッケージ・エクスプローラー] ペインに作成されたものです。

  25. [トランスフォーメーション ツール] ウィンドウの最上部にある [x] をクリックして、このウィンドウを閉じます。
  26. [リソースの保管] ダイアログ ウィンドウで、[はい] をクリックします。
  27. ノード ビルダの [閉じる] をクリックします。

上記の手順で作成したトランスフォーメーションは、1 つのデータ型から別のデータ型への変更のみを行います。プロダクション シナリオでは、トランスフォーメーション ツールを使用して、バックエンド システムのフォーマットから、トレーディング パートナで予期されるフォーマットへ変更することになります。また、トランスフォーメーション ツールを使用するとデータの操作も可能です。トランスフォーメーション ツールの詳細については、『XQuery Mapper を使用したデータの変換』を参照してください。

このサンプルでは次の手順として、Respond to Request ノードをコンフィグレーションします。

Respond to Request ノードをコンフィグレーションするには
  1. Respond to Request ノードをダブルクリックします。
  2. メソッド名を onInvoice に変更します。
  3. XmlObject payload パラメータ タイプを削除します。
  4. [追加] をクリックして、XML リストで b2binvoice.xsd スキーマから Invoice パラメータを選択します。
  5. [OK] をクリックします。
  6. [データの送信] をクリックします。
  7. [割り当てる変数を選択します :] ドロップダウン リストから invoice を選択します。
  8. [閉じる] をクリックします。
  9. [ファイルArrow symbol保管] の順に選択するか、〔Ctrl〕+〔S〕を押して保存します。

これで、このサンプルの販売者 (参加者) 側の構築が完了しました。販売者は購入者から発注書ドキュメントを受け取ってそれをファイルに書き出し、請求書ファイルを読み込んでそれを購入者に送信します。このトランザクション用に作成された ebXML サービスの名前は、RoundtripSeller です。メッセージ交換は、単一の ebXML 会話として実行されます。ebXML 会話は Trading Partner Integration (TPI) システムによって自動的に管理され、同じ参加者プロセス インスタンス内では必ず同一の会話 ID が使用されます。

RoundtripSeller ビジネス プロセスをデプロイするには
  1. [パッケージ・エクスプローラー] ペインで、RoundtripSeller.java ビジネス プロセスを選択して右クリックします。
  2. [実行] をクリックし、[サーバーで実行] をクリックします。
  3. サーバが起動し、サーバ上にアプリケーションがデプロイされます。
  4. アプリケーションがデプロイされた後で、テスト ブラウザが表示されます。
  5. [テスト ブラウザ] ウィンドウを閉じます。

この時点でプロセスをテストすると、まだ開始者プロセスを作成していないので、コールバック メソッドで例外が発生します。そのため、後で開始者プロセスをテストするときにこのプロセスが適切に実行されるよう、ここではデプロイのみを行います。

RoundtripBuyer ビジネス プロセスの構築

この節では、これまでのサンプルで学んだタスクに基づいて構築を行います。以降のタスクを完了するにあたってより詳細な説明が必要な場合、いつでも「Buyer ビジネス プロセスの構築」に戻って参照してください。

ビジネス プロセスを作成して Client Request ノードをコンフィグレーションするには
  1. ebxml.roundtrip フォルダに、RoundtripBuyer という新しいビジネス プロセスを作成します。
  2. [開始イベント] をダブルクリックします。
  3. [クライアント要求で呼び出す] を選択します。
  4. [閉じる] をクリックします。
  5. Client Request ノードをダブルクリックして、次のようにコンフィグレーションします。
    1. メソッド名を startBuyer に変更します。
    2. [追加] をクリックし、XML リストから Order というパラメータ型を選択します (b2border.xsd から)。
    3. [データの受信] タブで、Order 型の order という新しい変数を作成し、その変数がメソッドに割り当てられるように指定します。
    4. [閉じる] をクリックします。
ebXML コントロールを作成およびコンフィグレーションするには
  1. 新しい ebXML コントロールを追加して、次のようにコンフィグレーションします。
    • [フィールド名] : roundtripSellerControl
    • [名前] : RoundtripSellerControl
    • [ebxml-service-name] : RoundtripSeller (参加者側に一致)
    • その他のフィールドはすべてデフォルトを受け入れる。
  2. [データ パレット] で roundtripSellerControl (ebXML コントロール) を右クリックし、[Edit] を選択します。
  3. ソース ビューで、public void request(XmlObject payload); という行を public void processOrder(OrderDocument payload); に置き換えます。
  4. public void processOrder(OrderDocument payload); の横の警告をダブルクリックして、Import’OrderDocument’(com.bea.tutorial.order) を選択します。
  5. 警告記号が表示されなくなります。

  6. ソース ビューで、public void response(XmlObject payload); という行を public void onInvoice(InvoiceDocument payload); に置き換えます。
  7. public void onInvoice(InvoiceDocument payload); の横の警告をダブルクリックします。
  8. 図 3-19



  9. Import’InvoiceDocument’(com.bea.tutorial.invoice) を選択します。
  10. [ファイル|保管] の順に選択するか、〔Ctrl〕+〔S〕を押して、変更を保存します。
  11. ウィンドウの右上隅にある [x] をクリックして、ebXML ソース ビューを閉じます。

これで、roundtripSeller (ebXML) コントロールのコンフィグレーションが完了しました。次の手順では、この ebXML コントロールのメソッドに関連付けるコントロール ノードを作成します。

ebXML コントロール ノードを作成およびコンフィグレーションするには
  1. [データ パレット] で、roundtripSeller (ebXML) コントロールを展開します。
  2. Client Request ノードの下に表示される対象に void processOrder(OrderDocument payload) メソッドをドラッグ アンド ドロップします。
  3. [データ パレット] の XML リストにある order: OrderDocument 変数を processOrder ノードにドラッグ アンド ドロップします。
  4. void onInvoice (InvoiceDocument payload) コールバックを processOrder ノードの下に表示される対象にドラッグ アンド ドロップします。
  5. onInvoice ノードをダブルクリックします。
  6. [データの受信] をクリックします。
  7. [割り当てる変数を選択します :] ドロップダウン リストから [変数の新規作成...] を選択します。
  8. invoice という新しい変数を作成します。
  9. [OK] をクリックします。
  10. [閉じる] をクリックします。
  11. BuyerFile という新しいファイル コントロールを作成し、次のコンフィグレーションを使用して invoice.xml を <ホーム ディレクトリ>\tptutorial\buyer ディレクトリに書き出すようにコンフィグレーションします。
    • [フィールド名] : File
    • [名前] : BuyerFile
    • [ディレクトリ名] : /tptutorial/buyer
    • 注意 : お使いのハード ドライブに C:\tptutorial\buyer と言う新しいディレクトリを作成します。
    • [ファイル名フィルタ] : invoice.xml
    • [データのタイプ] : XmlObject
  12. [データ パレット] の [コントロール] の下にあるファイル コントロールを展開して、FileControlPropertiesDocument write(XmlObject someData) メソッドを選択します。
  13. 選択したメソッドをデザイン ビューにドラッグして、OnInvoice ノードの下にドロップします。
  14. 新しい write ノードをダブルクリックします。
  15. write ノードのビルダが呼び出されます。

  16. [データの送信] をクリックして、invoice 変数を選択します。
  17. [閉じる] をクリックします。
  18. onInvoice ノードで右クリックして、[タイムアウト パスを追加] を選択します。
  19. [タイムアウト パス] を選択し、[JPD コンフィグレーション] ペインで次のプロパティをコンフィグレーションします。
    • [期間] : 10s
    • [再試行回数] : 5

これで、コントロールの追加が完了しました。次の手順では、Client Response ノードを追加して、invoice 変数の内容を返すようにコンフィグレーションします。

Client Response ノードを作成およびコンフィグレーションするには
  1. Client Response ノードを [ノード パレット] から onInvoice ノードの下に表示される対象にドラッグ アンド ドロップします。
  2. Client Response ノードをダブルクリックします。
  3. メソッド名を onBuyerComplete に変更します。
  4. [追加] をクリックして、XML リストから Invoice パラメータ (b2binvoice.xsd の下) を選択します。
  5. [データの送信] をクリックします。
  6. [割り当てる変数を選択します :] ドロップダウン リストから invoice 変数を選択します。
  7. [閉じる] をクリックします。

これで、このサンプルの購入者側はほぼ完了しましたが、トレーディング パートナの ID はまだ指定されていません。前述のサンプルでは、この ID を ebXML コントロールに静的な値として指定した上で、ID を実行時にペイロードから取得するコントロールをコンフィグレーションしました。このサンプルでは、XQuery セレクタを使用してプロセス XML 変数に ID を指定します。

XML 変数にトレーディング パートナ ID を指定するには
  1. [データ パレット] で、roundtripSellerControl をクリックします。
  2. [プロパティ] ペインで、ebxml 属性のセクションを見つけます。
  3. 前述のサンプルでは、コントロール定義 (Java ファイル) に ebXML 属性を指定しました。そうした属性の値は、コントロールが使用される場所であればどこでも適用されます。ここでは、コントロール インスタンスの属性を指定します。これは、このビジネス プロセスで宣言されているコントロールのインスタンスにのみ適用されます。

  4. [serviceName] フィールドに、RoundtripSeller と入力します。
  5. 注意 : この値は、コントロール定義ファイルにすでに指定されている場合にも、再び指定する必要があります。これは、コンフィグレーションの必須フィールドがコントロール定義ファイルから継承されないため、代わりにコントロールの各インスタンスに指定する必要があるためです。
  6. [受信者セレクタ(L) :] フィールドに、declare namespace ns0="bea.com/tutorial/order"data($order/ns0:Supplier_ID) と入力します。

これで、購入者側が完了しました。WebLogic テスト ブラウザを使用してプロセスの実行とテストが可能です。

ビジネス プロセスをテストするには
  1. [パッケージ・エクスプローラー] ペインで、RoundtripBuyer.java ビジネス プロセスを選択して右クリックします。
  2. [実行] をクリックし、[サーバーで実行] をクリックします。
  3. サーバが起動し、サーバ上にアプリケーションがデプロイされます。

  4. アプリケーションがデプロイされた後で、テスト ブラウザが表示されます。
  5. [テスト フォーム] を選択します。
  6. [テスト フォーム] ページで、[参照...] をクリックし、xml 変数 (ペイロード) のフィールドに <ホーム ディレクトリ> \myapps\tptutorialapps\ebXML\ebXMLWeb\sampledata\sampleorder.xml と入力します。
  7. [startBuyer] をクリックします。
  8. テスト データの Supplier_ID フィールドに正しいトレーディング パートナ ID (000000002) があることを確認します。
  9. [更新] リンクをクリックすると、コールバック メソッドが表示されます。
  10. order.xml ファイルが C:\tptutorial ディレクトリに正しく書き出されているかを確認します。これには、ファイルのタイム スタンプが正しいかどうかをチェックします。
  11. invoice.xml ファイルが C:\tptutorial\buyer ディレクトリに正しく書き出されているかを確認します。これには、ファイルのタイム スタンプが正しいかどうかをチェックします。

 


手順 6 : パブリック/プライベート パターンの実装

このサンプルでは、サブプロセスを使用してパブリック/プライベート パターンを実装する方法について説明します。このパターンを使用すると、バックエンドの統合に関する詳細をプライベート プロセスの定義に限定し、パブリック プロセスの定義をトレーディング パートナとの会話専用に保つことができます。このサンプルで説明する手順は、次のとおりです。

PublicBuyer ビジネス プロセスの構築

このサンプルでは、前述のサンプルで作成したファイルのうち一部を再利用します。

  1. [パッケージ・エクスプローラー] ペインで、ebxmlWeb を展開して、src を選択します。
  2. src を右クリックして、[新規|パッケージ] の順に選択します。
  3. [Java パッケージ] ダイアログ ボックスが表示されます。

  4. [名前] フィールドに ebxml.publicprivate と入力して、[完了] をクリックします。
  5. ebxmlWeb\src の下に ebxml.publicprivate パッケージが表示されます。

  6. ebxml.roundtrip フォルダの RoundtripBuyer.java をクリックし、〔Ctrl〕キーを押しながら publicprivate フォルダまでドラッグします。
  7. マウス ボタンを放します。
  8. RoundtripBuyer.java ファイルのコピーが publicprivate フォルダ内に作成されます。

    注意 : ビジネス プロセス ファイルを複製した場合、コントロール ファイルを格納するフォルダを複製しても、新しいコピーでは依然として同じ (古い) コントロールが参照されます。
  9. 新しいビジネス プロセスを右クリックして、[リファクタリング|名前変更] の順に選択します。
  10. 注意 : ビジネス プロセスの名前を変更するためには、事前に WebLogic Server を停止することが必要な場合もあります。停止するには、[ツール|WebLogic ServerStop|WebLogic Server] の順に選択します。
  11. PublicBuyer と入力して、[OK] をクリックします。
  12. PublicBuyer を右クリックして、[生成|プロセス コントロール] の順に選択します。
  13. [OK] をクリックします。
  14. publicprivate フォルダに、新しいコントロール定義ファイル (PublicBuyerPControl.java) が作成されます。このコントロールを他のプロセスで使用すると PublicBuyer.java ビジネス プロセスを呼び出せます。このコントロールを PrivateBuyer ビジネス プロセスで使用して、PublicBuyer プロセスを呼び出します。

  15. onInvoice ノードで右クリックして、[タイムアウト パスを追加] を選択します。
  16. [タイムアウト パス] を選択し、[JPD コンフィグレーション] ペインで次のプロパティをコンフィグレーションします。
    • [期間] : 10s
    • [再試行回数] : 5
  17. BuyerFile という新しいファイル コントロールを作成し、次のコンフィグレーションを使用して invoice.xml を <ホーム ディレクトリ>\tptutorial\publicprivate ディレクトリに書き出すようにコンフィグレーションします。
  18. 注意 : お使いのハード ドライブに C:\tptutorial\publicprivate という新しいディレクトリを作成します。
    • [フィールド名] : File
    • [名前] : PublicFile
    • [ディレクトリ名] : /tptutorial/publicprivate
    • [ファイル名フィルタ] : publicinvoice.xml
    • [データのタイプ] : XmlObject
  19. [データ パレット] の [コントロール] の下にあるファイル コントロールを展開して、FileControlPropertiesDocument write(XmlObject someData) メソッドを選択します。
  20. 選択したメソッドをデザイン ビューにドラッグして、OnInvoice ノードの下にドロップします。
  21. 新しい write ノードをダブルクリックします。
  22. write ノードのビルダが呼び出されます。
  23. [データの送信] をクリックして、invoice 変数を選択します。
  24. [閉じる] をクリックします。

PrivateBuyer ビジネス プロセスの構築

この節では、これまでのサンプルで学んだタスクに基づいて構築を行います。以降のタスクを完了するにあたってより詳細な説明が必要な場合、いつでも「Buyer ビジネス プロセスの構築」に戻って参照してください。

  1. ebxml.publicprivate フォルダに PrivateBuyer という新しいビジネス プロセスを作成します。
  2. [開始イベント] をダブルクリックして [クライアント要求で呼び出す] を選択します。
  3. Client Request ノードを次のようにコンフィグレーションします。
    • [メソッド名] : startPrivateBuyer
    • 予期されるパラメータ型 : XML リストの b2border.xsd スキーマからの Order。
    • [データの受信] タブ : order という新しい XML 変数を作成。
  4. [ノード パレット] から Client Response ノードを追加します。
  5. Client Response ノードを次のようにコンフィグレーションします。
    • [メソッド名] : onPrivateBuyerComplete
    • 予期されるパラメータ型 : XML リストの b2binvoice.xsd スキーマからの Invoice。
    • [データの送信] タブ : Invoice 型の invoice という新しい XML 変数を作成し、メソッドに割り当てられるように指定する。
  6. PublicBuyerPControl.java を [パッケージ・エクスプローラー] ペインから [データ パレット] にドラッグ アンド ドロップします。
  7. publicBuyerPControl のインスタンスが [データ パレット] の [コントロール] リストに追加されます。

  8. 新しいプロセス コントロールを展開します。
  9. startBuyer メソッドを Client Request ノードの後に表示される対象にドラッグ アンド ドロップします。
  10. order 変数を [データ パレット] の XML リストの下から startBuyer ノードにドラッグ アンド ドロップします。
  11. onBuyerComplete メソッドを、[データ パレット] 内の [コントロール] リストから startBuyer ノードの後に表示される対象にドラッグ アンド ドロップします。
  12. invoice 変数を [データ パレット] の XML リストの下から onBuyerComplete ノードにドラッグ アンド ドロップします。
  13. [保管] をクリックします。
  14. onBuyerComplete ノードで右クリックして、[タイムアウト パスを追加] を選択します。
  15. [OnBuyerComplete] パスを選択し、[JPD コンフィグレーション] ペインで次のプロパティをコンフィグレーションします。
    • [期間] : 10s
    • [再試行回数] : 5

これで、購入者側のビジネス プロセスが完了しました。

PrivateSeller ビジネス プロセスの構築

以降の節のタスクを完了するにあたって詳細な説明が必要な場合は、いつでも「Seller ビジネス プロセスの構築」に戻って参照してください。

  1. ebxml.publicprivate フォルダに、PrivateSeller という新しいビジネス プロセスを作成します。
  2. そのプロセスが Client Request ノードから呼び出されるようにコンフィグレーションします。
  3. Client Request ノードを次のようにコンフィグレーションします。
    • [メソッド名] : privateProcessOrder
    • 予期される変数の型 : b2border.xsd スキーマからの Order。
    • [データの受信] タブ : Order 型の order という新しい変数を作成し、メソッドに割り当てられるように指定する。
  4. [ノード パレット] から Client Response ノードをビジネス プロセスの Client Request ノードの後に追加します。
  5. Client Response ノードを次のようにコンフィグレーションします。
    • [メソッド名] : onPrivateInvoice
    • 予期される変数の型 : b2binvoice.xsd スキーマからの Invoice。
    • [データの送信] タブ : Invoice 型の invoice という新しい変数を作成し、メソッドに割り当てられるように指定する。
    • プライベート プロセスの処理にはいくつかオプションがあります。このサンプルでは分かりやすくするため、ファイル ディレクトリ システムとのデータの読み書きに、単純なファイル コントロールを使用します。

  6. File.java を [パッケージ・エクスプローラー] の ebxml.oneway フォルダから [データ パレット] にドラッグ アンド ドロップします。
  7. FileControlPropertiesDocument write メソッドを Client Request ノードの後に表示される対象にドラッグ アンド ドロップします。
  8. write ノードをダブルクリックします。
  9. [データの送信] をクリックして、[割り当てる変数を選択します] から order 変数を選択します。
  10. InvoiceFile.java を [パッケージ・エクスプローラー] の ebxml.roundtrip フォルダから [データ パレット] にドラッグ アンド ドロップします。
  11. read メソッドを write ノードの下に表示される対象にドラッグ アンド ドロップします。
  12. XMLObject read() ノードをダブルクリックします。
  13. read ノードをダブルクリックします。
  14. [データの受信] をクリックします。
  15. このメソッドでは型なしの XML (XmlObject) が予期されますが、ここで invoice.xml ファイルには型付きの XML が含まれています。そのため、この 2 つの間で単純なトランスフォーメーションが必要になります。

  16. [トランスフォーメーション] オプションを選択します。
  17. [変数の選択] をクリックして、ドロップダウン メニューから invoice を選択します。
  18. [トランスフォーメーションの作成] をクリックします。
  19. [トランスフォーメーション ツール] ウィンドウが開きます。

  20. XmlObjectDoc を [ソース] スキーマ ペインから [対象] スキーマ ペインの Invoice ルートにドラッグ アンド ドロップします。
  21. XQuery トランスフォーメーションが作成され、対応するトランスフォーメーション コントロールが PrivateSellerTransformation.java ファイル内に作成および格納されます。このファイルはトランスフォーメーション ツールを開いたときに [パッケージ・エクスプローラー] ペインに作成されたものです。

  22. [トランスフォーメーション ツール] ウィンドウの右上隅にある [x] をクリックして、このウィンドウを閉じます。
  23. [リソースの保管] ダイアログ ウィンドウで、[はい] をクリックします。
  24. ノード ビルダの [閉じる] をクリックします。
  25. 作業内容を保存します。
  26. PrivateSeller.java を右クリックして、[生成|プロセス コントロール] の順に選択します。

これで、PrivateSeller ビジネス プロセスの構築が完了しました。次の節では、会話の販売者側のパブリック プロセスを作成します。

PublicSeller ビジネス プロセスの構築

PublicSeller ビジネス プロセスの作成においては、前述のサンプルで作成したファイルのうちの一部を再利用します。この節のタスクを完了するにあたっては、前述の「Seller ビジネス プロセスの構築」で詳細な指示を参照できます。

  1. ebxml.roundtrip フォルダから ebxml.publicprivate フォルダに、〔Ctrl〕キーを押しながら RoundtripSeller.java ファイルをドラッグ アンド ドロップします。
  2. 新しいプロセス ファイルを右クリックして、[リファクタリング|名前変更] の順に選択します。
  3. PublicSeller と入力します。
  4. PublicSeller をダブルクリックします。
  5. ソース ビュー タブをクリックします。
  6. [プロパティ] ペインで、ebxml-service-namePublicSeller に変更します。
  7. デザイン ビュー をクリックします。
  8. write ノードを削除します。
  9. read ノードを削除します。
  10. [データ パレット] の [コントロール] セクションで、3 つのコントロール インスタンス (file、invoiceFile、transformations) をすべて削除します。
  11. [パッケージ・エクスプローラー] ペインから [データ パレット] に PrivateSellerPControl.java ファイルをドラッグ アンド ドロップします。
  12. [データ パレット] で privateSellerPControl を展開します。
  13. privateProcessOrder メソッドを Receive Request ノードのすぐ下に表示される対象にドラッグ アンド ドロップします。
  14. [データ パレット] の XML リストから privateProcessOrder ノードに order 変数をドラッグ アンド ドロップします。
  15. onPrivateInvoice メソッドを privateProcessOrder ノードのすぐ下に表示される対象にドラッグ アンド ドロップします。
  16. [データ パレット] の XML リストから onPrivateInvoice ノードに invoice 変数をドラッグ アンド ドロップします。
  17. onPrivateInvoice ノードで右クリックして、[タイムアウト パスを追加] を選択します。
  18. [タイムアウト パス] を選択し、[JPD コンフィグレーション] ペインで次のプロパティをコンフィグレーションします。
    • [期間] : 10s
    • [再試行回数] : 5

これで、会話の販売者側が完了しました。このパブリック プロセスでは ebXML でメッセージを受信し、プライベート プロセスに渡します。プライベート プロセスでは応答時にパブリック プロセスにコールバックし、そこから開始者トレーディング パートナに ebXML で請求書情報が返されます。

このサンプルの実行やテストを行う前には、次に示す最終調整を実施する必要があります。

  1. PublicBuyer.java をダブルクリックします。
  2. [データ パレット] で roundtripSellerControl を選択します。
  3. [プロパティ] ペインで、参加者側に一致するよう ebxml-service-namePublicSeller に変更します。

パブリック/プライベート パターン サンプルのテスト

  1. PublicSeller.java を開きます。
  2. [実行|サーバで実行] の順にクリックします。
  3. WorkSpace Studio に戻って PrivateBuyer.java を開きます。
  4. [実行サーバで実行] をクリックします。
  5. サーバが起動し、サーバ上にアプリケーションがデプロイされます。

  6. アプリケーションがデプロイされた後で、テスト ブラウザが表示されます。
  7. [テスト フォーム] をクリックします。
  8. 次のいずれかの方法でテスト データを入力します。
    • [参照...] をクリックして、C:\myapps\tptutorialapps\ebXML\ebXMLWeb\sampledata\sampleorder.xml に移動します。
    • C:\myapps\tptutorialapps\ebXML\ebXMLWeb\sampledata\sampleorder.xml の内容を xml 変数 (ペイロード) のフィールドにカット アンド ペーストします。
  9. 数秒後にブラウザを更新します。callback.onPrivateBuyerComplete のログ エントリに、請求書ドキュメントを伴う応答の内容が格納されます。
  10. order.xml ファイルが C:\tptutorial ディレクトリに正しく書き出されているかを確認します。これには、ファイルのタイム スタンプが正しいかどうかをチェックします。
  11. invoice.xml ファイルが C:\tptutorial\publicprivate ディレクトリに正しく書き出されているかを確認します。これには、ファイルのタイム スタンプが正しいかどうかをチェックします。

 


手順 7 : TPM コントロールとコールバックの使用

このサンプルでは、トレーディング パートナ管理 (TPM) のリポジトリから、TPM コントロールを使用して実行時にトレーディング パートナ情報を取得する方法を説明します。また、ebXML コントロールの onAck コールバックの使用方法についても示します。このサンプルでは、ebXML メッセージを送信して ebXML の確認応答を待機します。リモート パートナがオフラインである、ローカルおよびリモートのトレーディング パートナの TPM プロトコル バインディングに「once and only once」または「at least once」という配信セマンティックがあるといった理由で、確認応答がタイムアウトになると、該当するリモートのトレーディング パートナに電子メールでアラートが送信されます。この電子メールのアドレスを取得するには、TPM コントロールで TPM データベースに問い合わせます。

このサンプルの節は次のとおりです。

BuyerAlert ビジネス プロセスの構築

これまでの節で学んだ技術を使用して、次のタスクを完了します。

BuyerAlert ビジネス プロセスを作成するには
  1. 使用するプロジェクトのルートである ebxmlWeb/src の下に tpm という新しいパッケージを作成します。
  2. BuyerAlert という新しいプロセス ファイルを追加します。
  3. このビジネス プロセスが Client Request ノードで呼び出されるようにコンフィグレーションします。
  4. Client Request ノードを次のようにコンフィグレーションします。
    • [一般的な設定] タブで、[パラメータのタイプ] に XmlObject と String を追加する。
    • [データの受信] タブで、payload という新しい XmlObject 変数と、partnerId という新しい String 変数を作成する。それらを選択し、対応するメソッドに割り当てられるようにします。
    • [閉じる] をクリックする。
  5. ebXML コントロールを追加して、次のようにコンフィグレーションします。
    • [ファイル名] : sellerControl
    • [名前] : SellerControl
    • [ebxml-service-name] : デプロイされている実際の参加者サービスに対応していない任意の値を使用
    • その他のフィールドはすべてデフォルトを受け入れる
  6. [データ パレット] から、sellerControl の request メソッドを Client Request ノードの下に表示される対象にドラッグ アンド ドロップします。
  7. payload 変数を request ノードにドラッグ アンド ドロップします。
  8. onAck コールバックを request ノードの下に表示される対象にドラッグ アンド ドロップします。
  9. このコールバックは、前の手順で送信された ebXML メッセージが確認応答されたときに発生します。確認応答が到着しない場合は、次の手順でトレーディング パートナにアラートを送信するロジックを追加します。

  10. onAck ノードを右クリックします。
  11. ドロップダウン メニューから [タイムアウト パスを追加] を選択します。
  12. [JPD コンフィグレーション] ペインで、タイマーの [期間] の値として 10s と入力して 10 秒を指定します。
TPM コントロールを作成してプロセスに追加するには
  1. [データ パレット] の [コントロール] セクションで、[Integration コントロール|TPM] の順に選択して、新しい TPM コントロールを作成します。
  2. 変数名として tpm と入力します。
  3. [終了] をクリックします。
  4. TPM コントロールの詳細については、「TPM コントロール」を参照してください。

  5. 新しい TPM コントロールを展開します。
  6. TradingPartnerDocument getBasicProperties(String partnerId) をタイマーの下のタイムアウト パスに表示される対象にドラッグ アンド ドロップします。
  7. getBasicProperties ノードをダブルクリックします。
  8. [データの送信] をクリックします。
  9. [割り当てる変数を選択します :] ドロップダウン リストから partnerId を選択します。
  10. [データの受信] をクリックします。
  11. TradingPartnerDocument 型の basicPartnerInfo という新しい変数を作成し、メソッドに割り当てられるように指定します。
  12. [閉じる] をクリックします。
電子メール コントロールを作成してビジネス プロセスに追加するには
  1. [データ パレット] の [Integration コントロール] ドロップダウン メニューから [電子メール] を選択します。
  2. 電子メール コントロールを次のようにコンフィグレーションします。
    • [ファイル名] : alert
    • [名前] : Alert
    • [SMTP ホスト] : <お使いの SMTP ホスト名 (例 : mail.mycompany.com)>
    • [from-address] : <返信用アドレス (例 : admin@mycompany.com)>
    • [from-name] : <名前 (例 : Administrator)>
    • [body-type] : String
    • 電子メール コントロールの詳細は、「電子メール コントロール」を参照してください。

  3. 新しい電子メール コントロールを展開します。
  4. sendEmail メソッドをタイムアウト パスの getBasicProperties ノードの後に表示される対象にドラッグ アンド ドロップします。
  5. sendEmail ノードをダブルクリックします。
  6. [データの送信] をクリックします。
  7. [トランスフォーメーション] オプションを選択します。
  8. [変数の選択] をクリックし、basicPartnerInfo を選択します。
  9. [トランスフォーメーションの作成] をクリックします。
  10. email リーフを [ソース] スキーマから [対象] スキーマの arg1 (電子メールの「宛先」フィールドに対応) リーフにドラッグ アンド ドロップします。
  11. arg4 (電子メールの「件名」フィールドに対応) で右クリックします。
  12. [定数の作成] を選択します。
  13. Problem Sending Order と入力します。
  14. [OK] をクリックします。
  15. arg5 (電子メールの本文に対応) で右クリックします。
  16. [定数の作成] を選択します。
  17. We encountered a problem while sending you an order と入力します。
  18. [OK] をクリックします。
  19. [トランスフォーメーション ツール] の右上隅にある [x] をクリックして閉じます。
  20. [リソースの保管] ダイアログで [はい] をクリックします。
  21. ノード ビルダの [閉じる] をクリックします。

このサンプルの最後の手順では、使用する ebXML コントロール内のターゲット トレーディング パートナの ID を指定します。この手順を完了するため、このサンプルではコントロールの setProperties メソッドを使用します。

ターゲット トレーディング パートナ ID を指定するには
  1. [データ パレット] で、ebXML コントロールの下にある setProperties メソッドを選択します。
  2. このメソッドを Client Request ノードと request ノードの間に表示される対象にドラッグ アンド ドロップします。
  3. setProperties ノードをダブルクリックします。
  4. [データの送信] をクリックします。
  5. [トランスフォーメーション] オプションを選択します。
  6. 変数として partnerId を選択します。
  7. [トランスフォーメーションの作成] をクリックします。
  8. string 変数を [ソース] スキーマ ペインから [対象] スキーマ ペインの「to」要素にドラッグします。
  9. トランスフォーメーションを閉じて保存します。
  10. ノード ビルダを閉じます。

このサンプルをテストする前には、トレーディング パートナ プロファイルに電子メールアドレスを指定する必要があります。

トレーディング パートナ プロファイルの電子メール アドレスを指定するには
  1. WebLogic Server が起動していない場合は起動します。
  2. WebLogic Server の起動後に、[実行|WebLogic Integration|WebLogic Integration Administration Console] の順に選択して、WebLogic Administration Console を開きます。
  3. 手順 1 : 新しい WebLogic Integration ドメインの作成」で指定したサーバ ユーザ名とパスワードを使用して、WebLogic Administration Console にログインします。
  4. [トレーディング パートナ管理] をクリックします。
  5. [プロファイル管理] をクリックします。
  6. [Test_TradingPartner_2] をクリックします。
  7. [プロファイルを編集] をクリックします。
  8. [電子メール] フィールドに、電子メールを入力します。これが、アラート メッセージの配信先となります。
  9. [送信] をクリックします。
  10. WebLogic Administration Console を閉じます。

BuyerAlert ビジネス プロセスのテスト

  1. BuyerAlert.java を選択します。
  2. [実行|サーバで実行] の順にクリックします。
  3. BuyerAlert ビジネス プロセスをテストします。
  4. XML データをペイロードとして指定します。
  5. string パラメータに 000000002 と入力します。
  6. プロセスが完了したら、アラート メッセージの電子メールを確認します。
  7. こうした電子メールは、エラーが発生して、コントロールの設定時に指定したアドレスへ電子メールを送信する電子メール コントロールがトリガされると送信されます。

 


手順 8 : ディレクトリ名に基づいたパートナ ID の動的な設定

このサンプルでは、このチュートリアルが格納されていた ZIP アーカイブと共に配布されている構築済みのアプリケーションを参照します (「手順 3 : チュートリアル ファイルのインストール」を参照)。このサンプルでは、お使いのハード ドライブ上のサブディレクトリ名をパートナ ID として使用し、ebXML コントロールの setProperties メソッドで動的に設定する方法について説明します。このサンプルの節は次のとおりです。

サンプルの開始者側の確認

このサンプルでは、まずアプリケーションの開始者側について確認します。これまでの節で学んだ技術を使用して、次のタスクを完了します。

サンプルの開始者側を設定するには
  1. お使いのハード ドライブに次の 2 つのディレクトリを作成します。
    • C:\tptutorial\binary-out\dynamic\000000002
    • C:\tptutorial\binary-in\dynamic\000000001
  2. ebxmlWeb/src に新しいパッケージを作成し、ebxml.oneway.binary.advanced という名前を付けます。
  3. ebxml.oneway.binary.advanced を右クリックして、ドロップダウン メニューから [インポート] を選択します。
  4. [インポート] ダイアログ ボックスが表示されます。

  5. [インポート] ダイアログ ボックスで、[ファイル・システム] を選択して、[次へ] をクリックします。
  6. [ファイル・システム] ウィンドウで From ディレクトリの横にある [参照] をクリックし、[unzip location]\tptutorialapps\ebxml\ebxmlWeb\src\ebxml\oneway\binary ディレクトリの advanced フォルダに移動します。ここで、 [unzip location] は「手順 3 : チュートリアル ファイルのインストール」でチュートリアルのアーカイブを解凍した場所です。
  7. [すべて選択] をクリックします。
  8. [終了] をクリックします。
  9. [パッケージ・エクスプローラー] ペインで、ebxml.oneway.binary.advanced フォルダを展開します。
  10. DynamicBinaryBuyer.java をダブルクリックします。
  11. デザイン ビューで DynamicBinaryBuyer.java が開きます。

DynamicBinaryBuyer プロセスのコンフィグレーションを確認するには
  1. このアプリケーションでは、サブ ディレクトリの名前をパートナ ID として使用し、ebXML コントロールの setProperties メソッドを使用して動的に設定します。任意のノードをダブルクリックすると、次のことが分かります。
    • このビジネス プロセスは RawData メッセージによって呼び出される。このメッセージは開始イベントで Subscription ノードを通じてサブスクライブするチャネルから受信されます。
    • Extract partner id ノードには、受信されるメッセージからパートナ ID を抽出するカスタム Java コードが含まれている。ビジネス プロセス内にカスタム Java コードを記述する方法については、「Perform ノードでのカスタム Java コードの記述」を参照してください。
    • setProperties ノードでは、トレーディング パートナ ID を取得して文字列変数に割り当てる。この変数は ebXML エンベロープの「to」パラメータに対応するものです。
    • request からメッセージがトレーディング パートナに送信される。
  2. [パッケージ・エクスプローラー] ペインで、\Schemas\src\tptutorial.channel ファイルをダブルクリックします。
  3. デザイン ビューにチャネル ファイルが開きます。

  4. ソース ビューに移動し、このチャネル ファイルに次の行を追加します。
  5. <channel name="TutorialChannel" messageType="rawData"
    qualifiedMetadataType="eg:FileEventGenerator"/>

    この行では、ファイル イベント ジェネレータによるイベントで送信されるメッセージをリスンする新しいチャネルが指定されます。すべてのイベント ジェネレータと一部のアプリケーションでは、メッセージと共にメタデータを送信します。

プロセスの次の手順では、WebLogic Integration Administration Console でファイル イベント ジェネレータに新しいルールを追加して、お使いのハード ドライブの正しいフォルダをリスンするようにします。

ファイル イベント ジェネレータで新しいルールを追加するには
  1. WebLogic Server が起動していない場合は起動します。
  2. WebLogic Server の起動後に、WorkSpace Studio メニューから [実行|WebLogic Integration|WebLogic Integration Administration Console] の順に選択して、WebLogic Administration Console を開きます。
  3. 手順 1 : 新しい WebLogic Integration ドメインの作成」で指定したサーバ ユーザ名とパスワードを使用して、WebLogic Administration Console にログインします。
  4. 左ペインの [イベント ジェネレータ] をクリックします
  5. 左ペインで [ファイル|新規作成] の順にクリックします
  6. [新しいファイル イベント ジェネレータの作成] ページが開きます。

  7. [ジェネレータ名] として TPTutorial2 と入力します。
  8. [送信] をクリックします。
  9. [ファイル イベント ジェネレータ定義] ページが開きます。

  10. [新しいチャネル ルールを定義] をクリックします。
  11. [ファイル ジェネレータ チャネル ルール定義] ページが開きます。

  12. 次のパラメータを入力します。
    • [ファイル タイプ] : [ディスク ファイル]
    • [チャネル名] : /SamplePrefix/Samples/TutorialChannel (rawData)
    • [メッセージ エンコーディング] : 空白のまま
    • [ディレクトリ] : /tptutorial/binary-out/dynamic
    • [ファイル名で渡す] : [いいえ]
    • [サブディレクトリをスキャン] : [はい]
    • [ファイル パターン] : 空白のまま、デフォルトで *.* となる
    • [到着順にソートしますか?] : [いいえ]
    • [ポーリング間隔] : 3 秒 (長期間の待機を回避するのに十分な短さとする)
    • [読み込み制限] : 0
    • [読み込み後のアクション] : [削除]
    • [アーカイブ ディレクトリ] : 空白のまま
    • [エラー ディレクトリ] : /tptutorial/errors
    • [説明] : Raw Data ファイル
  13. [送信] をクリックします。
  14. WebLogic Integration Administration Console を閉じます。

これで、アプリケーションの構築とテストの準備ができました。

DynamicBinaryBuyer プロセスをテストするには
  1. 構築およびデプロイする DynamicBinaryBuyer.java をクリックします。
  2. C:\tptutorial\binary-out\dynanmic\000000002 ディレクトリにバイナリ ファイルを配置します。
  3. 非表示となるファイルがトレーディング パートナに配信されます。

これで、このサンプルの開始者側の手順が完了しました。

サンプルの参加者側の確認

次の手順では参加者側について確認します。これまでのサンプルで学んだ技術を使用して、次のタスクを完了します。

サンプルの参加者側を確認するには
  1. DynamicBinarySeller.java をダブルクリックします。
  2. DynamicBinarySeller.javaデザイン ビューで開きます。

  3. Receive request ノードをダブルクリックすると、ペイロード用と ebXML エンベロープ用の 2 つのパラメータ型があることが分かります。
  4. ノード ビルダを閉じます。
  5. Receive request ノードを右クリックして、[コードの表示] を選択します。
  6. request メソッドを選択して、[JPD コンフィグレーション] ペインで ebxml-method エンベロープにパラメータが入力されていることを確認します。{env} パラメータは ebXML エンベロープが 2 番目のパラメータ env に配置されることを示します。
  7. [デザイン] タブをクリックします。
  8. [データ パレット] で、baseDirectory 変数を選択します。[プロパティ] ペインで、変数の値が「/tptutorial/binary-in/dynamic/」となっていることを確認します。これは、アプリケーションでトレーディング パートナ ID として使用するサブディレクトリ名の読み込み元となるベース ディレクトリです。
  9. 残りの 2 ノードは次のとおりです。
    • setProperties : ebXML エンベロープとディレクトリ ベースの文字列との「開始者」ID を連結するトランスフォーメーションが指定されたファイル コントロール上で、setProperties を呼び出す。トランスフォーメーションを確認するには、[パッケージ・エクスプローラー] ペインの DynamicBinarySellerfileSetProperties.xq をダブルクリックします。
    • write : このノードは、使用しているハード ドライブに作成したディレクトリに対するバイナリ ファイルの読み書きを行う。
サンプルをテストするには
  1. プロセスを実行してデプロイする DynamicBinarySeller.java を選択します。
  2. C:\tptutorial\binary-out\dynamic\000000002 ディレクトリにファイルをドロップし、そのファイルが数秒後に C:\tptutorial\binary-in\dynamic\000000001 ディレクトリに表示されることを確認します。

 


手順 9 : 分散設定の作成

これまでの全サンプルでは、開始者 (000000001) と参加者 (000000002) がいずれも同じ WebLogic Integration インスタンスに配置され、同一のデータベース リポジトリを使用しています。実際には、この 2 つの側は 2 つの物理的に別のシステムで動作することになります。このサンプルでは、分散設定に移行する方法について簡単に説明します。分散設定すると、000000001 と 000000002 が別々の WebLogic Integration インスタンスで動作するようになります。

  1. 2 番目の WebLogic インスタンスを別のマシンにインストールし、コンフィグレーションします。
    1. 手順 1 : 新しい WebLogic Integration ドメインの作成」で説明されている手順を完了します。
  2. WebLogic Integration Administration Console左ペインで [トレーディング パートナ管理] をクリックします。
  3. 1 番目の WebLogic Integration Server で、Test_Trading Partner_2 (000000002) トレーディング パートナの情報を次のように変更します。
    1. [トレーディング パートナ プロファイルの表示および編集] で、Test_TradingPartner_2(000000002) を [ローカル] から [リモート] に変更します。これには次の手順を実行します。
    • Test_TradingPartner_2 をクリックします。
    • [一般情報] の下にある [プロファイルを編集] をクリックします。
    • [トレーディング パートナ プロファイルの編集] ページの [種類] オプションで、ドロップダウン メニュー オプションから [リモート] を選択します。
    • [送信] をクリックします。
    1. [EndPoint URL] を次のように変更して ebXML 2.0 バインディングを変更します。
    • 左ペインの [バインディング] に移動して、[トレーディング パートナの選択] を選択します。
    • [トレーディング パートナの選択] ページで、ドロップダウン オプションから Test_TradingPartner_2 を選択し、[移動] をクリックします。
    1. [バインディングを編集] ページで TP2-ebxmlL20-binding を選択します。
    2. [バインディングの詳細を表示] ページが表示されるので、[バインディングを編集] をクリックします。
    3. [バインディングを編集] ページで [EndPoint URL] に 2 番目の WebLogic Integration サーバの適切なサーバおよびポートを入力します。
注意 : サンプルでは、デフォルトで ebXML 2.0 バインディングが使用されます。他のバインディングを使用する場合はそのバインディングに変更してください。
  1. 2 番目の WebLogic Integration サーバで、Test_TradingPartner_1 (000000001) を次のように変更します。
    1. [デフォルト] オプションの選択を解除します。
    2. [ローカル] から [リモート] に変更します。
    3. ebXML 2.0 バインディングを変更します。これには、[EndPoint URL] に 1 番目の WebLogic Integration サーバの正しいサーバおよびポートが含まれるように変更します。
  2. それぞれのサーバで WorkSpace Studio を起動して、チュートリアル アプリケーションを開きます。
  3. [サーバ ホーム ディレクトリ] フィールドが正しいパスに設定されるようにします。
  4. いずれのサンプルをテストする前にも、WebLogic テスト ブラウザで参加者側プロセスを実行して必ず構築およびデプロイが行われるようにします。

 


手順 10 : 非デフォルト プロトコル設定のコンフィグレーション

前述の各サンプルでは、開始者トレーディング パートナとプロトコル情報にデフォルト値を使用していました。デフォルト値は次のように使用されていました。

通常、プロダクション シナリオでは、トレーディング パートナ通信を制御するためのサービスおよびサービス プロファイル エントリを追加します。このサンプルでは、「手順 2 : 一方向 ebXML 交換による XML メッセージの送信」で作成した Seller および Buyer ビジネス プロセスを使用して、サービスおよびサービス プロファイルを追加する方法を説明します。内容は以下のとおりです。

参加者側のコンフィグレーション

Seller ビジネス プロセスが ebXML 通信の参加者となります。

  1. WebLogic Server が起動していない場合は起動します。
  2. WebLogic Server の起動後に、WorkSpace Studio から [実行|WebLogic Integration|WebLogic Integration Administration Console] の順に選択して、WebLogic Administration Console を開きます。
  3. 手順 1 : 新しい WebLogic Integration ドメインの作成」で指定したサーバ ユーザ名とパスワードを使用して、WebLogic Administration Console にログインします。
  4. 左ペインの [トレーディング パートナ管理] をクリックします。
  5. 左ペインの [サービス] で、[すべて表示] をクリックします。
  6. お使いのサーバに現在デプロイされている、すべての参加者プロセスのリストが表示されます。

  7. ebxmlWeb\ebxml\oneway\Seller.java をクリックします。
  8. [サービスの表示および編集] ウィンドウが開きます。

  9. [サービス プロファイルの追加] をクリックします。
  10. [サービス プロファイルの追加] ウィンドウが開きます。

  11. [名前] 行で、[ローカル] トレーディング パートナとして Test_TradingPartner_2 を選択します。これが Seller サービスを実際にホストするパートナです。
  12. [名前] 行で、[リモート] トレーディング パートナとして Test_TradingPartner_1 を選択します。これがサービスを使用するパートナです。
  13. [ローカル] および [リモート] バインディングの両方について、ebXML 2.0 バインディングを選択します。
  14. [送信] をクリックします。

開始者側のコンフィグレーション

開始者側では、リモート サービスを表す ebXML コントロールに対してサービスのコンフィグレーション情報が追加されます。

  1. [サービス] ペインで [新規作成] をクリックします。
  2. [名前] フィールドの横の [参照] をクリックします。
  3. お使いのサーバに現在デプロイされている参加者ビジネス プロセスと、現在デプロイされているプロセスから参照されているコントロールのリストが表示されます。

  4. ebxml.oneway.SellerControl をクリックします。
  5. [サービスの追加] をクリックします。
  6. [サービス プロファイルの追加] をクリックします。
  7. [名前] 行で、[ローカル] トレーディング パートナとして Test_TradingPartner_1 を選択します。これがローカル システムの開始者パートナです。
  8. [名前] 行で、[リモート] トレーディング パートナとして Test_TradingPartner_2 を選択します。これが実際のサービスをホストするリモート パートナです。
  9. [ローカル] および [リモート] バインディングの両方について、ebXML 2.0 バインディングを選択します。
  10. [送信] をクリックします。

これで、プロトコル設定の設定が完了しました。このチュートリアルの各サンプルについて、参加者側と開始者側のそれぞれに、対応するサービス エントリを作成できます。入力するサービス プロファイルの数に制限はありません。各サービス エントリでさまざまなプロトコル バインディングを参照するために必要な数だけ作成できます。


  ページの先頭       前  次