X12 EDI Connector 2.17 バッチアウトバウンド X12 メッセージ - Mule 4

時間的制約のない EDI メッセージ (請求書や支払送金など) の場合、Write batch 操作を使用して、複数の個々のメッセージを 1 つのインターチェンジにマージして取引パートナーに送信します。

一括処理フェーズ

X12 EDI 用 Anypoint Connector (X12 EDI Connector) Write batch 操作を使用して、個々の X12 メッセージを 1 つのトランスミッションにマージして、取引パートナーに送信します。

バッチの実装には、2 つのフェーズがあります。

  1. トランザクションを累積する。

  2. バッチをリリースする。

トランザクションを累積する

バッチのトランザクションを累積する手順は、次のとおりです。

  1. バックエンドシステムからアプリケーションメッセージ (JSON 請求書など) を受信するときに DataWeave および X12 を使用してペイロードを X12 メッセージに変換します。

  2. X12 Write 操作の一時的な制御番号キーを使用して X12 ペイロードを作成します。

    これにより、累積された X12 を後でバッチとして送信できます。バッチは、取引パートナーに送信される最後のバッチで使用されていない制御番号を使用して作成されます (例: <x12:write doc:name="Create a single X12 810 Invoice Txn" doc:id="767e1321-044d-4ed4-95ba-6ddc78efb0b4" config-ref="X12_EDI_Write_810" interchangeNumberKey="MYTHICAL-NTOETAIL-ISA-TMP" groupNumberKey="MYTHICAL-NTOETAIL-GS-TMP"/>​)。

  3. 選択したストレージ (データベーステーブルなど) に中間 X12 メッセージペイロードを保存します。

トランザクションを累積する

たとえば、この Mule フローの実装では、次のようになります。

  • バックエンドシステムから JSON ペイロードを受信する。

  • X12 810​ 請求書メッセージに変換する。

  • X12 Write 操作を使用して中間 X12 メッセージペイロードを生成する。

  • X12 ペイロードをデータベーステーブルに保存する。

バッチをリリースする

取引パートナーのトランザクションの一括処理方法に関する条件はさまざまです。

  • 特定の期間や時間帯でバッチをリリースする。

  • 特定の数のトランザクションが累積されたらバッチをリリースする。

  • 累積されたトランザクションの合計サイズが指定されたしきい値に近づいたときにバッチをリリースする。

バッチをリリースする手順は、次のとおりです。

  1. 一時ストレージの累積されたトランザクションを監視して特定のバッチをリリースするタイミングを判断するロジックまたはモジュールを実装します。

  2. バッチ条件に基づいて一時ストレージから累積された中間 X12 メッセージを取得し、トランザクションをグループ化して、追加されたペイロードを X12 Write batch 操作に送信します。

    Write batch 操作で制御番号キーを使用することも、Write batch 操作の実行時に制御番号キー項目を空のままにして、X12 EDI Connector で送信者と受信者の識別子の組み合わせに基づいて制御番号シーケンスを自動的に生成できるようにすることもできます。

    <x12:batch doc:name="Batch" doc:id="6f105235-1406-45bb-b41e-f3b28cdf2eb5" config-ref="X12_EDI_Batch" batchInterchangeNumberKey="MYTHICAL-NTOETAIL-ISA" batchGroupNumberKey="MYTHICAL-NTOETAIL-GS"> <x12:batch-content ><![CDATA[#[vars.batchInput]]]></x12:batch-content></x12:batch>​。

  3. Write batch 操作に送信される入力ペイロードに EDI トランザクションと、ISA および GS エンベロープセグメントのデータ要素 ([​Sender ID​ (送信者 ID)]、[​Receiver ID​ (受信者 ID)]、[​Version number​ (バージョン番号)] など) が含まれていることを確認します。

バッチをリリースする

たとえば、この Mule フローの実装では、次のようになります。

  • 特定のパートナーの累積された X12 メッセージトランザクションをリリースするための HTTP 要求を受信する。バッチリリース条件を満たした要求がトリガーされます。

  • データベーステーブルから中間 X12 メッセージを取得する。

  • 変換を適用して個々の X12 メッセージをグループ化する。

  • X12 Write batch 操作で追加されたペイロードを送信して、メッセージを 1 つのトランザクションにマージする。

  • 生成された制御番号を出力する。これにより、パートナーから受け取ったインバウンド機能肯定応答が調整されます。

  • 一括処理された X12 トランザクションを取引パートナーの SFTP サイトに配信する。

エンベロープセグメントに不一致データ要素がある EDI トランザクションが入力ペイロードに含まれている場合、Batch 操作で例外がスローされます。