BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Integration > B2B トピック > B2B Integration ebXML の実装 > ebXML を伴うワークフローの使用法 |
B2B Integration ebXML の実装
|
ebXML を伴うワークフローの使用法
この章では、ワークフローを使用して ebXML ビジネス プロセスを設計、管理する方法を説明し、トレーディング パートナ間で ebXML ビジネス メッセージを交換するために必要な手順を示します。この章の内容は以下のとおりです。
ebXML ビジネス メッセージ
ビジネス メッセージは、トレーディング パートナ間の通信の基本単位です。ビジネス メッセージは、会話の一部として交換されます。会話内のロールは、ワークフローによって実装され、ワークフローはビジネス メッセージの交換を管理します。
ebXML ビジネス メッセージは、1 つの XML ビジネス ドキュメントとゼロ個以上の添付ファイルで構成されます。ebXML メッセージは、通信プロトコルと独立した MIME/マルチパート メッセージ エンベロープで、これはメッセージ パッケージと呼ばれています。すべてのメッセージ パッケージは、添付ファイル付き SOAP メッセージの仕様に準拠した構造になっています。
次の図は、ebXML プロトコルに基づく会話で交換されるビジネス メッセージの構造を表しています。
図3-1 ebXML ビジネス メッセージ
上図に示されているメッセージ パッケージは、以下の論理的 MIME 要素で構成されています。
ebXML 会話への参加
会話とは、会話定義で定義されているトレーディング パートナ間の一連のビジネス メッセージ交換のことです。会話を定義する上での基本的な手順は、その会話のロールを実行するワークフローの作成です。ebXML ビジネス プロトコルを参照する会話定義には、開始者および参加者という 2 つのロールが必ず含まれます。ebXML 会話に関連付けられた各ワークフロー テンプレートは、この 2 つのロールのうち 1 つだけを実行します。
ebXML プラグインは、ebXML 会話にロールを実装するワークフローの設計および実行ができるように WebLogic Integration Studio および処理エンジンの機能を拡張します。ワークフローはビジネス プロセスです。ebXML ベースのビジネス プロセスは、パブリック プロセスまたはプライベート プロセスとして設計できます。
注意: この節の内容は、読者が WebLogic Integration Studio をよく知っているものとして記述されています。Studio の使用方法の詳細については、ここでは説明されません。Studio の起動および使用に関しては、『WebLogic Integration Studio ユーザーズ ガイド』および『WebLogic Integration BPM ユーザーズ ガイド』を参照してください。
次の図は、開始者および参加者という 2 つのロール、および各ロールの高レベルの仮想ワークフローを含む簡単な ebXML 会話、「価格と在庫の照会(QPA)」を示しています。各トレーディング パートナは、会話におけるそれぞれのロールに対するワークフローを 1 つずつ実装しています。各ロールには、適時に正しい ebXML メッセージを送受信するために必要なそれぞれのタスク セットが設定されています。
図3-2 ebXML 会話のサンプル
上図では、ある会話におけるトレーディング パートナ間の ebXML メッセージ交換を示しています。
以下の節では、会話の主要コンポーネントについて説明します。
ebXML 会話の開始
ebXML 会話における各トレーディング パートナは、開始者または参加者という 2 つのいずれかのロールに割り当てられます。ebXML 会話は、ワークフローが新規の会話に ebXML メッセージを送信した時点で開始されます(詳細については、新規会話におけるメッセージの送信 を参照)。
会話に最初のメッセージを送信するワークフローは、次の 4 つのいずれかの方法により開始されます。
ebXML メッセージの送信
ワークフロー タスクでは、Send ebXML Message という ebXML アクションを呼び出すことによって、ebXML メッセージを送信できます。このアクションをタスク ノードに追加する手順は次のとおりです。
図3-3 [ebXML メッセージの送信] ダイアログ ボックス
WebLogic Integration では、ebXML メッセージの送信に 2 つのモードがあります。どちらのモードが使用されるかは、メッセージが送信される状況によって決まります。特定の会話における最初のメッセージは、新規会話モードで送信されます。後の(応答)メッセージは関連会話モードで送信されます。
たとえば、図3-2 に示されているサンプルの ebXML 会話では 2 つのメッセージが送信されています。最初のメッセージ(PriceAndAvailabilityQuote)は、開始者ワークフローから参加者ワークフローに送られ、2 つめのメッセージ(PriceAndAvailabilityResponse)は参加者ワークフローから開始者ワークフローに送られています。
[ebXML メッセージの送信] ダイアログ ボックスに必要なデータの種類は、選択したメッセージ タイプによって異なります。
新規会話におけるメッセージの送信
サンプル会話における最初の ebXML メッセージ、PriceAndAvailabilityQuote の場合、図3-3 に示されているように [ebXML メッセージの送信] ダイアログ ボックスで [新規の会話] を選択し、続いて以下のデータを指定します。
注意: ビジネス ID は静的値にしないことをお勧めします。変数を使用するか、実行時にビジネス ID を評価する XPath 式を使用してください。このようにすることにより、複数のトレーディング パートナで同じワークフローを使用できます。
関連会話におけるメッセージの送信
参加者ワークフローから開始者ワークフローに、PriceAndAvailabilityQuote ebXML メッセージの応答として送られる、PriceAndAvailabilityResponse (サンプル ebXML メッセージ) の場合、図3-3 に示されている [ebXML メッセージの送信] ダイアログ ボックスで [関連する会話] を選択します。
[ebXML メッセージの送信] ダイアログ ボックスで [関連する会話] を選択すると、[会話名]、[送信側ビジネス ID]、および [受信側ビジネス ID] の各フィールドは書き込み不可になります。これらの属性は、1 つの会話につき設定できるのは 1 度だけ、すなわち、最初の ebXML メッセージが新規会話で送信される時に限られます(詳細については、前節の新規会話におけるメッセージの送信を参照)。関連会話のメッセージを送信する場合は、システムによってその前の ebXML メッセージ交換から値が取り込まれるため、[会話名]、[送信側ビジネス ID]、および [受信側ビジネス ID] の値を指定する必要はありません(詳細については、ebXML メッセージの受信を参照)。
ただし、[メッセージ ペイロード] フィールドについては、ゼロ個以上のペイロードに対してペイロード タイプ(XML または ebXML バイナリ)および関連変数を指定する必要があります。
ebXML メッセージの受信
WebLogic Integration がサポートする ebXML メッセージの受信方法には、開始ノードによるものと、イベント ノードによるものの、2 通りがあります。どちらのノードが使用されるかは、メッセージが受信される状況によって決まります。
開始ノード
ebXML ベースの会話におけるトレーディング パートナのワークフローは、別のトレーディング パートナから ebXML メッセージを受信したときに開始するように設定できます。Studio には、このようなワークフローを設計するため、開始ノードに ebXML 固有のオプションがあります。
ワークフローの開始ノード(図3-2 に示されている参加者ワークフローの 開始ノードが一例)に ebXML イベントを指定する手順は次のとおりです。
イベント ノード
ワークフローには、特定インスタンスのワークフローで ebXML メッセージが受信されたときに起動するように設計されたイベントを組み込むことができます。ebXML メッセージの受信を待機するイベントは、そのタイプを [ebXML イベント] として定義する必要があります。このイベントは、実行時において適切な ebXML メッセージが会話で受信されたときに起動されます。
ebXML メッセージの受信を待機するイベントを定義する手順は次のとおりです。
注意: [メッセージ ペイロード] フィールドの各行は、関連 ebXML メッセージの添付ファイルを表しています。1 つの ebXML メッセージに複数の添付ファイルがある場合、このフィールドの行の順序がメッセージ中の添付ファイルの順序となります。[メッセージ ペイロード] フィールドの行を空のままにすると、メッセージ受信時に ebXML メッセージに対応する添付ファイルがあっても無視されます。
ebXML 会話の終了
ebXML ベースの会話は、両方のトレーディング パートナについて ebXML メッセージの交換が完了した時点で終了します。
この動作は、XOCP ビジネス プロトコルと対照的です。WebLogic Integration では、XOCP 会話管理サービスをサポートしており、その場合、会話を開始するワークフローが同時に会話の終了も行ない、会話の各ワークフローに会話終了メッセージを送信します(詳細については、『B2B Integration ワークフローの作成』の「協調的ワークフローの終了」を参照)。
XOCP 会話の場合、会話終了プロパティを定義するには、会話を開始したワークフローの 完了ノードで [カスタム] オプションを選択します。このオプションは ebXML ベースの会話には選択しないでください。逆に、ebXML 会話のワークフローでは、完了ノードに [カスタム] オプションが選択されていないことを確認する必要があります。
ebXML のサンプル アプリケーション
ebXML のサンプル アプリケーションは、インストールした WebLogic Integration の ¥SAMPLES_HOME¥integration¥samples¥ebxml ディレクトリにあります(SAMPLES_HOME は WebLogic Platform のサンプルがインストールされるディレクトリを表します)。このサンプルでは、「価格と在庫の照会(QPA)」会話における開始者ロールとして設計されたワークフローと参加者ロールとして設計されたワークフローの 2 つのワークフローが紹介されています。どちらのワークフローも WebLogic Integration をデプロイする 2 つのトレーディング パートナ間の ebXML ベースのビジネス プロセスを管理するように設計されています。実行方法も含め、このサンプルに関する説明は、『B2B Integration サンプルの使い方』の「ebXML サンプル」を参照してください。
ebXML サンプルはさらに追加されており、次の URL の BEA dev2dev オンライン サイトに掲載される予定です。
http://dev2dev.bea.com
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |