Azure Logic Apps の取引先間でバッチまたはグループとして EDI メッセージを交換する

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

企業間 (B2B) シナリオでは、パートナーがグループまたはバッチでメッセージを交換することがよくあります。 Azure Logic Apps を使用してバッチ処理ソリューションを構築すると、取引先にメッセージを送信し、それらのメッセージをバッチで処理できます。 この記事では、X12 を例にして、"バッチ送信" ロジック アプリと "バッチ受信" ロジック アプリを作成して EDI メッセージをバッチ処理する方法について説明します。

X12 メッセージのバッチ処理は、他のメッセージのバッチ処理と同様に機能します。 メッセージをバッチ内に収集するバッチ トリガーと、メッセージをバッチに送信するバッチ アクションを使用します。 また、X12 バッチ処理には、メッセージが取引先パートナーまたは他の宛先に送信される前に X12 のエンコード手順が含まれています。 バッチ トリガーとアクションの詳細については、メッセージのバッチ処理に関するページを参照してください。

この記事では、バッチ処理ソリューションを構築します。同じ Azure サブスクリプション、同じ Azure リージョン内に、次の順序で 2 つのロジック アプリを作成します。

  • "バッチ受信" ロジック アプリ。メッセージをリリースして処理する条件を指定しておくと、その条件が満たされるまでメッセージを受け取り、バッチとして収集します。 このシナリオでは、バッチ受信アプリも、指定された X12 契約またはパートナー ID を使用してバッチ内のメッセージをエンコードします。

    バッチ送信者を作成する際、後でバッチの宛先を選択できるように、必ず最初にバッチ受信者を作成してください。

  • "バッチ送信" ロジック アプリ ワークフロー。先に作成しておいたバッチ受信アプリにメッセージを送信します。

バッチ受信者とバッチ送信者のロジック アプリ ワークフローでは、必ず同じ Azure サブスクリプション "および" Azure リージョンを使用してください。 異なる場合は互いを認識できず、バッチ送信アプリを作成するときにバッチ受信アプリを選択できません。

前提条件

X12 バッチ受信アプリを作成する

バッチにメッセージを送信するには、その送信先となるバッチがあらかじめ存在していなければなりません。 そのためまず、Batch トリガーを開始する "バッチ受信" ロジック アプリを作成する必要があります。 そうすることで、"バッチ送信" ロジック アプリを作成するときに、そのバッチ受信ロジック アプリを選択することができます。 メッセージをリリースして処理する条件を指定しておくと、バッチ受信アプリは、その条件が満たされるまでメッセージを収集し続けます。 バッチ受信アプリは、バッチ送信アプリについての情報を一切必要としませんが、バッチ送信アプリには、どこにメッセージを送信すべきかの情報が必要です。

このバッチ受信アプリに対し、バッチのモード、名前、リリース条件、X12 契約などの設定を指定します。

  1. Azure portal、Visual Studio、または Visual Studio Code 内で、BatchX12Messages という名前のロジック アプリを作成します

  2. ロジック アプリを統合アカウントにリンクします

  3. ワークフロー デザイナー内で、ロジック アプリのワークフローを開始する Batch トリガーを追加します。

  4. 次の一般的な手順に従って、Batch messages という名前の Batch トリガーを追加します

  5. バッチ受信アプリのプロパティを次のように設定します。

    プロパティ Notes
    バッチ モード インライン
    バッチ名 TestBatch [インライン] バッチ モードの場合にのみ使用できます
    リリース条件 メッセージ数ベース、スケジュール ベース [インライン] バッチ モードの場合にのみ使用できます
    メッセージ数 10 リリース条件が [メッセージ数ベース] の場合にのみ使用できます
    間隔 10 リリース条件が [スケジュール ベース] の場合にのみ使用できます
    頻度 minute リリース条件が [スケジュール ベース] の場合にのみ使用できます

    バッチ トリガーの詳細を指定する

    注意

    この例では、バッチのパーティションを設定していないため、各バッチは同じパーティション キーを使用します。 パーティションの詳細については、メッセージのバッチ処理に関する説明を参照してください。

  6. 次は、各バッチをエンコードするアクションを追加します。

    1. 次の一般的な手順に従って、Batch encode<any-version> という名前の X12 アクションを追加します

    2. 以前に統合アカウントに接続していない場合は、ここで接続を作成します。 接続の名前を指定し、目的の統合アカウントを選択して、[作成] を選択します。

      バッチ エンコーダーと統合アカウント間の接続を作成する

    3. バッチ エンコーダー アクションに以下のプロパティを設定します。

      プロパティ 説明
      X12 契約の名前 一覧を開き、既存の契約を選択します。

      一覧が空の場合は、必要な契約がある統合アカウントにロジック アプリをリンクします。

      BatchName このボックス内をクリックし、動的コンテンツ リストが表示されたら、[バッチ名] トークンを選択します。
      PartitionName このボックス内をクリックし、動的コンテンツ リストが表示されたら、[パーティション名] トークンを選択します。
      項目 アイテムの詳細ボックスを閉じて、このボックス内をクリックします。 動的コンテンツ リストが表示されたら、[バッチ処理されたアイテム] トークンを選択します。

      バッチ エンコード アクションの詳細

      [アイテム] ボックスの場合:

      バッチ エンコード アクションのアイテム

  7. ロジック アプリ ワークフローを保存します。

  8. Visual Studio を使用している場合は、必ずバッチ受信者のロジック アプリを Azure に展開してください。 そうしないと、バッチ送信アプリを作成するときにバッチ受信アプリを選択できません。

ワークフローのテスト

バッチ受信アプリが期待どおりに動作するように、テスト用の HTTP アクションを追加し、バッチ処理されたメッセージを要求ビン サービスに送信することができます。

  1. 次の一般的な手順に従って、HTTP という名前の HTTP アクションを追加します

  2. HTTP アクションのプロパティを設定します。

    プロパティ 説明
    方法 このリストから [POST] を選択します。
    Uri 要求ビンの URI を生成し、その URI をこのボックスに入力します。
    本文 このボックス内をクリックし、動的コンテンツ リストが開いたら、[契約名によるバッチ エンコード] セクションに表示される [本文] トークンを選択します。

    [本文] トークンが表示されない場合は、[契約名によるバッチ エンコード] の横の [詳細表示] を選択します。

    HTTP アクションの詳細を指定する

  3. ワークフローを保存します。

    バッチ受信者のロジック アプリは、次の例のようになります。

    バッチ受信ロジック アプリを保存する

X12 バッチ送信アプリを作成する

次は、バッチ受信ロジック アプリにメッセージを送信するロジック アプリを 1 つまたは複数作成します。 各バッチ送信アプリで、バッチ受信ロジック アプリ、バッチ名、メッセージ コンテンツなどの設定を指定します。 一意のパーティション キーを指定してバッチをサブセットに分割し、そのキーを持つメッセージを収集するように設定することもできます。

  • バッチ受信者を既に作成したことを確認します。 そうすることで、バッチ送信者を作成する際に、既存のバッチ受信者を宛先のバッチとして選択できます。 バッチ受信アプリは、バッチ送信アプリについての情報を一切必要としませんが、バッチ送信アプリには、どこにメッセージを送信すべきかの情報が必要です。

  • バッチ受信者とバッチ送信者のロジック アプリ ワークフローでは、必ず同じ Azure サブスクリプション "および" Azure リージョンを使用してください。 異なる場合は互いを認識できず、バッチ送信アプリを作成するときにバッチ受信アプリを選択できません。

  1. SendX12MessagesToBatch という名前の別のロジック アプリを作成します

  2. こちらの一般的な手順に従って、"HTTP 要求を受信したとき" という名前の Request トリガーを追加します

  3. メッセージをバッチに送信するためのアクションを追加するには、次の一般的な手順に従って、Choose a Logic Apps workflow with batch trigger という名前の [バッチ処理するメッセージの送信] アクションを追加します

    1. 前に作成した BatchX12Messages ロジック アプリを選択します。

    2. [Batch_messages - <your-batch-receiver>] という名前の [BatchX12Messages] アクションを選択します。

  4. バッチ送信アプリのプロパティを設定します。

    プロパティ 説明
    バッチ名 受信ロジック アプリによって定義されたバッチ名 (この例では "TestBatch")

    重要:バッチ名は実行時に検証されます。また、受信ロジック アプリによって指定された名前と一致している必要があります。 バッチ名を変更すると、バッチ送信アプリが失敗します。

    メッセージのコンテンツ 送信するメッセージのコンテンツ (この例では [本文] トークンです)

    バッチのプロパティを設定する

  5. ワークフローを保存します。

    バッチ送信ロジック アプリは次の例のようになります。

    バッチ送信ロジック アプリを保存する

ワークフローをテストする

バッチ処理ソリューションをテストするには、HTTP 要求ツールとその指示を使用して、バッチ送信者ロジック アプリ ワークフローに X12 メッセージを投稿します。 まもなくして、10 分ごとまたは 10 個ずつのバッチで X12 メッセージが要求ビンに取得され始めます。いずれのメッセージもパーティション キーは同じです。

次のステップ