Azure Logic Appsでファイル内のフラット ファイルをエンコードおよびデコードする。

適用対象: Azure Logic Apps (従量課金プラン + Standard)

企業間 (B2B) シナリオでビジネス パートナーに XML コンテンツを送信する前に、そのコンテンツをあらかじめエンコードすることが必要になる場合があります。 エンコードされた XML コンテンツを受信した場合は、まずそのコンテンツをデコードする必要があります。 Azure Logic Apps でロジック アプリ ワークフローを構築する場合、フラット ファイルのエンコードとデコードを行うには、フラット ファイル組み込みコネクタ アクションとフラット ファイル スキーマをエンコードとデコードに使います。 フラット ファイル アクションは、マルチテナントの従量課金ロジック アプリ ワークフローとシングルテナントの Standard ロジック アプリ ワークフローで使用できます。

フラット ファイル トリガーは使用できませんが、任意のトリガーまたはアクションを使って、ソース XML コンテンツをワークフローにフィードできます。 たとえば、組み込みのコネクタ トリガー、Azure Logic Apps で使用できるマネージドまたは Azure でホストされるコネクタ トリガー、または別のアプリを使用できます。

この記事では、フラット ファイルのエンコードとデコードのアクションを既存のワークフローに追加する方法について説明します。

  • フラット ファイルのエンコードまたはデコード アクションをワークフローに追加します。
  • 使うスキーマを選びます。

詳細については、次のドキュメントを確認してください。

前提条件

  • Azure アカウントとサブスクリプション。 サブスクリプションをまだお持ちでない場合には、無料の Azure アカウントにサインアップしてください。

  • フラット ファイル アクションを使用する、空または既存のロジック アプリ ワークフロー。

    空のワークフローがある場合は、任意のトリガーを使用してワークフローを開始します。 この例では、要求トリガーを使用します。

  • ロジック アプリのリソースとワークフロー。 フラット ファイル操作に使用できるトリガーはないので、ワークフローに含めるトリガーは最小限にする必要があります。 詳しくは、次のドキュメントをご覧ください。

  • XML コンテンツのエンコードとデコードに使うフラット ファイル スキーマ。 詳細については、Azure Logic Apps でのワークフローを使うスキーマの追加に関する記事を参照してください。

  • 従量課金制または Standard ロジック アプリ ワークフローのどちらを使用しているかに基づいて、統合アカウント リソースが必要になります。 通常、このリソースは、エンタープライズ統合と B2B ワークフローで使用するために成果物を定義して格納する場合に必要です。

    重要

    連携するには、統合アカウントとロジック アプリ リソースの両方が、同じ Azure サブスクリプションと Azure リージョンに存在する必要があります。

    • 従量課金ロジック アプリ ワークフローを使っている場合、ロジック アプリ リソースには統合アカウントへのリンクが必要です。

    • Standard ロジック アプリ ワークフローを使っている場合は、次のシナリオに基づいて、ロジック アプリ リソースを統合アカウントにリンクすること、スキーマをロジック アプリ リソースに直接アップロードすること、またはその両方を行うことができます。

      • 必要なまたは使用したい成果物を含む統合アカウントが既にある場合は、成果物を使用する場所になる複数の Standard ロジック アプリ リソースに統合アカウントをリンクできます。 こうすることで、個々のロジック アプリにスキーマをアップロードする必要がありません。 詳細については、ロジック アプリ リソースの統合アカウントへのリンクに関するページを参照してください。

      • フラット ファイル組み込みコネクタを使用すると、ロジック アプリ リソースまたはリンクされた統合アカウントに以前にアップロードしたスキーマを選べますが、両方は選べません。 その後、同じロジック アプリ リソース内のすべての子ワークフローで、この成果物を使用できます。

      そのため、統合アカウントがないか、または必要としない場合は、アップロード オプションを使用できます。 それ以外の場合は、リンク オプションを使用できます。 どちらの方法でも、同じロジック アプリ リソース内のすべての子ワークフローで、これらの成果物を使用できます。

制限事項

  • デコードする XML コンテンツは、UTF-8 形式でエンコードする必要があります。

  • フラット ファイル スキーマの場合、含める XML グループの "1 より大きい" 値に設定した max count プロパティ数が多くなりすぎないようにしてください。 max countプロパティ値が1より大きいXMLグループをmax countプロパティが1より大きい別のXMLグループ内にネストしないでください。

  • Azure Logic Apps を使ってフラット ファイル スキーマを解析し、次のフラグメントの選択を許可するスキーマの場合は、Azure Logic Apps によってそのフラグメントの "シンボル" と "予測" が生成されます。 スキーマで許可されるコンストラクトの数が 100,000 を超えるなど、このような構造が多すぎると、スキーマの拡張が過度に大きくなり、リソースと時間が多すぎます。

スキーマのアップロード

スキーマを作成したら、次のシナリオに基づいてスキーマをアップロードする必要があります。

フラット ファイルのエンコード アクションを追加する

  1. Azure Portal から、デザイナーでロジック アプリ ワークフローを開きます (まだ開いていない場合)。

  2. ワークフローに必要なトリガーやその他のアクションがワークフローにない場合は、最初にそれらの操作を追加します。 フラット ファイル操作に使用できるトリガーはありません。

    この例では、[HTTP 要求の受信時] という名前の要求トリガーを使用して続行します。

  3. ワークフロー デザイナーで、フラット ファイル アクションを追加するステップの下にある [新しいステップ] を選びます。

  4. [操作を選択してください] の検索ボックスで、[組み込み] を選びます。 検索ボックスに「フラット ファイル」と入力します。

  5. アクションの一覧で、 [フラット ファイルのエンコード] という名前のアクションを選択します。

    Screenshot showing Azure portal and Consumption workflow designer with

  6. アクションの [コンテンツ] プロパティで、次の手順に従って、エンコードするトリガーまたは前のアクションからの出力を指定します。

    1. [コンテンツ] ボックス内をクリックして、動的コンテンツ リストを表示します。

    2. 動的コンテンツ リストから、エンコードするフラット ファイル コンテンツを選びます。

      この例では、動的コンテンツの一覧の [HTTP 要求の受信時] で、トリガーからの本文コンテンツ出力を表す Body トークンを選択します。

    Screenshot showing Consumption workflow designer and

    Note

    動的コンテンツ リストに [本文] プロパティが表示されない場合は、 [HTTP 要求の受信時] セクションのラベルの横にある [表示数を増やす] を選択します。 エンコードするコンテンツを [コンテンツ] ボックスに直接入力することもできます。

  7. [スキーマ名] リストからスキーマを選びます。

    Screenshot showing Consumption workflow designer and opened

    Note

    スキーマ リストが空の場合、ロジック アプリ リソースが統合アカウントにリンクされていないか、統合アカウントにスキーマ ファイルが含まれていません。

    完了すると、アクションは次の例のようになります。

    Screenshot showing Consumption workflow with finished

  8. 他の省略可能なパラメーターをアクションに追加するには、[新しいパラメーターの追加] リストからそれらのパラメーターを選びます。

    パラメーター 価値 説明
    空のノード生成のモード ForcedDisabled または HonorSchemaNodeProperty または ForcedEnabled フラット ファイルのエンコードを使用した空のノード生成に使うモード

    BizTalk の場合、フラット ファイル スキーマには、空のノード生成を制御するプロパティがあります。 フラット ファイル スキーマの空のノード生成プロパティの動作に従うか、この設定を使用して Azure Logic Apps で空のノードを生成または省略することができます。 詳細については、「空の要素のタグ」を参照してください。
    XML 正規化 Yes または No フラット ファイル エンコードの XML 正規化を有効または無効にする設定。 詳細については、「XmlTextReader.Normalization」を参照してください。
  9. ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

フラット ファイルのデコード アクションを追加する

  1. Azure Portal から、デザイナーでロジック アプリ ワークフローを開きます (まだ開いていない場合)。

  2. ワークフローに必要なトリガーやその他のアクションがワークフローにない場合は、最初にそれらの操作を追加します。 フラット ファイル操作に使用できるトリガーはありません。

    この例では、[HTTP 要求の受信時] という名前の要求トリガーを使用して続行します。

  3. ワークフロー デザイナーで、フラット ファイル アクションを追加するステップの下にある [新しいステップ] を選びます。

  4. [操作を選択してください] の検索ボックスで、[組み込み] を選びます。 検索ボックスに「フラット ファイル」と入力します。

  5. アクションの一覧で、 [フラット ファイルのデコード] という名前のアクションを選択します。

    Screenshot showing Azure portal and Consumption workflow designer with

  6. アクションの [コンテンツ] プロパティで、次の手順に従って、デコードするトリガーまたは前のアクションからの出力を指定します。

    1. [コンテンツ] ボックス内をクリックして、動的コンテンツ リストを表示します。

    2. 動的コンテンツ リストから、エンコードするフラット ファイル コンテンツを選びます。

      この例では、動的コンテンツの一覧の [HTTP 要求の受信時] で、トリガーからの本文コンテンツ出力を表す Body トークンを選択します。

    Screenshot showing the Consumption workflow designer and

    Note

    動的コンテンツ リストに [本文] プロパティが表示されない場合は、 [HTTP 要求の受信時] セクションのラベルの横にある [表示数を増やす] を選択します。 エンコードするコンテンツを [コンテンツ] ボックスに直接入力することもできます。

  7. [スキーマ名] リストからスキーマを選びます。

    Screenshot showing Consumption workflow designer and opened

    Note

    スキーマ リストが空の場合、ロジック アプリ リソースが統合アカウントにリンクされていないか、統合アカウントにスキーマ ファイルが含まれていません。

    完了すると、アクションは次の例のようになります。

    Screenshot showing Consumption workflow with finished

  8. ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

以上で、フラット ファイルのデコード アクションの設定が完了しました。 実際のアプリでは、デコードしたデータを Salesforce などの基幹業務 (LOB) アプリに保存することが必要になる場合があります。 または、そのデコードしたデータを取引先に送信することもできます。 デコード アクションの出力を Salesforce または取引先に送信するには、Azure Logic Apps で使用可能な他のコネクタを使用します。

ワークフローのテスト

  1. Postman または同様のツールと POST メソッドを使って、要求トリガーの HTTP POST URL プロパティに含まれる要求トリガーの URL に呼び出しを送信します。また、要求本文にエンコードまたはデコードする XML コンテンツを含めます。

  2. ワークフローの実行が完了したら、ワークフローの実行履歴に移動し、フラット ファイル アクションの入力と出力を調べます。

次のステップ