次の方法で共有


Azure Logic Apps を使用して B2B ワークフローで X12 メッセージを交換する

適用対象: Azure Logic Apps (従量課金 + Standard)

Azure Logic Apps を使用して作成したワークフローで X12 メッセージを送受信するには、 X12 コネクタを使用します。 このコネクタは、X12 通信をサポートおよび管理する操作を提供します。

このガイドでは、X12 のエンコードおよびデコード アクションを既存のロジック アプリ ワークフローに追加する方法について説明します。 X12 アクションで任意のトリガーを使用できます。 このガイドの例では、要求トリガーを使用します。

コネクタに関するテクニカル リファレンス

X12 コネクタのバージョンは、 ロジック アプリの種類とホスト環境に基づいて異なります。

ロジック アプリ 環境 コネクタのバージョン
従量課金プラン マルチテナント Azure Logic Apps X12 マネージド コネクタ。コネクタ ギャラリーの [ 共有] に表示されます。 X12 コネクタには、1 つのトリガーと複数のアクションがあります。 シナリオに適した任意のトリガーを使用できます。 詳細については、以下を参照してください。

- X12 マネージド コネクタ リファレンス
- X12 メッセージの制限
Standard シングルテナントの Azure Logic Apps、App Service Environment v3 (Windows プランのみ)、ハイブリッド デプロイ X12 組み込みコネクタは、組み込みの下のコネクタ ギャラリーに表示され、X12 マネージド コネクタは、コネクタ ギャラリーの 共有 の下に表示されます。 X12 マネージド コネクタには、1 つのトリガーと複数のアクションがあります。 X12 組み込みコネクタでは、アクションのみが提供されます。 シナリオに適した任意のトリガーを使用できます。

組み込みバージョンには次のような違いがあります。

- 組み込みバージョンは、Azure 仮想ネットワークに直接アクセスできます。 オンプレミス データ ゲートウェイは必要ありません。

- 組み込みバージョンでは、スループットが高くなり、待機時間が短くなります。

詳細については、以下を参照してください。

- X12 マネージド コネクタ リファレンス
- X12 ビルトインコネクタ操作
- X12 メッセージの制限

X12 組み込み操作

次のセクションでは、X12 組み込みのコネクタ操作とそのパラメーターについて説明します。

X12 のデコード

操作 ID: x12Decode

フラット ファイルを XML 形式に変換して、X12 メッセージをデコードします。

パラメーター
Display name JSON での名前 必須 タイプ 説明
デコードするメッセージ messageToDecode はい デコードする X12 メッセージ。
B2B 追跡 ID b2bTrackingId いいえ B2B 追跡 ID。

X12 のエンコード

操作 ID: x12Encode

XML をフラット ファイル形式に変換して X12 メッセージをエンコードします。

パラメーター
Display name JSON での名前 必須 タイプ 説明
エンコードするメッセージ messageToEncode はい エンコードする X12 メッセージ。
送信者識別子 送信者修飾子 senderIdentity.qualifier いいえ 送信者修飾子。
送信者 ID 送信者識別子 senderIdentity.value いいえ 送信者 ID。
受信者 ID 受信者修飾子 receiverIdentity.qualifier いいえ 受信者修飾子。
受信者 ID 受信者識別子 receiverIdentity.value いいえ 受信者 ID。
X12 契約の名前 agreementName いいえ X12 契約の名前。
B2B 追跡 ID b2bTrackingId いいえ B2B 追跡 ID。

X12 バッチのエンコード

操作 ID: x12BatchEncode

XML をフラット ファイル形式に変換して、X12 メッセージ バッチをエンコードします。

パラメーター
Display name JSON での名前 必須 タイプ 説明
バッチメッセージ batchMessage.items はい Array エンコードする X12 メッセージ。
メッセージ ID batchMessage.items.messageId はい バッチ項目の一意の ID。
Content batchMessage.items.content はい バッチ項目の内容。
バッチ名 batchMessage.batchName いいえ バッチ名。
パーティション名 batchMessage.partitionName いいえ パーティション名。
送信者のIDと送信者修飾子 senderIdentity.qualifier いいえ 送信者修飾子。
送信者 ID 送信者識別子 senderIdentity.value いいえ 送信者 ID。
受信者 ID 受信者修飾子 receiverIdentity.qualifier いいえ 受信者修飾子。
受信者 ID 受信者識別子 receiverIdentity.value いいえ 受信者 ID。
X12 契約の名前 agreementName いいえ X12 契約の名前。
B2B 追跡 ID b2bTrackingId いいえ B2B 追跡 ID。

前提条件

  • Azure アカウントとサブスクリプション。 Azure サブスクリプションがない場合は、無料の Azure アカウントにサインアップしてください。

  • X12 操作を使用するロジック アプリ リソースとワークフロー。

    詳細については、以下を参照してください。

  • エンタープライズ統合と B2B ワークフローで使用するために成果物を定義して格納するエンタープライズ統合アカウント

    • 統合アカウントとロジック アプリ リソースの両方が、同じ Azure サブスクリプションと Azure リージョンに存在することが必要です。

    • ワークフローで使用される X12 操作に参加する取引先を少なくとも 2 つ定義します。 両方のパートナーの定義では、同じ X12 ビジネス ID 修飾子を 使用する必要があります。

    • ワークフローに参加する取引先間の X12 契約を定義します。 各契約には、ホスト パートナーとゲスト パートナーが必要です。 他の取引先との間のメッセージの内容が、契約の種類と一致している必要があります。 メッセージの送受信時に使用する契約設定については、「X12 メッセージの設定」を参照してください。

      重要

      医療保険の移植性と説明責任に関する法律 (HIPAA) スキーマを使用している場合は、契約に schemaReferences セクションを追加する必要があります。 詳細については、「HIPAA スキーマとメッセージ型」を参照してください。

    • XML 検証に使用するスキーマを定義します。

      重要

      Health Insurance Portability and Accountability Act (HIPAA) スキーマを使用している場合は、「HIPAA スキーマとメッセージ型」を参照してください。

  • X12 操作を開始する前に、消費型ロジックアプリまたは標準ロジックアプリを統合アカウントにリンクする必要があります。

    X12 操作を追加するときは、統合アカウントへの接続も作成する必要があります。 X12 操作をワークフローに追加するときに、接続を作成できます。

X12 メッセージをエンコードする

"X12 メッセージへのエンコード" 操作は、次のタスクを実行します。

  • 送信者と受信者のコンテキスト プロパティを照合することで契約を解決する。

  • 電子データインターチェンジ (EDI) をシリアル化し、XML でエンコードされたメッセージをインターチェンジ内の EDI トランザクション セットに変換します。

  • トランザクション セット ヘッダーとトレーラー セグメントを適用する。

  • 各発信インターチェンジのインターチェンジ制御番号、グループ制御番号、およびトランザクション セット制御番号を生成する。

  • ペイロード データの区切り記号を置換する。

  • EDI およびパートナー固有のプロパティを検証する。

    • メッセージ スキーマと照らし合わせたトランザクション セット データ要素のスキーマ検証。
    • トランザクション セット データ要素に対する EDI 検証。
    • トランザクション セット データ要素に対する拡張検証。
  • 技術確認および機能確認を要求する (構成されている場合)。

    • ヘッダー検証の結果として技術確認を生成する。 技術確認は、アドレス受信者によるインターチェンジ ヘッダーとトレーラーの処理の状態を報告します。
    • 本体検証の結果として機能確認を生成する。 機能確認は、受信したドキュメントの処理中に発生した各エラーを報告します。

X12 コネクタを使用してメッセージをエンコードするには、次の手順に従います。

  1. Azure portal のデザイナーで、ロジック アプリ リソースとワークフローを開きます。

  2. デザイナーで、次の«一般的な手順»に従って、「契約名でX12メッセージをエンコード」というX12アクションをワークフローに追加します。

    Note

    代わりに ID による X12 へのエンコード メッセージ を使用するには、後で、X12 契約で指定された Sender 識別子Receiver 識別子 など、さまざまなパラメーター値を指定する必要があります。 また、 値をエンコードする XML メッセージを指定する 必要があります。この値は、トリガーまたは前のアクションからの出力として選択できます。

  3. 統合アカウントへの接続を作成するように求められたら、次の情報を入力します。

    パラメーター 必須 説明
    接続名 はい 接続の名前。
    統合アカウント ID はい 統合アカウントのリソース ID で、形式は次のとおりです。

    /subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Logic/integrationAccounts/<integration-account-name>

    次に例を示します。
    /subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/integrationAccount-RG/providers/Microsoft.Logic/integrationAccounts/myIntegrationAccount

    このリソース ID を見つけるには、次の手順に従います。

    1. Azure portal で、統合アカウントを開きます。
    2. 統合アカウントのサイドバーで、[ 概要] を選択します。
    3. [概要] ページで、[JSON ビュー] を選びます。
    4. [リソース ID] プロパティから、値をコピーします。
    統合アカウント SAS URL はい Shared Access Signature (SAS) 認証を使用して統合アカウントにアクセスを提供する要求エンドポイント URL。 このコールバック URL の形式は次のとおりです。

    https://<request-endpoint-URI>sp=<permissions>sv=<SAS-version>sig=<signature>

    次に例を示します。
    https://prod-04.west-us.logic-azure.com:443/integrationAccounts/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb?api-version=2015-08-1-preview&sp=XXXXXXXXX&sv=1.0&sig=aB1cD2eF-3gH4iJ5kL6-mN7oP8qR

    この URL を見つけるには、次の手順に従います。

    1. Azure portal で、統合アカウントを開きます。
    2. 統合アカウントのサイドバーで、[ 設定] の [ コールバック URL] を選択します。
    3. [生成されたコールバック URL] プロパティから、値をコピーします。
    制御番号ブロックのサイズ いいえ 高スループットのシナリオのために契約から予約する制御番号のブロック サイズ。

    次に例を示します。

    スクリーンショットは、Azure portal、契約名による [X12 メッセージにエンコード] という名前のアクションを含むワークフロー、およびアクション接続情報を示しています。

  4. 完了したら、[ 新規作成] を選択します。

  5. [X12 アクション情報] ウィンドウで、次の値を指定します。

    パラメーター 必須 説明
    X12 契約の名前 はい 使用する X12 契約。
    エンコードする XML メッセージ はい エンコードする XML メッセージ。
    高度なパラメーター いいえ 選択できるその他のパラメーター:

    - データ要素区切り記号
    - コンポーネントの区切り記号
    - 置換文字
    - セグメント終端記号
    - セグメント終端記号のサフィックス
    - バージョン番号の制御 (ISA12)
    - アプリケーション送信者識別子/コード GS02
    - アプリケーション受信者識別子/コード GS03

    詳細については、 X12 メッセージ設定を参照してください。

    たとえば、要求トリガーからの 本文 コンテンツ出力を XML メッセージ ペイロードとして使用できます。

    この出力を見つけて選択するには、次の手順に従います。

    1. [ エンコードする XML メッセージ ] 内 のボックスを選択し、稲妻アイコンを選択して動的コンテンツ リストを開きます。

    2. 一覧の [ HTTP メッセージを受信したとき] で、[本文] を選択 します

    スクリーンショットには、[Encode to X12 message by agreement name]\(X12 メッセージにエンコードする\) という名前のアクションが示されています。パラメーターが指定されています。

X12 メッセージをデコードする

X12 メッセージのデコード操作は、次のタスクを実行します。

  • 取引先契約と照らし合わせてエンベロープを検証する。

  • EDI およびパートナー固有のプロパティを検証する。

    • EDI 構造検証、および拡張スキーマ検証
    • インターチェンジ エンベロープ構造検証
    • 制御スキーマと照らし合わせたエンベロープのスキーマ検証
    • メッセージ スキーマと照らし合わせたトランザクション セット データ要素のスキーマ検証
    • トランザクション セット データ要素に対する EDI 検証
  • インターチェンジ、グループ、およびトランザクション セットの制御番号が重複していないことを検証する。

    • 以前に受信したインターチェンジと照らし合わせて、インターチェンジ制御番号を確認する。
    • インターチェンジ内の他のグループ制御番号と照らし合わせて、グループ制御番号を確認する。
    • グループ内の他のトランザクション セット制御番号と照らし合わせて、トランザクション セット制御番号を確認する。
  • インターチェンジをトランザクション セットに分割するか、インターチェンジ全体を保持する。

    • インターチェンジをトランザクション セットに分割するか、エラー時にトランザクション セットを一時停止する。各トランザクション セットを解析します。 X12 デコード アクションは、検証が失敗したトランザクション セットのみを badMessages に出力し、残りのトランザクション セットを goodMessages に出力します。

    • インターチェンジをトランザクション セットに分割するか、エラー時にインターチェンジを一時停止する。各トランザクション セットを解析します。 インターチェンジの 1 つ以上のトランザクション セットが検証に失敗した場合、X12 でコード アクションはそのインターチェンジのすべてのトランザクション セットを badMessages に出力します。

    • インターチェンジの保存またはエラー発生時にトランザクション セットを中断する。インターチェンジを保持し、バッチ インターチェンジ全体を処理します。 X12 デコード アクションは、検証が失敗したトランザクション セットのみを badMessages に出力し、残りのトランザクション セットを goodMessages に出力します。

    • インターチェンジの保存またはエラー発生時にインターチェンジを中断する。インターチェンジを保持し、バッチ インターチェンジ全体を処理します。 インターチェンジの 1 つ以上のトランザクション セットが検証に失敗した場合、X12 でコード アクションはそのインターチェンジのすべてのトランザクション セットを badMessages に出力します。

  • 技術確認および機能確認を生成する (構成されている場合)。

    • ヘッダー検証の結果として技術確認を生成する。 技術確認は、アドレス受信者によるインターチェンジ ヘッダーとトレーラーの処理の状態を報告します。
    • 本体検証の結果として機能確認を生成する。 機能確認は、受信したドキュメントの処理中に発生した各エラーを報告します。

X12 コネクタを使用してワークフロー内の X12 メッセージをデコードするには、次の手順に従います。

  1. Azure portal のデザイナーで、ロジック アプリ リソースとワークフローを開きます。

  2. デザイナーで、次の 一般的な手順 に従って、Decode X12 メッセージという名前の X12 アクションをワークフローに追加します。

  3. 統合アカウントへの接続を作成するように求められたら、次の情報を入力します。

    パラメーター 必須 説明
    接続名 はい 接続の名前。
    統合アカウント ID はい 統合アカウントのリソース ID で、形式は次のとおりです。

    /subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Logic/integrationAccounts/<integration-account-name>

    次に例を示します。
    /subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/integrationAccount-RG/providers/Microsoft.Logic/integrationAccounts/myIntegrationAccount

    このリソース ID を見つけるには、次の手順に従います。

    1. Azure portal で、統合アカウントを開きます。
    2. 統合アカウントのサイドバーで、[ 概要] を選択します。
    3. [概要] ページで、[JSON ビュー] を選びます。
    4. [リソース ID] プロパティから、値をコピーします。
    統合アカウント SAS URL はい Shared Access Signature (SAS) 認証を使用して統合アカウントにアクセスを提供する要求エンドポイント URL。 このコールバック URL の形式は次のとおりです。

    https://<request-endpoint-URI>sp=<permissions>sv=<SAS-version>sig=<signature>

    次に例を示します。
    https://prod-04.west-us.logic-azure.com:443/integrationAccounts/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb?api-version=2015-08-1-preview&sp=XXXXXXXXX&sv=1.0&sig=aB1cD2eF-3gH4iJ5kL6-mN7oP8qR

    この URL を見つけるには、次の手順に従います。

    1. Azure portal で、統合アカウントを開きます。
    2. 統合アカウントのサイドバーで、[ 設定] の [ コールバック URL] を選択します。
    3. [生成されたコールバック URL] プロパティから、値をコピーします。
    制御番号ブロックのサイズ いいえ 契約から予約する高スループットシナリオ用の制御番号のブロックサイズ。

    次に例を示します。

    Azure portal、Decode X12 メッセージという名前のアクションを含むワークフロー、アクション接続情報を示すスクリーンショット。

  4. 完了したら、[ 新規作成] を選択します。

  5. [X12 アクション情報] ボックスで、次の値を指定します。

    パラメーター 必須 説明
    デコードする X12 フラット ファイル メッセージ はい デコードするフラット ファイル形式の X12 メッセージ

    : メッセージ配列内の XML メッセージペイロードまたはコンテンツは base64 でエンコードされます。 このコンテンツを処理する式を使用する必要があります。 たとえば、次の式は、 xml()base64ToBinary()、および item() 関数を使用して、メッセージ配列内のコンテンツを XML として処理します。

    xml(base64ToBinary(item()?['Body']))
    高度なパラメーター いいえ この操作には、次の他のパラメーターが含まれます。

    - インターチェンジの保存
    - エラー発生時にインターチェンジを中断

    詳細については、 X12 メッセージ設定を参照してください。

    たとえば、要求トリガーからの 本文 コンテンツ出力を XML メッセージ ペイロードとして使用できますが、最初に次の式に示すように、このコンテンツを処理する必要があります。

    xml(base64ToBinary(item()?['Body']))

    このタスクを完了するには、次の手順に従います。

    1. X12 フラット ファイル メッセージのボックス内を選択してデコードし、関数アイコンを選択してエクスプレッション エディターを開きます。

    2. 式エディター ボックスに、要求トリガーからの Body 出力を参照する次の式を入力します。

      xml(base64ToBinary(string(triggerBody())))

    3. 終了したら、 [追加] を選択します。

    パラメーターが指定された [X12 メッセージのデコード] という名前のアクションを示すスクリーンショット。