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


Обмен сообщениями EDI в виде пакетов или групп между торговыми партнерами в Azure Logic Apps

Область применения: Azure Logic Apps (потребление)

В сценариях "бизнес — бизнес" (B2B) партнеры часто обмениваются сообщениями в группах или пакетах. При создании решения пакетной обработки с помощью Logic Apps можно отправлять сообщения торговым партнерам и обрабатывать эти сообщения в пакетах. В этой статье показано, как выполнять пакетную обработку сообщений EDI, используя X12 в качестве примера, путем создания приложения логики для отправки пакета и приложения логики для получения пакета.

Пакетная обработка сообщений X12 работает как пакетная обработка других сообщений. Вы используете триггер "Пакет", который собирает сообщения в пакет, и действие "Пакет", которое отправляет сообщения в пакет. Кроме того, пакетная обработка X12 включает в себя шаг кодирования X12, прежде чем сообщения будут отправлены торговому партнеру или по другому назначению. Дополнительные сведения о триггере и действии "Пакет" см. в статье Отправка, получение и пакетная обработка сообщений в приложениях логики.

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

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

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

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

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

Предварительные требования

Для выполнения этого примера необходимы следующие компоненты:

Создание приложения логики для получения пакета X12

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

Для этого приложения логики для получения пакета укажите пакетный режим, имя пакета, условия его отправки, соглашение X12 и другие параметры.

  1. На портале Azure или в Visual Studio создайте приложение логики с именем BatchX12Messages.

  2. Привяжите приложение логики к учетной записи интеграции.

  3. В конструкторе Logic Apps добавьте триггер Пакет, который запускает рабочий процесс приложения логики. В поле поиска введите слово "пакет" в качестве фильтра. Выберите триггер Пакетные сообщения.

    Добавление триггера

  4. Задайте свойства приложения логики для получения пакетов:

    Свойство Значение Примечания
    Пакетный режим Встроенный
    Имя пакета TestBatch Доступно только в пакетном режиме Встроенный
    Условия отправки На основе количества сообщений, по расписанию Доступно только в пакетном режиме Встроенный
    Количество сообщений 10 Доступно только с условием отправки На основе количества сообщений
    Интервал 10 Доступно только с условием отправки По расписанию
    Частота minute Доступно только с условием отправки По расписанию

    Ввод сведений для триггера

    Примечание

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

  5. Теперь добавьте действие, которое кодирует каждый пакет:

    1. В области триггера "Пакет" щелкните Новый шаг.

    2. В поле поиска введите "пакет X12" в качестве фильтра и выберите это действие (любая версия): Пакетная кодировка<версия> — X12

      Выбор действия пакетного кодирования X12

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

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

    4. Задайте эти свойства для действия кодировщика пакетной службы:

      Свойство Описание
      Имя соглашения X12 Откройте список и выберите ваше имеющееся соглашение.

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

      Имя пакета Щелкните в этом поле, а после того как отобразится список динамического содержимого, выберите маркер Имя пакета.
      Имя раздела Щелкните в этом поле, а после того как отобразится список динамического содержимого, выберите маркер Имя раздела.
      Элементы Закройте поле сведений об элементе, а затем щелкните в этом поле. После того как отобразится список динамического содержимого, выберите маркер Пакетные элементы.

      Сведения о действии пакетного кодирования

      Для поля Элементы:

      Элементы действия пакетного кодирования

  6. Сохраните приложение логики

  7. Если вы используете Visual Studio, разверните приложение логики для получения пакетов в Azure. В противном случае вы не сможете выбрать этот получатель пакетов при создании отправителя пакетов.

Тестирование приложения логики

Чтобы убедиться, что ваше приложение логики для получения пакета работает должным образом, можно добавить действие HTTP для тестирования и отправить пакетированное сообщение в службу RequestBin.

  1. В области действия кодирования X12 выберите Новый шаг.

  2. В поле поиска введите "HTTP" в качестве фильтра. Выберите действие HTTP — HTTP.

    Выбор действия HTTP

  3. Задайте свойства действия HTTP:

    Свойство Описание
    Метод Выберите POST в списке.
    URI Создайте универсальный код ресурса (URI) с помощью службы RequestBin и введите полученный URI в это поле.
    Текст Щелкните в этом поле, а после открытия списка динамического содержимого выберите маркер Текст, который отображается в разделе Пакетная кодировка по имени соглашения.

    Если маркер Текст не отображается, то щелкните Показать больше рядом с пунктом Пакетная кодировка по имени соглашения.

    Ввод сведений о действии HTTP

  4. Сохраните приложение логики

    Ваше приложение логики для получения пакета выглядит следующим образом:

    Сохранение приложения логики для получения пакета

Создание приложения логики для отправки пакета X12

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

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

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

  1. Создайте второе приложение логики с именем SendX12MessagesToBatch.

  2. В поле поиска введите фильтр "когда HTTP-запрос". Выберите триггер При получении HTTP-запроса.

    Добавление триггера

  3. Добавьте действие для отправки сообщений в пакет.

    1. В области действия HTTP-запроса выберите Новый шаг.

    2. В поле поиска введите слово "пакет" в качестве фильтра. Выберите список Действия, а затем выберите это действие: Выберите рабочий процесс Logic Apps с триггером пакета — Отправить сообщения в пакет.

      Выбор действия

    3. Теперь выберите приложение логики BatchX12Messages, которое вы создали ранее.

      Выбор приложения логики для

    4. Выберите действие: Batch_messages (Пакетировать сообщения) — <получатель_пакетов>

      Выбор действия

  4. Задайте свойства приложения логики для отправки пакета.

    Свойство Описание
    Имя пакета Имя пакета, определяемое принимающим приложением логики. В нашем примере это TestBatch.

    Важно! Имя пакета проверяется во время выполнения. Оно должно совпадать с именем, указанным в принимающем приложении логики. Изменение имени пакета приводит к сбою в работе приложения логики для отправки пакета.

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

    Настройка свойств пакета

  5. Сохраните приложение логики

    Ваше приложение логики для отправки пакета выглядит следующим образом:

    Сохранение приложения логики для отправки пакета

Тестирование приложений логики

Чтобы проверить решение пакетной обработки, опубликуйте сообщения X12 в приложении логики для отправки пакета из приложения Postman или аналогичного инструмента. Через некоторое время вы начнете получать сообщения X12 в службе RequestBin — каждые 10 минут или в виде пакета из 10 элементов. Все они должны иметь одинаковый ключ раздела.

Дальнейшие действия