このエントリは2019/06/14現在の情報に基づいています。将来の機能追加・廃止に伴い、記述内容との齟齬が発生する可能性があります。
関連エントリ
- Part 1: 基本
- Part 2: EDI/B2B(このエントリ)
- Part 3: オンプレミスとの接続
- Part 4: Cosmos DBとの接続
- Part 5: 長時間実行タスクの待機
EDIを簡単に試すには
AS2での送受信ならびにMDN送信のサンプルがテンプレートとして公開されている。
Azure Logic Apps – AS2 Send Receive
https://azure.microsoft.com/resources/templates/logic-app-as2-send-receive/
統合アカウント (Integration Account)
統合アカウントは、スキーマ、パートナー(取引先、トレーディングパートナー)、証明書、マップ、契約(アグリーメント)などのアーティファクトをすべて格納するクラウドベースのコンテナーです。
概要:Azure Logic Apps での Enterprise Integration Pack を使用した B2B エンタープライズ統合シナリオ
https://docs.microsoft.com/azure/logic-apps/logic-apps-enterprise-integration-overview
簡単に言うと、EDIで使う情報をまとめて管理するための箱。自社のEDI連携のために利用する場合、統合アカウントは1個あれば十分。複数の統合アカウントを作成することもできるため、サービスプロバイダーとしてシステムを提供したい場合にも対応可能。統合アカウントの作成方法は以下のURLを参照。
統合アカウントを作成する / Create integration account
https://docs.microsoft.com/azure/logic-apps/logic-apps-enterprise-integration-create-integration-account#create-integration-account

統合アカウントとLogic Appインスタンスの紐付けおよび解除
作成した統合アカウントはLogic Appインスタンスに紐付けることで、ロジックアプリから統合アカウントを利用できるようになる。このとき、紐付ける対象のLogic Appインスタンスと統合アカウントは同一リージョンに存在していなければならない(ISEの場合も同様)。
ロジック アプリにリンクする / Link to logic app
https://docs.microsoft.com/azure/logic-apps/logic-apps-enterprise-integration-create-integration-account#link-to-logic-app
統合アカウントへの紐付けを解除するには、Azure Resource Explorerを使う。
ロジック アプリのリンクを解除する / Unlink from logic app
https://docs.microsoft.com/azure/logic-apps/logic-apps-enterprise-integration-create-integration-account#unlink-from-logic-app
取引先(トレーディングパートナー)
取引先とは、EDIで送受信する相手のこと。追加・削除は統合アカウントの設定画面から。詳細は以下。
Azure Logic App と Enterprise Integration Pack の統合アカウントに対して取引先を追加する / Add trading partners for integration accounts in Azure Logic Apps with Enterprise Integration Pack
https://docs.microsoft.com/azure/logic-apps/logic-apps-enterprise-integration-partners
作成時にかならず修飾子(Descriptor)とその値を指定する必要があるが、後から変更できるので、仮の値で作成しておいてもよい。

修飾子には種々の選択肢があり、取引先作成後、他の修飾子を追加できる。また、ロジックアプリから利用できるメタデータも、取引先に付加できる。

証明書
B2B通信の機密性を確保する必要がある場合、統合アカウントに証明書を追加することで、B2B通信を保護できる。例えばAS2のメッセージ署名および暗号化が必要な場合に利用できる。契約作成時にメッセージ暗号化や署名時に利用する証明書を指定するため、契約作成前に登録しておくことを推奨。
証明書を使用して B2B メッセージをセキュリティで保護する / Secure B2B messages with certificates
https://docs.microsoft.com/azure/logic-apps/logic-apps-enterprise-integration-certificates
契約(アグリーメント)
ホスト取引先および1つのリモート取引先の2つの取引先間におけるビジネス・トランザクションのタイプを定義するもの。具体的には、どんな伝送形式を使うのか、どんなフォーマットで送受信するのか、など定義する。ここで、送受信の起点はホスト取引先であることに注意。契約の作成・編集・削除方法は以下のURLを参照。
Azure Logic Apps および Enterprise Integration Pack を使用して取引先契約を作成して管理します / Create and manage trading partner agreements by using Azure Logic Apps and Enterprise Integration Pack
https://docs.microsoft.com/azure/logic-apps/logic-apps-enterprise-integration-agreements

メッセージ署名、暗号化用途で指定する証明書は、統合アカウントの証明書に存在するものを使う。
スキーマ
EDIFACTやX12のメッセージをXML形式に変換(Translation)する、またその逆を実現するために利用。ドキュメントプロトコルのスキーマに制限はなく、EDIFACTやX12だけでなく、カスタムのスキーマを指定することも可能(例えばドキュメントプロトコルとしてCSVを採用している場合に、当該CSV形式に合わせたカスタムスキーマを作成する、など)。X12、EDIFACTのスキーマはBizTalk Servicesのものを利用できる。
Microsoft Azure BizTalk Services SDK Setup
https://www.microsoft.com/en-us/download/details.aspx?id=39087
ロジックアプリの作成
ロジックアプリの作成方法自体は通常と変わらない。基本的な流れは以下の通り。
- トリガーの作成
- 着信を待つ(リスニングする)場合は、HTTPをトリガーにする
- その他、何らかのトリガーで動作するようにしておく(サンプルの場合、1時間毎のスケジュール起動)
- トリガーの後のアクションは…
- 着信の場合
- メッセージ交換プロトコルのコネクタ(例:AS2コネクタ)を使ってメッセージをデコード
- ドキュメントプロトコルとしてX12やEDIFACTを使っている場合、各々のメッセージをデコード
- 発信の場合
- ドキュメントプロトコルに併せて各々のメッセージをエンコード
- メッセージ交換プロトコルのコネクタを使ってメッセージをエンコード
- 必要であれば業務ロジックを追加する。カスタムロジックを実装したFunctionsを呼ぶもよし…
- メッセージを送信。着信応答が必要な場合は応答を返信する(MDNを返す必要がある場合はMDNを作成)
- 着信の場合

詳細は以下のドキュメントを参照。
Azure Logic Apps と Enterprise Integration Pack で B2B データを受信する / Receive B2B data with Azure Logic Apps and Enterprise Integration Pack
https://docs.microsoft.com/azure/logic-apps/logic-apps-enterprise-integration-b2b