RosettaNet コネクタ

Premium

RosettaNet コネクタは、RosettaNet Information Framework (RNIF) を使用して Rosetta Partner Interface Process (PIP) メッセージを交換することで、B2B 機能を提供します。

RosettaNet コネクタは RNIF 2.00.01 をサポートします。

次の PIP がサポートされています。

PIP バージョン 目的

0A1

v02.00

失敗の通知

3A4

3A4MG1 v02.02

注文の要求

3A4

3A4MG2 v02.02

注文の要求

3A6

3A6MG1 v02.00, v02.02, v02.03

注文状況の配布

3B2

3B2MG1 v01.00

事前出荷通知

3C3

3C3MG1 v01.00, v01.11

請求通知

RosettaNet コネクタは常にすべての失敗の通知メッセージで PIP 0A1 v02.00 を使用します。

注意: サンプルファイルのダウンロードについては、関連情報を参照してください。

前提条件

このドキュメントでは、読者が RosettaNet、Mule、Anypoint コネクタ、Anypoint Studio、Mule フロー、および Mule グローバル要素に精通していることを前提としています。

互換性については、RosettaNet Connector Release Notes - Mule 4を参照してください。

RosettaNet コネクタを本番環境で使用するには、Anypoint B2B 用の MuleSoft ライセンスを購入しておく必要があります。

このコネクタの新機能

Mule 4 の RosettaNet コネクタ 2.x では、RosettaNet コネクタ 1.x の実装から設定や処理が少し変更されています。

  • ソースのメタデータを自動的に供給 (1.x で必要だった個別のメタデータ定義は不要)

  • パートナやメッセージごとに個別のフローを使用することでフロー構造を簡素化

Anypoint Studio 7 でこのコネクタをインストールする方法

  1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。

  2. Anypoint Exchange で [Login (ログイン)] をクリックします。

  3. RosettaNet コネクタを検索して [Install (インストール)] をクリックします。

  4. 画面の指示に従ってコネクタをインストールします。

Anypoint Studio 7 で Mule プロジェクトを作成する方法

コネクタをインストールしたら、すぐに使い始めることができます。まず、Mule とメッセージの交換に使用するパートナエンドポイント用の HTTP リスナと HTTP 要求を作成します。

  1. キャンバスの下部にある [Global Elements (グローバル要素)] タブをクリックし、[Create (作成)] をクリックします。

  2. [Connector Configuration (コネクタ設定)] で [HTTP Listener config (HTTP リスナ設定)] を選択して [OK] をクリックします。

  3. 設定の定義で、取引パートナーからのアクションやシグナルメッセージを受信するためのホストとポートを入力して [OK] をクリックします。

  4. [Global Elements (グローバル要素)] タブで再び [Create (作成)] をクリックします。

  5. [Connector Configuration (コネクタ設定)] で [HTTP Request config (HTTP 要求設定)] を選択して [OK] をクリックします。

  6. 設定の定義で、取引パートナーにアクションやシグナルメッセージを送信するためのホストとポートを入力して [OK] をクリックします。

  7. キャンバスの下部にある [Global Elements (グローバル要素)] タブをクリックし、[Create (作成)] をクリックします。

  8. [Connector Configuration (コネクタ設定)] で [RosettaNet Config (RosettaNet 設定)] を選択して [OK] をクリックします。

  9. 作成してあるグローバル HTTP リスナとグローバル HTTP 要求の定義への参照情報を入力し、 エンドポイントパス、セルフ/パートナー ID 情報、PIP ロールおよび定義パスを指定します (用意されている標準 PIP 定義を使用する場合は、/{pipId}/{version}.xml の形式でパスを指定してください。例: /PIP3A4/V02_02.xml)。

  10. PIP 定義で署名入りメッセージを使用する場合は、Keystore pathKeystore access password の値を設定する必要があります。また、署名入りメッセージを送信する場合には Signing key password も設定する必要があります。

  11. [OK] をクリックして、グローバルコネクタ設定を保存します。

  12. Studio の [Message Flow (メッセージフロー)] タブに戻ります。

  13. RosettaNet コンポーネントをドラッグしてフローにドロップし、各コンポーネントで使用する設定を選択します。

コネクタコンポーネント

RosettaNet コネクタには、アプリケーションフローで使用する 3 つのコンポーネントがあります。

  • Action Source (アクションソース) - パートナーから受信したアクションメッセージを処理するためのソース。

  • Action Sender (アクション送信者) - パートナー宛のアクションメッセージの送信者。

  • Acknowledge Source (肯定応答ソース) - パートナーに送信したアクションメッセージの処理完了 (配信成功、例外、または失敗) のソース。

設定の詳細

[General (一般)] タブのプロパティ

RosettaNet コネクタが使用するすべての設定プロパティは、[General (一般)] タブにあります。

  • Global HTTP Listener (グローバル HTTP リスナ) - パートナーからのメッセージを受信するために使用する HTTP リスナ設定の名前。

  • Service Endpoint Path (サービスエンドポイントパス) - HTTP リスナ設定に相対的なパス (必要に応じて異なるパートナーの異なるパスで同じ HTTP リスナを使用できるようにします)。

  • Global HTTP Request (グローバル HTTP 要求) - パートナーへのメッセージを送信するために使用する HTTP 要求設定の名前。

  • Request Endpoint Path (要求エンドポイントパス) - HTTP 要求設定に相対的なパス (必要に応じて異なるパスで同じ HTTP 要求を使用できるようにします)。

  • Keystore path (キーストアパス) - メッセージの検証や署名に使用するキーストア (署名入りメッセージの送受信時に必要) の絶対ファイルパスまたはプロジェクトの /src/main/resources ディレクトリに相対的なクラスパス。

  • Keystore access password (キーストアアクセスパスワード) - キーストア (署名入りメッセージの送受信時に必要) を保護するためのパスワード。

  • Signing key password (署名キーパスワード) - キーストア (署名入りメッセージの送受信時に必要) 内の署名用の非公開キーにアクセスするためのパスワード。

  • Force message signing (メッセージの署名を強制) - PIP 定義で求められていない場合でも、署名入りメッセージの使用を強制する省略可能な上書き (NEVER は PIP 定義の設定を使用し、ALWAYS は常に署名を要求します)。

  • Global usage code (グローバル使用コード) - コネクタの実行モード。次のいずれか:

    • Production (本番)

    • Test (テスト)

    • Unchecked (未チェック)

  • Object store reference (オブジェクトストア参照) - 肯定応答待ちのメッセージを保存するために使用するオブジェクトストア定義への参照です (省略可能)。設定しないと、コネクタは常に永続的なデフォルトのオブジェクトストアを使用して送信したメッセージを保存し、肯定応答または再試行を待機します。設定した場合、参照先の Bean は、代わりに使用するオブジェクトストア設定でなければなりません。関連情報: What is an object store bean? (オブジェクトストア Bean とは)

  • Mule DUNS identifier (Mule DUNS 識別子) - この組織の Dun & Bradstreet Universal Numbering System (DUNS) ID。

  • Mule location identifier (Mule ロケーション識別子) - この組織のロケーション ID。指定すると、送信されるすべてのメッセージに含められ、受信するすべてのメッセージにも含まれる必要があります。指定しないと、受信メッセージに含まれる値は受け入れられて無視されます。ロケーション ID を使用すると、キーストアのキーペアで使用する別名も変更されます。

  • Partner DUNS identifier (パートナー DUNS 識別子) - 取引パートナー組織の Dun & Bradstreet Universal Numbering System (DUNS) ID。

  • Partner location identifier (パートナーロケーション識別子) - 予期されるパートナー組織のロケーション ID。指定すると、送信されるすべてのメッセージに含められ、受信するすべてのメッセージにも含まれる必要があります。指定しないと、受信メッセージに含まれる値は受け入れられて無視されます。ロケーション ID を使用すると、キーストアのパートナー証明書で使用する別名も変更されます。

  • Role in PIP (PIP のロール) - Partner Interface Process (PIP) でのロール。次のいずれかになります。

    • INITIATOR (イニシエータ)

    • RESPONDER (レスポンダ)

  • PIP definition path (PIP 定義パス) - PIP 定義 XML ファイルの絶対ファイルパスまたはプロジェクトの /src/main/resources ディレクトリに相対的なクラスパス。ディストリビューションに含まれる標準 PIP 定義では、/{pipId}/{version}.xml の形式になります (例: /PIP3A4/V02_02.xml)。

XML での設定オプション

Studio 設定にあるすべての値は XML で直接設定できます。

XML 値 Visual Studio オプション

globalUsageCode

Global usage code (グローバル使用コード)

keystorePass

Keystore access password (キーストアアクセスパスワード)

keystorePath

Keystore path (キーストアパス)

listenerConfigName

Global HTTP Listener (グローバル HTTP リスナ)

objectStore

Object store reference (オブジェクトストア参照)

partnerBusinessIdentifier

Partner DUNS identifier (パートナー DUNS 識別子)

partnerLocationId

Partner location identifier (パートナーロケーション識別子)

pipFile

PIP definition path (PIP 定義パス)

pipRole

Role in PIP (PIP のロール)

privatePass

Signing key password (署名キーパスワード)

requestPath

Request Endpoint Path (要求エンドポイントパス)

requesterConfigName

Global HTTP Request (グローバル HTTP 要求)

selfBusinessIdentifier

Mule DUNS identifier (Mule DUNS 識別子)

selfLocationId

Mule location identifier (Mule ロケーション識別子)

servicePath

Service Endpoint Path (サービスエンドポイントパス)

signingOverride

Force message signing (メッセージの署名を強制)

オブジェクトストアについて

デフォルトのオブジェクトストアは、Mule のデフォルトの永続的なオブジェクトストアを使用します。そのため、送信されたメッセージは、肯定応答されるまで累積し、再実行時にはメッセージが再送信される場合があります。

次の定義を使用すると、テストとデバッグ用に一時的なオブジェクトストアを定義して、RosettaNet 設定からオブジェクトストアを名前で参照することができます。

<mule xmlns:os="http://www.mulesoft.org/schema/mule/os" ...
  http://www.mulesoft.org/schema/mule/os http://www.mulesoft.org/schema/mule/os/current/mule-os.xsd" ...>
  ...
  <os:object-store name="transientStore" persistent="false"/>
  ...
  <rosetta:config name="PO_InitiatorConfig_Buyer" ...
    objectStore="transientStore"/>

永続的なオブジェクトストアを使用すると、肯定応答されていないメッセージは Mule アプリケーションを再起動しても保持され、アプリケーションの再起動時に (タイムアウト期限が切れたと判断されて) 再送信されます。肯定応答がないまま PIP 定義で指定されている再送信回数に達するか、または 3 日が経過すると、オブジェクトストアからすべてのメッセージが削除されます。次のシステムプロパティを設定することで、肯定応答されていないメッセージを Mule アプリケーションの起動時に強制的に削除できます。

com.mulesoft.connectors.rosettanet.extension.internal.delivery.DeliveryManager.deleteStore=true

PIP をカスタマイズする方法

PIP をカスタマイズすると、PIP 設定に 2 通りの変更を加えることができます。

  • パラメータ: PIP バージョンの XML ファイル内で設定を変更します。

  • 詳細: カスタム DTD を作成して、そこから XSD ファイルを作成できます。

どちらの場合も、作成または変更したファイルは Studio プロジェクトの src/main/resources フォルダに保存してください。

用意されている PIP 設定を開始ポイントとして使用できます。これらは、mule-rosettanet-extension-2.0.0-mule-plugin.jar に入っており、Studio でダウンロードして /target/repository/com/mulesoft/connectors/mule-rosettanet-extension ディレクトリのプロジェクトに追加できます。また、標準の MuleSoft Enterprise Maven リポジトリ (グループ ID の com.mulesoft.connectors の下) にもあります。各 PIP 設定は jar ファイルの個別のディレクトリ (例: PIP3A4) に入っています。jar から PIP ディレクトリをコピーして、ニーズに合わせて内容を編集できます。

PIP 設定ディレクトリには、特定の PIP バージョン (例: V02_02.xml) 用のパラメータが設定された XML ファイルもあります。この XML ファイルには、PIP で定義されている再試行回数、肯定応答のタイムアウト、アクションの署名要件の詳細が記述されています。また、このファイルは実際のアクションメッセージの DTD と XSD 定義を参照します (DTD は RosettaNet で使用され、XSD は Mule 内で DataSense 情報の提供に使用されるため、両方とも必要です)。

基本の PIP 定義ディレクトリを jar から Studio プロジェクトの src/main/resources フォルダにコピーし、コピーしたディレクトリの名前をカスタマイズに合わせて変更します (例: PIP3A4-custom)。その後、必要な変更を行ってから、変更した PIP ディレクトリ名を RosettaNet コネクタ設定で (pipFile 値として) 使用します。

ユースケースの例について

次の例では、購入者が注文の要求を送信します。販売者は要求を受信して、注文の確認を送信します。

ワークフロー:

  1. 注文の要求と確認を行うように RosettaNet コネクタを適切に設定します。

  2. アプリケーションが意図通りに動作することを確認します。

キーストアについて

RosettaNet は X.509 証明書を使用してメッセージを認証します。RosettaNet コネクタは、現時点では JKS 形式のキーストアの証明書 (および署名に使用する非公開キー) の保存のみをサポートしています。Portecle など、さまざまなツールを使用してキーストアを処理して、キーと証明書を作成できます。

次の 2 つのサンプルファイルをアプリケーションにダウンロードできます。

たとえば、販売者アプリケーションの例で使用する partner1.jks には、partner2 用の証明書と、partner1 が署名に使用する非公開キーが入っています。キーストアの別名は次の形式になります。 {Partner/Self Business Identifier}[:{Partner/Self Location ID}]

値は中括弧で囲まれており、ロケーション ID が定義されている場合にのみ使用する省略可能な部分は角括弧で囲まれています。

下記の例で使用するキーストアの別名は次の通りです。

  • 123456788:partner2

  • 123456789:partner1

注文の例について

この例では、2 つの Mule アプリケーションを構築して、下図のやり取りを模倣します。 rosettanet-buyer.jar (購入者アプリケーション)rosettanet-seller.jar (販売者アプリケーション) をダウンロードできます。

これら 2 つのアプリケーションは Studio の共有ドメインで実行することもできますが、ログメッセージを明確に示すため、例では 2 つの Studio アプリケーション (購入者アプリケーションと販売者アプリケーション用に 1 つずつ) を使用します。

購入者アプリケーションと販売者アプリケーションの関係を下図に示します。

rosettanet state diagram

購入者アプリケーションのフロー

購入者アプリケーションは、3 つのフローを使用してこれらのアクションを実行します。

  1. 入力された注文要求ドキュメントを HTTP POST 経由で受信して、販売者にアクションメッセージとして送信します。

  2. 送信処理の完了を処理します。3 種類の異なるシグナルがあります。

    • ACKNOWLEDGE: このシグナルは、注文が販売者に正常に受信されたことを意味します。

    • EXCEPTION: このシグナルは、注文が販売者に送信され、販売者が例外を送信したことを意味します。理由はさまざまですが、注文が無効なことなどが考えられます。

    • FAILURE: このシグナルは、RosettaNet コネクタが注文の送信に失敗したことを意味します。各 PIP アクションメッセージでは再試行の回数が指定されており、コネクタはその回数までアクションの再送信を試みます。それでも送信できなければ、コネクタは FAILURE シグナルを生成します。

  3. 販売者から注文確認を受信します。

トピック:

購入者アプリケーションの設定について

購入者アプリケーションでは、次のグローバル要素が定義されています。

  • 入力された注文要求ドキュメント用の HTTP リスナ:

    • Name: HTTP_InputListener

    • Host: localhost

    • Port: 8801

  • 販売者からの注文確認アクションメッセージ用の HTTP リスナ

    • Name: HTTP_Listener_config

    • Host: localhost

    • Port: 8081

  • 販売者への注文要求アクションメッセージ送信用の HTTP 要求

    • Name: HTTP_Request_configuration

    • Host: localhost

    • Port: 8082

  • RosettaNet コネクタの設定

    • 識別子と PIP 情報
** partner1 (購入者) 用の非公開キーと証明書、および partner2 (販売者) の証明書が入ったキーストア (partner1.jks)。キーストアはプロジェクトの src/main/resources ディレクトリにあります。

購入者アプリケーション Studio ビジュアルエディタ

ビジュアルエディタを使用した Anypoint Studio での設定:

rosettanet buyer visual flow

購入者アプリケーションの設定:

rosettanet buyer config

購入者アプリケーション Studio XML エディタまたはスタンドアロン

このコードを使用して自分のフローを作成します。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns:rosetta="http://www.mulesoft.org/schema/mule/rosetta"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/rosetta
http://www.mulesoft.org/schema/mule/rosetta/current/mule-rosetta.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
	<http:listener-config name="HTTP_Listener_config"
	doc:name="HTTP Listener config" >
		<http:listener-connection host="localhost" port="8081" />
	</http:listener-config>
	<http:request-config name="HTTP_Request_configuration"
	doc:name="HTTP Request configuration">
		<http:request-connection host="localhost" port="8082" />
	</http:request-config>
	<rosetta:config name="PO_InitiatorConfig_Buyer"
	pipRole="INITIATOR" doc:name="RosettaNet Config" listenerConfigName="HTTP_Listener_config"
	servicePath="/partner1"
	requesterConfigName="HTTP_Request_configuration"
	requestPath="/partner2"
	keystorePath="/partner1.jks"
	keystorePass="nosecret"
	privatePass="partner1"
	globalUsageCode="Test"
	selfBusinessIdentifier="123456789"
	selfLocationId="partner1"
	partnerBusinessIdentifier="123456788"
	partnerLocationId="partner2"
	pipFile="/PIP3A4/V02_02.xml"/>
	<http:listener-config name="HTTP_InputListener"
	doc:name="HTTP Listener config" >
		<http:listener-connection host="localhost" port="8801" />
	</http:listener-config>
	<flow name="Send-Purchase-Order-Request" >
		<http:listener doc:name="Listener" config-ref="HTTP_InputListener"
		path="/"
		allowedMethods="POST"/>
		<rosetta:send-action doc:name="Send action"
		 config-ref="PO_InitiatorConfig_Buyer"/>
		<ee:transform doc:name="Transform Message"  >
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output text/plain
---
"Buyer sent action message " ++ attributes.messageId ++ "\n"]]></ee:set-payload>
			</ee:message>
		</ee:transform>
	</flow>
	<flow name="Receive-Purchase-Order-Confirmation"  >
		<rosetta:action-source doc:name="Action source"
		config-ref="PO_InitiatorConfig_Buyer"/>
		<logger level="INFO" doc:name="Logger"
		message="Buyer received action message #[attributes.messageId]"/>
	</flow>
	<flow name="Send-Purchase-Order-Completion" >
		<rosetta:completion-source doc:name="Completion"
		config-ref="PO_InitiatorConfig_Buyer"/>
		<logger level="INFO" doc:name="Logger"
		message="Buyer action message #[attributes.replyAttributes.messageId] completed as #[payload.completionCode]"/>
	</flow>
</mule>

販売者アプリケーションの設定方法

販売者アプリケーションは次の動作を実行します。

  1. 購入者から注文要求アクションメッセージを受信します。

  2. 入力された注文確認ドキュメントを HTTP POST 経由で受信して、販売者にアクションメッセージとして送信します。

  3. 送信処理の完了を処理します。購入者アプリケーションと同じで、結果は次のいずれかとなります。

    • ACKNOWLEDGE 販売者によって正常に受信されました。

    • EXCEPTION

    • FAILURE

トピック:

販売者アプリケーションの設定について

販売者アプリケーションでは、次のグローバル要素が定義されています。

  • 入力された注文確認ドキュメント用の HTTP リスナ:

    • Name: HTTP_InputListener

    • Host: localhost

    • Port: 8802

  • 購入者からの注文要求アクションメッセージ用の HTTP リスナ

    • Name: HTTP_Listener_config

    • Host: localhost

    • Port: 8082

  • 販売者への注文確認アクションメッセージ送信用の HTTP 要求

    • Name: HTTP_Request_configuration

    • Host: localhost

    • Port: 8081

  • RosettaNet コネクタの設定

    • 識別子と PIP 情報
** partner1 (販売者) 用の非公開キーと証明書、および partner2 (購入者) の証明書が入ったキーストア (partner2.jks)。キーストアはプロジェクトの src/main/resources ディレクトリにあります。

販売者アプリケーション Studio ビジュアルエディタ

Studio での設定:

rosettanet seller visual flow

販売者アプリケーションの設定:

rosettanet seller config

販売者アプリケーション Studio XML エディタまたはスタンドアロン

このコードを使用して自分のフローを作成します。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns:rosetta="http://www.mulesoft.org/schema/mule/rosetta"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/rosetta
http://www.mulesoft.org/schema/mule/rosetta/current/mule-rosetta.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
	<http:listener-config name="HTTP_Listener_config"
	doc:name="HTTP Listener config" >
		<http:listener-connection host="localhost" port="8082" />
	</http:listener-config>
	<http:request-config name="HTTP_Request_configuration"
	doc:name="HTTP Request configuration" >
		<http:request-connection host="localhost" port="8081" />
	</http:request-config>
	<rosetta:config name="PO_ResponderConfig_Seller"
	pipRole="RESPONDER"
	doc:name="RosettaNet Config"
	listenerConfigName="HTTP_Listener_config"
	servicePath="/partner2"
	requesterConfigName="HTTP_Request_configuration"
	requestPath="/partner1"
	keystorePath="/partner2.jks"
	keystorePass="nosecret"
	privatePass="partner2"
	globalUsageCode="Test"
	partnerBusinessIdentifier="123456789"
	partnerLocationId="partner1"
	selfBusinessIdentifier="123456788"
	selfLocationId="partner2" pipFile="/PIP3A4/V02_02.xml"/>
	<http:listener-config name="HTTP_InputListener"
	doc:name="HTTP Listener config" >
		<http:listener-connection host="localhost" port="8802" />
	</http:listener-config>
	<flow name="Send-Purchase-Order-Confirmation">
		<http:listener doc:name="Listener"
		config-ref="HTTP_InputListener"
		path="/" allowedMethods="POST"/>
		<rosetta:send-action doc:name="Send action"
		 config-ref="PO_ResponderConfig_Seller"/>
		<ee:transform doc:name="Transform Message">
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output text/plain
---
"Seller sent action message " ++ attributes.messageId ++ "\n"]]></ee:set-payload>
			</ee:message>
		</ee:transform>
	</flow>
	<flow name="Receive-Purchase-Order-Request">
		<rosetta:action-source doc:name="Action source"
		config-ref="PO_ResponderConfig_Seller"/>
		<logger level="INFO" doc:name="Logger"
		 message="Seller received action message #[attributes.messageId]"/>
	</flow>
	<flow name="Send-Purchase-Order-Completion">
		<rosetta:completion-source doc:name="Completion"
		config-ref="PO_ResponderConfig_Seller"/>
		<logger level="INFO" doc:name="Logger"
		message="Seller action message #[attributes.replyAttributes.messageId] completed as #[payload.completionCode]"/>
	</flow>
</mule>

注文要求の送信方法

購入者アプリケーションと販売者アプリケーションを実行したら、HTTP_InputListener エンドポイントに対して HTTP POST を使用して、販売者に送信する注文要求ドキュメントを用意する必要があります。

サンプル注文要求をダウンロードできます。次に、HTTP ツール (ブラウザプラグイン、PostMan などのスタンドアロンツール、または curl などのコンソールツール) を使用して、データを購入者アプリケーションに投稿します。

curl コマンドラインの例を示します。

curl -v -H "Content-Type: application/text" -XPOST --data-binary @sample-purchase-order-request-content.xml http://localhost:8801

RosettaNet コネクタは、注文要求ドキュメントに基づいて RosettaNet メッセージを生成して販売者に送信し、HTTP POST 操作に対してメッセージ識別子を返します。コンソールの出力は次のようになります。

INFO  ... Seller received action message pMAIhTBMsGzAf/NFx83KBO9nt+T+DV2RNLhwlpNqnXM=0
INFO  ... Buyer action message pMAIhTBMsGzAf/NFx83KBO9nt+T+DV2RNLhwlpNqnXM=0 completed as SUCCESS

注文確認の送信方法

購入者アプリケーションと注文要求ドキュメントと同じように、販売者の HTTP_InputListener エンドポイントに対して HTTP POST を使用して、購入者に送信する注文確認ドキュメントを用意する必要があります。

サンプル注文確認をダウンロードして、任意の HTTP ツールを使用して販売者アプリケーションにデータを投稿できます。

curl コマンドラインの例を示します。

curl -v -H "Content-Type: application/text" -XPOST --data-binary @sample-purchase-order-confirmation-content.xml http://localhost:8802

RosettaNet コネクタは、注文確認ドキュメントに基づいて RosettaNet メッセージを生成して購入者に送信し、HTTP POST 操作に対してメッセージ識別子を返します。コンソールの出力は次のようになります。

INFO  ... Buyer received action message ng7+TalLLPTJZHok4tQSBi8RYZD8IsD9+iB85cubzM=1
INFO  ... Seller action message sng7+TalLLPTJZHok4tQSBi8RYZD8IsD9+iB85cubzM=1 completed as SUCCESS

このサンプルアプリケーションが送信する注文確認アクションは単なる例です。実際の注文確認を送信するには、RosettaNet の send-action 操作で replyAttributes を設定して、対応する注文要求ドキュメントの受信時に提供された情報を供給する必要があります。これらの replayAttributes により、RosettaNet プロトコルは同時に発生する可能性のある多くの要求を見分けることができます。

詳細の確認

RosettaNet プロトコル交換の詳細を確認する場合は、次のような行を追加することで、/src/main/resources/log4j2.xml ロギング設定ファイルで TRACE ロギングを有効にしてください。

<Loggers>
    ...
    <AsyncLogger name="com.mulesoft.connectors.rosettanet.extension" level="TRACE"/>
    ...
</Loggers>

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub