Azure Logic Apps でワークフローを使用して EDIFACT メッセージを交換する
Azure Logic Apps を使用して作成したワークフローで EDIFACT メッセージを送受信するには、EDIFACT コネクタを使用します。これにより、EDIFACT 通信をサポートして管理するための操作が提供されます。
このガイドでは、EDIFACT エンコードおよびデコードのアクションを既存のロジック アプリ ワークフローに追加する方法について説明します。 EDIFACT トリガーを使用できない場合は、任意のトリガーを使用してワークフローを開始できます。 このガイドの例では、要求トリガーを使用します。
コネクタに関するテクニカル リファレンス
EDIFACT コネクタには、ロジック アプリの種類とホスト環境に基づいてさまざまなバージョンがあります。
ロジック アプリ | 環境 | コネクタのバージョン |
---|---|---|
従量課金プラン | マルチテナント Azure Logic Apps | EDIFACT マネージド コネクタ (Standard クラス)。 EDIFACT コネクタはアクションのみを提供しますが、シナリオに適した任意のトリガーを使用できます。 詳しくは、次のドキュメントをご覧ください。 - EDIFACT マネージド コネクタのリファレンス - EDIFACT メッセージの制限 |
Standard | シングルテナント Azure Logic Apps と App Service Environment v3 (Windows プランのみ) | EDIFACT 組み込みコネクタ (プレビュー) と EDIFACT マネージド コネクタ。 組み込みバージョンには次のような違いがあります。 組み込み式バージョンはアクションのみを提供しますが、シナリオに適した任意のトリガーを使用できます。 - 組み込みバージョンは、Azure 仮想ネットワークに直接アクセスできます。 オンプレミス データ ゲートウェイは必要ありません。 詳しくは、次のドキュメントをご覧ください。 - EDIFACT マネージド コネクタのリファレンス - EDIFACT 組み込みコネクタ操作 - EDIFACT メッセージの制限 |
EDIFACT 組み込み操作 (Standard ワークフローのみ - プレビュー)
プレビュー EDIFACT 組み込みコネクタには次のアクションがあります。これらは、対応する EDIFACT マネージド コネクタ アクションと似ていますが、「制限事項と既知の問題」の中に記載されている点は除きます。
制限事項と既知の問題
プレビュー EDIFACT 組み込みコネクタ
この機能はプレビュー段階にあり、「Microsoft Azure プレビューの追加使用条件」が適用されます。
このコネクタのアクションでは、現在、少なくとも 100 MB までのペイロードがサポートされています。
現在、プレビュー EDIFACT デコード アクションには、次の機能は含まれません。
構成されている場合、インターチェンジ、グループ、トランザクション セット制御番号が重複しているかを確認する。
インターチェンジ全体を保持する。
それ以外の場合、プレビュー EDIFACT エンコードおよび EDIFACT デコード組み込みコネクタ アクションには、対応する EDIFACT マネージド コネクタ アクションと同様の機能があります。
現在、このコネクタのアクションでは、複数のトランザクションまたはバッチ メッセージを含むインターチェンジはサポートされていません。
このコネクタのアクションでは、現在、EDI 固有の追跡は出力されません。
前提条件
Azure アカウントとサブスクリプション。 サブスクリプションをまだお持ちでない場合には、無料の Azure アカウントにサインアップしてください。
エンタープライズ統合および B2B ワークフローで使用する成果物 (取引先、契約、証明書など) を定義して保存する統合アカウント リソース。 このリソースでは、次の要件が満たされている必要があります。
統合アカウントとロジック アプリ リソースの両方が、同じ Azure サブスクリプションと Azure リージョンに存在する必要があります。
ワークフローで使用される EDIFACT 操作に参加する少なくとも 2 つの取引先を定義します。 両方の取引先の定義では、同じ "ビジネス ID" 修飾子 (このシナリオでは [ZZZ - 相互定義] ) を使用する必要があります。
ワークフローに参加する取引先間の EDIFACT 契約を定義します。 契約には、ホスト パートナーとゲスト パートナーが必要です。 他の取引先との間のメッセージの内容が、契約の種類と一致している必要があります。 メッセージの送受信時に使用する契約設定については、「EDIFACT メッセージ設定」を参照してください。
重要
EDIFACT コネクタでは、UTF-8 文字のみがサポートされます。 出力に予期しない文字が含まれている場合は、EDIFACT メッセージで UTF-8 文字セットが使用されていることを確認します。
従量課金 または Standard のいずれのロジック アプリ ワークフローで作業しているかに基づいて、ロジック アプリ リソースが統合アカウントのリンクを必要な場合があります:
ロジック アプリワークフロー リンクが必要ですか? 従量課金プラン 接続と統合アカウントへのリンクが必要です。 EDIFACT 操作をワークフローに追加するときに接続を作成できます。 Standard 統合アカウントへの接続は必要ですが、リンクは必要ありません。 EDIFACT 操作をワークフローに追加するときに接続を作成できます。 EDIFACT 操作を使用するロジック アプリ リソースとワークフロー。
詳しくは、次のドキュメントをご覧ください。
EDIFACT メッセージをエンコードする
[EDIFACT メッセージにエンコードする] という名前の EDIFACT マネージド コネクタ アクションと、[EDIFACT エンコード] という名前の EDIFACT 組み込みコネクタ アクションは、「制限事項と既知の問題」の中に記載されている点を除き、次のタスクを実行します。
送信者の修飾子および識別子を受信者の修飾子および識別子と照合することで、契約を解決します。
電子データ交換 (EDI) をシリアル化します。これによって、XML エンコード メッセージがインターチェンジ内の EDI トランザクション セットに変換されます。
トランザクション セット ヘッダーおよびトレーラ セグメントを適用します。
各送信インターチェンジのインターチェンジ制御番号、グループ制御番号、およびトランザクション セット制御番号を生成します。
ペイロード データの区切り記号を置換します。
メッセージ スキーマと照らし合わせたトランザクション セット データ要素のスキーマ、トランザクション セット データ要素、トランザクション セット データ要素に対する拡張検証など、EDI および取引先固有のプロパティを検証します。
各トランザクション セットの XML ドキュメントを生成します。
技術確認、機能確認、またはその両方を要求します (構成されている場合)。
技術確認として、CONTRL メッセージはインターチェンジの受信を示します。
機能確認として、CONTRL メッセージは、エラーまたはサポートされていない機能の一覧を含む、受信したインターチェンジ、グループ、またはメッセージの受理または拒否を示します。
Azure portal のデザイナーで、ロジック アプリ リソースとワークフローを開きます。
デザイナーで、次の一般的な手順に従って、契約名によって EDIFACT メッセージにエンコードするという名前の EDIFACT アクションをワークフローに追加します。
Note
代わりに ID アクションによる EDIFACT メッセージへのエンコードを使用する場合は、EDIFACT 契約で指定されている送信者識別子や受信者識別子など、後で別の値を指定する必要があります。 また、"エンコードする XML メッセージ" を指定する必要もあります。これは、トリガーまたは前のアクションからの出力です。
統合アカウントの次の接続情報を指定します。
プロパティ Required 説明 接続名 はい 接続の名前 統合アカウント はい 使用可能な統合アカウントの一覧から、使用するアカウントを選択します。 次に例を示します。
完了したら [作成] を選択します。
EDIFACT アクション内で、次のプロパティ値を指定します。
プロパティ Required 説明 EDIFACT 契約の名前 はい 使用する EDIFACT 契約。 エンコードする XML メッセージ はい EDIFACT 契約で指定されているメッセージ送信者のビジネス識別子 その他のパラメーター いいえ この操作には、次の他のパラメーターが含まれます。
- データ要素区切り記号
- リリース インジケータ
- コンポーネントの区切り記号
- 繰り返し区切り記号
- セグメント終端記号
- セグメント終端記号のサフィックス
- 小数点
詳細については、EDIFACT メッセージの設定を参照してください。たとえば、エンコードする XML メッセージ ペイロードは、Request トリガーからの Body 内容の出力にすることができます。
ワークフローを保存します。
EDIFACT メッセージをデコードする
[EDIFACT メッセージをデコードする] という名前の EDIFACT マネージド コネクタ アクションと、[EDIFACT デコード] という名前の EDIFACT 組み込みコネクタ アクションは、「制限事項と既知の問題」の中に記載されている点を除き、次のタスクを実行します。
取引先契約と照らし合わせてエンベロープを検証します。
送信者の修飾子および識別子を受信者の修飾子および識別子と照合することで、契約を解決します。
トランザクションに契約の "受信設定" に基づく複数のトランザクション セットがある場合は、インターチェンジを複数のトランザクションに分割します。
インターチェンジの逆アセンブル
電子データ交換 (EDI) と取引先固有のプロパティ (インターチェンジ エンベロープの構造、制御スキーマに照らし合わせたエンベロープ スキーマ、メッセージ スキーマに照らし合わせたトランザクション セット データ要素のスキーマ、トランザクション セット データ要素の拡張検証など) を検証します。
構成されている場合、インターチェンジ、グループ、トランザクション セット制御番号が重複していないことを検証します (マネージド コネクタのみ)。次に例を示します。
インターチェンジ制御番号を、以前に受信したインターチェンジと比較して確認します。
インターチェンジ内の他のグループ制御番号と照らし合わせて、グループ制御番号を確認します。
グループ内の他のトランザクション セット制御番号と照らし合わせて、トランザクション セット制御番号を確認します。
インターチェンジをトランザクション セットに分割するか、インターチェンジ全体を保持します (マネージド コネクタのみ)。次に例を示します。
インターチェンジをトランザクション セットとして分割 - エラー発生時にトランザクション セットを中断します。
デコード アクションにより、インターチェンジをトランザクション セットに分割し、各トランザクション セットを解析します。 このアクションは、検証が失敗したこれらのトランザクション セットのみを
badMessages
に出力し、残りのトランザクション セットをgoodMessages
に出力します。インターチェンジをトランザクション セットとして分割 - エラー発生時にインターチェンジを中断します。
デコード アクションにより、インターチェンジをトランザクション セットに分割し、各トランザクション セットを解析します。 インターチェンジの 1 つ以上のトランザクション セットが検証に失敗した場合、このアクションはそのインターチェンジのすべてのトランザクション セットを
badMessages
に出力します。インターチェンジの保存 - エラー発生時にトランザクション セットを中断します。
デコード アクションは、インターチェンジを保持し、バッチ インターチェンジ全体を処理します。 このアクションは、検証が失敗したこれらのトランザクション セットのみを
badMessages
に出力し、残りのトランザクション セットをgoodMessages
に出力します。インターチェンジの保存 - エラー発生時にインターチェンジを中断します。
デコード アクションは、インターチェンジを保持し、バッチ インターチェンジ全体を処理します。 インターチェンジの 1 つ以上のトランザクション セットが検証に失敗した場合、このアクションはそのインターチェンジのすべてのトランザクション セットを
badMessages
に出力します。
技術確認、機能確認、またはその両方を生成します (構成されている場合)。
技術確認または制御確認。これは、完全に受信したインターチェンジの構文チェックの結果を報告します。
受信したインターチェンジまたはグループの承認または拒否を確認する機能確認。
Azure portal のデザイナーで、ロジック アプリ リソースとワークフローを開きます。
デザイナーで、次の一般的な手順に従って、EDIFACT メッセージのデコード という名前の EDIFACT アクションをワークフローに追加します。
統合アカウントの次の接続情報を指定します。
プロパティ Required 説明 接続名 はい 接続の名前 統合アカウント はい 使用可能な統合アカウントの一覧から、使用するアカウントを選択します。 次に例を示します。
完了したら [作成] を選択します。
EDIFACT アクション内で、次のプロパティ値を指定します。
プロパティ Required 説明 デコードする EDIFACT フラット ファイル メッセージ はい デコードする XML フラット ファイル メッセージ。 その他のパラメーター いいえ この操作には、次の他のパラメーターが含まれます。
- コンポーネントの区切り記号
- データ要素区切り記号
- リリース インジケータ
- 繰り返し区切り記号
- セグメント終端記号
- セグメント終端記号のサフィックス
- 小数点
- ペイロード文字セット
- セグメント終端記号のサフィックス
- インターチェンジの保存
- エラー発生時にインターチェンジを中断
詳細については、EDIFACT メッセージの設定を参照してください。たとえば、デコードする XML メッセージ ペイロードは、Request トリガーからの Body コンテンツ出力にすることができます。
EDIFACT ドキュメント内の UNH 2.5 セグメントを処理する
EDIFACT ドキュメントでは、スキーマの検索に UNH2.5 セグメントが使用されます。 たとえば、このサンプルの EDIFACT メッセージでは、UNH フィールドは EAN008
です。
UNH+SSDD1+ORDERS:D:03B:UN:EAN008
EDIFACT ドキュメントを処理したり、UN2.5 セグメントを含む EDIFACT メッセージを処理したりするには、次の手順を実行します。
UNH 2.5 のルート ノード名を持つスキーマを更新またはデプロイします。
たとえば、サンプルの UNH フィールドのスキーマ ルート名が
EFACT_D03B_ORDERS_EAN008
であるとします。 UNH2.5 セグメントが異なるD03B_ORDERS
ごとに、個別のスキーマをデプロイする必要があります。Azure portal 内で、従量課金または Standard のロジックアプリ ワークフローのどちらがあるかに基づいて、統合アカウント リソースまたはロジック アプリ リソースにそのスキーマを追加します。
EDIFACT のデコードまたはエンコードのアクションを使用しているかどうかにかかわらず、スキーマをアップロードし、EDIFACT 契約の [受信設定] または [送信設定] セクションでスキーマ設定を設定します。
EDIFACT 契約を編集するには、 [アグリーメント] ペインで契約を選択します。 [アグリーメント] ペインのツールバーで、 [JSON として編集] を選択します。
契約の
receiveAgreement
セクションで、schemaReferences
セクションを見つけて、UNH2.5 の値を追加します。契約の
sendAgreement
セクションで、schemaReferences
セクションを見つけて、UNH2.5 の値を追加します。