Как выбирать CDS, API, BAPI и расширения SAP#
CDS, API, BAPI и механизмы расширения описывают разные части решения. CDS-модель задаёт семантику данных; API публикует разрешённый интерфейс; BAPI представляет бизнес-метод SAP; расширение добавляет требуемое поведение в предусмотренной точке или рядом с системой. Совпадение технических имён и успешная активация объекта сами по себе не подтверждают пригодность для нужного потребителя.
Эта страница помогает выбрать направление и собрать проверки. Детали CDS, контрактов OData/RAP, BAPI и расширяемости разобраны в материалах по CDS-моделям, released API и OData, RFC, BAPI и IDoc и расширениям ABAP.
Начните с бизнес-операции и потребителя#
Сначала запишите, что должен сделать потребитель и где он работает: прочитать данные, выполнить бизнес-команду, расширить приложение или реализовать новый процесс. Укажите продукт, редакцию, установленный выпуск, ABAP language version, компонент и потребителя - локальную разработку, Fiori-приложение, внешнюю систему или аналитику.
| Задача | Что исследовать в первую очередь | Что не следует предполагать |
|---|---|---|
| Читать и анализировать бизнес-данные | CDS view и его семантику, ключ, уровень строки, фильтры, авторизации и сценарий извлечения | Что любой CDS является released API или подходит для удалённого доступа |
| Выполнить бизнес-команду | Опубликованный API или документированный бизнес-метод, параметры, транзакционный результат и ошибки | Что чтение таблицы или вызов внутренней функции равны бизнес-операции |
| Связать системы | API-каталог для точного продукта и версии; протокол, версия, аутентификация, лимиты и жизненный цикл | Что технически доступный endpoint разрешён для производственного клиента |
| Добавить поле, правило или действие в стандартное приложение | Поддерживаемая key-user или developer точка расширения и её контракт | Что расширяемая форма, CDS или BAdI доступны для любого приложения |
| Создать отдельный процесс или приложение | On-stack и side-by-side варианты, владение данными, удалённые API и события | Что размещение логики рядом с SAP автоматически делает её независимой от релиза |
Задача пользователя задаёт требуемый бизнес-результат, но не предопределяет технический объект. Проследите путь от шага процесса к бизнес-объекту, затем к выбранному интерфейсу, реализации и проверке результата. Для FI/CO отдельно фиксируйте документ и строки, компанию, ledger, период, валюту, статус и правила сторно, если они влияют на смысл операции.
Различайте модель данных, интерфейс и расширение#
CDS описывает модель данных и её семантику. CDS может использоваться внутри приложения, как основа аналитики или как часть опубликованного сервиса, но её наличие не означает автоматически разрешённый удалённый API, право записи или стабильность для конкретной версии. Уточните гранулярность, ключи, associations, фильтры и назначение конкретного view. Для выпуска и уровня поддержки важен контракт именно этого объекта.
API задаёт поверхность взаимодействия и допустимый способ использования: например, локальный API разработки или удалённый сервис. Проверяйте каталог API для нужного продукта и выпуска, публикацию, версию, операции, модель авторизации, лимиты, ошибки и обратную совместимость. SAP Business Accelerator Hub помогает искать опубликованные интерфейсы; запись в каталоге не доказывает, что API включён, настроен и доступен в конкретном tenant или системе.
BAPI - бизнес-метод SAP, связанный с бизнес-объектом. В классических сценариях BAPI реализуется RFC-capable function module, однако метод и функция, которая его реализует, не являются взаимозаменяемыми уровнями контракта. Уточните статус выпуска BAPI, параметры и структуры, модель commit/rollback, синхронную или асинхронную обработку и результат бизнес-документа. Наличие BAPI в ECC или On-Premise не означает его наличие или рекомендацию для Public Edition. Для конкретной интеграции сопоставьте BAPI с опубликованными API и сценарием целевой редакции.
Расширение добавляет пользовательские поля, поведение или собственное приложение в поддерживаемой точке. Это может быть key-user конфигурация, on-stack developer extension, BAdI или иной extension point, либо side-by-side приложение на SAP BTP. Точка расширения определяет, какие объекты доступны и как система защищает их стабильность. Прямое изменение стандартного кода и обращение к внутреннему объекту не становятся поддерживаемым расширением из-за того, что они технически возможны.
В RAP данные и поведение могут быть представлены CDS и behavior definition, а service definition и service binding задают состав и способ публикации сервиса. Это связанные слои: локальная модель, внешний протокол и доступ потребителя должны быть проверены каждый отдельно. Для внешней интеграции также проверьте, что выбранный контракт разрешён удалённому потребителю, а не только разработке внутри системы.
Проверяйте назначение release contract#
Состояние жизненного цикла и назначение контракта - разные характеристики. Released означает, что объект выпущен для определённого использования, но не объясняет, для какого именно. Контракт задаёт цель потребления и допустимые правила изменения; доступность зависит от типа объекта, видимости, language version, продукта и редакции.
В ABAP Cloud часто встречаются контракты C0, C1 и C2: расширение, системное использование и удалённый API соответственно. Используйте обозначение как ориентир для чтения документации, а не как универсальное разрешение: проверьте точное имя контракта, visibility и допустимость в целевом контексте. Не переносите доступность объекта из одной версии S/4HANA или пакета в другой.
Статус Deprecated указывает на переходный этап и обычно сопровождается рекомендуемым преемником. Не начинайте новую зависимость от устаревшего объекта без оценки миграции. Для каждого используемого элемента сохраните статус, контракт, область видимости, версию документации, преемника и дату повторной проверки. Уточните правила совместимости и срок поддержки именно для этого API: они различаются между ABAP-объектом, CDS, BAPI и опубликованным сетевым сервисом.
Учитывайте редакцию и место исполнения#
Для SAP S/4HANA Cloud Public Edition 2608 SAP описывает key-user, developer и side-by-side расширяемость раздельно. В их контрактах различаются аудитория и доступные типы объектов: например, BAdI и CDS views для ряда key-user сценариев; BAdI, классы, интерфейсы, CDS и behavior definitions для developer extensibility; BAPI, IDoc, OData, SOAP API и события для ряда удалённых сценариев. Это обзор модели редакции, а не гарантия доступности любого перечисленного объекта в конкретном tenant.
Для On-Premise и Private Edition проверяйте release contract и правила установленного ABAP Platform так же внимательно; более широкий набор классических механизмов не делает каждый внутренний объект публичным или upgrade-stable. Для BTP side-by-side определите удалённый контракт, владельца данных, аутентификацию, согласованность изменений, обработку таймаутов и независимый жизненный цикл приложения.
Сначала зафиксируйте редакцию, версию и language version, затем проверьте документацию и каталог в целевой системе или SAP Business Accelerator Hub. Не переносите транзакционный код, API-имя, приложение или маршрут настройки из другой редакции без отдельной проверки.
Проведите контракт от процесса до кода#
Для выбранного объекта ответьте на вопросы и сохраните результат в техническом решении:
- Процесс: какое бизнес-действие или представление данных требуется; что считается успешным финансовым результатом?
- Объект: какой CDS entity, API, BAPI, RAP service или extension point выбран; какой документированный бизнес-смысл он представляет?
- Контекст: для какого SAP-продукта, редакции, выпуска, компонента и языка разработки это подтверждено?
- Контракт: каковы статус, release contract и visibility; какие операции, поля, ключи и изменения разрешены?
- Реализация: где находится логика, кто владеет данными, как задаются авторизации, транзакционная граница, повторы и ошибки?
- Версия и жизненный цикл: как публикуются изменения, что совместимо, есть ли преемник и кто следит за deprecation?
- Проверка: какой тест подтверждает результат процесса, ограничения доступа, повтор запроса, конкурентное изменение, сумму, валюту и сверку?
Для чтения CDS проверьте набор строк, ключ, фильтры, авторизации и сверку агрегатов с согласованным источником. Для изменяющего API/BAPI проверяйте бизнес-результат после ответа, ошибки, таймаут и безопасный повтор команды. Для расширения проверяйте вызов точки на нужных вариантах процесса, отсутствие реализации, права, порядок выполнения и регрессию после обновления. Статический анализ или успешная активация подтверждают только свою ограниченную область.
Куда перейти за деталями#
- CDS view entities: семантика и слои модели данных
- Released APIs и OData: контракты финансовых сервисов
- RFC, BAPI и IDoc: контракт и результат финансовой интеграции
- Функциональные модули и BAPI
- ABAP: Enhancement Framework и варианты расширения
- Расширяемость S/4HANA по редакциям
- HTTP API и сервисные интеграции
Границы проверки#
Примеры по Public Edition относятся к выпуску 2608, а ссылка на ABAP Cloud / On-Premise относится к S/4HANA 2025 FPS01 там, где это указано. Другие материалы SAP охватывают свои версии и редакции. Список типов объектов в обзоре не подтверждает их наличие, статус, полномочия или настройки в конкретной системе. Данный проект не подключён к целевой SAP-системе: каталог API, реализации BAdI, CDS и BAPI, настройки публикации и runtime не проверялись. Источники сохранены как metadata_only; при проектировании решения сверяйте контракт с документацией и системой фактического целевого релиза.