Поделиться через


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

Применяется к: Azure Logic Apps (Расход + Стандарт)

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

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

Предпосылки

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

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

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

    • Является частью той же подписки Azure, что и ресурс логического приложения.

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

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

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

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

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

        Замечание

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

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

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

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

  1. На портале Azure откройте ваше стандартное приложение логики и рабочий процесс в конструкторе.

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

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

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

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

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

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

      Снимок экрана: стандартный рабочий процесс с открытым списком динамического содержимого.

      В этом примере выбирается маркер body из триггера.

      Замечание

      Убедитесь, что выбрано 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 укажите объект расширения, например:

    Снимок экрана показывает действие

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

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

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

Дальнейшие шаги