メッセージ種別のリファレンスマップの作成

CSV、JSON、または XML 形式の新しい [Source at Host (ホストの送信元)] または [Receive from Partners (パートナーから受信)] メッセージ種別を作成する場合、そのメッセージ種別を DataWeave リファレンスマップに関連付ける必要があります。これは、EDFIACT または X12 形式の [Receive from Partners (パートナーから受信)] メッセージ種別では省略可能です。リファレンスマップには、実行時にメッセージペイロードから抽出されるカスタムメッセージ属性を含めることができます。抽出された属性はペイロードに表示され、検索や追跡で使用できます。

メッセージ種別の定義にアップロードされたスキーマが含まれている場合、リファレンスマップの入力はそのスキーマに準拠するペイロードです。

リファレンスマップの出力には次の項目が含まれます。

項目

説明

必須または省略可能

partnerReferenceId

パートナーを一意に識別する識別子

必須:

  • すべての [Source at Host (ホストの送信元)] メッセージ種別

  • CSV、JSON、または XML 形式の [Receive from Partners (パートナーから受信)] メッセージ種別

この値は、データ処理とルーティングのニーズに応じて静的値としてハードコード化できます。

hostReferenceId

ホストを一意に識別する識別子

  • 必須:

    • CSV、JSON、または XML 形式の [Receive from Partners (パートナーから受信)] メッセージ種別

  • 省略可能:

    • EDIFACT または X12 形式でフォーマットされた [Receive from Partners (パートナーから受信)] メッセージ種別

    • すべての [Source at Host (ホストの送信元)] メッセージ種別

この値は、データ処理とルーティングのニーズに応じて静的値としてハードコード化できます。

businessDocumentKey。

キーリファレンス値 (例: Order Number (注文番号)​ または ​Invoice Number (請求書番号)​)。

省略可能

customAttributes

ペイロードから抽出するカスタムメッセージ属性の配列。特定の環境では、最大 100 件のカスタムメッセージ属性を指定でき、そのうち最大 25 件を検索可能にできます。

カスタムメッセージ属性を指定するには、リファレンスマップで以下の項目を設定します。

  • alias

    事前に定義されているカスタムメッセージ属性設定を一意に識別する別名。リファレンスマップの別名は、メッセージ種別の属性定義と一致する必要があります。マップに存在しない別名が含まれていると、メッセージ種別の作成や更新は失敗します。

  • values

    注文番号や請求書番号などの値の配列。

    抽出する属性が 1 つしか存在しない場合でも、文字列の配列を使用してください。配列を使用することで、1 対多のリレーションを持つトランザクション (1 通の出荷通知に複数の注文番号が含まれるようなトランザクションなど) をサポートできるようになります。

省略可能

リファレンスマップの出力は、次の検証スキーマに準拠している必要があります。

%dw 2.0
output application/json
---

{
	"definitions": {},
	"$schema": "http://json-schema.org/draft-07/schema#",
	"title": "Root",
	"type": "object",

	"properties": {
		"partnerReferenceId": {
			"type": "string",
			"default": "",
			"pattern": "^.*$"
		},
		"hostReferenceId": {
			"type": ["string", "null"],
			"default": "",
			"pattern": "^.*$"
		},
		"businessDocumentKey": {
			"type": ["string", "null"],
			"default": "",
			"pattern": "^.*$"
		},
		"customAttributes": {
			"type": "array",
			"default": [],
			"items":{
				"type": "object",
				"required": [
					"alias",
					"values"
				],
				"properties": {
					"alias": {
						"type": "string",
						"default": "",
						"pattern": "^.*$"
					},
					"values": {
						"type": "array",
						"default": [],
						"items":{
							"type": "string",
							"default": "",
							"pattern": "^.*$"
						}
					}
				}
			}

		}
	}
}

リファレンスマップの出力が検証スキーマに準拠していないと、カスタムメッセージ属性は Partner Manager GUI に表示されません。次の Exchange の例に示すように、X12 EDI 用 Anypoint Connector (X12 Connector) の ​Validate schema​ 操作を MuleSoft アプリケーションに追加することで、リファレンスマップの出力が検証スキーマに準拠していることを保証できます。

リファレンスマップを作成する場合、それらのマップ内で他のソースメッセージ属性にアクセスできます。詳細は、​「ソースメッセージ属性へのアクセス」^​を参照してください。

[Receive from Partners (パートナーから受信)] メッセージ種別のマップ例

次のマップは、パートナーのインバウンド X12 ペイロードを変換します。このマップには、ビジネスドキュメントキーと 2 つのカスタムメッセージ属性が含まれています。

  • ビジネスドキュメントキーの値は ​payload.TransactionSets.v004010."855".Heading."020_BAK".BAK03[0]​ です。

  • purchaseOrderNumber​ カスタムメッセージ属性の値は ​payload.TransactionSets.v004010."855".Heading."020_BAK".BAK03[0]​ です。

  • vendorSalesOrderNumber​ カスタムメッセージ属性の値は ​payload.TransactionSets.v004010."855".Heading."020_BAK".BAK08[0]​ です。

マップへの入力は次のようになります。

%dw 2.0
output application/json
{
	businessDocumentKey: payload.TransactionSets.v004010."855".Heading."020_BAK".BAK03[0] default "",
	customAttributes: [
		{
			alias: "purchaseOrderNumber",
			values: [payload.TransactionSets.v004010."855".Heading."020_BAK".BAK03[0]]
		},
		{
			alias: "vendorSalesOrderNumber",
			values: [payload.TransactionSets.v004010."855".Heading."020_BAK".BAK08[0]]
		}
	]
}

生成されるマップの出力は次のようになります。

{
  "businessDocumentKey": "ORDER-70010",
  "customAttributes": [
    {
      "alias": "purchaseOrderNumber",
      "values": [
        "ORDER-70010"
      ]
    },
    {
      "alias": "vendorSalesOrderNumber",
      "values": [
        "SO-5100803142"
      ]
    }
  ]
}

[Source at Host (ホストの送信元)] メッセージ種別のマップ例

次のマップは、バックエンドからのアウトバウンド JSON または XML ペイロードを変換します。マップには、パートナーリファレンス Id、ホストリファレンス ID、ビジネスドキュメントキー、3 つのカスタム属性が含まれます。

  • パートナーリファレンス ID の値は ​payload.Header.CustomerName​ です。

  • ホストリファレンス ID の値は ​payload.Invoice.Header.LineOfBusiness​ です。

  • ビジネスドキュメントキーの値は ​payload.Invoice.Header.InvoiceNumber​ です。

  • invoiceNumber​ カスタム属性の値は ​payload.Invoice.Header.InvoiceNumber​ です。

  • purchaseOrderNumber​ カスタムメッセージ属性の値は ​payload.Invoice.Header.PurchaseOrderNumber​ です。

  • invoiceAmount​ カスタムメッセージ属性の値は ​payload.Invoice.Header.TotalInvoiceAmt​ です。

マップへの入力は次のようになります。

%dw 2.0
output application/json
---
{
	partnerReferenceId: payload.Invoice.Header.CustomerName,
	hostReferenceId: payload.Invoice.Header.LineOfBusiness default "MYTHICAL",
	businessDocumentKey: payload.Invoice.Header.InvoiceNumber,
	customAttributes: [
		{
			alias: "invoiceNumber",
			values: [payload.Invoice.Header.InvoiceNumber default "UNKNOWN"]
	},
	{
			alias: "purchaseOrderNumber",
			values: [payload.Invoice.Header.PurchaseOrderNumber default "UNKNOWN"]
	},
	{
			alias: "invoiceAmount",
			values: [ "\$ " ++ payload.Invoice.Header.TotalInvoiceAmt default "UNKNOWN"]
	}
]
}

生成されるマップの出力は次のようになります。

{
  "partnerReferenceId": "ALPHA-CAN",
  "hostReferenceId": "Mythical-MG",
  "businessDocumentKey": "INV97750061",
  "customAttributes": [
    {
      "alias": "invoiceNumber",
      "values": [
        "INV97750061"
      ]
    },
    {
      "alias": "purchaseOrderNumber",
      "values": [
        "ORD3893988"
      ]
    },
    {
      "alias": "invoiceAmount",
      "values": [
        "$ 3756.24"
      ]
    }
  ]
}

DataWeave マップの Exchange の例