トレーディング パートナのチュートリアル
ebXML 言語 (Electronic Business using eXtensible Markup Language) は、企業がインターネット経由でビジネスを遂行するためのビジネス プロトコルです。WebLogic Workshop では、開始者プロセスに ebXML コントロールを、参加者プロセスに ebXML 参加者ビジネス プロセス テンプレートを使用し、トレーディング パートナ間で ebXML ビジネス メッセージを交換するビジネス プロセス システムを構築します。ebXML コントロールは、会話で ebXML メッセージの送受信を行う、事前定義のカスタマイズ可能メソッドを開始者ビジネス プロセスに提供します。ebXML 参加者ビジネス プロセス テンプレートは、ebXML 会話のパブリック参加者ビジネス プロセスを構築するための土台になります。ebXML 参加者ビジネス プロセスの構築でテンプレートは必須ではありませんが、テンプレートには、ebXML 開始者ビジネス プロセスと簡単に統合するために必要となるノードとビジネス プロセス注釈が含まれています。このチュートリアルの目的は、WebLogic Workshop と WebLogic Integration で ebXML トレーディング パートナ管理に使用できる、さまざまなオプションについて説明することです。
ここでは、このチュートリアルを使用する前に実行する必要があるタスクについて説明します。内容は以下のとおりです。
WebLogic Integration で ebXML ソリューションが実装されている方法について理解を深めるには、次の資料に目を通してください。
WebLogic Workshop でビジネス プロセスを構築する方法とデータ トランスフォーメーションを作成する方法について学習するには、次のチュートリアルを修了してください。
このチュートリアルでは、最初の数例で、WebLogic Workshop ユーザ インタフェースと WebLogic Integration Administration Console ユーザ インタフェースを使用して、例で概説されている手順を実行する方法について詳しく指示します。それに続く例は、最初の数節で学習する技能に基づいており、手順についてそれほど詳しく説明しません。
この節では、ビジネス プロセス アプリケーションの作成方法について説明します。ここでは、チュートリアルの例で必要になるビジネス プロセス、およびその他のコンポーネントを作成します。チュートリアル ファイルの ZIP アーカイブに含まれているサンプル データとスキーマのインポート方法についても説明します。
この例では、単純な一方向 ebXML 交換で、あるトレーディング パートナから別のトレーディング パートナに XML メッセージを送信する方法について説明します。参加者ビジネス プロセスと開始者ビジネス プロセスの作成方法、および ebXML コントロールと File コントロールの作成方法とコンフィグレーション方法について学習します。この節では、WebLogic Workshop テスト ブラウザを使用してビジネス プロセスのデプロイとテストを行う方法についても詳しく説明します。
この例は、前の例と似ていますが、トレーディング パートナ情報を ebXML コントロールで静的に指定するのではなく、XQuery セレクタを使用して動的に指定する方法について示します。ebXML コントロールをコンフィグレーションして、型付き XML データと特定メソッド名を使用する方法についても説明します。
この節では、Client Response ノードを参加者ビジネス プロセスに追加し、ebXML コントロール コールバック機能を使用して応答メッセージを送信することで、要求メッセージ (注文) の受信時に応答 (請求) メッセージを返送する ebXML 会話の実装方法について説明します。
この例では、サブプロセスを使用して、パブリック/プライベート パターンを実装する方法について説明します。パブリック/プライベート パターンを使用すると、バックエンド統合の詳細をプライベート プロセス定義に収容することができ、パブリック プロセス定義がトレーディング パートナ対話専用になります。
この例では、チュートリアル ファイルに組み込まれているビルド済みアプリケーションを調べ、サブディレクトリ名を読み取ってパートナ ID として使用する方法について学習します。ビジネス プロセスでは、ebXML コントロールに組み込まれている setProperties メソッドが使用されて、パートナ ID が動的に設定されます。
この例では、あるトレーディング パートナが、ある WebLogic Integration インスタンスで動作し、別のトレーディング パートナが、別のインスタンスで動作する分散設定に移行する方法について概説します。これは、2 つのトレーディング パートナが、物理的に離れた 2 つのシステムで動作するプロダクション シナリオで使用する設定です。
この節では、WebLogic Integration Administration Console でサービスとサービス プロファイルを追加し、トレーディング パートナ通信を制御できるようにする方法について学習します。
ebXML チュートリアルを始める前に、「チュートリアルのセットアップ」で説明した手順を実行する必要があります。この手順をまだ完了していない場合は、先に進む前にそれを実行してください。
この手順では、WebLogic Workshop を使用してアプリケーションを作成し、ebXML チュートリアル ビジネス プロセスを構築します。次に、チュートリアル ファイルに付属の ZIP アーカイブに含まれているサンプル データとスキーマをインポートします (「手順 3 : チュートリアル ファイルのインストール」を参照してください)。このサンプル データとスキーマは、ebXML チュートリアル例の機能について説明するために使用します。最後に、このチュートリアル全体でファイルの読み書きに使用する、2 つのディレクトリをハード ドライブに作成します。
WebLogic Integration では、WebLogic Workshop が拡張され、統合エンタープライズ アプリケーションを構築できるようになります。アプリケーションには、プロジェクトとファイルが含まれます。プロジェクトには、ビジネス プロセス、Web サービス、XML ファイルなど、複数のコンポーネントを含めることができます。この節では、ビジネス プロセス アプリケーションを作成し、後で ebXML チュートリアル プロセスとプロセス コンポーネントを構築します。
C:\myapps\tptutorialapps
に作成します。別の場所にディレクトリを作成するか、別の名前を使用する場合は、それに合わせて指示を変更してください。[アプリケーション] ペインには、アプリケーションで使用できるファイルとリソースが、階層構造で表示されます。このチュートリアルで使用するコンポーネントは次のとおりです。
ebXMLWeb — Web アプリケーション プロジェクト フォルダ。アプリケーションには必ず、1 つ以上のプロジェクトが含まれます。プロジェクトは、WebLogic Server Web アプリケーションを表します。言い換えると、プロジェクトを作成するということは、Web アプリケーションを作成することです。プロジェクト名は、クライアントがアプリケーションへのアクセスに使用する URL に組み込まれます。
Web アプリケーションは、ビジネス プロセス、Web サービス、JSP、サーブレット、HTML ページなど、Web リソースの集合を定義する J2EE デプロイメント ユニットであり、EJB などの外部リソースへの参照を定義できます。
注意 : Web アプリケーション プロジェクト フォルダは、アプリケーションに付けた名前に Web が付加された名前になります。
Schemas — アプリケーションで使用する XML スキーマとメッセージ ブローカ チャネル ファイルが含まれるスキーマ プロジェクト。ebXML メッセージのパッケージ化に使用する ebXML エンベロープ スキーマも含まれます。
このチュートリアルの最初の手順が完了し、チュートリアル ebXML ビジネス プロセスを作成する準備が整いました。ビジネス プロセス アプリケーションの詳細については、「ビジネス プロセス構築ガイド」(http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideIntro.html) を参照してください。
このチュートリアルでは、サンプル データ ファイルを使用して、ebXML メッセージで送信します。独自の XML データ ファイルを使用できますが、http://dev2dev.bea.com Web サイトからダウンロードした tptutorial.zip アーカイブでサンプル データ ファイルが提供されています (「手順 3 : チュートリアル ファイルのインストール」参照)。
[解凍場所]\tptutorialapps\ebxml\ebxmlWeb\sampledata
にナビゲートします。[解凍場所] は、tptutorial.zip からファイルを解凍したディレクトリです (「手順 3 : チュートリアル ファイルのインストール」参照)。
注意 : 前述の手順の代わりに、任意のファイル ブラウザ ディレクトリから WebLogic Workshop の [アプリケーション] ペインに、サンプル データ フォルダを単にドラッグして直接ドロップすることもできます。
このチュートリアルでは、ebXML メッセージで送信する XML データに、特別なスキーマを使用します。この節では、ebXML アプリケーションのスキーマ フォルダにスキーマをインポートする方法について説明します。
[解凍場所]\tptutorialapps\ebxml\Schemas
にナビゲートします。[解凍場所]
は、tptutorial.zip ファイルからファイルを解凍したディレクトリです (「手順 3 : チュートリアル ファイルのインストール」参照)。XSD ファイルか MFL ファイルをインポートすると、現行スキーマ プロジェクト フォルダのビルドがトリガされます。ビルドでは、スキーマ ファイルが適切にフォーマットされているかどうかが確認されます。XSD ファイルの場合は、XML スキーマの要素名と属性名が、現行スキーマ プロジェクト ファイルにすでにインポートされている XSD ファイルと矛盾しないことも確認されます。スキーマのインポート時に生成されるものについては、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/dtguide/dtguidemapperimportschemas.html にある「スキーマをインポートする」を参照してください。
ebXML でメッセージを交換する方法を学習するため、このチュートリアルの複数の例で、ハード ドライブのディレクトリにファイルを書き出したり、そこからファイルを読み取ったりします。このチュートリアルの例を始める前に、次の 2 つのディレクトリをハード ドライブに作成してください。
注意 : ここでは、「ビジネス プロセス アプリケーションの作成」でアプリケーションを C ドライブに作成したと想定しています。別のドライブにアプリケーションを作成した場合は、そのドライブのルート レベルに、上のディレクトリを配置してください。
この例では、あるトレーディング パートナから別のトレーディング パートナへ、ebXML を使用して XML メッセージを送信する方法について学習します。片方のトレーディング パートナが、注文の受信と処理を行う、と考えてください。このパートナを売り手と呼び、これが、ebXML 会話の参加者になります。もう片方のトレーディング パートナは買い手であり、XML 注文を売り手に送信します。買い手は、会話の開始者です。売り手は、メッセージを受信してファイルに単純に書き込みます。この節では、次の手順について説明します。
Seller ビジネス プロセスは、ebXML 会話の参加者です。ebXML 参加者プロセスを構築するには、ebXML 参加者プロセス ファイルを使用できます。このファイルでは、参加者プロセスの構築に必要なノード、変数、その他のコンポーネントが事前にコンフィグレーションされています。この例では、ビジネス プロセスに File コントロールを追加し、ハード ドライブに配置されているファイルにテスト データを書き込みます。この節では、次のタスクを実行します。
[アプリケーション] ペインの oneway フォルダに、新しい ebXML 参加者プロセス ファイルが作成され、デザイン ビューに表示されます。
ebXML 参加者プロセス ファイルは、ebXML 開始者ビジネス プロセスと簡単に統合するために必要となるノードとビジネス プロセス注釈が事前にコンフィグレーションされた状態で作成されます。ebXML 参加者プロセス ファイルの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideEbXML.html にある「ebXML 参加者ビジネス プロセスを構築する」を参照してください。
この例では、buyer プロセスに応答する代わりに、受信 ebXML メッセージをファイルに書き込む File コントロールを追加します。この File コントロールを Control Send with Return ノードとしてビジネス プロセスに追加します。
File コントロール インスタンスが、データ パレットのコントロールのリストに追加され、File コントロールに対応する JCX ファイルが [アプリケーション] パレットに追加されます。File コントロールの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/controls/controlsFile.html にある「ファイル コントロール」を参照してください。JCX ファイルの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/workshop/guide/devenv/conJwiFiles.html にある 「JCX ファイル : コントロールを拡張する」を参照してください。
write という名前の新しい Control Send with Return ノードがビジネス プロセスに追加されます。Control Send with Return ノードの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideControls.html にある「コントロールを使用してリソースと対話する」を参照してください。
次の手順では、適切な変数とメソッドを割り当てて、作成した Control ノードをコンフィグレーションします。
売り手側 ebXML プロセスが完成しました。Receive request ノードが Buyer 開始者プロセスから XML メッセージを受信するとこのプロセスが起動し、Receive request ノードが XML を変数に割り当て、write ノードが File コントロールを通して、order.xml という名前のファイルに XML メッセージを書き込みます。
注意 : [ノードの受信データ] タブがコンフィグレーションされておらず、ノードが未完成としてマークされているので、グレーのチェック ボックスが表示されます。しかし、この例ではデータを受信しないので、これ以上コンフィグレーションしなくても、ビジネス プロセスは適切に動作します。
ビジネス プロセスの ebXML バインディング情報とサービス名は、ソース ビューのプロパティ エディタに表示されます。これらのプロパティを表示するには、以下の手順に従います。
ソース ビュー ebXML プロセス注釈の詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/javadoc-tag/jpd/ebxml.html にある「@jpd:ebxml 注釈」を参照してください。
Seller ビジネス プロセスをテストする準備が整いました。WebLogic Workshop は、ビジネス プロセスの機能をテストするためにブラウザベース インタフェースを備えています。このテスト ビュー インタフェースを使用すると、クライアントの役割を実行し、ビジネス プロセスのメソッドを起動して応答を確認できます。
WebLogic Workshop により、プロジェクトがビルドされます。プロジェクトにエラーがない場合は、Web ブラウザが起動され、Workshop テスト ブラウザが表示されます。このブラウザで、サンプル入力値を使用してビジネス プロセスをテストできます。
注意 : アプリケーションがビルド プロセスを完了した後でテスト ブラウザのウィンドウが起動されるまでには、時間がかかることがあります。
C:\myapps\tptutorialapps\ebXML\ebXMLWeb\sampledata\sampleorder.xml
にナビゲートする。C:\myapps\tptutorialapps\ebXML\ebXMLWeb\sampledata\sampleorder.xml
の内容を XML 変数 (payload) フィールドにカット アンド ペースト。ここには、sampleorder.xml と同じ内容のファイル order.xml が含まれます。このファイルは、「Seller ビジネス プロセス ファイルを作成するには」で作成とコンフィグレーションを行った File コントロールによって書き込まれました。
テスト ブラウザのさまざまなオプション、およびそれを使用してビジネス プロセスをテストする方法については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideTest.html にある「ビジネス プロセスを実行およびテストする」を参照してください。
Seller ビジネス プロセスがデプロイされ、ebXML メッセージを受信する準備が整いました。デフォルトの場合は、デフォルトの ebXML 2.0 バインディングで指定されるプロトコルが使用されるので、さらにコンフィグレーションする必要はありません。しかし、プロダクション シナリオでは、一般的に、WebLogic Workshop Administration Console を使用して TPM サービス プロファイルを作成します。サービス プロファイルの作成方法については、『WebLogic Integration ソリューションの管理』の「トレーディング パートナ管理」(http://edocs.beasys.co.jp/e-docs/wli/docs81/manage/tpm.html) の「サービスのサービス プロファイルへの追加」を参照してください。
Buyer ビジネス プロセスは、ebXML 会話の開始者です。Buyer ビジネス プロセスを作成したら、ebXML コントロールを使用し、Seller 参加者ビジネス プロセスとやり取りします。この節では、次の手順について説明します。
今回は、開始者ビジネス プロセス ファイルを作成し、ebXML File コントロールを使用して参加者プロセスとやり取りするので、ebXML 参加者プロセス ファイルではなく、デフォルトのプロセス ファイルを作成します。
Client Request ノードに正しいメソッドと変数型をコンフィグレーションします。
Client Request ノードが完成しました。Client Request ノードについて詳しく学習するには、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideClientsReceiveNode.html にある「クライアントからメッセージを受信する」を参照してください。変数とデータ型について詳しく学習するには、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideDataTypesWorking.html にある「データ型を処理する」を参照してください。
次に、Seller プロセスとのやり取りに使用する ebXML コントロールを追加します。このコントロールは、通信先のサービス (通常の場合は、リモート サービス) を表します。ただし、この例では、このサービスは、Buyer プロセスと同じマシンで動作します。
ebXML コントロール インスタンスが、データ パレットのコントロールのリストに追加され、ebXML コントロールに対応する JCX ファイルが [アプリケーション] パレットに追加されます。JCX ファイルをダブルクリックしてデザイン ビューで開き、入力した値を確認できます。ebXML コントロールの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/controls/controlsebXML.html にある「ebXML コントロール」を参照してください。JCX ファイルの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/workshop/guide/devenv/conJwiFiles.html にある「JCX ファイル : コントロールを拡張する」を参照してください。
void request(XmlObject payload)
メソッドを選択します。このコントロールのメソッド名は、参加者プロセスの Receive request ノードのメソッド名と一致する必要があります。request という名前の新しい Control Send ノードがビジネス プロセスに追加されます。Control Send ノードの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideControls.html にある「コントロールを使用してリソースと対話する」を参照してください。
次に、正しい変数を割り当て、Request ノードをコンフィグレーションします。
買い手側 ebXML プロセスが完成しました。このプロセスは、Seller ビジネス プロセスにメッセージを送信します。Seller ビジネス プロセスは、Seller プロセスの File コントロールを通して、order.xml というファイルにメッセージを書き込みます。
チュートリアルのこの部分は、これで終わりです。片方のトレーディング パートナからもう片方のトレーディング パートナに、XML メッセージが ebXML を通して正常に送信されました。参加者 (Seller) プロセスは、ファイルシステムに XML を書き込みます。
この例は、前の練習「手順 2 : 一方向の ebXML 交換による XML メッセージの送信」で学習した内容に基づいています。ここでは、トレーディング パートナ情報を ebXML コントロールで静的に指定するのではなく、XQuery セレクタを使用して動的に指定する方法について学習します。次に、開始者 (Buyer) プロセスの ebXML コントロール、および参加者プロセス ファイル (Seller) をカスタマイズし、型付き XML とビジネス固有のメソッド名を使用します。
この手順では、前の例の参加者プロセスで使用した XmlObject 変数の代わりに、型付き XML データを受け入れる ebXML 参加者ビジネス プロセスを作成します。この節では、以下のタスクを実行します。
次の手順では、「チュートリアル スキーマのインポート」でアプリケーションにインポートしたスキーマで指定されている型の XML データを受け入れるように、Receive request ノードをコンフィグレーションします。
Client Request ノードが完成しました。Client Request ノードについて詳しく学習するには、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideClientsReceiveNode.html にある「クライアントからメッセージを受信する」を参照してください。変数とデータ型について詳しく学習するには、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideDataTypesWorking.html にある「データ型を処理する」を参照してください。
前の例のように、order 変数をファイルに書き込む File コントロールをビジネス プロセス ファイルに追加します。
「File コントロールと Control ノードを作成するには」の指示を参照して、新しい File コントロールを作成します。時間を節約するため、[アプリケーション] タブの \ebxml\oneway フォルダから File.jcx をドラッグして SelectorSeller のデザイン ビューにドロップすることもできます。以前作成したコントロール定義が、このビジネス プロセスの新しいインスタンスで再利用されます。
これで、SelectorSeller ビジネス プロセスが作成できました。
作業を続けて、SelectorBuyer 開始者プロセスを作成してください。
この例の開始者プロセスでは、前の例で実行したように、ebXML コントロールでトレーディング パートナ ID を静的に指定せず、トレーディング パートナ ID を動的に取得する XQuery セレクタを使用します。この節では、以下のタスクを実行します。
「Buyer ビジネス プロセス ファイルを作成するには」の指示に従い、SelectorBuyer.jpd という名前のビジネス プロセス ファイルを selector フォルダに作成します。
Client Request ノードが完成しました。Client Request ノードについて詳しく学習するには、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideDataTypesWorking.html にある「クライアントからメッセージを受信する」を参照してください。変数とデータ型について詳しく学習するには、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideDataTypesWorking.html にある「データ型を処理する」を参照してください。
次の手順では、ebXML コントロールを追加し、XQuery セレクタでこのコントロールをコンフィグレーションします。
ebXML コントロール インスタンスが、データ パレットのコントロールのリストに追加され、ebXML コントロールに対応する JCX ファイルが [アプリケーション] パレットに追加されます。JCX ファイルをダブルクリックしてデザイン ビューで開き、入力した値を確認できます。ebXML コントロールの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/controls/controlsebXML.html にある「ebXML コントロール」を参照してください。JCX ファイルの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/workshop/guide/devenv/conJwiFiles.html にある「JCX ファイル : コントロールを拡張する」を参照してください。
次では、ebXML コントロールのコントロール定義ファイルを修正します。次の節では、メソッド名とメッセージ タイプを変更し、XQuery セレクタを追加します。
この ebXML コントロールは、一般的な型なし XML ではなく、「チュートリアル スキーマをインポートするには」でインポートしたスキーマに従って、型付き XML を使用するように設定されました。
セレクタで生成した XQuery 文の指定に従って、トレーディング パートナ ID をメッセージから選択するように、ebXML コントロールがコンフィグレーションされました。次の手順では、processOrder Control Send ノードをビジネス プロセスに追加します。
void processOrder(OrderDocument payload)
メソッドを選択します。このコントロールのメソッド名は、参加者プロセスの Receive request ノードのメソッド名と一致する必要があります。processOrder という名前の新しい Control Send ノードがビジネス プロセスに追加されます。Control Send ノードの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideControls.html にある「コントロールを使用してリソースと対話する」を参照してください。
これで、SelectorBuyer ビジネス プロセスが作成できました。この節では、参加者プロセスと開始者プロセスをカスタマイズして、型付き XML とカスタム メソッド名を使用する方法について学習しました。XQuery セレクタを使用して、ターゲット トレーディング パートナ ID を静的に宣言するのではなく、payload メッセージから取得する方法についても学習しました。次の節では、ビジネス プロセスのテスト方法について説明します。
この例では、ebXML を使用し、メッセージ ブローカ チャネルによって 2 つのトレーディング パートナ間でバイナリ データを送信します。この例は、前節で説明した例に基づいています。以前説明したタスクの実行方法に関する詳細が必要になったら、前節に戻ってください。この節では、次の手順について説明します。
この例は、前の例での学習内容に基づいています。詳しい指示が必要になったら、「Seller ビジネス プロセスの構築」に戻ってください。この節では、以下のタスクを実行します。
この例の開始者側は、前の例のプロセスと非常に似ていますが、プロセスがディレクトリからファイルを選択する原因となるファイル イベントのサブスクリプションによって起動します。この節では、以下のタスクを実行します。
「Buyer ビジネス プロセスの構築」で説明した指示に従い、次のタスクを実行します。
Message Broker Subscription ノードのコンフィグレーションを始める前に、Subscription ノードがイベントをリスンできるようにするサブスクリプション チャネル ファイルを作成する必要があります。
これで、ファイルに定義されているサンプル チャネルは、Subscription ノードで選択できるようになりました。チャネルの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/howdoI/howPubSub.html にある「「チャネルに対してパブリッシュおよびサブスクライブする」を参照してください。
Subscription ノードがコンフィグレーションできました。Subscription ノードについて詳しく学習するには、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideStartSub.html にある「[Subscription] による開始 (非同期)」、および http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideStartSyncSub.html にある「[Subscription] による開始 (同期)」を参照してください。
次の節では、参加者ビジネス プロセスとのやり取りに使用する ebXML コントロールを作成します。
BinaryBuyer ビジネス プロセスが完成しました。実行とテストを行い、適切に動作することを確認します。
注意 : ビジネス プロセスをテストする前に、「チャネル ファイルを作成するには」を実行したことを確認してください。プロセスのテスト前にチャネル ファイルを作成しないと、エラーが発生します。
この節では、未加工データ型のファイルがディレクトリに挿入されたときに BinaryBuyer ビジネス プロセスを起動するファイル イベントを作成します。
ファイル イベントが作成できました。WebLogic Integration Administration Console とイベント ジェネレータの詳細については、http://edocs.beasys.co.jp/e-docs/wli/docs81/manage/evntgen.html にある 「イベント ジェネレータ」を参照してください。
注意 : メッセージ トラッキングについて : この例と前の例では、ebXML で送信されたすべてのメッセージは、トラッキング データベースで追跡されます。WebLogic Integration Administration Console で、[トレーディング パートナ管理|メッセージ トラッキング] を選択し、メッセージを確認してください。基本的なメッセージ情報とペイロード情報が、両方とも追跡されます。メッセージの作成か使用を行ったプロセスに、メッセージからナビゲートすることもできます。詳細については、『WebLogic Integration ソリューションの管理』の「トレーディング パートナ管理」 (http://edocs.beasys.co.jp/e-docs/wli/docs81/manage/tpm.html) を参照してください。
この例では、要求メッセージ (注文要求) の後に応答メッセージ (請求) が続く ebXML 会話を実装する方法について説明します。会話の最初の部分は、前に開発した一方向シナリオと同じです。この例では、参加者ビジネス プロセスに Client Response ノードを追加し、応答メッセージに ebXML コントロール コールバックを使用します。この節では、次の手順について説明します。
この例は、終了した前の例が基になっています。詳しい指示が必要になったら、「Seller ビジネス プロセスの構築」に戻って、次の節を完了してください。
説明するという目的のため、この例では、注文と請求のプロセスを単純にします。売り手は、受信した注文をファイルに再び書き込み、応答するために、ファイル システムから請求ドキュメントを読み取ります。請求書は、すべての注文で同一です。プロダクション シナリオの Seller プロセスでは、その代わりにデータベースから情報を読み取ったり、メッセージ キューから情報を取得したり、Application View コントロールのイベントとしてバックエンド アプリケーションから情報を取得したりすることができます。このプロセスでは、注文処理をサブプロセスに委任することもできます。これについては、次の例「手順 6: パブリック /プライベート パターンの実装」で説明します。Application View コントロールの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/controls/controlsAppView.html にある「アプリケーション ビュー コントロール」を参照してください。
注意 : 時間を節約するため、oneway フォルダの File.jcx をドラッグし、RoundtripSeller.jpd デザイン ビューにドロップできます。File.jcx の新しいインスタンスが作成されます。
C:\myapps\tptutorialapps\ebxml\ebxmlWeb\sampledata\sampleinvoice.xml
を C:\tptutorial\invoice
ディレクトリにコピーします。上の手順で作成したトランスフォーメーションは、あるデータ型から別のデータ型への変換のみ行います。プロダクション シナリオでは、トランスフォーメーション ツールを使用して、バックエンド システム フォーマットから、トレーディング パートナが期待するフォーマットに変換します。トランスフォーメーション ツールを使用し、データを操作することもできます。トランスフォーメーション ツールの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/dtguide/dtguideIntro.html にある 「データ トランスフォーメーション ガイド」を参照してください。
この例の次の手順では、Respond to request ノードをコンフィグレーションします。
この例の売り手 (参加者) 側の構築が終わりました。売り手は、買い手から注文書を受信してファイルに書き込み、請求ファイルを読み取って買い手に送信します。このトランザクション用に作成した ebXML サービスの名前は、RoundtripSeller です。メッセージ交換は、1 つの ebXML 会話として実行されます。トレーディング パートナ統合 (TPI) システムは、ebXML 会話を自動的に管理し、同じ参加者プロセス インスタンス内で、同じ会話 ID が使用されることを保証します。
開始者プロセスをまだ作成していないので、この時点でプロセスをテストすると、コールバック メソッドで例外が発生します。このプロセスのデプロイのみを行うのはこのためで、後で開始者プロセスをテストするときに適切に動作するようにします。
この節は、前の例で学習したタスクが基になっています。次のタスクを実行中に詳しい説明が必要になったら、「Buyer ビジネス プロセスの構築」に戻ってください。
ebXML コントロールがコンフィグレーションができました。次の手順では、ebXML コントロールのメソッドに関連するコントロール ノードを作成します。
ebXML コントロールが追加できました。次の手順では、Client Response ノードを追加し、invoice 変数の内容を返すようにコンフィグレーションします。
この例の買い手側がほとんど完成しましたが、トレーディング パートナの ID をまだ指定していません。前の例では、ebXML コントロールで固定値として ID を提供したり、実行時にペイロードから ID を選択するようにコントロールをコンフィグレーションしたりしました。この例では、XQuery セレクタを使用し、プロセス XML 変数で ID を指定します。
前の例では、コントロール定義 (JCX ファイル) で ebXML 属性を指定しました。この属性の値は、コントロールが使用されるすべての場所で適用されます。ここでは、このビジネス プロセスで宣言したコントロールのインスタンスのみに適用されるコントロール インスタンス属性を指定します。コントロール タイプとコントロール インスタンスのコントロール プロパティの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/wfguide/wfguideControlsProperties.html にある 「コントロール プロパティを設定する」を参照してください。
注意 : この値は、コントロール定義 JCX ファイルに存在しますが、再び指定する必要があります。コンフィグレーションで必要なフィールドが、コントロール定義ファイルから継承されず、その代わりにコントロールのそれぞれのインスタンスで指定する必要があるためです。
買い手側が完成しました。WebLogic テスト ブラウザを使用して、プロセスの実行とテストを行うことができます。
この例では、サブプロセスを使用して、パブリック/プライベート パターンを実装する方法について説明します。このパターンを使用すると、バックエンド統合の詳細をプライベート プロセス定義に収容することができ、パブリック プロセス定義がトレーディング パートナ対話専用になります。この例では、次の手順について説明します。
RoundtripBuyer.jpd ファイルのコピーが、publicprivate フォルダに作成されます。
注意 : ビジネス プロセス ファイルを複製するときは、新しいコピーは必ず、同じ (古い) コントロールを参照します。コントロール ファイルを含むフォルダを複製しても同様です。
注意 : WebLogic Server を停止しないと、ビジネス プロセスの名前を変更できないことがあります。WebLogic Server を停止するには、[ツール|WebLogic Server|WebLogic Server の停止] を選択します。
この節は、前の例で学習したタスクが基になっています。次のタスクを実行中に詳しい情報が必要になったら、「Buyer ビジネス プロセスの構築」に戻ってください。
この節のタスクの実行中に詳しい指示が必要になったら、「Seller ビジネス プロセスの構築」に戻ってください。
PrivateSeller ビジネス プロセスが構築できました。次の節では、会話の売り手側のパブリック プロセスを作成します。
PublicSeller ビジネス プロセスを作成するには、前の例で作成したファイルの一部を再利用します。「Seller ビジネス プロセスの構築」の詳しい指示を参照し、この節のタスクを実行してください。
会話の売り手側が完成しました。パブリック プロセスは、ebXML を通してメッセージを受信し、プライベート プロセスに渡します。プライベート プロセスは、応答したら、パブリック プロセスにコール バックし、ebXML を通して開始者トレーディング パートナに請求情報を返します。
この例の実行とテストを行う前に、最終調整を行う必要があります。
この例では、トレーディング パートナ管理 (TPM) コントロールを使用して、トレーディング パートナ情報を TPM リポジトリから実行時に取得する方法について説明します。ebXML コントロールの onAck コールバックの使用方法についても説明します。この例では、ebXML メッセージを送信し、ebXML 承認を待機します。たとえば、リモート パートナがオフラインになっており、ローカル トレーディング パートナとリモート トレーディング パートナの TPM プロトコル バインディングが、「1 回のみ」配信スキーマか「最低 1 回」配信スキーマになっているため、承認がタイム アウトになると、そのリモート トレーディング パートナに電子メール警告が送信されます。電子メール アドレスは、TPM コントロールを使用し、TPM データベースを照会して取得します。
これまでの節で学習した技能を使用し、次のタスクを実行してください。
TPM コントロールの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/controls/controlsTPM.html にある「TPM コントロール」を参照してください。
Email コントロールの詳細については、http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/controls/controlsEmail.html にある 「電子メール コントロール」を参照してください。
この例の最終手順では、ターゲット トレーディング パートナの ID を ebXML コントロールで指定します。この例では、コントロールの setProperties メソッドを使用し、これを達成します。
例をテストする前に、トレーディング パートナ プロファイルで電子メール アドレスを指定する必要があります。
この例では、このチュートリアルが含まれていた ZIP アーカイブ (「手順 3 : チュートリアル ファイルのインストール」参照) で配布される、すでに構築されているアプリケーションを調べます。この例では、ハード ドライブのサブディレクトリ名をパートナ ID として使用し、ebXML コントロールで setProperties メソッドを使用して動的に設定する方法について説明します。この例では、次の節について説明します。
この例では、アプリケーションの開始者側を調べることから始めます。これまでの節で学習した技能を使用し、次のタスクを実行してください。
[解凍場所]\tptutorialapps\ebxml\ebxmlWeb\ebxml\oneway\binary
ディレクトリで advanced フォルダを見つけます。[解凍場所]
は、「手順 3 : チュートリアル ファイルのインストール」でチュートリアル アーカイブを解凍した場所です。このプロセスの次の手順では、ハード ドライブ上で正しいフォルダをリスンするように、WebLogic Integration Administration Console のファイル イベント ジェネレータで新しいルールを追加します。
次の手順では、参加者側を調べます。これまでの例で学習したことを使用し、次のタスクを実行してください。
これまでのすべての例では、開始者 (000000001) と参加者 (000000002) が、両方とも同じ WebLogic Integration インスタンスに配置され、同じデータベース リポジトリを使用していました。実際には、両サイドが、物理的に離れている、2 つのシステムで動作します。この例では、000000001 が、ある WebLogic Integration インスタンスで動作し、000000002 が、別のインスタンスで動作する分散設定に移行する方法について説明します。
これまでの例では、開始者トレーディング パートナとプロトコル情報に、デフォルト値を使用しました。デフォルト値は、次のように使用されます。
プロダクション シナリオでは、一般的に、サービスとサービス プロファイル エントリを追加し、トレーディング パートナ通信を制御します。この例では、「手順 2 : 一方向の ebXML 交換による XML メッセージの送信」で作成した Seller ビジネス プロセスと Buyer ビジネス プロセスを使用してサービスとサービス プロファイルを追加する方法について説明します。内容は以下のとおりです。
Seller ビジネス プロセスは、ebXML 通信の参加者です。
開始者側では、リモート サービスを表す ebXML コントロールにサービス コンフィグレーション情報を追加します。
プロトコル設定のセットアップが終わりました。このチュートリアルの例ごとに、それぞれの参加者側と開始者側で、対応するサービス エントリを作成できます。入力するサービス プロファイルの数に制限はなく、サービス エントリごとに必要な数だけ作成し、さまざまなプロトコル バインディングを参照できます。
WebLogic Integration - Business Connect は、別個のアプリケーションであり、これを使用すると、トレーディング パートナと大量のドキュメントを安全に交換できるようになります。このアプリケーションでは、スケジュールに従ってトレーディング パートナ間で送信されるセキュア エンベロープに、ドキュメントをパッケージ化します。
注意 : WebLogic Integration - Business Connect をインストールしていないと、この例を実行できません。
WebLogic Integration - Business Connect について詳しく学習するには、http://edocs.bea.com/wlibc/docs81/admin/index.html にある「Using WebLogic Integration - Business Connect」を参照してください。
手作業によるトレーディング パートナ情報の入力を避けるには、WebLogic Integration からトレーディング パートナ情報をエクスポートし、WebLogic Integration - Business Connect にインポートします。
WebLogic Integration サーバでホストされているトレーディング パートナの情報を WebLogic Integration - Business Connect にインポートしました。次の手順では、WebLogic Integration - Business Connect を使用しているパートナのトレーディング パートナ情報で、WebLogic Integration をコンフィグレーションします。
この節では、WebLogic Integration - Business Connect でトレーディング パートナを作成し、トレーディング パートナ プロファイルをファイルにエクスポートして、WebLogic Integration にインポートします。
WebLogic Integration と WebLogic Integration - Business Connect がコンフィグレーションできました。何らかの理由により、WebLogic Integrtion Administration Console で WebLogic Integration - Business Connect トレーディング パートナを手作業で作成する必要がある場合は、次の値を使用してください。
この例では、WebLogic Integration の 000000001 トレーディング パートナ、および WebLogic Integration - Business Connect の BCTP-id トレーディング パートナの間で、トレーディング パートナ サービス プロファイルをセットアップします。サービス プロファイルでは、サービスの提供と呼び出しを行うローカル トレーディング パートナとリモート トレーディング パートナに、プロトコル バインディングと URL エンドポイントを指定します。
トレーディング パートナ サービス プロファイルの設定が終わり、この節のチュートリアル例を始める準備が整いました。
この節では、前の例で作成した、いずれかの開始者プロセスを使用し、メッセージを送信します。「手順 3 : 型付き XML によるトレーディング パートナ情報の動的な選択」の SelectorBuyer ビジネス プロセスでは、受信データからトレーディング パートナ ID を選択しました。この例では、その例のファイルを使用しますが、正しいトレーディング パートナ ID で受信データを修正し、WebLogic Integration - Business Connect にメッセージを送信します。
注意 : Windows 以外のプラットフォームでサーバを起動する方法については、http://edocs.bea.com/wlibc/docs81/admin/get_started.html にある「Using WebLogic Integration - Business Connect 」の「Getting Started」を参照してください。
WebLogic Integration アプリケーションに戻り、[アプリケーション] タブで ebxml\oneway\selector\SelectorBuyer.jpd
をダブルクリックします。
高度なバイナリ ファイルのサンプルではフォルダ名がターゲット トレーディング パートナ名として使用されています。この節では、DynamicBinaryBuyer ビジネス プロセスおよび DynamicBinarySeller ビジネス プロセスを使用して、ファイルを WebLogic Integration - Business Connect に送信します。
このプロセスの最初の手順では、WebLogic Integration - Business Connect がバイナリ ファイルを受信できるようにします。
注意 : WebLogic Integration -Business Connect によって、デフォルト ディレクトリ名の「-」記号が「%2」で置き換えられます。
このファイルはすぐに消え、WebLogic Integration - Business Connect インストールの着信バイナリ ディレクトリ ([BC_HOME]\data\BCTP%2did\binaryin\TP1%2did) に表示されます。[BC_HOME]
は WebLogic Integration - Business Connect をインストールしたディレクトリです。
注意 : 000000001 パートナが WebLogic Integration - Business Connect でアクティブになっていることを確認します。