Модуль в этой статье: Integration Flow Helper
Externalize Parameters, копирование настроек шагов и импорт API из SAP Business Accelerator Hub в SAP CPI
Превращайте фиксированные адреса в {{parameters}} за один шаг, копируйте настройки шага в другой iFlow, сохраняйте OData-запросы как шаблоны, импортируйте API из Hub, проверяйте XPath на образце и упорядочивайте выражения маппинга.
Больше всего времени в iFlow SAP Cloud Integration (SAP CPI) часто уходит вовсе не на логику. А на то, чтобы ввести один и тот же адрес получателя в трёх tenant, вручную перенести десять строк Content Modifier из одного iFlow в другой, заново собрать OData-запрос, написанный месяц назад, или скачать спецификацию API только ради того, чтобы узнать поля набора сущностей.
Теперь в Helper Kitegra для каждой из этих задач есть инструмент прямо рядом с дизайнером SAP Integration Suite: Externalize Parameters, копирование настроек шагов с шаблонами OData-запросов, импорт из SAP Business Accelerator Hub, проверка XPath на образце payload и упорядочивание выражений Message Mapping. В этой статье — что делает каждый из них, когда он меняет ваш iFlow и что сохраняет.
Externalize Parameters за один шаг
Если адрес записан прямо в канале получателя, при каждом переносе из DEV в QA и PROD приходится редактировать сам iFlow. Ответ SAP — внешний параметр: в поле стоит {{Receiver_OData_Address}}, а значение задаётся для каждого tenant в Configure. Externalize Parameters делает этот ввод за вас.
Откройте iFlow, нажмите Edit в SAP и выберите Externalize Parameters в меню Kitegra. Панель покажет фиксированные значения, которые обычно отличаются между tenant:
- Адреса: URL, хосты, конечные точки, пути, каталоги и WSDL. Они уже отмечены, кроме адресов прокси и адресов ProcessDirect или JMS.
- Другие значения: имена очередей и Data Store, пути и запросы OData, тайм-ауты, имена и псевдонимы учётных данных, порты.
- Константы в таблицах Content Modifier и Write Variables.
Для каждого значения предлагается имя, например Receiver_OData_Address, составленное из участника и поля; его можно изменить. Значения, которые уже являются {{…}} или ${…}, так и помечены. Нажмите Вынести в параметры, и отмеченные поля станут параметрами в открытом iFlow. Ничего не сохраняется, пока вы не сохраните iFlow в SAP.
После запуска кнопка Отменить возвращает прежние значения, а Копировать текущие значения копирует каждый параметр вместе со значением, которое он заменил: после развёртывания SAP запросит каждое значение в Configure, и вы вставите их туда. Для отмены по каждому iFlow хранятся последние десять запусков. Проверки дизайна iFlow Inspector указывают на этот инструмент, когда адрес получателя записан прямо в iFlow.
Копирование настроек шага в другой шаг или iFlow
Выберите Копирование настроек шагов в меню Kitegra, выделите шаг на диаграмме (или выберите его в панели) и нажмите Копировать настройки. Копия содержит заголовки шага, свойства обмена и поля адаптера. Панель хранит десять последних копий, от новых к старым, для всех tenant и iFlow в этом браузере.
Чтобы вставить, нажмите Edit в SAP, выделите целевой шаг и нажмите Вставить в…. Перед записью панель покажет поля, которые изменятся. Для каждой таблицы выберите Оставить, Добавить строки (добавляются только недостающие скопированные строки) или Заменить строки. Копия вставляется только в шаг того же типа, но может попасть и в другой iFlow — кроме пути EDMX и полей скриптов, которые ссылаются на файлы исходного iFlow. Отмена возвращает то, что изменила последняя вставка.
Шаблоны запросов OData
В той же панели хранятся Шаблоны запросов OData. Выделите канал получателя OData с готовым запросом, нажмите Сохранить запрос как шаблон и дайте ему имя. Шаблон хранит операцию, путь ресурса и параметры запроса, такие как $select, $filter и $expand. Позже, в режиме редактирования, выделите другой получатель OData и нажмите Применить. Сохранение под существующим именем заменяет этот шаблон. О самих параметрах читайте в статье параметры запроса получателя OData.
Копии и шаблоны хранятся в хранилище расширения в этом браузере. Они не синхронизируются с вашим аккаунтом Kitegra и никуда не отправляются.
Импорт API из SAP Business Accelerator Hub
Helper подсказывает наборы сущностей и поля OData из EDMX, а пути HTTP — из файла OpenAPI. С импортом из Hub этот файл больше не нужно скачивать заранее. Во всплывающем окне расширения откройте страницу iFlow с образцом payload и спецификацией API и найдите Импорт из SAP Business Accelerator Hub.
- В первый раз нажмите Разрешить доступ: браузер один раз запросит доступ к api.sap.com. Пока вы не согласитесь, у Kitegra его нет.
- Найдите API, например
API_PRODUCT_SRV. Для поиска вход не нужен. - Нажмите Импорт. Чтобы скачать спецификацию, нужно войти на api.sap.com в этом браузере; если вы не вошли, панель сообщит об этом и откроет Hub.
После этого наборы сущностей и поля API OData подсказываются в тех получателях OData этого iFlow, у которых нет своего EDMX. Пути REST API подсказываются в полях HTTP так же, как если бы вы загрузили файл, — об этом рассказывает статья про OpenAPI и Postman. Спецификация хранится для каждого iFlow, только в этом браузере, объёмом до 8 МБ, а Удалить стирает её.
XPath проверяется на образце payload
Если для iFlow сохранён образец payload, Helper уже подсказывает по нему пути XPath. Теперь он ещё и проверяет введённый XPath. Если ни один узел образца не подходит, под полем появляется предупреждение «Ни один узел примера payload не соответствует этому XPath.» Если подходит, информационная строка показывает найденное значение.
Проверка охватывает строки XPath в заголовках и свойствах Content Modifier и в Write Variables, условия XML Router и разделители XPath. Она работает только там, где сохранённый образец действительно доходит до этого шага: XML-образец, перед которым только шаги, не меняющие тело, или JSON-образец после одного JSON to XML Converter. В Local Integration Process, Exception Subprocess и для XPath, собранных с ${…} или {{…}}, она молчит, поэтому предупреждение означает настоящее несовпадение.
Упорядочить выражение Message Mapping
Выражение Message Mapping с дюжиной функций быстро превращается в клубок пересекающихся линий. Теперь на холсте выражения рядом с собственными кнопками SAP есть кнопка Упорядочить. Она раскладывает узлы от исходных полей к целевому. В режиме редактирования Save сохраняет раскладку, а кнопка отмены рядом возвращает прежнюю; в режиме просмотра она лишь помогает читать, и раскладка пропадает, когда SAP заново рисует выражение. Ничего не сохраняется и не отправляется в SAP. У диаграммы iFlow тоже есть своя кнопка «Упорядочить» в режиме редактирования, с отменой.
Что меняется в вашем iFlow
Externalize Parameters, вставка и применение шаблона записывают в iFlow, открытый в дизайнере, только в режиме редактирования, и дизайнер показывает iFlow как изменённый. Они никогда не сохраняют и не развёртывают: вы сохраняете в SAP или нажимаете Discard, чтобы отменить изменение. Каждый из этих инструментов можно выключить отдельно на странице параметров в разделе «Инструменты», и он сразу исчезнет из дизайнера. Externalize, копирование настроек шагов и импорт из Hub входят в платные тарифы, на Free доступно несколько использований; проверка XPath и упорядочивание бесплатны. Пока Kitegra запускается, все инструменты открыты для всех, кто вошёл в аккаунт. Сравните тарифы.
Попробуйте в следующем iFlow
Узнайте, что Kitegra добавляет к дизайнеру SAP Integration Suite или что он делает после нажатия Deploy.
Частые вопросы
Как вынести адрес получателя в параметр в SAP CPI?
Нажмите Edit в SAP, откройте Externalize Parameters в меню Kitegra, оставьте адрес отмеченным, проверьте его имя и нажмите «Вынести в параметры». Сохраните iFlow, затем задайте значение для каждого tenant в Configure; «Копировать текущие значения» даёт старые значения для вставки.
Можно ли скопировать строки Content Modifier в другой iFlow?
Да. Скопируйте настройки шага, откройте другой iFlow в режиме редактирования, выделите Content Modifier и вставьте. Выберите «Добавить строки», чтобы добавить только недостающие строки, или «Заменить строки».
Нужен ли аккаунт api.sap.com для импорта из Hub?
Поиск работает и без него. Чтобы скачать спецификацию, нужно войти на api.sap.com в том же браузере.
Синхронизируются ли мои копии шагов и шаблоны?
Нет. Они остаются в хранилище расширения в этом браузере и никуда не отправляются.
Сохраняет или развёртывает ли что-то из этого мой iFlow?
Нет. Инструменты записывают в открытый iFlow в режиме редактирования; сохраняете его в SAP вы сами или отменяете изменение.