Модуль в этой статье: iFlow Inspector
Соглашения об именовании в SAP CPI: набор правил, который команда может соблюдать
Соглашения об именовании шагов, каналов, свойств и адресов ProcessDirect в SAP CPI в виде общего набора правил команды — и как проверить по нему каждый iFlow.

У большинства команд SAP Cloud Integration (SAP CPI) есть соглашения об именовании. Гораздо реже им следует каждый iFlow, потому что правила живут на странице вики, а имя Content Modifier перед транспортом никто не проверяет.
В этой статье предлагается стартовое соглашение для шагов, каналов, свойств и адресов, показано, как записать его в виде правил, которые может проверять инструмент, и как команде делиться им и добиваться его соблюдения.
Почему имена важны в SAP CPI
Имя шага — то, что вы видите, когда что-то ломается. Монитор сообщает о шаге с ошибкой по имени, поиск «шага, который задаёт ID заказа» найдёт его, только если это сказано в имени, а проектный документ или передача дел читаются как подписи на схеме. «Content Modifier 3» ничего не говорит; CM_SetOrderHeaders говорит, что шаг делает.
Единообразные имена также делают два iFlow сравнимыми: ревьюер, знающий соглашение, с первого взгляда прочтёт любой iFlow команды.
Стартовое соглашение
Для большинства команд достаточно префикса по виду шага, за которым следует то, что шаг делает, в PascalCase. Это набор, который поставляется с Kitegra; это отправная точка для адаптации, а не стандарт SAP:
| Элемент | Шаблон | Пример |
|---|---|---|
| Content Modifier | CM_<Action> | CM_SetOrderHeaders |
| Скрипт Groovy или JavaScript | GS_<Action> | GS_BuildPayload |
| Router | RT_<Decision> | RT_ByOrderType |
| Request Reply | RR_<System> | RR_S4HanaOData |
| Content Enricher | CE_<Lookup> | CE_CustomerMaster |
| Process Call | PC_<Process> | PC_CallValidateOrder |
| Local Integration Process | LIP_<Purpose> | LIP_ValidateOrder |
| Exception Subprocess | ESP_<Purpose> | ESP_LogAndAlert |
| Message Mapping | MM_<Source>_to_<Target> | MM_Order_to_SalesOrder |
| Sender и Receiver | <PascalCase> | S4Hana, Salesforce |
| Exchange property | <camelCase> | orderId |
| Адрес ProcessDirect | /<Path> | /orders/validate |
Запишите соглашение в виде правил
Соглашение, которое может проверить инструмент, — это список правил, по одному на вид элемента. Литеральный текст должен совпадать точно; <Placeholder> означает любой текст; <PascalCase>, <camelCase>, <UPPER>, <lower> и <Number> означают текст такой формы. Для каждого вида действует первое правило, и у каждого правила есть важность: «Ошибка», «Предупреждение» или «Инфо».
В Kitegra правила — это набор правил в JSON. Фрагмент:
{
"rules": [
{
"id": "content-modifier",
"target": "content-modifier",
"pattern": "CM_<Action>",
"example": "CM_SetOrderHeaders",
"notes": "Content Modifier: CM_ and what it sets.",
"severity": "warning",
"enabled": true
},
{
"id": "mapping",
"target": "mapping",
"pattern": "MM_<Source>_to_<Target>",
"example": "MM_Order_to_SalesOrder",
"notes": "Message Mapping: source and target message.",
"severity": "info",
"enabled": true
},
{
"id": "property",
"target": "property",
"pattern": "<camelCase>",
"example": "orderId",
"notes": "Exchange property names in camelCase.",
"severity": "info",
"enabled": true
}
]
}Договоритесь о нём всей командой
- Откройте страницу параметров расширения и найдите «Правила именования». Изначально там набор по умолчанию.
- Измените у правила «Шаблон», «Важность» или «Примечания», отключите правило флажком «Правило вкл.» или выберите «Добавить правило» и укажите, что оно «Проверяет».
- Выберите «Экспорт JSON» и положите файл туда, где команда хранит свои стандарты, рядом с правилами транспорта.
- Каждый коллега выбирает «Импорт JSON» с этим файлом. Если он вошёл через Kitegra, набор затем доступен ему на любом компьютере.
Синхронизация держит набор одного человека одинаковым на всех его компьютерах; одинаковые правила для всей команды обеспечивает общий файл JSON.
Проверьте iFlow по правилам
Откройте iFlow, нажмите кнопку «Инструменты Kitegra» и выберите «Инспектор» (или нажмите Alt+Shift+K). Вкладка «Именование» перечисляет все имена не по правилам, а их число показано на кнопке: фактическое имя, что «Ожидается», «Пример» и, если содержимое шага это позволяет, имя, которое «Предлагается», составленное из того, что делает шаг. Щелчок по находке выделяет шаг на схеме.
В режиме редактирования «Переименовать» вводит предложенное имя в поле Name шага. Оно никогда не сохраняет: панель сообщает «Переименовано. Сохраните iFlow, чтобы оставить изменение.», и решаете вы.
Те же находки появляются в отчёте iFlow рядом с проверками дизайна, как показывает чек-лист ревью iFlow, а хорошие имена делают сгенерированный проектный документ удобным для чтения.
Чем помогает Kitegra
Именование — часть iFlow Inspector в Kitegra. Проверка читает модель iFlow в вашем браузере; ваш набор правил синхронизируется с аккаунтом Kitegra, когда вы входите, а содержимое iFlow никогда не отправляется.
Helper, Message Monitor, iFlow Inspector и iFlow Docs по отдельности считают iFlow, на которых вы их используете: 5 на модуль без аккаунта Kitegra, 50 на тарифе Free, 100 на Starter и 300 на Pro; в Business ограничений нет. Toolbox и дополнения для рабочего пространства бесплатны. Сравните тарифы.
Попробуйте в следующем iFlow
Узнайте, что Kitegra добавляет к дизайнеру SAP Integration Suite, или посмотрите его рядом с другими расширениями Kitegra для Chrome.
Частые вопросы
Есть ли у SAP официальное соглашение об именовании для CPI?
SAP публикует рекомендации, но каждая команда устанавливает свои правила. Набор из этой статьи — отправная точка для адаптации.
Что должно содержать имя шага?
Вид шага и то, что он делает, например CM_SetOrderHeaders для Content Modifier, который задаёт headers заказа.
Как поделиться правилами именования с командой?
Экспортируйте набор правил в JSON на странице параметров, храните файл со стандартами команды и попросите каждого коллегу его импортировать.
Переименовывает ли расширение шаги само?
Нет. «Переименовать» вводит предложенное имя в поле Name шага в режиме редактирования, а iFlow вы сохраняете сами.
Можно ли сделать правило ошибкой, а не предупреждением?
Да. У каждого правила есть важность: «Ошибка», «Предупреждение» или «Инфо».
Проверяются ли и имена exchange properties?
Да. Набор по умолчанию ожидает camelCase для exchange properties, и это правило можно изменить.