Преобразование XML в рабочих процессах с помощью Azure Logic Apps

Область применения: Azure Logic Apps (Потребление + Стандартный)

В сценариях корпоративной интеграции с "бизнес — бизнес" (B2B) может потребоваться преобразование XML между форматами. Рабочий процесс приложения логики может преобразовать XML с помощью действия Преобразовать XML и предопределенной карты.

Предположим, вы регулярно получаете заказы или счета от клиента "бизнес — бизнес" (B2B), который используют формат даты ГодМесяцДень (ГГГГММДД). Однако ваша организация использует дату в формате МесяцДеньГод (ММДДГГГГ). Вы можете создать и использовать карту, чтобы преобразовать формат даты ГодМесяцДень в МесяцДеньГод перед сохранением сведений о заказе или счете в базе данных деловой активности клиента.

Необходимые компоненты

  • Учетная запись и подписка Azure. Если у вас еще нет подписки, зарегистрируйтесь и получите бесплатную учетную запись Azure.

  • Рабочий процесс приложения логики, который уже запускается триггером, чтобы при необходимости можно было добавить в рабочий процесс действие Преобразование XML.

  • Ресурс учетной записи интеграции, в котором вы определяете и сохраняете артефакты, такие как торговые партнеры, соглашения, сертификаты и т. д., для использования в рабочих процессах корпоративной интеграции и B2B. Этот ресурс должен соответствовать следующим требованиям.

    • Связан с той же подпиской Azure, что и ваш ресурс приложения логики.

    • Существует в том же расположении или регионе Azure, что и ресурс приложения логики, в котором вы планируете использовать действие Преобразование XML.

    • Если вы работаете с ресурсом приложения логики потребления и рабочим процессом, ваша учетная запись интеграции требует следующих элементов:

    • Если вы работаете с ресурсом приложения логики "Стандартный" и рабочим процессом, вы можете связать учетную запись интеграции с ресурсом приложения логики, отправить карты непосредственно в ресурс приложения логики или оба в зависимости от следующих сценариев:

      • Если у вас уже есть учетная запись интеграции с нужными или используемыми артефактами, можно связать учетную запись интеграции с несколькими ресурсами приложения логики уровня "Стандартный", где вы хотите использовать артефакты. Таким образом, вам не нужно отправлять сопоставления в каждое отдельное приложение логики. Дополнительные сведения см. в статье Связывание ресурса приложения логики с учетной записью интеграции.

      • Если у вас нет учетной записи интеграции или планируется использовать артефакты в нескольких рабочих процессах в одном ресурсе приложения логики, вы можете напрямую добавить карты в ресурс приложения логики с помощью портал Azure или Visual Studio Code.

        Примечание.

        Встроенный соединитель Liquid позволяет выбрать карту, которую вы ранее отправили в ресурс приложения логики или связанную учетную запись интеграции, но не в оба целевых объекта.

      Таким образом, если у вас отсутствует или вам требуется учетная запись интеграции, вы можете использовать вариант с отправкой. В противном случае можно использовать вариант со связыванием. Затем вы можете использовать эти артефакты во всех дочерних рабочих процессах в одном ресурсе приложения логики.

    Вам по-прежнему нужна учетная запись интеграции для хранения других артефактов, таких как партнеры, соглашения и сертификаты, вместе с использованием операций AS2, X12 и EDIFACT.

Добавление действия Преобразование XML

  1. В портал Azure откройте приложение логики "Стандартный" и рабочий процесс в конструкторе.

  2. Если у вас есть пустой рабочий процесс, у которого нет триггера, выполните следующие общие действия, чтобы добавить любой нужный триггер. В противном случае перейдите к следующему шагу.

    В этом примере используется триггер Запрос.

  3. На шаге рабочего процесса, в котором необходимо добавить действие Преобразования XML , выполните следующие общие действия, чтобы добавить действие с именем Transform XML.

  4. В поле "Содержимое" укажите XML-содержимое, которое требуется преобразовать с помощью всех XML-данных, получаемых в HTTP-запросе.

    1. Чтобы выбрать выходные данные из предыдущих операций в рабочем процессе, в действии преобразования XML щелкните внутри поля содержимого и выберите параметр списка динамического содержимого (значок молнии).

    2. В списке динамического содержимого выберите маркер для содержимого, которое требуется преобразовать.

      Screenshot shows Standard workflow with opened dynamic content list.

      В примере выбран токен Текст из триггера.

      Примечание.

      Убедитесь, что выбрано XML-содержимое. Если содержимое не является XML или закодировано в кодировке Base64, необходимо указать выражение, обрабатывающее содержимое. Например, можно использовать функции выражений, такие как base64ToBinary() для декодирования содержимого или xml() для обработки содержимого в формате XML.

  5. В списке источника карты выберите расположение, в котором вы отправили карту, ресурс LogicApp или IntegrationAccount.

  6. В списке "Карта" выберите карту.

  7. Закончив работу, сохраните свой рабочий процесс.

    Таким образом, вы завершили настройку действия Преобразование XML. В реальном применении вы можете сохранить преобразованные данные в бизнес-приложении, например в SalesForce. Чтобы отправить преобразованные выходные данные в Salesforce, добавьте действие Salesforce.

  8. Чтобы проверить действие преобразования, активируйте и запустите рабочий процесс. Например, для триггера запроса отправьте запрос в URL-адрес конечной точки триггера.

    Действие Преобразовать XML выполняется после активации рабочего процесса и когда содержимое XML становится доступно для преобразования.

Расширенные возможности

Ссылки на сборки или вызов пользовательского кода из карт

Действие Transform XML поддерживает ссылки на внешние сборки из карт, которые позволяют напрямую вызывать пользовательский код .NET из карт XSLT. Дополнительные сведения см. в статье "Добавление карт XSLT для рабочих процессов в Azure Logic Apps".

Объекты расширения ссылок

В стандартных рабочих процессах действие Преобразования XML поддерживает указание объекта расширения XML для использования с картой.

  1. В действии преобразования XML откройте список расширенных параметров и выберите объект расширения XML, который добавляет параметр в действие.

  2. В поле объекта расширения XML укажите объект расширения, например:

    Screenshot shows Transform XML action with XML Extension Object parameter and value.

Метка порядка байтов

По умолчанию ответ при преобразовании начинается с метки порядка байтов. Эта функция доступна только при работе в редакторе представления кода. Чтобы отключить эту функцию, необходимо задать для свойства transformOptions значение disableByteOrderMark.

"Transform_XML": {
    "inputs": {
        "content": "@{triggerBody()}",
        "integrationAccount": {
            "map": {
                "name": "TestMap"
            }
        },
        "transformOptions": "disableByteOrderMark"
    },
    "runAfter": {},
    "type": "Xslt"
}

Следующие шаги