適用対象: Azure Logic Apps (従量課金 + 標準)
企業間 (B2B) シナリオでは、パートナーがグループまたはバッチでメッセージを交換することがよくあります。 Azure Logic Apps を使用してバッチ処理ソリューションを構築すると、取引先にメッセージを送信し、それらのメッセージをバッチで処理できます。
X12 メッセージのバッチ処理は、他のメッセージのバッチ処理と同じように機能します。 バッチ トリガーを使用して、メッセージをバッチに収集します。 バッチ アクションを使用して、メッセージをバッチに送信します。 メッセージが取引先またはその他の宛先に送信される前に、X12 エンコード手順も含めます。 詳細については、「 メッセージの送信、受信、バッチ処理」を参照してください。
このガイドでは、バッチ送信者とバッチ受信者の 2 つのロジック アプリを作成して、電子データ交換 (EDI) メッセージを処理する バッチ 処理ソリューションを構築する方法について説明 します。 たとえば、このソリューションは X12 メッセージを処理します。
バッチ受信側は、これらのメッセージを解放および処理するための特定の条件が満たされるまで、メッセージをバッチに収集します。 このバッチ受信者は、指定された X12 契約またはパートナー ID を使用して、バッチ内のメッセージもエンコードします。
最初にバッチ受信側をバッチ宛先として作成する必要があります。 その後、バッチ送信側を作成するときにバッチ受信側を選択できます。
バッチ送信者ロジック アプリ ワークフローは、以前に作成したバッチ レシーバーにメッセージを送信します。
バッチ受信者とバッチ送信者は、同じ Azure サブスクリプション と Azure リージョンを使用する必要があります。 異なる場合は互いを認識できず、バッチ送信アプリを作成するときにバッチ受信アプリを選択できません。
Note
Standard ロジック アプリでは、バッチ受信者とバッチ送信者として 2 つのワークフローを作成できます。 従量課金ロジック アプリには 1 つのワークフローしかないため、2 つのロジック アプリを作成する必要があります。
前提条件
Azure アカウントとサブスクリプション。 サブスクリプションをお持ちでない場合は、 無料の Azure アカウントにサインアップしてください。
ロジック アプリ ワークフローの作成方法に関する基礎知識。 詳しくは、次のドキュメントをご覧ください。
同じ Azure サブスクリプションを使用し、ロジック アプリにリンクされている 統合アカウント 。
統合アカウントには少なくとも 2 つの 取引先 が必要です。 各パートナーは、パートナー プロパティのビジネス ID として X12 (Standard Carrier Alpha Code) 修飾子を使用する必要があります。
統合アカウント内の既存の X12 契約が 1 つ。
HTTP 要求を送信してソリューションをテストできるツールをインストールまたは使用します。次に例を示します。
- Visual Studio Code を Visual Studio Marketplace からの拡張機能と一緒に使用する
- PowerShell Invoke-RestMethod
- Microsoft Edge - ネットワーク コンソール ツール
- ブルーノ
- curl
注意
資格情報、シークレット、アクセス トークン、API キーなどの機密データがあるシナリオでは、必要なセキュリティ機能でデータを保護するツールを必ず使用してください。 このツールはオフラインまたはローカルで動作する必要があり、オンライン アカウントへのサインインやクラウドへのデータの同期は必要ありません。 これらの特性を持つツールを使用すると、機密データを一般に公開するリスクが軽減されます。
X12 バッチ受信アプリを作成する
バッチにメッセージを送信するには、まずバッチが宛先バッチとして存在している必要があります。 そのため、最初にバッチ レシーバーを作成し、 Batch トリガーを使用してワークフローを開始します。 そうすることで、バッチ送信者を作成するときに、バッチ受信側を選択できます。
バッチ受信側は、これらのメッセージを解放および処理するために指定された条件が満たされるまでメッセージを収集します。 バッチ受信者はバッチ送信者について知る必要はありませんが、バッチ送信者はメッセージを送信する場所を知っている必要があります。
Azure portal または Visual Studio Code で、BatchX12Messages という名前のロジック アプリを作成します。
ロジック アプリを統合アカウントにリンクしていない場合は、 今すぐロジック アプリをリンクしてください。
次の一般的な手順に従って、Batch 操作トリガーにBatch トリガーという名前を付けて追加します。
デザイナーで、[ Batch トリガー ] を選択してトリガー情報ウィンドウを開きます。
情報ウィンドウで、 Batch トリガーのタイトルを選択します。 名前を *Batch メッセージに変更します。
[ パラメーター ] タブで、次のパラメーターの値を指定します。
パラメーター 値 注記 モード Inline または IntegrationAccount 消費ワークフローでのみ使用できます。 バッチ名 < batch-name> 使用するバッチ名。 この例では、 TestBatchを使用します。
- 従量課金ワークフロー: モード が インラインの場合にのみ使用できます。 この例では、TestBatchを使用します。
- 標準ワークフロー: 常に使用可能。リリース条件 - メッセージ数に基づく
- サイズベース
- スケジュールに基づいた使用するリリース条件の種類。
- 従量課金ワークフロー: モード が インラインの場合にのみ使用できます。
- 標準ワークフロー: 常に使用可能。
この例では、 メッセージ数ベース と スケジュール ベースを使用します。メッセージ数 < 整数> リリース条件がメッセージ数ベースの場合にのみ使用できます。 収集して解放するメッセージの数を指定します。 この例では、値として 10を使用します。間隔 < 整数> リリース条件がスケジュール ベースの場合にのみ使用できます。 繰り返しの時間間隔の数を指定します。 この例では、値として 10を使用します。頻度 < time-unit> リリース条件がスケジュール ベースの場合にのみ使用できます。 繰り返しの時間単位を指定します。 この例では、 値として Minute を使用します。
Note
この例では、バッチのパーティションは設定されません。 各バッチでは、同じパーティション キーが使用されます。 パーティションの詳細については、「 バッチ送信者の作成」を参照してください。
各バッチをエンコードするアクションを追加します。
一般的な手順に従って、 という名前の<アクションを追加します。
以前に統合アカウントに接続していない場合は、ここで接続を作成します。
- 接続の名前を指定します。
- 統合アカウント ID と統合アカウントSAS URL パラメーターの値を指定します。
- [新規作成] を選択します。
デザイナーで、バッチ エンコーダー アクションを選択して、アクション情報ウィンドウを開きます。 [ パラメーター ] タブで、次のパラメーターの値を指定します。 必要に応じて、[高度なパラメーター] から パラメーターを選択します。
パラメーター 説明 X12 契約の名前 この一覧から契約を選択します。
注: リストが空の場合は、契約がある 統合アカウントにロジック アプリをリンク してください。BatchName 入力オプションを表示するには、このボックス内を選択します。 照明アイコンを選択して、動的コンテンツ リストを開きます。 一覧の [ バッチ メッセージ] で、 Batch Name という名前のトリガー出力を選択します。 PartitionName 入力オプションを表示するには、このボックス内を選択します。 稲妻アイコンを選択して、動的コンテンツ リストを開きます。 一覧の [ バッチ メッセージ] で、[ パーティション名] を選択します。 アイテム T アイコンを選択し、配列全体を入力に切り替えます。 [ 項目 ] ボックス内を選択して、入力オプションを表示します。 稲妻アイコンを選択して、動的コンテンツ リストを開きます。 この一覧の [バッチ メッセージ] で、 Batched Items という名前のトリガー出力を選択します。 [アイテム] ボックスの場合:
ワークフローを保存します。
Visual Studio Code を使用する場合は、まず バッチ レシーバー ロジック アプリを Azure にデプロイします。 そうしないと、バッチ送信アプリを作成するときにバッチ受信アプリを選択できません。
ワークフローをテストする
バッチ受信アプリが期待どおりに動作するように、テスト用の HTTP アクションを追加し、バッチ処理されたメッセージを要求ビン サービスに送信することができます。
HTTP という名前の HTTP アクションを追加するには、次の一般的な手順に従います。
デザイナーで HTTP アクションを選択し、アクション情報ウィンドウを開きます。 [ パラメーター ] タブで、次のパラメーターの値を指定します。
パラメーター 説明 方法 このリストから [POST] を選択します。 URI 要求ビンの URI を生成し、その URI をこのボックスに入力します。 本文 入力オプションを表示するには、このボックス内を選択します。 照明アイコンを選択して、動的コンテンツ リストを開きます。 この一覧の [ 契約名によるバッチ エンコード] で、[ コンテンツ] という名前のアクション出力を選択します。
コンテンツが表示されない場合は、[契約名によるバッチ エンコード] の横にある [詳細を表示] を選択します。ワークフローを保存します。
バッチ レシーバー ワークフローは、次の例のようになります。
バッチ受信者にメッセージを送信するバッチ送信者を作成する次のセクションに進みます。
X12 バッチ送信アプリを作成する
バッチ レシーバーにメッセージを送信する 1 つ以上のロジック アプリが必要になりました。 バッチ送信者ごとに、バッチ受信者とバッチ名、メッセージの内容、およびその他の設定を指定します。 必要に応じて、一意のパーティション キーを指定してバッチをサブセットに分割し、そのキーを使用してメッセージを収集できます。
開始する前に、次のタスクが完了していることを確認してください。
バッチ レシーバーを作成しました。 バッチ送信側を作成するときは、バッチ受信側が存在する必要があります。 それ以外の場合は、バッチレシーバーを宛先バッチとして選択することはできません。 バッチ受信者はバッチ送信者について知る必要はありませんが、バッチ送信者はメッセージを送信する場所を知っている必要があります。
バッチ受信者とバッチ送信者の両方が、同じ Azure サブスクリプション と Azure リージョンを使用していることを確認します。 異なる場合は互いを認識できず、バッチ送信アプリを作成するときにバッチ受信アプリを選択できません。
SendX12MessagesToBatch という名前の別のロジック アプリを作成します。
HTTP 要求を受信したときにという名前の要求トリガーを追加するには、次の一般的な手順に従います。
ロジック アプリの種類に基づいて Batch 操作アクションを追加するには、次の一般的な手順に従います。
- 従量課金: バッチ トリガー ワークフローへの送信
- 標準: バッチへの送信
ロジック アプリの種類の手順に従います。
- 従量課金: 以前に作成した [BatchX12Messages]>[Batch_messages]>[アクションの追加] を選択します。
- 標準: この手順をスキップし、次の手順に進みます。
[ パラメーター ] タブで、次のパラメーターの値を指定します。
パラメーター 説明 バッチ名 バッチレシーバーで定義されているバッチ名。この例では TestBatch。
重要: バッチ名は実行時に検証され、バッチ受信側で指定された名前と一致する必要があります。 バッチ名を変更すると、バッチ送信アプリが失敗します。メッセージのコンテンツ 送信するメッセージの内容は、HTTP トリガーからの Body 出力です。
[ メッセージ コンテンツ ] ボックス内を選択して、入力オプションを表示します。 稲妻アイコンを選択して、動的コンテンツ リストを開きます。 一覧の【HTTP】から【本文】を選択します。- 消費: ワークフロー ID
- 標準: ワークフロー名- 消費ワークフロー: 値は既に設定されています。
- 標準: バッチ受信側ワークフローにトリガー名を入力します。この例では Batch メッセージ です。トリガー名 - 消費ワークフロー: 値は既に設定されています。
- 標準: バッチ受信側ワークフローのトリガー名を入力します。ワークフローを保存します。
バッチ送信者は次の例のようになります。
ワークフローをテストする
バッチ処理ソリューションをテストするには、HTTP 要求ツールから、X12 メッセージを含む HTTP POST 要求をバッチ送信者に送信します。 この例の値を使用した場合は、10 分ごと、または 10 のバッチで、すべて同じパーティション キーを使用して、要求ビンに X12 メッセージを取得し始めます。