適用対象: Azure Logic Apps (従量課金 + 標準)
エンタープライズ統合企業間 (B2B) のシナリオでは、XML を形式間で変換する必要がある場合があります。 ロジック アプリ ワークフローでは、[XML の変換] アクションと定義済みのマップを使用して XML を変換できます。
たとえば、YearMonthDay 日付形式 (YYYYMMDD) を使用する顧客から B2B 注文または請求書を定期的に受け取るとします。 ただし、組織では MonthDayYear 日付形式 (MMDDYYYYY) が使用されます。 顧客アクティビティ データベースに注文または請求書の詳細を格納する前に、YearMonthDay 形式を MonthDayYear 形式に変換するマップを作成して使用できます。
[前提条件]
Azure アカウントとサブスクリプション。 まだサブスクリプションをお持ちでない場合は、 無料の Azure アカウントにサインアップしてください。
ワークフローで必要に応じて XML 変換 アクションを追加できるように、トリガーで既に開始されているロジック アプリ ワークフロー。
エンタープライズ統合および B2B ワークフローで使用する成果物 (取引先、契約、証明書など) を定義して格納する統合 アカウント リソース 。 このリソースは、次の要件を満たす必要があります。
ロジック アプリ リソースと同じ Azure サブスクリプションに関連付けられています。
XML 変換アクションを使用するロジック アプリ リソースと同じ場所または Azure リージョンに存在します。
従量課金ロジック アプリのリソースとワークフローに取り組んでいる場合、統合アカウントには次のものが必要です。
XML コンテンツの変換に使用する マップ 。
Standard ロジック アプリリソースとワークフローを使用している場合は、次のシナリオに基づいて、統合アカウントをロジック アプリ リソースにリンクしたり、マップをロジック アプリ リソースに直接アップロードしたり、またはその両方をアップロードしたりできます。
必要な成果物を含む統合アカウントが既にある場合、または使用する必要がある場合は、アーティファクトを使用する複数の Standard ロジック アプリ リソースに統合アカウントをリンクできます。 そうすることで、個々のロジック アプリにマップをアップロードする必要はありません。 詳細については、「 ロジック アプリ リソースを統合アカウントにリンクする」を参照してください。
統合アカウントを持っていない場合、または 同じロジック アプリ リソース内の複数のワークフローでアーティファクトのみを使用する予定の場合は、Azure portal または Visual Studio Code を使用して 、ロジック アプリ リソースにマップを直接追加 できます。
注
Liquid 組み込みコネクタを使用すると、ロジック アプリ リソースまたはリンクされた統合アカウントに以前にアップロードしたマップを選択できますが、両方を選択することはできません。
そのため、統合アカウントがない場合や必要な場合は、アップロード オプションを使用できます。 それ以外の場合は、リンク オプションを使用できます。 どちらの方法でも、同じロジック アプリ リソース内のすべての子ワークフローでこれらの成果物を使用できます。
AS2、X12、EDIFACT 操作の使用と共に、パートナー、契約、証明書などの他の成果物を格納するには、統合アカウントが引き続き必要です。
XML 変換アクションの追加
Azure portal で、Standard ロジック アプリのワークフローをデザイナーで開きます。
トリガーがない空のワークフローがある場合は、 次の一般的な手順に従って、必要なトリガーを追加します。 それ以外の場合は、次の手順に進みます。
この例では 、要求 トリガーを使用します。
XML 変換アクションを追加するワークフローの手順の下で、次の一般的な手順に従って、XML 変換という名前のアクションを追加します。
[ コンテンツ ] ボックスで、HTTP 要求で受信した XML データを使用して変換する XML コンテンツを指定します。
ワークフローの前の操作からの出力を選択するには、[ XML の変換 ] アクションで [ コンテンツ ] ボックス内をクリックし、動的コンテンツ リスト オプション (稲妻アイコン) を選択します。
動的コンテンツ リストから、変換するコンテンツのトークンを選択します。
次の使用例は、トリガーから Body トークンを選択します。
マップ ソースの一覧から、LogicApp リソースまたは IntegrationAccount のいずれかのマップをアップロードした場所を選択します。
[マップ] リストから、マップを選択します。
完了したら、ワークフローを保存します。
これで、 XML 変換 アクションの設定が完了しました。 実際のアプリでは、変換されたデータを SalesForce などの基幹業務 (LOB) アプリに格納できます。 変換された出力を Salesforce に送信するには、Salesforce アクションを追加します。
変換アクションをテストするには、ワークフローをトリガーして実行します。 たとえば、要求トリガーの場合は、トリガーのエンドポイント URL に要求を送信します。
XML 変換アクションは、ワークフローがトリガーされた後、および XML コンテンツを変換に使用できる場合に実行されます。
拡張機能
アセンブリを参照するか、マップからカスタム コードを呼び出す
XML 変換アクションは、XSLT マップからカスタム .NET コードを直接呼び出せるように、マップからの外部アセンブリの参照をサポートしています。 詳細については、「 Azure Logic Apps でのワークフローの XSLT マップの追加」を参照してください。
拡張オブジェクトの参照
標準ワークフローでは、 XML 変換 アクションでは、マップで使用する XML 拡張オブジェクトの指定がサポートされています。
[ XML の変換 ] アクションで、[ 詳細パラメーター ] ボックスの一覧を開き、[ XML 拡張オブジェクト] を選択します。このオブジェクトによって、アクションにパラメーターが追加されます。
[ XML 拡張オブジェクト ] ボックスで、次のように拡張オブジェクトを指定します。
バイト順序マーク
既定では、変換からの応答はバイト オーダー マーク (BOM) で始まります。 この機能には、コード ビュー エディターで作業している場合にのみアクセスできます。 この機能を無効にするには、 transformOptions プロパティを disableByteOrderMarkに設定します。
"Transform_XML": {
"inputs": {
"content": "@{triggerBody()}",
"integrationAccount": {
"map": {
"name": "TestMap"
}
},
"transformOptions": "disableByteOrderMark"
},
"runAfter": {},
"type": "Xslt"
}