Перейти к содержимому
Kitegra
← Вернуться в блог

Модуль в этой статье: Инструменты

Инструменты payload для SAP CPI: сравнение, конвертация и генерация тестовых данных в браузере

Сравнивайте два payload, конвертируйте XML, JSON, YAML и CSV по правилам конвертеров SAP, генерируйте тестовые payload с ошибками и вставляйте сниппеты Groovy — офлайн, рядом с дизайнером iFlow.

Половина работы над iFlow в SAP Cloud Integration (SAP CPI) происходит вокруг payload: два сообщения, которые должны совпадать, но не совпадают; тело в JSON, которое получатель хочет видеть в XML; набор тестовых сообщений для обработки ошибок; строка на Groovy, которую вы пишете каждую неделю и никак не запомните. Обычно всё это заканчивается текстовым редактором, онлайн-конвертером и собственным скриптом.

Toolbox от Kitegra собирает эти задачи в браузере, рядом с дизайнером iFlow: сравнение payload, конвертер форматов, генератор тестовых payload, сниппеты Groovy со шпаргалкой и HTTP Runner. Кроме запросов, которые вы отправляете через HTTP Runner, всё работает офлайн. То, что вы вставили, остаётся на странице и никогда не сохраняется и не отправляется.

Где найти Toolbox

Откройте всплывающее окно расширения и выберите «Инструменты». Список Toolbox открывает каждый инструмент в отдельной вкладке: «Сравнение payload», «Конвертер форматов», «Генератор тестовых payload», «Сниппеты и шпаргалка», HTTP Runner и iFlow Docs. В iFlow меню блока Kitegra на панели инструментов схемы также открывает «Сниппеты» и «Заметки» как панели на странице.

Рядом с каждым элементом управления есть маленький значок (i), который объясняет, что он делает. Toolbox не учитывает iFlow в лимите вашего тарифа.

Сравнение payload

Вставьте два payload, загрузите их из файлов или перетащите на страницу — и различия будут отмечены построчно. «Назад» и «Далее» переходят от одного различия к другому, а счётчик показывает, сколько их всего.

  • Игнорировать пробелы: строки, которые отличаются только пробелами, табуляцией или отступами, считаются одинаковыми.
  • Нормализовать XML: сортирует атрибуты, игнорирует префиксы пространств имён и форматирует обе стороны, так что остаются только настоящие изменения.
  • Нормализовать JSON: сортирует ключи и форматирует.
  • Только различия: скрывает одинаковые строки и показывает на их месте, сколько строк скрыто.
  • Поменять A и B местами: то, что показывалось как добавленное, показывается как удалённое.

Payload, который не является корректным XML или валидным JSON, всё равно сравнивается — как текст. В Message Monitor у просмотрщика payload трассированного шага есть кнопка Сравнить со следующим шагом: она открывает эту страницу с телом до и после этого шага. См. пошаговую трассировку сообщения.

Конвертер форматов

Вставьте XML, JSON, YAML, CSV или любой текст либо загрузите файл. Формат определяется по содержимому, и предлагаются только подходящие преобразования:

  • XML в JSON и JSON в XML по правилам собственных конвертеров SAP: члены @name — это атрибуты, $ — текст элемента, а массив повторяет свой элемент. Параметры те же, что вы задаёте в iFlow: «Добавить корневой элемент XML», «Без корневого элемента JSON» и элементы, которые всегда записываются как массивы.
  • CSV в JSON или XML и обратно: разделитель определяется автоматически или выбирается вручную, есть строка заголовков и имя элемента строки.
  • YAML в JSON и JSON в YAML.
  • XSD, выведенная из XML, и пример XML по XSD.
  • Форматирование и минификация для XML и JSON.
  • Кодирование и декодирование Base64 и URL; экранирование и снятие экранирования для строк XML, JSON и Groovy.

Сделать вводом возвращает результат в поле ввода, чтобы его можно было преобразовать ещё раз. Рядом с «Преобразовать» есть ещё три вкладки:

  • Проверить убеждается, что ввод корректен, и перечисляет каждую проблему с номером строки и столбца. Если указать XSD, проверяются также элементы XML, их порядок и количество, атрибуты и простые типы. Это облегчённая проверка: пространства имён, import, include, группы подстановки и ключи не проверяются.
  • Найти и заменить — с регулярными выражениями JavaScript и их группами.
  • Пакет одинаково преобразует несколько файлов и скачивает результаты одним ZIP. Файл, который не удалось преобразовать, пропускается и попадает в список.

Генератор тестовых payload

Обработку ошибок в iFlow тестируют меньше всего, потому что ни у кого нет ошибочных сообщений. Генератор создаёт их из одного реального образца.

  1. Вставьте или загрузите одно реальное сообщение: XML, JSON или CSV со строкой заголовков.
  2. Проверьте таблицу полей. Тип каждого поля угадывается по значению: текст, целое число, десятичное число, логическое значение, дата, дата и время, e-mail, валюта, страна, UUID или null.
  3. Выберите правило для каждого поля: «Оставить» значение образца, «Случайное того же типа», «Последовательность» или «Выбор из списка» значений.
  4. Укажите, сколько payload создать (до 1000), и долю payload с ошибкой.
  5. Выберите виды ошибок и нажмите «Сгенерировать».

Ошибки — те, из-за которых получатели отклоняют сообщения: отсутствует обязательное поле, пустое поле, неверный тип, недопустимые дата, e-mail, валюта или страна, отрицательное количество, неверное пространство имён, повреждённый XML, JSON или CSV, повторяющийся ID, лишнее поле и значение null. В каждом ошибочном payload ровно одна ошибка.

Один и тот же образец, правила и сид всегда дают одни и те же payload, поэтому тест можно повторить на тех же данных. Скачать ZIP даёт по одному файлу на payload и manifest.json, где для каждого файла указаны ошибка и изменённое поле. Скачать одним файлом записывает JSON Lines либо XML и CSV, разделённые пустой строкой. Сохранить как набор данных для Runner передаёт набор в HTTP Runner, который может отправить каждый payload в ваш iFlow и показать, какие ответы пришли так, как ожидалось.

Сниппеты Groovy и шпаргалка

На вкладке «Сниппеты» собраны 32 шаблона Groovy для скриптов Cloud Integration. Каждый написан для вставки внутрь processData(Message message), с полными именами классов, так что import не нужен. Они охватывают чтение и установку тела, заголовков и свойств обмена, потоковую обработку большого тела, XmlSlurper, XmlParser и MarkupBuilder, безопасный разбор XML с защитой от XXE, JsonSlurper и JsonBuilder, значения для поиска в мониторинге, вложения в журнале сообщения, завершение с понятной ошибкой, HTTP-ошибку в подпроцессе исключений, учётные данные из Secure Store, поиск в Value Mapping и Partner Directory.

Ищите их по имени или тегу. Если скрипт открыт в дизайнере в режиме редактирования, Вставить вводит сниппет в позицию курсора; иначе скопируйте его. Добавить свои хранит до 20 ваших сниппетов, которые синхронизируются с аккаунтом Kitegra, когда вы вошли. Не храните в них пароли и ключи.

На вкладке «Шпаргалка» собрано то, что вы ищете каждую неделю: операторы Simple, шаблоны дат Java с примерами, функции XPath 1.0, которые выполняются на примере XML, и ссылки на документацию SAP и Apache Camel. Щелчок по любому примеру копирует его. Сами выражения разобраны в статье Выражения Camel Simple в SAP CPI.

Чтобы прочитать скрипты, которые уже есть в iFlow, используйте «Объяснение скриптов» в iFlow Docs. Для каждого скрипта оно показывает назначение, что он читает, что задаёт или меняет, основную логику, используемые API SAP и риски.

HTTP Runner

HTTP Runner вызывает HTTPS-endpoints вашего iFlow с OAuth по сервисному ключу Process Integration Runtime, хранит запросы в коллекциях и проверяет ответы. В «Сведениях об iFlow» каждый endpoint можно скопировать как cURL или открыть в Runner. Полное описание — в статье тестирование HTTPS iFlow с сервисным ключом.

Что хранится и что входит в ваш тариф

Сравнение, конвертер, генератор и шпаргалка работают на странице и ничего не хранят. Ваши собственные сниппеты и коллекции HTTP Runner без значений авторизации и секретных переменных синхронизируются с аккаунтом Kitegra, когда вы вошли.

Офлайн-инструменты есть на всех тарифах. HTTP Runner доступен в ограниченном объёме на Free и Starter и полностью — на Pro и командных тарифах. Пока Kitegra запускается, все инструменты открыты для всех, кто вошёл в аккаунт, в том числе на тарифе Free. Сравните тарифы.

Попробуйте в следующем iFlow

Узнайте, что Kitegra добавляет к дизайнеру SAP Integration Suite, или посмотрите всё, что умеет Toolbox.

Частые вопросы

Отправляются ли куда-нибудь мои payload?

Нет. Сравнение, конвертер, генератор и шпаргалка работают на странице браузера. То, что вы вставляете или загружаете, не сохраняется и не отправляется.

Даёт ли конвертер тот же результат, что и конвертеры SAP?

Он следует тем же правилам и параметрам, что и конвертеры SAP JSON to XML и XML to JSON: атрибуты, текст элемента, массивы, добавленный корневой элемент и подавленный корень JSON. Если результат должен быть точным, запустите iFlow.

Можно ли повторить сгенерированный тестовый набор?

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

Как вставить сниппет в скрипт Groovy?

Откройте скрипт в дизайнере в режиме редактирования, поставьте курсор в нужное место и нажмите «Вставить» у сниппета. Затем сохраните iFlow самостоятельно.

Учитывает ли Toolbox iFlow?

Нет. iFlow учитывают только Helper, Message Monitor, iFlow Inspector и iFlow Docs.

Работайте с iFlows, не покидая дизайнер

Добавьте Kitegra в Chrome или Microsoft Edge. Начните бесплатно, без аккаунта.