Logic Apps で EDI

このエントリは2019/06/14現在の情報に基づいています。将来の機能追加・廃止に伴い、記述内容との齟齬が発生する可能性があります。

関連エントリ

EDIを簡単に試すには

AS2での送受信ならびにMDN送信のサンプルがテンプレートとして公開されている。

Azure Logic Apps – AS2 Send Receive
https://github.com/Azure/azure-quickstart-templates/tree/master/201-logic-app-as2-send-receive

統合アカウント (Integration Account)

統合アカウントは、スキーマ、パートナー(取引先、トレーディングパートナー)、証明書、マップ、契約(アグリーメント)などのアーティファクトをすべて格納するクラウドベースのコンテナーです。

概要:Azure Logic Apps での Enterprise Integration Pack を使用した B2B エンタープライズ統合シナリオ
https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-enterprise-integration-overview

簡単に言うと、EDIで使う情報をまとめて管理するための箱。自社のEDI連携のために利用する場合、統合アカウントは1個あれば十分。複数の統合アカウントを作成することもできるため、サービスプロバイダーとしてシステムを提供したい場合にも対応可能。統合アカウントの作成方法は以下のURLを参照。

統合アカウントを作成する
https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-enterprise-integration-create-integration-account#create-integration-account
Create integration account
https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-enterprise-integration-create-integration-account#create-integration-account

統合アカウントとLogic Appsインスタンスの紐付けおよび解除

作成した統合アカウントはLogic Appsインスタンスに紐付けることで、ロジックアプリから統合アカウントを利用できるようになる。このとき、紐付ける対象のLogic Appsインスタンスと統合アカウントは同一リージョンに存在していなければならない(ISEの場合も同様)。

ロジック アプリにリンクする
https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-enterprise-integration-create-integration-account#link-to-logic-app
Link to logic app
https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-enterprise-integration-create-integration-account#link-to-logic-app

統合アカウントへの紐付けを解除するには、Azure Resource Explorerを使う。

ロジック アプリのリンクを解除する
https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-enterprise-integration-create-integration-account#unlink-from-logic-app
Unlink from logic app
https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-enterprise-integration-create-integration-account#unlink-from-logic-app

取引先(トレーディングパートナー)

取引先とは、EDIで送受信する相手のこと。追加・削除は統合アカウントの設定画面から。詳細は以下。

Azure Logic Apps と Enterprise Integration Pack の統合アカウントに対して取引先を追加する
https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-enterprise-integration-partners
Add trading partners for integration accounts in Azure Logic Apps with Enterprise Integration Pack
https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-enterprise-integration-partners

作成時にかならず修飾子(Descriptor)とその値を指定する必要があるが、後から変更できるので、仮の値で作成しておいてもよい。

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

証明書

B2B通信の機密性を確保する必要がある場合、統合アカウントに証明書を追加することで、B2B通信を保護できる。例えばAS2のメッセージ署名および暗号化が必要な場合に利用できる。契約作成時にメッセージ暗号化や署名時に利用する証明書を指定するため、契約作成前に登録しておくことを推奨。

証明書を使用して B2B メッセージをセキュリティで保護する
https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-enterprise-integration-certificates
Secure B2B messages with certificates
https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-enterprise-integration-certificates

契約(アグリーメント)

ホスト取引先および1つのリモート取引先の2つの取引先間におけるビジネス・トランザクションのタイプを定義するもの。具体的には、どんな伝送形式を使うのか、どんなフォーマットで送受信するのか、など定義する。ここで、送受信の起点はホスト取引先であることに注意。契約の作成・編集・削除方法は以下のURLを参照。

Azure Logic Apps および Enterprise Integration Pack を使用して取引先契約を作成して管理します
https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-enterprise-integration-agreements
Create and manage trading partner agreements by using Azure Logic Apps and Enterprise Integration Pack
https://docs.microsoft.com/en-us/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 データを受信する
https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-enterprise-integration-b2b
Receive B2B data with Azure Logic Apps and Enterprise Integration Pack
https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-enterprise-integration-b2b

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中