Кодирование и декодирование неструктурированных файлов в Azure Logic Apps

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

Перед отправкой XML-содержимого бизнес-партнеру в сценарии B2B необходимо сначала закодировать это содержимое. Если вы получаете закодированное XML-содержимое, его сначала необходимо декодировать. При создании рабочего процесса приложения логики в Azure Logic Apps вы можете кодировать и декодировать неструктурированные файлы с помощью действий встроенного соединителя Flat File и схемы неструктурированных файлов для кодирования и декодирования. Действия с неструктурированными файлами можно использовать в рабочих процессах приложения логики многотенантного потребления и рабочих процессах приложения логики уровня "Стандартный".

Хотя триггеры Flat File отсутствуют, вы можете использовать любой триггер или действие для передачи исходного содержимого XML в рабочий процесс. Например, можно использовать встроенный триггер соединителя, управляемый или размещенный в Azure триггер соединителя, доступный для Azure Logic Apps, или даже другое приложение.

В этой статье показано, как добавить действия кодирования и декодирования Flat File в ваш рабочий процесс.

  • Добавьте действие кодирования или декодирования Flat File в рабочий процесс.
  • Выберите нужную схему.

Дополнительные сведения см. в следующей документации:

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

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

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

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

  • Ресурс и рабочий процесс приложения логики. Операции Flat File не имеют доступных триггеров, поэтому рабочий процесс должен включать хотя бы один триггер. Дополнительные сведения см. в следующей документации:

  • Схема неструктурированного файла для кодирования и декодирования XML-содержимого. Дополнительные сведения см. в статье Добавление схем для использования с рабочими процессами в Azure Logic Apps.

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

    Важно!

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

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

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

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

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

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

Ограничения

  • XML-содержимое, которое требуется декодировать, должно быть закодировано в формате UTF-8.

  • В схеме неструктурированного файла убедитесь, что в содержащихся XML-группах отсутствует чрезмерное число свойства max count, для которого задано значение больше 1. Избегайте вложения XML-группы со значением свойства max count больше 1 в другую группу XML со значением свойства max count больше 1.

  • Когда Azure Logic Apps анализирует схему неструктурированного файла и всякий раз, когда схема позволяет выбрать следующий фрагмент, Azure Logic Apps создает символ и прогноз для этого фрагмента. Если схема допускает слишком много таких конструкций, например более 100 000, расширение схемы становится слишком большим, что требует слишком много ресурсов и времени.

Отправить схему

После создания схемы вам нужно отправить схему на основе следующего сценария:

Добавление действия кодирования Flat File

  1. На портале Azure откройте рабочий процесс приложения логики в конструкторе, если он еще не открыт.

  2. Если рабочий процесс не имеет требуемых триггера или каких-либо других действий, сначала добавьте эти операции. Операции Flat File не имеют доступных триггеров.

    В этом примере продолжается триггер запроса с именем При получении HTTP-запроса.

  3. В конструкторе рабочих процессов на шаге, где вы хотите добавить действие Flat File, щелкните Создать шаг.

  4. Под полем поиска Выберите операцию щелкните Встроенные. В поле поиска введите flat file.

  5. В списке действий выберите действие Кодирование неструктурированного файла.

    Screenshot showing Azure portal and Consumption workflow designer with

  6. В свойстве Содержимое действия укажите выходные данные из триггера или предыдущего действия, которое необходимо закодировать, выполнив следующие действия.

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

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

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

    Screenshot showing Consumption workflow designer and

    Примечание.

    Если свойство Текст не отображается в списке динамического содержимого, выберите Дополнительные сведения рядом с заголовком раздела При получении HTTP-запроса. Кроме того, можно ввести содержимое для кодирования непосредственно в поле Содержимое.

  7. В списке Имя схемы выберите схему.

    Screenshot showing Consumption workflow designer and opened

    Примечание.

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

    Когда все будет готово, действие будет выглядеть так:

    Screenshot showing Consumption workflow with finished

  8. Чтобы добавить в действие другие необязательные параметры, выберите эти параметры в списке Добавить новые параметры.

    Параметр Стоимость Описание
    Режим создания пустого узла ForcedDisabled, HonorSchemaNodeProperty или ForcedEnabled Режим, используемый для создания пустых узлов с кодировкой неструктурированных файлов.

    Для BizTalk схема неструктурированных файлов имеет свойство, которое управляет пустым поколением узлов. Можно либо следовать поведению свойства создания пустого узла для схемы неструктурированного файла, либо использовать этот параметр для создания или пропуска пустых узлов Azure Logic Apps. Дополнительные сведения см. в разделе "Теги" для пустых элементов.
    Нормализация XML Да или Нет Параметр включения или отключения нормализации XML в кодировке неструктурированных файлов. Дополнительные сведения см. в разделе XmlTextReader.Normalization.
  9. Сохраните результаты своих действий. На панели инструментов конструктора выберите Сохранить.

Добавление действия декодирования Flat File

  1. На портале Azure откройте рабочий процесс приложения логики в конструкторе, если он еще не открыт.

  2. Если рабочий процесс не имеет требуемых триггера или каких-либо других действий, сначала добавьте эти операции. Операции Flat File не имеют доступных триггеров.

    В этом примере продолжается триггер запроса с именем При получении HTTP-запроса.

  3. В конструкторе рабочих процессов на шаге, где вы хотите добавить действие Flat File, щелкните Создать шаг.

  4. Под полем поиска Выберите операцию щелкните Встроенные. В поле поиска введите flat file.

  5. В списке действий выберите действие Декодирование неструктурированного файла.

    Screenshot showing Azure portal and Consumption workflow designer with

  6. В свойстве Содержимое действия укажите выходные данные из триггера или предыдущего действия, которое необходимо декодировать, выполнив следующие действия.

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

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

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

    Screenshot showing the Consumption workflow designer and

    Примечание.

    Если свойство Текст не отображается в списке динамического содержимого, выберите Дополнительные сведения рядом с заголовком раздела При получении HTTP-запроса. Кроме того, можно ввести содержимое для кодирования непосредственно в поле Содержимое.

  7. В списке Имя схемы выберите схему.

    Screenshot showing Consumption workflow designer and opened

    Примечание.

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

    Когда все будет готово, действие будет выглядеть так:

    Screenshot showing Consumption workflow with finished

  8. Сохраните результаты своих действий. На панели инструментов конструктора выберите Сохранить.

Теперь вы выполнили настройку действия по декодированию неструктурированных файлов. В реальном применении вы можете сохранить декодированные данные в бизнес-приложении, например в Salesforce. Или же можно отправить эти декодированные данные торговому партнеру. Чтобы отправить выходные данные из действия декодирования в Salesforce или в торгового партнера, используйте другие соединители, доступные в Azure Logic Apps:

Тестирование рабочего процесса

  1. С помощью Postman или аналогичного средства и метода POST отправьте вызов на URL-адрес триггера запроса, который отображается в свойстве HTTP POST URL триггера запроса, и включите XML-содержимое, которое вы хотите закодировать или декодировать, в текст запроса.

  2. Когда рабочий процесс завершится, перейдите к его журналу выполнения и изучите входные и выходные данные действия Flat File.

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