Trading Partner Integration のチュートリアル

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

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

このトピックでは、Trading Partner Integration の RosettaNet ソリューションを Oracle WebLogic Integration で実装する方法について説明します。内容は以下のとおりです。

RosettaNet は、企業がインターネット経由でビジネスを遂行するためのビジネス プロトコルです。RosettaNet の詳細については、http://www.rosettanet.org を参照してください。

 


チュートリアルの目的

このチュートリアルの目的を以下に示します。

 


始める前に

ここでは、このチュートリアルを開始する前に実行すべき作業について説明します。内容は以下のとおりです。

前提条件

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

参考資料

RosettaNet ソリューションを Oracle WebLogic Integration で実装する方法について理解を深めるために、以下の資料に目を通しておくことをお勧めします。

RosettaNet ビジネス プロトコルの詳細、および RosettaNet ソリューションの実装方法については、以下を参照してください。

 


RosettaNet W3C XSD スキーマの取得に関する注意事項

選択された PIP の RosettaNet W3C XSD スキーマは、RosettaNet Self-Test Kit (STK) に含まれています。このキットは、http://www.rosettanet.org にある RosettaNet Ready Web サイトの Developer Tools 領域からダウンロードできます。

使用している PIP のスキーマをこの Web サイトから入手できない場合、DTD ファイルとして指定されている RosettaNet メッセージ定義を使用して Oracle WebLogic Integration で RosettaNet ソリューションを実装することもできます。ただし、この代わりに W3C XSD ファイルの使用をお勧めします。XQuery マッピング ツール (データトランスフォーメーションの定義に使用されるツール) などの多くの Oracle WebLogic Integration ツールでサポートされるのは、XSD スキーマのみであるためです。

グラフィカルな XQuery マッピング ツールを使用する場合は、RosettaNet DTD ファイルを W3C XSD ファイルに変換 (XML Spy Enterprise Edition などのツールを使用) してから、その XSD ファイルをプロジェクトにインポートする必要があります。DTD ファイルを変換している PIP について RosettaNet メッセージ ガイドラインを必ず参照し、変換後にサービス内容検証の適切な検証ルールを XSD ファイルに追加するようにしてください。XML Spy を使用してファイルを変換する手順については、「RosettaNet DTD スキーマから XSD スキーマへの変換」を参照してください。

チュートリアル ファイルには、サンプルを完了するために必要なすべての XSD ファイルが含まれています。

 


チュートリアルの概要

RosettaNet サンプルには、Oracle WebLogic Integration を使用して RosettaNet PIP を実装する方法を例示するためのビジネス プロセスの定義 (.java) やスキーマなどのファイルが含まれています。サンプルのビジネス プロセス ファイルは一般的な設計パターンを実装し、RosettaNet 会話用の開始者ビジネス プロセスおよび参加者ビジネス プロセスを構築するための土台になります。ビジネス プロセスを最初から構築する代わりに、サンプル ファイルを編集して簡単に任意の PIP を実装することができます。

ここでは以下について説明します。

このチュートリアルに実装されている PIP は、RosettaNet Implementation Framework (RNIF) 2.0 に準拠しています。

このサンプルで実装されている PIP

次の表では、このチュートリアルで用意されている RosettaNet サンプルについて説明します。

表 2-1 RosettaNet サンプル
PIP
説明
0A1
PIP0A1 : 障害通知を実装する。
このビジネス プロセスは、RosettaNet 障害通知が必要とされる他の任意のビジネス プロセスから開始することができる。たとえば、Oracle Workshop for WebLogic で提供される RosettaNet Participant Business Process テンプレートと併せてこのビジネス プロセスを使用することができる。詳細については、「RosettaNet 参加者ビジネス プロセスの構築」を参照。
3B2
PIP3B2 : 配送通知を実装する。「手順 3 : PIP3B2 : 配送通知サンプルのオープン」を参照。
3A4
PIP3A4 : 注文要求を実装する。「手順 4 : PIP3A4 : 注文要求サンプルのオープン」を参照。

RosettaNet チュートリアル アプリケーションのフォルダ

次の表では、\tptutorialapps\rosettanet ディレクトリを開くと [パッケージ・エクスプローラー] ペインに表示されるフォルダについて説明します。

表 2-2 \tptutorialapps\rosettanet 内のフォルダ
ディレクトリ
説明
PIP0A1Schema
PIP0A1 スキーマのスキーマ プロジェクト。
PIP3A4Schema
PIP3A4 スキーマのスキーマ プロジェクト。
PIP3B2Schema
PIP3B2 スキーマのスキーマ プロジェクト。
pips
プライベート管理者警告通知 (privateAdmin) と各サンプル PIP 実装 (PIP0A1ProcessesPIP3A4Processes、および PIP3B2Processes) のビジネス プロセス フォルダが含まれる。
rosettanet
EAR フォルダが含まれる。
System
標準の Oracle WebLogic Integration システム スキーマのスキーマ プロジェクト。

RosettaNet 設計パターン

RosettaNet PIP は、次の設計パターンのうちいずれかに従っています。

表 2-3 RosettaNet PIP 設計パターン
アクティビティ
説明
非同期シングルアクション アクティビティ
以下に示す、シングル アクション メッセージと受信確認を伴う。
  • 開始者が参加者にビジネス メッセージを送信する。
  • 参加者が開始者に受信確認を送信する。
この設計パターンを実装する PIP3B2 (配送通知) サンプルについては、「手順 3 : PIP3B2 : 配送通知サンプルのオープン」を参照。
非同期ダブルアクション アクティビティ
以下に示す、両方のトレーディング パートナからのアクション メッセージと受信確認を伴う。
  • 開始者が参加者にビジネス メッセージを送信する。
  • 参加者が開始者に受信確認を送信する。
  • 参加者が開始者にビジネス メッセージを送信する。
  • 開始者が参加者に受信確認を送信する。
この設計パターンを実装する PIP3A4 (注文要求) サンプルの詳細については、「手順 4 : PIP3A4 : 注文要求サンプルのオープン」を参照。
同期シングルアクション/ダブルアクション アクティビティ
即時応答が必要となる、上記の設計パターンの同期バージョン。現行リリースの Oracle WebLogic Integration では、同期設計パターンがサポートされていない。
注意 : 通常、同期 RosettaNet 設計パターンでは、非同期シングルアクション アクティビティと非同期ダブルアクション アクティビティの各設計パターンで説明した受信確認は実装されない。

このチュートリアルで用意されているサンプル PIP 実装を使用すると、同じ設計パターンに従う任意の PIP を迅速かつ容易に構築することができます。詳細については、「サンプル PIP に基づいた、新しい PIP の実装」を参照してください。

RosettaNet 設計パターンと会話の構成の詳細については、以下のドキュメントを参照してください。

 


チュートリアルの手順

この節では、以下のチュートリアルの手順について説明します。

これらの手順に進む前に、「始める前に」の資料に目を通しておいてください。

手順 1 : RosettaNet サンプル アプリケーションのオープン

RosettaNet サンプル アプリケーションには、「このサンプルで実装されている PIP」で説明している PIP 実装がすべて含まれています。

RosettaNet サンプル アプリケーションを開くには、以下の手順に従います。

  1. まだ起動していない場合は Oracle Workshop for WebLogic を起動します。
  2. [ファイル] メニューから [インポート] を選択します。
  3. [インポート] ウィザードが表示されます。

  4. [一般] を展開し、[既存プロジェクトをワークスペースへ] を選択します (図 2-1 を参照)。
  5. 図 2-1 インポート
    PIP3B2Participant ビジネス プロセス
  6. [次へ] をクリックします。
  7. [ルート・ディレクトリーの選択] をチェックして [参照] をクリックし、手順 3 : チュートリアル ファイルのインストール」で作成した [tptutorialapps] フォルダに移動します。
  8. [rosettanet] フォルダを選択し、[OK] をクリックします。
  9. すべてのファイルが選択されていることを確認し、[終了] をクリックします。
  10. 注意 : Oracle WebLogic Integration ドメインおよびサーバを選択するように求められた場合、「手順 1 : 新しい Oracle WebLogic Integration ドメインの作成」で作成した Oracle WebLogic Integration ドメイン (c:\bea\user_projects\domains\tptutorial など) を選択します。

    [パッケージ・エクスプローラー] ペインに、RosettaNet チュートリアル アプリケーションの内容が表示されます (図 2-2 を参照)。詳細については、「RosettaNet チュートリアル アプリケーションのフォルダ」を参照してください。

    図 2-2 RosettaNet チュートリアル アプリケーション


    RosettaNet チュートリアル アプリケーション

手順 2 : PIP0A1 : 障害通知サンプルのオープン

このトピックでは、PIP0A1 : 障害通知のサンプル実装について説明します。内容は以下のとおりです。

PIP0A1 の詳細については、http://www.rosettanet.org を参照してください。

PIP0A1 サンプルについて

PIP0A1 は、PIP0A1 障害通知の実装方法のサンプルです。PIP0A1Processes フォルダには、PIP0A1 のビジネス プロセス定義が含まれています。PIP0A1Schemas スキーマ プロジェクトには、PIP0A1 メッセージのスキーマ ファイルが含まれています。

PIP0A1 は、ビジネス ロジックを設定し、エラー メッセージを適切に処理してから、そのビジネス ロジックとエラー メッセージに基づいて適切な障害管理者に障害通知を送信する際に使用する正しいチャネルを開く方法を例示しています。このチュートリアルの PIP0A1 障害通知シナリオは次のとおりです。

注意 : デモの目的から、チュートリアル サンプルのビジネス プロセスは、意図的に障害通知をトリガするようにコンフィグレーションされています。

以下の手順では、PIP A01 ビジネス ロジックの概要を示します。

  1. PIP0A1 障害通知者ビジネス プロセス (PIP0A1.java) は、PIP3A4 Seller または PIP3B2 Receiver 側から障害通知要求を受信します。
  2. 障害通知者プロセスはこの障害通知要求を処理し、適切なレポート管理者 (ここでは PIP0A1ReportAdmin.java) に障害通知メッセージを送信します。障害通知者プロセスはまた、メッセージを送信したことを示す通知を Oracle WebLogic Server Console 上に書き込みます。
  3. レポート管理者プロセスはその障害通知メッセージを検証し、障害通知者プロセスに受信確認を送信します。このプロセスも、メッセージを受信したことを示す通知を Oracle WebLogic Server Console 上に書き込みます。

PIP0A1 サンプルのコンポーネント

Oracle Workshop for WebLogic で [PIP0A1Processes] フォルダを開くと、[パッケージ・エクスプローラー] ペインにフォルダの内容が表示されます (図 2-3 を参照)。

図 2-3 PIPOA1 プロセス

PIPOA1 プロセス

次の表に、PIP0A1 サンプルのコンポーネントをまとめます。

表 2-4 PIP0A1 : 障害通知サンプルのコンポーネント
ロール/コンポーネント
説明
PIPA01.java
PIP3A4 の開始者または PIP3B2 の参加者から障害通知を受信する開始者ビジネス プロセス。このビジネス プロセスは障害通知を受信すると、RosettaNet コントロールのインスタンスを使用して障害管理者ビジネス プロセスに障害通知を送信する。
PIPA01Control.java
他のプロセスで使用するために PIPA01.java をラップするプロセス コントロール定義ファイル。[パッケージ・エクスプローラー] タブで [PIPA01.java] ファイルを右クリックして [生成|プロセス コントロール] を選択すると自動的に生成される。
Rn.java
障害管理者ビジネス プロセスとメッセージを交換するために使用される RosettaNet コントロール定義ファイル。RosettaNet コントロールの詳細については、「RosettaNet コントロール」を参照。
PIP0A1ReportAdmin.java
エラー メッセージおよび通知の処理に使用されるバックエンド ビジネス ロジックを例示するビジネス プロセス。
PIP0A1Transformation.java
XQuery の生成に使用されるトランスフォーメーション コントロール定義ファイル。トランスフォーメーションおよび XQuery の詳細については、『XQuery Mapper を使用したデータの変換』を参照。
getStaticProperties.xq
戻り値のあるコントロール送信ノード getStaticProp がコンフィグレーションされたときに生成された XQuery。
getFailureNotificationDoc.xq
戻り値のあるコントロール送信ノード getFailureNotificationDoc がコンフィグレーションされたときに生成された XQuery。

障害通知者ビジネス プロセスの説明

この節では、サンプルの開始者ビジネス プロセス (PIP0A1.java) について説明します。このビジネス プロセスを表示するには、以下の手順に従います。

  1. Oracle Workshop for WebLogic の [パッケージ・エクスプローラー] ペインで [pips|src] を展開し、[PIP0A1Processes] フォルダを開きます。
  2. [PIP0A1.java] ファイルをダブルクリックします。
  3. 必要に応じて、[Retry block] パスを折りたたんでメイン (正常) パスのみが表示されるようにします。
  4. 図 2-4 PIPOA1 ビジネス プロセス


    PIPOA1 ビジネス プロセス

正常プロセス パス

ビジネス プロセスの正常パスは次のとおりです。

  1. Start という名前のクライアント要求ノードが障害通知メッセージを受信します。
  2. 戻り値のあるコントロール送信ノード getStaticProperties は、受信メッセージから RosettaNet Context プロパティを抽出します。RosettaNet Context の詳細については、RosettaNet Control インタフェースを参照してください。
  3. setProperties コントロール送信ノードは、PIP0A1 スキーマに基づいて抽出したプロパティをドキュメントへマップします。
  4. 戻り値のあるコントロール送信ノード getFailureNotification は、PIPA01 トランスフォーメーション クエリを使用して、PIPA01 スキーマに基づいて RosettaNet Context プロパティをドキュメントにマップします。
  5. マップされているフィールドを表示するには、[パッケージ・エクスプローラー] ペインで、[getFailureNotification.xq] ファイルをダブルクリックします。

  6. 実行ノード setDocType は、トランスフォーメーション出力に DOCTYPE DTD 値を設定します。
  7. 注意 : デフォルトでは Oracle WebLogic Integration トランスフォーメーション出力に DOCTYPE プロパティが含まれないため、この手順が必要になります。
  8. Retry block という名前のグループには、コントロール送信ノード Send Notification of Failure とコントロール受信ノード Receipt acknowledgement が含まれています。このブロックは、障害通知を PIP0A1ReportAdmin ビジネス プロセスに送信し、メッセージの受信確認を待機します。
  9. また、デモの目的から、Send Notification of Failure ノードは PIP0A1ReportAdmin プロセスにメッセージを送信した後で、Oracle WebLogic Server Console に同じメッセージを出力します。

  10. ビジネス プロセスの最後にある Client Response ノードは、障害通知メッセージが PIP0A1ReportAdmin ビジネス プロセスに送信された後で実行されるビジネス ロジックのためのプレース ホルダです。
障害パス

OnTimeout パスは、ネットワーク障害が発生した場合などの障害管理を処理します。障害パスを表示するには、以下の手順に従います。

  1. Retry block という名前のノード グループの横にある OnTimeout パスを展開します。
  2. 図 2-5 OnTimeout パス


    OnTimeout パス

    このパスは、標準的な BPM OnTimeout 構成を表しています。タイムアウト値は 2 時間 (標準的な PIP 再試行間隔) に、再試行回数は 3 回 (標準的な PIP 再試行回数) に設定されています。したがって、何らかの原因で 2 時間以内に確認が届かない場合、このグループは再試行され、sendNotification of Failure のステップが再度実行されます。OnTimeout パスには再試行回数に達したかどうかを判別する条件が含まれており、再試行回数に達した場合に適切な処理を行うロジックをパスに追加することができます。

レポート管理者ビジネス プロセスの説明

PIP0A1 サンプルの参加者ビジネス プロセスは PIPA01ReportAdmin.java です。この参加者ビジネス プロセスを Oracle Workshop for WebLogic で表示するには、[パッケージ・エクスプローラー] ペインで [PIPA01ReportAdmin.java] をダブルクリックします。

図 2-6 レポート管理者ビジネス プロセス

レポート管理者ビジネス プロセス

レポート管理者ビジネス プロセスには以下の手順が含まれます。

  1. 障害通知メッセージがクライアント要求ノード Receive NoF に届きます。
  2. 実行ノード Print NOF on System Console は、Oracle WebLogic Server Console ウィンドウ上に確認を出力します。このノードは、プロダクション モードで使用される PIP0A1 レポート管理者ビジネス プロセスで実行される任意のビジネス ロジックのためのプレース ホルダです。
  3. クライアント応答ノード Send NoF Receipt Acknowledgment は、障害通知者プロセスに確認を送信します。

このチュートリアルの以下の 2 つのサンプルは、どちらも PIP0A1 障害通知サンプルを利用します。このサンプルがどのように機能するかについては、「PIP3B2 サンプルの実行」または「PIP3A4 サンプルの実行」のいずれかを完了してください。

手順 3 : PIP3B2 : 配送通知サンプルのオープン

ここでは、PIP3B2 : 配送通知のサンプル実装について説明します。内容は以下のとおりです。

PIP3B2 の詳細については、http://www.rosettanet.org を参照してください。

PIP3B2 サンプルについて

PIP3B2 は、「RosettaNet 設計パターン」で説明されている非同期シングル アクション アクティビティ設計パターンのサンプルです。PIP3B2Processes フォルダには、PIP3B2 のビジネス プロセス定義が含まれています。PIP3B2Schemas スキーマ プロジェクトには、PIP3B2 メッセージのスキーマ ファイルが含まれています。sampledata ディレクトリには、「PIP3B2 サンプルの実行」で使用できるサンプルの XML ドキュメントが含まれています。

以下の手順では、PIP3B2 ビジネス ロジックの概要を説明します。

  1. Shipper (開始者プロセス PIP3B2.java) は、配送通知メッセージを構築し、それを Receiver (参加者プロセス PIP3B2Participant.java) に送信します。
  2. Receiver はそのメッセージを検証し、受信確認を Shipper に送信します。
  3. Receiver は、以降の処理のためにバックエンド システム (PIP3B2ParticipantPrivate.java) にメッセージを送信します。
  4. バックエンド システムは処理中に問題を検出し、PIP0A1 サンプルを呼び出します。

PIP3B2 サンプルのコンポーネント

Oracle Workshop for WebLogic で [PIP3B2Processes] フォルダを開くと、[パッケージ・エクスプローラー] ペインにフォルダの内容が表示されます (図 2-7 を参照)。

図 2-7 PIP3B2 プロセス

PIP3B2 プロセス

次の表に、PIP3B2 サンプルのコンポーネントをまとめます。

表 2-5 PIP3B2 : 配送通知サンプルのコンポーネント
ロール/コンポーネント
説明
Shipper (開始者)
RosettaNet のロール名。
PIP3B2.java
メッセージの送信、確認の待機、障害の処理を行うパブリック開始者ビジネス プロセス。RosettaNet コントロール インスタンス Rn.java を使用する。
Rn.java
RNIF を介して Receiver とメッセージを交換するために使用される RosettaNet コントロール定義ファイル。RosettaNet コントロールの詳細については、「RosettaNet コントロール」を参照。
PIP3B2.java のこのコントロール インスタンスのアノテーションには、PIP の名前、バージョン、およびロール名が含まれる。
PIP3B2Control.java
他のプロセスで使用するために PIP3B2.java をラップするプロセス コントロール定義ファイル。[パッケージ・エクスプローラー] ペインで [PIP3B2.java] ファイルを右クリックして [生成|プロセス コントロール] を選択すると自動的に生成される。
PIP3B2Private.java
プロセス コントロールを介して PIP3B2.process ビジネス プロセスを呼び出すプライベート ビジネス プロセス。
このプライベート ビジネス プロセスは Oracle WebLogic Integration の機能を最大限に活用し、バックエンド システムにアクセスし、情報を収集整理して、PIP3B2 で必要なデータ形式に要求データを変換することができる。
PIP3B2PrivateTransformation.dtf および PIP3B2PrivatepIP3B2ControlStart.xq (関連 .xq ファイル)
サンプルのトランスフォーメーション ファイル。プロセス ノードでトランスフォーメーションを定義すると自動的に生成される。
PIP3B2Transformation.java および getStaticProperties.xq (関連 .xq ファイル)
サンプルのトランスフォーメーション ファイル。プロセス ノードでトランスフォーメーションを定義すると自動的に生成される。
Receiver (参加者)
RosettaNet のロール名。
PIP3B2Participant.java
RNIF メッセージを受信し、受信確認を Shipper に送信するパブリック ビジネス プロセス。RosettaNet アノテーションには PIP の名前、バージョン、およびロールが含まれる。
PIP3B2ParticipantPrivate.java
出荷通知のバックエンド プロセスを表すプライベート ビジネス プロセス。
PIP3B2ParticipantPrivateControl.java
PIP3B2Participant.java で使用するためにプライベート プロセスをラップするプロセス コントロール。[パッケージ・エクスプローラー] ペインで [PIP3B2ParticipantPrivate.java] ファイルを右クリックして [生成|プロセス コントロール] を選択すると自動的に生成される。

Shipper ビジネス プロセスの説明

この節では、PIP3B2 のサンプル開始者ビジネス プロセス (PIP3B2.java) について説明します。このビジネス プロセスを表示するには、以下の手順に従います。

  1. Oracle Workshop for WebLogic の [パッケージ・エクスプローラー] ペインで [pips|src] を展開し、[PIP3B2Processes] フォルダを開きます。
  2. [PIP3B2.java] ファイルをダブルクリックします。
  3. 必要に応じて、メイン (正常) パスのみが表示されるように、OnTimeout パスおよび On Error Message パスに加え、Set static properties for header グループおよび Retry block グループを折りたたみます。
  4. 図 2-8 PIP3B2 ビジネス プロセス


    PIP3B2 ビジネス プロセス

正常パス

正常パスは、以下に示すビジネス プロセスのメイン パスです。

  1. クライアント受信ノード Start は、配送通知 XML ドキュメントを受信する (このチュートリアルでは、クライアント要求はプライベート プロセスから届く) と、プロセスを呼び出します。
  2. Set static properties for header グループには、戻り値のあるコントロール送信ノード getStaticProperties とコントロール送信ノード setStaticProperties が含まれています。これらの 2 つのノードは、メッセージから RosettaNet プロパティを抽出し、PIP3B2 スキーマに基づいてドキュメントにマップします。
  3. Retry block グループには 2 つのノードが含まれています。コントロール送信ノード sendMessage は、RosettaNet コントロールの sendMessage メソッドを介して Receiver (参加者) にメッセージを送信します。コントロール受信ノード Receipt acknowledgement は、Receiver からの受信確認コールバック (rn_onAck メソッド) を待機します。
  4. 確認を受信すると、このプロセスはクライアント応答ノード Return Success を介してプライベート プロセスに応答します。

PIP3B2 はシングルアクション アクティビティ設計パターンを実装しているため、Receiver からはビジネス シグナル (受信確認または例外) 以外に返されるビジネス アクションはありません。プライベート プロセスへの応答では単に正常な完了が示されるのみで、データは返されません。

障害パス

OnTimeout パスおよび On Error Message パスでは、ネットワーク障害が発生した場合などの障害管理を処理します。障害パスを表示するには、以下の手順に従います。

  1. Retry block という名前のノード グループの横にある OnTimeout パスを展開します。
  2. 図 2-9 OnTimeout パス


    OnTimeout パス

    このパスは、標準的な BPM OnTimeout 構成を表しています。タイムアウト値は 2 時間 (標準的な PIP 再試行間隔) に、再試行回数は 3 回 (標準的な PIP 再試行回数) に設定されています。したがって、何らかの理由で確認が 2 時間以内に届かない場合、このグループは再試行され、sendMessage ステップが再度実行されます。OnTimeout パスには、再試行回数に達したかどうかを判別する条件が含まれています。再試行回数に達した場合、PIP 0A1 (障害通知) サブプロセスがコントロール送信ノードを介してトリガされ、このプロセスはエラーでプライベート プロセスに応答して終了します。

  3. プロセスの最上部にある PIP3B2 ノードの横の On Error Message パスを展開します。
  4. 図 2-10 OnError Message パス


    OnError Message パス

    Global Process Timeout は標準的な PIP タイムアウト値である 24 時間にコンフィグレーションされています。プロセス全体がこの時間内に完了できなかった場合、PIP0A1 (障害通知) サブプロセスがトリガされ、プライベート プロセスにエラーが返されます。

    最後に、Receiver はさまざまな理由 (メッセージの検証で問題があったなど) からメッセージを拒否する場合があります。メッセージの拒否は、RosettaNet コントロールの onError コールバックとして表されます。グローバル On Error Message ハンドラはいつでもエラーを受信できるように準備されており、受信した場合は問題を管理者に通知するサブプロセスを開始し、プライベート プロセスにエラーを返してから終了することが分かります。ネットワークの問題などが原因で、メッセージを正常に送信できない場合、ビジネス プロセスは PIP0A1 (障害通知) を開始して、リモート パートナへの問題の通知を試行する点に注目してください。同様に、Receiver からエラーを受信すると、ビジネス プロセスはリモート管理者だけでなく、ローカル管理者にも通知する必要があります。

Receiver ビジネス プロセスの説明

参加者ビジネス プロセスを Oracle Workshop for WebLogic で表示するには、[PIP3B2Participant.java] ファイルを開きます。

図 2-11 PIP3B2Participant ビジネス プロセス

PIP3B2Participant ビジネス プロセス

参加者ビジネス プロセスには以下のノードが含まれます。

  1. クライアント要求ノード Receive Advance Shipping Notice は配送通知メッセージを受信します。
  2. 分岐ノード Check if Notification of Advance Shipment はそのメッセージを検証し、以下のいずれかの処理を行います。
    • メッセージが正しい場合、Send receipt acknowledgement クライアント応答ノードを介して受信確認を送信する。
    • メッセージに問題がある場合、send Exception クライアント応答ノードを介してエラー メッセージを送信する。
  3. Invoke private process グループでは、コントロール送信ノード processShipment が以降の処理のために配送通知をプライベート ビジネス プロセスに渡し、コントロール受信ノード get Private Response がプライベート プロセスからの確認を待機します。

プライベート ビジネス プロセスの説明

どちらの側のプライベート プロセスも、プロダクション環境でバックエンド アプリケーションと対話するプロセスのためのプレース ホルダです。たとえば、出荷通知をアプリケーション ビュー コントロールおよび Oracle アダプタを介して ERP アプリケーションに挿入する、メッセージ キューに送る、およびファイルやデータベースに書き込むことができます。

このサンプルで使用されるパブリックおよびプライベート プロセス パターンは必須ではなく、推奨されるアプローチの 1 つに過ぎません。現在の環境に最も合うようにプロセスを自由に仕切ることができます。プライベート プロセスを使用せずに、RosettaNet の対話だけでなく、必要なすべてのバックエンド統合を単一のプロセスに実装することもできます。ただし、プロセスをパブリック (RosettaNet の構成しか処理しない) とプライベート (バックエンド システム統合を処理する) に分割すると、アプリケーションの再利用性とメンテナンス性が高まります。

このサンプルの PIP3B2ParticipantPrivate.java は、プロセスを実行すると、意図的にエラーをトリガし、PIP0A1 サンプルを呼び出すようにコンフィグレーションされています。

PIP3B2 サンプルの実行

Oracle WebLogic Integration はデフォルトでテスト (開発) モードで実行されるため、同じマシン上で PIP3B2 サンプル ビジネス プロセスを併置して実行することができます。プロダクション環境では、各トレーディング パートナは別個の独自の Oracle WebLogic Integration サーバ上で各ビジネス プロセスを実行します。テスト モードとプロダクション モードの詳細については、「トレーディング パートナ管理」の「モードとメッセージ トラッキングのコンフィグレーション」を参照してください。

PIP3B2 サンプルを実行するには、以下の手順に従います。

  1. Oracle WebLogic Server がまだ実行されていない場合は、Oracle Workshop for WebLogic のメニューから [ウィンドウ|ビューの表示|その他|サーバー|サーバー] を選択して [OK] をクリックします。[サーバー] ビューが開き、サーバとその状態が表示されます。
  2. [パッケージ・エクスプローラー] で [Pips|PIP3B2Processes] を展開し、[PIP3B2Participant.java] を右クリックして表示されるメニューの [実行] から [サーバーで実行] をクリックします。
  3. [新規サーバーの定義] ダイアログ ボックスで [既存のサーバーを選択] オプションまたは [手動で新規サーバーを定義] オプション (サーバが定義されていない場合) を選択し、[次へ] をクリックします。
  4. [Oracle WebLogic Server] ダイアログ ボックスでサーバを手動で定義するには、[参照] をクリックして「手順 1 : 新しい Oracle WebLogic Integration ドメインの作成」で作成した Oracle WebLogic Integration ドメイン (c:\bea\user_projects\domains\tptutorial など) を選択してから [OK] をクリックします。
  5. [終了] をクリックします。
  6. サンプルのドメイン統合サーバが起動し、RequestQuote アプリケーションがデプロイされます。Oracle WebLogic Server が実行されている場合は、以下のインジケータが [サーバー] ビューに表示されます。


    PIP3B2Participant ビジネス プロセス

  7. アプリケーションがデプロイされた後で、テスト ブラウザが表示されます。
  8. [テスト フォーム] タブをクリックします。
  9. [テスト フォーム] ページで、xml プロパティ (ファイル値) フィールドの横にある [参照...] をクリックし、[file location]\rosettanet\pips\WebContent\PIP3B2Processes\sampledata\3B2AdvanceShipmentNotificationMessageBase.xml に移動します。
  10. ここで、[file location] は、チュートリアル ファイルをインストールしたディレクトリです (「手順 3 : チュートリアル ファイルのインストール」を参照)。

  11. [onMessage] をクリックします。
  12. しばらくすると、エンドツーエンドの構成が実行されます。クライアント応答が XML メッセージを送り返します。Oracle WebLogic Server Console を起動します。
  13. しばらくすると、コンソール上に次のメッセージが表示されます。
  1. Oracle WebLogic Integration Administration Console を開き、メッセージ トラッキング エントリおよびプロセス トラッキング エントリを観察することもできます。

手順 4 : PIP3A4 : 注文要求サンプルのオープン

ここでは、PIP3A4 : 注文要求のサンプル実装について説明します。内容は以下のとおりです。

PIP3A4 の詳細については、http://www.rosettanet.org を参照してください。

PIP3A4 サンプルについて

PIP3A4 は、「RosettaNet 設計パターン」で説明している非同期ダブルアクション アクティビティ設計パターンのサンプルです。PIP3A4Processes フォルダには、PIP3A4 のビジネス プロセス定義が含まれています。PIP3A4Schemas スキーマ プロジェクトには、PIP3A4 メッセージのスキーマ ファイルが含まれています。sampledata ディレクトリには、「PIP3A4 サンプルの実行」で使用できるサンプルの XML ドキュメントが含まれています。

PIP3A4 注文要求には以下の手順が含まれます。

  1. Buyer (開始者) は注文要求メッセージを構築し、それを Seller (参加者) に送信します。
  2. Seller はそのメッセージを検証し、受信確認を Buyer に送信します。
  3. その後、Seller は以降の処理のために注文要求メッセージをバックエンド システムに送信します。
  4. Seller のバックエンド システムは、注文確認 (要求された製品の在庫と予想出荷日が確認される) を生成します。
  5. Seller はその確認を Buyer に送信します。
  6. Buyer は Seller に対するメッセージの受信確認を行います。
  7. Buyer は以降の処理のためにバックエンド システムに注文確認を渡しますが、処理中にエラーが発生し、PIP A01 サンプルがトリガされます。

PIP3A4 サンプルのコンポーネント

Oracle Workshop for WebLogic で [PIP3A4Processes] フォルダを開くと、[パッケージ・エクスプローラー] ペインにフォルダの内容が表示されます。

PIP3B2Participant ビジネス プロセス

次の表では、PIP3A4 サンプル実装のコンポーネントについて説明します。

表 2-6 PIP3A4 (注文要求) サンプルのコンポーネント
ロール/コンポーネント
説明
Buyer (開始者)
RosettaNet のロール名。
PIP3A4.java
Seller とメッセージを交換し、確認を待機し、障害を処理するパブリック ビジネス プロセス。RosettaNet コントロール インスタンス (Rn.java) を使用する。
Rn.java
RNIF を介して Seller とメッセージを交換するために使用される RosettaNet コントロール定義ファイル。RosettaNet コントロールの詳細については、「RosettaNet コントロール」を参照。
PIP3A4.java のこのコントロール インスタンスのアノテーションには、PIP の名前、バージョン、およびロール名が含まれる。
PIP3A4Control.java
他のプロセスで使用するために PIP3A4.java をラップするプロセス コントロール定義ファイル。[パッケージ・エクスプローラー] ペインで [PIP3A4.java] ファイルを右クリックして [生成|プロセス コントロール] を選択すると自動的に生成される。
PIP3A4Private.java
プロセス コントロールを介して PIP3A4 プロセスを呼び出すプライベート ビジネス プロセス。このビジネス プロセスは Oracle WebLogic Integration の機能を最大限に活用し、バックエンド システムにアクセスし、情報を収集整理して、PIP3A4 で必要な形式に変換することができる。
PIP3A4PrivateTransformation.dtf および関連 .xq ファイル
PIP3A4Transformation.dtf および関連 getStaticProperties.xq ファイル
サンプルのトランスフォーメーション ファイル。プロセス ノードでトランスフォーメーションを定義すると自動的に生成される。
Seller (参加者)
RosettaNet のロール名。
PIP3A4Participant.java
メッセージの受信、受信確認の送信、メッセージの応答、確認の受信を行うパブリック ビジネス プロセス。RosettaNet アノテーションには PIP の名前、バージョン、およびロールが含まれる。詳細については、RosettaNet アノテーション タイプを参照。
PIP3A4ParticipantPrivate.java
注文確認の作成と注文のバックエンド処理を表すプライベート ビジネス プロセス。
fc.java
ローカル ファイル システムから注文確認サンプル ファイルを読み込むために使用されるファイル コントロール定義ファイル。
PIP3A4ParticipantPrivateControl.java
PIP3A4Participant.java で使用するためにプライベート プロセスをラップするプロセス コントロール。[パッケージ・エクスプローラー] ペインで [PIP3A4ParticipantPrivate.java] ファイルを右クリックし、[生成|プロセス コントロール] を選択すると自動的に生成される。
PIP3A4ParticipantTransformation.java および関連 getStaticProperties1.xq ファイル
サンプルのトランスフォーメーション ファイル。プロセス ノードでトランスフォーメーションを定義すると自動的に生成される。

Seller ビジネス プロセスの説明

この節では、PIP3B2 のサンプル開始者ビジネス プロセス (PIP3A4.java) について説明します。このビジネス プロセスを表示するには、以下の手順に従います。

  1. Oracle Workshop for WebLogic で [PIP3A4.java] ファイルを開きます。
  2. 必要に応じて、メイン (正常) パスのみが表示されるようにするために、OnTimeout パスと On Error Message パスに加え、すべてのグループを折りたたみます。

  3. PIP3B2Participant ビジネス プロセス

正常パス

正常パスのビジネス ロジックは次のとおりです。

  1. クライアント要求ノード Start は、注文要求 XML ドキュメント メッセージを受信します (このチュートリアルでは、クライアント要求はプライベート プロセスから届く)。
  2. Set properties that go into service header グループには、戻り値のあるコントロール送信ノード getStaticProperties とコントロール送信ノード setStaticProperties が含まれています。これらの 2 つのノードは、メッセージから RosettaNet プロパティを抽出し、PIP3B2 スキーマに基づいてドキュメントにマップします。
  3. Retry block グループには 2 つのノードが含まれています。コントロール送信ノード sendMessage は、RosettaNet コントロールの sendMessage メソッドを介して Seller (参加者) にメッセージを送信します。コントロール受信ノード Receipt acknowledgement は、Receiver からの受信確認コールバック (rn_onAck メソッド) を待機します。
  4. この確認を受信すると、ビジネス プロセスはコントロール受信ノード onMessage で注文確認を待機します。
  5. Correctnonamespace 実行ノードは、受信した XML Bean に正しいネームスペースを追加します (プロジェクト フォルダのスキーマは同じネームスペースを持つことができないため、この手順が必要となります)。
  6. 注文確認を受信すると、Decision ノードがメッセージを検証し、以下の処理を行います。
    • メッセージが正しい場合、Send PO Ack receipt acknowledgement コントロール送信ノードを介して受信確認を送信する。
    • メッセージに問題がある場合、sendError コントロール送信ノードを介してエラー メッセージを送信する。
  7. ビジネス プロセスは、Return PO ack クライアント応答ノードを介して、注文確認でプライベート プロセスに応答します。
  8. Process Message 実行ノードは、意図的にエラーをトリガし、PIP0A1 サンプルを呼び出すようにコンフィグレーションされています。
注意 : Oracle WebLogic Integration では RosettaNet の仕様に準拠して、受信確認とビジネス メッセージのどちらを先に受信することもできます。開始者が受信確認より先に応答メッセージを受信すると、応答メッセージはキューに登録され、後で処理されます。
障害パス

OnTimeout パスおよび On Error Message パスでは、ネットワーク障害が発生した場合などの障害管理を処理します。障害パスを表示するには、以下の手順に従います。

  1. Retry block という名前のノード グループの横にある OnTimeout パスを展開します。

  2. PIP3B2Participant ビジネス プロセス

    このパスは、標準的な BPM OnTimeout 構成を表しています。タイムアウト値は 2 時間 (標準的な PIP 再試行間隔) に、再試行回数は 3 回 (標準的な PIP 再試行回数) に設定されています。したがって、何らかの理由で確認が 2 時間以内に届かない場合、このグループは再試行され、sendMessage ステップが再度実行されます。OnTimeout パスには、再試行回数に達したかどうかを判別する条件が含まれています。再試行回数に達した場合、PIP 0A1 (障害通知) サブプロセスがコントロール送信ノードを介してトリガされ、このプロセスはエラーでプライベート プロセスに応答して終了します。

  3. プロセスの最上部にある PIP3A4 ノードの横の On Error Message パスを展開します。

  4. PIP3B2Participant ビジネス プロセス

    Global Process Timeout は標準的な PIP タイムアウト値である 24 時間にコンフィグレーションされています。プロセス全体がこの時間内に完了できなかった場合、PIP0A1 (障害通知) サブプロセスがトリガされ、プライベート プロセスにエラーが返されます。

    最後に、Receiver はさまざまな理由 (メッセージの検証で問題があったなど) からメッセージを拒否する場合があります。メッセージの拒否は、RosettaNet コントロールの onError コールバックとして表されます。グローバル On Error Message ハンドラはいつでもエラーを受信できるように準備されており、受信した場合は問題を管理者に通知するサブプロセスを開始し、プライベート プロセスにエラーを返してから終了することが分かります。ネットワークの問題などが原因で、メッセージを正常に送信できない場合、ビジネス プロセスは PIP0A1 (障害通知) を開始して、リモート パートナへの問題の通知を試行する点に注目してください。同様に、Receiver からエラーを受信すると、ビジネス プロセスはリモート管理者だけでなく、ローカル管理者にも通知する必要があります。

Buyer ビジネス プロセスの説明

Seller 側の参加者ビジネス プロセス (PIP3A4Participant.java) は、開始者ビジネス プロセスほど複雑ではありません。参加者ビジネス プロセスを Oracle Workshop for WebLogic で表示するには、[PIP3A4Participant.java] ファイルを開きます。

PIP3B2Participant ビジネス プロセス

参加者ビジネス プロセスには以下の手順が含まれます。

  1. クライアント要求ノード Receive PO message は、注文要求メッセージを受信します。
  2. 実行ノード Check for noNamespace and do the correction は、受信した XML Bean に正しいネームスペースを追加します (プロジェクト フォルダのスキーマは同じネームスペースを持つことができないため、この手順が必要となります)。
  3. Decision ノードは注文を検証し、以下の処理を行います。
    • 注文が正しい場合、Send receipt acknowledgement クライアント応答ノードを介して Buyer に受信確認を送信する。
    • 注文に問題がある場合、send Exception クライアント応答ノードを介してエラー メッセージを送信する。
  4. Invoke Private Process グループでは、processOrder コントロール送信ノードが以降の処理のために注文要求をプライベート ビジネス プロセスに渡し、onPOAck コントロール受信ノードがプライベート プロセスから戻される応答を待機します。プライベート プロセスは、ファイル コントロールを使用して確認を読み込んだ後で送信される応答を構築します。
  5. 戻り値のあるコントロール送信ノード getStaticProperties は、受信メッセージから RosettaNet Context プロパティを抽出します。これらのプロパティは、エラーが発生した場合にのみ必要となります。これらのプロパティは PIP0A1 障害通知の構築に必要な情報を格納し、保存しておくことで後で使用することができます。from、to、メッセージ ID などのプロパティがあります。
  6. Retry block グループでは、Send PO Acknowledgement クライアント応答ノードが sendReply コールバック メソッドを使用して注文確認メッセージを Buyer に送信し、Receive receipt acknowledgement クライアント要求ノードが受信確認を待機します。

単にメッセージを受信する 3B2 参加者ビジネス プロセスとは異なり、3A4 参加者ビジネス プロセスは応答を送信するため、ネットワーク障害や検証の失敗などの障害のシナリオを計算しておく必要があります。タイムアウトと再試行を表示するには、Retry BlockonTimeout パスを開きます。このパスは、「Shipper ビジネス プロセスの説明」で説明している 3B2 開始者ビジネス プロセスの onTimeout パスに似ていることに注目してください。さらに、Buyer から返されたエラーを処理するグローバル onMessage ハンドラが存在します。

プライベート ビジネス プロセスの説明

3B2 サンプルと同様に、どちらの側のプライベート プロセスもバックエンド ビジネス ロジックの単なるプレース ホルダです。参加者プライベート プロセスは実際に、受信したメッセージをそのまま返します。これらのプロセスは通常、バックエンド アプリケーションと結びつくようにカスタマイズします。たとえば、出荷通知をアプリケーション ビュー コントロールおよび Oracle アダプタを介して ERP アプリケーションに挿入する、メッセージ キューに送る、およびファイルやデータベースに書き込むことができます。

このサンプルで使用されるパブリックおよびプライベート プロセス パターンは必須ではなく、推奨されるアプローチの 1 つに過ぎません。現在の環境に最も合うようにプロセスを自由に仕切ることができます。プライベート プロセスを使用せずに、RosettaNet の対話だけでなく、必要なすべてのバックエンド統合を単一のプロセスに実装することもできます。ただし、プロセスをパブリック (RosettaNet の構成しか処理しない) とプライベート (バックエンド システム統合を処理する) に分割すると、アプリケーションの再利用性とメンテナンス性が高まります。

PIP3A4 サンプルの実行

PIP3A4 サンプルを実行するには、以下の手順に従います。

  1. このサンプルではファイル コントロールを使用して、ローカル ファイル システムから注文確認メッセージを読み込みます。サンプルを実行するには、fc.java ファイルでディレクトリ パスを設定し、正しいサンプル データ ファイルが検出されるようにする必要があります。
    1. [パッケージ・エクスプローラー] ペインで [fc.java] ファイルをダブルクリックします。
    2. ソース ビューで directory-name 属性を次のように設定します。
    3. [file location]\tptutorialapps\rosettanet\PIP3A4Processes

      ここで、[file location] は、チュートリアル ファイルをインストールしたディレクトリです (「手順 3 : チュートリアル ファイルのインストール」を参照)。

  2. Oracle WebLogic Server がまだ実行されていない場合は、Oracle Workshop for WebLogic のメニューから [ウィンドウ|ビューの表示|その他|サーバー|サーバー] を選択して [OK] をクリックします。[サーバー] ビューが開き、サーバとその状態が表示されます。
  3. [パッケージ・エクスプローラー] で [PIP3A4Processes] を展開し、[PIP3A4Participant.java] を右クリックして表示されるメニューの [実行] から [サーバーで実行] をクリックします。
  4. [新規サーバーの定義] ダイアログ ボックスで [既存のサーバーを選択] オプションまたは [手動で新規サーバーを定義] オプション (サーバが定義されていない場合) を選択し、[次へ] をクリックします。
  5. [Oracle WebLogic Server] ダイアログ ボックスでサーバを手動で定義するには、[参照] をクリックして「手順 1 : 新しい Oracle WebLogic Integration ドメインの作成」で作成した Oracle WebLogic Integration ドメイン (c:\bea\user_projects\domains\tptutorial など) を選択してから [OK] をクリックします。
  6. [終了] をクリックします。
  7. サンプルのドメイン統合サーバが起動し、RequestQuote アプリケーションがデプロイされます。Oracle WebLogic Server が実行されている場合は、以下のインジケータが [サーバー] ビューに表示されます。


    PIP3B2Participant ビジネス プロセス

  8. アプリケーションがデプロイされた後で、テスト ブラウザが表示されます。
  9. [テスト フォーム] タブをクリックします。
  10. [テスト フォーム] ページで、xml プロパティ (ファイル値) フィールドの横にある [参照...] をクリックし、[file location]\rosettanet\pips\WebContent\PIP3A4Processes\sampledata\3A4PurchaseOrderRequestMessageBase_0010.xml に移動します。
  11. ここで、[file location] は、チュートリアル ファイルをインストールしたディレクトリです (「手順 3 : チュートリアル ファイルのインストール」を参照)。

  12. [onMessage] をクリックします。
  13. しばらくすると、エンドツーエンドの構成が実行されます。クライアント応答が XML メッセージをそのまま返します。

  14. Oracle WebLogic Server Console を起動します。
  15. しばらくすると、コンソール上に次のメッセージが表示されます。

  1. Oracle WebLogic Integration Administration Console を開き、メッセージ トラッキング エントリおよびプロセス トラッキング エントリを観察することもできます。

 


サンプル PIP に基づいた、新しい PIP の実装

ここでは、このチュートリアルで提供されているサンプル PIP に基づいた新しい PIP の実装について説明します。内容は以下のとおりです。

新しい PIP の実装について

同様の設計パターンを持つ既存の PIP 実装に基づいて新しい PIP を実装することができます。たとえば、PIP 3A2 : 価格と入手可能性要求は、応答のあるメッセージ送信という設計パターンのサンプルです。したがって、このビジネス プロセスの構成は PIP3A4 の構成と同じです。主な違いは要求と応答のメッセージ スキーマが異なる点にあり、アノテーションを変更する必要があります。3A4 プロセスを複製し、名前を変更してメッセージのスキーマ型を変更することで容易に PIP 3A2 実装を作成することができます。PIP3A4 の詳細については、http://www.rosettanet.org を参照してください。

PIP 実装のコピーとカスタマイズ

既存の PIP 実装に基づいて新しい PIP を実装するには、以下の作業を実行します。

  1. 仕様およびすべての DTD を含む PIP 配布キットを、RosettaNet の Web サイト (http://www.rosettanet.org) からダウンロードします。
  2. (省略可能) 任意の DTD を XSD ファイルに変換します (「RosettaNet DTD スキーマから XSD スキーマへの変換」を参照)。
  3. 使用する設計パターンに関連のあるサンプル PIP 実装をコピーします。
  4. Oracle Workshop for WebLogic で、新しい PIP に使用するスキーマをプロジェクトにインポートし、スキーマ定義を新しい PIP に変更します。
  5. 新しい PIP 用に、RosettaNet アノテーションを変更します。
    • 「パブリック」開始者ビジネス プロセスの場合、pippip-version、to-rolefrom-role 属性 (および、必要に応じてその他の属性) を変更する (RosettaNetControl インタフェースを参照)。
    • 「パブリック」参加者ビジネス プロセスの場合、pip-name、pip-rolepip-version 属性 (および、必要に応じてその他の属性) を変更する (RosettaNet アノテーション タイプを参照)。
  6. 必要に応じて、新しい PIP 実装の内容がわかるように、プロセスおよびコントロール ファイルの名前を変更し、他のコンポーネントの名前も変更します。
  7. 必要に応じて、「プライベート」ビジネス プロセスの実装を変更します。
  8. その他の必要な変更を行います。

RosettaNet DTD スキーマから XSD スキーマへの変換

選択された PIP の RosettaNet W3C XSD スキーマは、RosettaNet Self-Test Kit (STK) に含まれています。このキットは、http://www.rosettanet.org にある RosettaNet Ready Web サイトの Developer Tools 領域からダウンロードできます。

使用している PIP のスキーマをこの Web サイトから入手できない場合、DTD ファイルとして指定されている RosettaNet メッセージ定義を使用して Oracle WebLogic Integration で RosettaNet ソリューションを実装することもできます。ただし、この代わりに W3C XSD ファイルの使用をお勧めします。XQuery マッピング ツール (データトランスフォーメーションの定義に使用されるツール) などの多くの Oracle WebLogic Integration ツールでサポートされるのは、XSD スキーマのみであるためです。

グラフィカルな XQuery マッピング ツールを使用する場合は、RosettaNet DTD ファイルを W3C XSD ファイルに変換 (XML Spy Enterprise Edition などのツールを使用) してから、その XSD ファイルをプロジェクトにインポートする必要があります。DTD ファイルを変換している PIP について RosettaNet メッセージ ガイドラインを必ず参照し、変換後にサービス内容検証の適切な検証ルールを XSD ファイルに追加するようにしてください。

ファイルを変換する際は、以下の問題を考慮します。

2 つの異なるスキーマに同じ要素定義が含まれる場合、スキーマのコンパイルで問題が発生します。名前の重複は、targetNamespace を明示的に使用することで回避できます。たとえば、このチュートリアルの 3A4 Purchase Order Request W3C スキーマの場合、<xs:schema id="Pip3A4PurchaseOrderRequest" targetNamespace="Pip3A4PurchaseOrderRequest" xmlns="Pip3A4PurchaseOrderRequest"> を使用します。

スキーマ プロジェクトをビルドすると、その PIP の型がタイプ システムで使用できるようになり、パラメータ型および変数型で使用できるようになります。


  ページの先頭       前  次