![]() ![]() ![]() ![]() |
このトピックでは、Trading Partner Integration の RosettaNet ソリューションを Oracle WebLogic Integration で実装する方法について説明します。内容は以下のとおりです。
RosettaNet は、企業がインターネット経由でビジネスを遂行するためのビジネス プロトコルです。RosettaNet の詳細については、http://www.rosettanet.org を参照してください。
ここでは、このチュートリアルを開始する前に実行すべき作業について説明します。内容は以下のとおりです。
このチュートリアルを使用するには、以下の作業を完了している必要があります。
RosettaNet ソリューションを Oracle WebLogic Integration で実装する方法について理解を深めるために、以下の資料に目を通しておくことをお勧めします。
RosettaNet ビジネス プロトコルの詳細、および RosettaNet ソリューションの実装方法については、以下を参照してください。
選択された 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 に準拠しています。
次の表では、このチュートリアルで用意されている RosettaNet サンプルについて説明します。
|
|
次の表では、\tptutorialapps\rosettanet
ディレクトリを開くと [パッケージ・エクスプローラー] ペインに表示されるフォルダについて説明します。
RosettaNet PIP は、次の設計パターンのうちいずれかに従っています。
|
|||
|
|||
|
このチュートリアルで用意されているサンプル PIP 実装を使用すると、同じ設計パターンに従う任意の PIP を迅速かつ容易に構築することができます。詳細については、「サンプル PIP に基づいた、新しい PIP の実装」を参照してください。
RosettaNet 設計パターンと会話の構成の詳細については、以下のドキュメントを参照してください。
これらの手順に進む前に、「始める前に」の資料に目を通しておいてください。
RosettaNet サンプル アプリケーションには、「このサンプルで実装されている PIP」で説明している PIP 実装がすべて含まれています。
RosettaNet サンプル アプリケーションを開くには、以下の手順に従います。
tptutorialapps
] フォルダに移動します。rosettanet
] フォルダを選択し、[OK] をクリックします。 注意 : | Oracle WebLogic Integration ドメインおよびサーバを選択するように求められた場合、「手順 1 : 新しい Oracle WebLogic Integration ドメインの作成」で作成した Oracle WebLogic Integration ドメイン (c:\bea\user_projects\domains\tptutorial など) を選択します。 |
[パッケージ・エクスプローラー] ペインに、RosettaNet チュートリアル アプリケーションの内容が表示されます (図 2-2 を参照)。詳細については、「RosettaNet チュートリアル アプリケーションのフォルダ」を参照してください。
このトピックでは、PIP0A1 : 障害通知のサンプル実装について説明します。内容は以下のとおりです。
PIP0A1 の詳細については、http://www.rosettanet.org を参照してください。
PIP0A1 は、PIP0A1 障害通知の実装方法のサンプルです。PIP0A1Processes
フォルダには、PIP0A1 のビジネス プロセス定義が含まれています。PIP0A1Schemas
スキーマ プロジェクトには、PIP0A1 メッセージのスキーマ ファイルが含まれています。
PIP0A1 は、ビジネス ロジックを設定し、エラー メッセージを適切に処理してから、そのビジネス ロジックとエラー メッセージに基づいて適切な障害管理者に障害通知を送信する際に使用する正しいチャネルを開く方法を例示しています。このチュートリアルの PIP0A1 障害通知シナリオは次のとおりです。
注意 : | デモの目的から、チュートリアル サンプルのビジネス プロセスは、意図的に障害通知をトリガするようにコンフィグレーションされています。 |
以下の手順では、PIP A01 ビジネス ロジックの概要を示します。
PIP0A1.java
) は、PIP3A4 Seller または PIP3B2 Receiver 側から障害通知要求を受信します。PIP0A1ReportAdmin.java
) に障害通知メッセージを送信します。障害通知者プロセスはまた、メッセージを送信したことを示す通知を Oracle WebLogic Server Console 上に書き込みます。
Oracle Workshop for WebLogic で [PIP0A1Processes
] フォルダを開くと、[パッケージ・エクスプローラー] ペインにフォルダの内容が表示されます (図 2-3 を参照)。
次の表に、PIP0A1 サンプルのコンポーネントをまとめます。
この節では、サンプルの開始者ビジネス プロセス (PIP0A1.java
) について説明します。このビジネス プロセスを表示するには、以下の手順に従います。
RosettaNet Context
プロパティを抽出します。RosettaNet Context
の詳細については、RosettaNet Control インタフェースを参照してください。RosettaNet
Context
プロパティをドキュメントにマップします。
マップされているフィールドを表示するには、[パッケージ・エクスプローラー] ペインで、[getFailureNotification.xq
] ファイルをダブルクリックします。
注意 : | デフォルトでは Oracle WebLogic Integration トランスフォーメーション出力に DOCTYPE プロパティが含まれないため、この手順が必要になります。 |
PIP0A1ReportAdmin
ビジネス プロセスに送信し、メッセージの受信確認を待機します。
また、デモの目的から、Send Notification of Failure ノードは PIP0A1ReportAdmin
プロセスにメッセージを送信した後で、Oracle WebLogic Server Console に同じメッセージを出力します。
PIP0A1ReportAdmin
ビジネス プロセスに送信された後で実行されるビジネス ロジックのためのプレース ホルダです。
OnTimeout パスは、ネットワーク障害が発生した場合などの障害管理を処理します。障害パスを表示するには、以下の手順に従います。
このパスは、標準的な BPM OnTimeout 構成を表しています。タイムアウト値は 2 時間 (標準的な PIP 再試行間隔) に、再試行回数は 3 回 (標準的な PIP 再試行回数) に設定されています。したがって、何らかの原因で 2 時間以内に確認が届かない場合、このグループは再試行され、sendNotification of Failure のステップが再度実行されます。OnTimeout パスには再試行回数に達したかどうかを判別する条件が含まれており、再試行回数に達した場合に適切な処理を行うロジックをパスに追加することができます。
PIP0A1 サンプルの参加者ビジネス プロセスは PIPA01ReportAdmin.java
です。この参加者ビジネス プロセスを Oracle Workshop for WebLogic で表示するには、[パッケージ・エクスプローラー] ペインで [PIPA01ReportAdmin.java
] をダブルクリックします。
レポート管理者ビジネス プロセスには以下の手順が含まれます。
このチュートリアルの以下の 2 つのサンプルは、どちらも PIP0A1 障害通知サンプルを利用します。このサンプルがどのように機能するかについては、「PIP3B2 サンプルの実行」または「PIP3A4 サンプルの実行」のいずれかを完了してください。
ここでは、PIP3B2 : 配送通知のサンプル実装について説明します。内容は以下のとおりです。
PIP3B2 の詳細については、http://www.rosettanet.org を参照してください。
PIP3B2 は、「RosettaNet 設計パターン」で説明されている非同期シングル アクション アクティビティ設計パターンのサンプルです。PIP3B2Processes
フォルダには、PIP3B2 のビジネス プロセス定義が含まれています。PIP3B2Schemas
スキーマ プロジェクトには、PIP3B2 メッセージのスキーマ ファイルが含まれています。sampledata
ディレクトリには、「PIP3B2 サンプルの実行」で使用できるサンプルの XML ドキュメントが含まれています。
以下の手順では、PIP3B2 ビジネス ロジックの概要を説明します。
Oracle Workshop for WebLogic で [PIP3B2Processes
] フォルダを開くと、[パッケージ・エクスプローラー] ペインにフォルダの内容が表示されます (図 2-7 を参照)。
次の表に、PIP3B2 サンプルのコンポーネントをまとめます。
この節では、PIP3B2 のサンプル開始者ビジネス プロセス (PIP3B2.java
) について説明します。このビジネス プロセスを表示するには、以下の手順に従います。
正常パスは、以下に示すビジネス プロセスのメイン パスです。
sendMessage
メソッドを介して Receiver (参加者) にメッセージを送信します。コントロール受信ノード Receipt acknowledgement は、Receiver からの受信確認コールバック (rn_onAck
メソッド) を待機します。
PIP3B2 はシングルアクション アクティビティ設計パターンを実装しているため、Receiver からはビジネス シグナル (受信確認または例外) 以外に返されるビジネス アクションはありません。プライベート プロセスへの応答では単に正常な完了が示されるのみで、データは返されません。
OnTimeout パスおよび On Error Message パスでは、ネットワーク障害が発生した場合などの障害管理を処理します。障害パスを表示するには、以下の手順に従います。
このパスは、標準的な BPM OnTimeout 構成を表しています。タイムアウト値は 2 時間 (標準的な PIP 再試行間隔) に、再試行回数は 3 回 (標準的な PIP 再試行回数) に設定されています。したがって、何らかの理由で確認が 2 時間以内に届かない場合、このグループは再試行され、sendMessage
ステップが再度実行されます。OnTimeout パスには、再試行回数に達したかどうかを判別する条件が含まれています。再試行回数に達した場合、PIP 0A1 (障害通知) サブプロセスがコントロール送信ノードを介してトリガされ、このプロセスはエラーでプライベート プロセスに応答して終了します。
Global Process Timeout は標準的な PIP タイムアウト値である 24 時間にコンフィグレーションされています。プロセス全体がこの時間内に完了できなかった場合、PIP0A1 (障害通知) サブプロセスがトリガされ、プライベート プロセスにエラーが返されます。
最後に、Receiver はさまざまな理由 (メッセージの検証で問題があったなど) からメッセージを拒否する場合があります。メッセージの拒否は、RosettaNet コントロールの onError
コールバックとして表されます。グローバル On Error Message ハンドラはいつでもエラーを受信できるように準備されており、受信した場合は問題を管理者に通知するサブプロセスを開始し、プライベート プロセスにエラーを返してから終了することが分かります。ネットワークの問題などが原因で、メッセージを正常に送信できない場合、ビジネス プロセスは PIP0A1 (障害通知) を開始して、リモート パートナへの問題の通知を試行する点に注目してください。同様に、Receiver からエラーを受信すると、ビジネス プロセスはリモート管理者だけでなく、ローカル管理者にも通知する必要があります。
参加者ビジネス プロセスを Oracle Workshop for WebLogic で表示するには、[PIP3B2Participant.java
] ファイルを開きます。
どちらの側のプライベート プロセスも、プロダクション環境でバックエンド アプリケーションと対話するプロセスのためのプレース ホルダです。たとえば、出荷通知をアプリケーション ビュー コントロールおよび Oracle アダプタを介して ERP アプリケーションに挿入する、メッセージ キューに送る、およびファイルやデータベースに書き込むことができます。
このサンプルで使用されるパブリックおよびプライベート プロセス パターンは必須ではなく、推奨されるアプローチの 1 つに過ぎません。現在の環境に最も合うようにプロセスを自由に仕切ることができます。プライベート プロセスを使用せずに、RosettaNet の対話だけでなく、必要なすべてのバックエンド統合を単一のプロセスに実装することもできます。ただし、プロセスをパブリック (RosettaNet の構成しか処理しない) とプライベート (バックエンド システム統合を処理する) に分割すると、アプリケーションの再利用性とメンテナンス性が高まります。
このサンプルの PIP3B2ParticipantPrivate.java
は、プロセスを実行すると、意図的にエラーをトリガし、PIP0A1 サンプルを呼び出すようにコンフィグレーションされています。
Oracle WebLogic Integration はデフォルトでテスト (開発) モードで実行されるため、同じマシン上で PIP3B2 サンプル ビジネス プロセスを併置して実行することができます。プロダクション環境では、各トレーディング パートナは別個の独自の Oracle WebLogic Integration サーバ上で各ビジネス プロセスを実行します。テスト モードとプロダクション モードの詳細については、「トレーディング パートナ管理」の「モードとメッセージ トラッキングのコンフィグレーション」を参照してください。
PIP3B2 サンプルを実行するには、以下の手順に従います。
c:\bea\user_projects\domains\tptutorial
など) を選択してから [OK] をクリックします。
サンプルのドメイン統合サーバが起動し、RequestQuote アプリケーションがデプロイされます。Oracle WebLogic Server が実行されている場合は、以下のインジケータが [サーバー] ビューに表示されます。
[file location]\rosettanet\pips\WebContent\PIP3B2Processes\sampledata\3B2AdvanceShipmentNotificationMessageBase.xml
に移動します。
ここで、[file location]
は、チュートリアル ファイルをインストールしたディレクトリです (「手順 3 : チュートリアル ファイルのインストール」を参照)。
onMessage
] をクリックします。
ここでは、PIP3A4 : 注文要求のサンプル実装について説明します。内容は以下のとおりです。
PIP3A4 の詳細については、http://www.rosettanet.org を参照してください。
PIP3A4 は、「RosettaNet 設計パターン」で説明している非同期ダブルアクション アクティビティ設計パターンのサンプルです。PIP3A4Processes
フォルダには、PIP3A4 のビジネス プロセス定義が含まれています。PIP3A4Schemas
スキーマ プロジェクトには、PIP3A4 メッセージのスキーマ ファイルが含まれています。sampledata
ディレクトリには、「PIP3A4 サンプルの実行」で使用できるサンプルの XML ドキュメントが含まれています。
Oracle Workshop for WebLogic で [PIP3A4Processes
] フォルダを開くと、[パッケージ・エクスプローラー] ペインにフォルダの内容が表示されます。
次の表では、PIP3A4 サンプル実装のコンポーネントについて説明します。
この節では、PIP3B2 のサンプル開始者ビジネス プロセス (PIP3A4.java
) について説明します。このビジネス プロセスを表示するには、以下の手順に従います。
sendMessage
メソッドを介して Seller (参加者) にメッセージを送信します。コントロール受信ノード Receipt acknowledgement は、Receiver からの受信確認コールバック (rn_onAck
メソッド) を待機します。注意 : | Oracle WebLogic Integration では RosettaNet の仕様に準拠して、受信確認とビジネス メッセージのどちらを先に受信することもできます。開始者が受信確認より先に応答メッセージを受信すると、応答メッセージはキューに登録され、後で処理されます。 |
OnTimeout パスおよび On Error Message パスでは、ネットワーク障害が発生した場合などの障害管理を処理します。障害パスを表示するには、以下の手順に従います。
このパスは、標準的な BPM OnTimeout 構成を表しています。タイムアウト値は 2 時間 (標準的な PIP 再試行間隔) に、再試行回数は 3 回 (標準的な PIP 再試行回数) に設定されています。したがって、何らかの理由で確認が 2 時間以内に届かない場合、このグループは再試行され、sendMessage
ステップが再度実行されます。OnTimeout パスには、再試行回数に達したかどうかを判別する条件が含まれています。再試行回数に達した場合、PIP 0A1 (障害通知) サブプロセスがコントロール送信ノードを介してトリガされ、このプロセスはエラーでプライベート プロセスに応答して終了します。
Global Process Timeout は標準的な PIP タイムアウト値である 24 時間にコンフィグレーションされています。プロセス全体がこの時間内に完了できなかった場合、PIP0A1 (障害通知) サブプロセスがトリガされ、プライベート プロセスにエラーが返されます。
最後に、Receiver はさまざまな理由 (メッセージの検証で問題があったなど) からメッセージを拒否する場合があります。メッセージの拒否は、RosettaNet コントロールの onError
コールバックとして表されます。グローバル On Error Message ハンドラはいつでもエラーを受信できるように準備されており、受信した場合は問題を管理者に通知するサブプロセスを開始し、プライベート プロセスにエラーを返してから終了することが分かります。ネットワークの問題などが原因で、メッセージを正常に送信できない場合、ビジネス プロセスは PIP0A1 (障害通知) を開始して、リモート パートナへの問題の通知を試行する点に注目してください。同様に、Receiver からエラーを受信すると、ビジネス プロセスはリモート管理者だけでなく、ローカル管理者にも通知する必要があります。
Seller 側の参加者ビジネス プロセス (PIP3A4Participant.java
) は、開始者ビジネス プロセスほど複雑ではありません。参加者ビジネス プロセスを Oracle Workshop for WebLogic で表示するには、[PIP3A4Participant.java
] ファイルを開きます。
RosettaNet Context
プロパティを抽出します。これらのプロパティは、エラーが発生した場合にのみ必要となります。これらのプロパティは PIP0A1 障害通知の構築に必要な情報を格納し、保存しておくことで後で使用することができます。from、to、メッセージ ID などのプロパティがあります。sendReply
コールバック メソッドを使用して注文確認メッセージを Buyer に送信し、Receive receipt acknowledgement クライアント要求ノードが受信確認を待機します。
単にメッセージを受信する 3B2 参加者ビジネス プロセスとは異なり、3A4 参加者ビジネス プロセスは応答を送信するため、ネットワーク障害や検証の失敗などの障害のシナリオを計算しておく必要があります。タイムアウトと再試行を表示するには、Retry Block の onTimeout パスを開きます。このパスは、「Shipper ビジネス プロセスの説明」で説明している 3B2 開始者ビジネス プロセスの onTimeout パスに似ていることに注目してください。さらに、Buyer から返されたエラーを処理するグローバル onMessage ハンドラが存在します。
3B2 サンプルと同様に、どちらの側のプライベート プロセスもバックエンド ビジネス ロジックの単なるプレース ホルダです。参加者プライベート プロセスは実際に、受信したメッセージをそのまま返します。これらのプロセスは通常、バックエンド アプリケーションと結びつくようにカスタマイズします。たとえば、出荷通知をアプリケーション ビュー コントロールおよび Oracle アダプタを介して ERP アプリケーションに挿入する、メッセージ キューに送る、およびファイルやデータベースに書き込むことができます。
このサンプルで使用されるパブリックおよびプライベート プロセス パターンは必須ではなく、推奨されるアプローチの 1 つに過ぎません。現在の環境に最も合うようにプロセスを自由に仕切ることができます。プライベート プロセスを使用せずに、RosettaNet の対話だけでなく、必要なすべてのバックエンド統合を単一のプロセスに実装することもできます。ただし、プロセスをパブリック (RosettaNet の構成しか処理しない) とプライベート (バックエンド システム統合を処理する) に分割すると、アプリケーションの再利用性とメンテナンス性が高まります。
PIP3A4 サンプルを実行するには、以下の手順に従います。
fc.java
ファイルでディレクトリ パスを設定し、正しいサンプル データ ファイルが検出されるようにする必要があります。fc.java
] ファイルをダブルクリックします。directory-name
属性を次のように設定します。
[file location]\tptutorialapps\rosettanet\PIP3A4Processes
ここで、[file location]
は、チュートリアル ファイルをインストールしたディレクトリです (「手順 3 : チュートリアル ファイルのインストール」を参照)。
PIP3A4Participant.java
] を右クリックして表示されるメニューの [実行] から [サーバーで実行] をクリックします。c:\bea\user_projects\domains\tptutorial
など) を選択してから [OK] をクリックします。
サンプルのドメイン統合サーバが起動し、RequestQuote アプリケーションがデプロイされます。Oracle WebLogic Server が実行されている場合は、以下のインジケータが [サーバー] ビューに表示されます。
[file location]\rosettanet\pips\WebContent\PIP3A4Processes\sampledata\3A4PurchaseOrderRequestMessageBase_0010.xml
に移動します。
ここで、[file location]
は、チュートリアル ファイルをインストールしたディレクトリです (「手順 3 : チュートリアル ファイルのインストール」を参照)。
onMessage
] をクリックします。
しばらくすると、エンドツーエンドの構成が実行されます。クライアント応答が XML メッセージをそのまま返します。
ここでは、このチュートリアルで提供されているサンプル PIP に基づいた新しい PIP の実装について説明します。内容は以下のとおりです。
同様の設計パターンを持つ既存の PIP 実装に基づいて新しい PIP を実装することができます。たとえば、PIP 3A2 : 価格と入手可能性要求は、応答のあるメッセージ送信という設計パターンのサンプルです。したがって、このビジネス プロセスの構成は PIP3A4 の構成と同じです。主な違いは要求と応答のメッセージ スキーマが異なる点にあり、アノテーションを変更する必要があります。3A4 プロセスを複製し、名前を変更してメッセージのスキーマ型を変更することで容易に PIP 3A2 実装を作成することができます。PIP3A4 の詳細については、http://www.rosettanet.org を参照してください。
既存の PIP 実装に基づいて新しい PIP を実装するには、以下の作業を実行します。
pip
、pip-version、to-role
、from-role
属性 (および、必要に応じてその他の属性) を変更する (RosettaNetControl インタフェースを参照)。pip-name、pip-role
、pip-version
属性 (および、必要に応じてその他の属性) を変更する (RosettaNet アノテーション タイプを参照)。
選択された 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:lang
の名前に関するエラー メッセージが表示される場合がある。この問題を修正するには、以下のテキストを置き換えます。<xs:extension base="xs:string">
<xs:attribute name="xml:lang" type="xs:string"/>
</xs:extension>
<xs:extension base="xs:string">
<xs:attribute ref="xml:lang"/>
</xs:extension>
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
スキーマ ファイルを保存した上で Oracle Workshop for WebLogic スキーマ プロジェクト内にドラッグ アンド ドロップします。
<xs:element name="ActionIdentity" ref="ActionIdentity"/>
これによって Oracle Workshop for WebLogic で問題が発生します。ファイルを修正するには、Oracle Workshop for WebLogic で開いて〔Ctrl〕+〔H〕を押し、ワイルドカードのパターン マッチが有効であることを確認してから以下の箇所をすべて置き換えます。
<xs:element ref="ActionIdentity"/>
2 つの異なるスキーマに同じ要素定義が含まれる場合、スキーマのコンパイルで問題が発生します。名前の重複は、targetNamespace
を明示的に使用することで回避できます。たとえば、このチュートリアルの 3A4 Purchase Order Request W3C スキーマの場合、<xs:schema id="Pip3A4PurchaseOrderRequest" targetNamespace="Pip3A4PurchaseOrderRequest" xmlns="Pip3A4PurchaseOrderRequest">
を使用します。
スキーマ プロジェクトをビルドすると、その PIP の型がタイプ システムで使用できるようになり、パラメータ型および変数型で使用できるようになります。
![]() ![]() ![]() |