Являются ли API-интерфейсы SAP BAPI проприетарными или просто оболочкой для чего-то еще?

Меня только что бросили посреди проекта, связанного с SAP. В частности, мне нужно использовать API-интерфейсы SAP BAPI, чтобы извлечь кучу информации из системы SAP клиента.

Учитывая, что SAP является закрытой платформой, у меня возникли проблемы с поиском общего обзора того, кто/что/где/когда/как в SAP и BAPI. Я понимаю, что вы можете провести всю жизнь, работая с этой ERP-системой, и все равно не понять всего этого. Мне просто нужен общий обзор, чтобы я мог разумно поговорить с людьми из SAP клиента.

Конкретно мои вопросы:

  1. Является ли BAPI просто оболочкой для SOAP и/или XML-RPC или это полностью проприетарный формат связи?

  2. Как можно использовать эти API из PHP?

  3. Я видел аббревиатуру ABAP. Что это значит, и где это вписывается в вещи?


person Alan Storm    schedule 08.10.2009    source источник


Ответы (4)


BAPI расшифровывается как Bбизнес-Aприложение Pпрограммирование интерфейс.

Целью SAP при внедрении BAPI было предоставить ...

  • четко определенный
  • стабильный
  • независимый от реализации
  • хорошо документированы

бизнес-API, обеспечивающие стандартизированный доступ к решениям SAP на семантическом уровне.

Тем не менее, BAPI являются проприетарными интерфейсами SAP.

Интерфейсы BAPI обеспечивают унифицированный доступ к функциям уровня приложения, независимо от типа вызова: с помощью этих интерфейсов можно инициировать как синхронную, так и асинхронную обработку.

Синхронная обработка BAPI приведет к выполнению RFC (удаленный вызов функции, собственный протокол SAP RPC).

Асинхронная обработка прозрачно использует ALE (Application Link Enabling, собственный формат EDI SAP).

Такие продукты, как SAP-адаптер webMethods (также известный как SAP Business Connector), обеспечивают двунаправленный доступ на уровне обслуживания к BAPI, а также к протоколам RFC и ALE более низкого уровня из/в удаленное место назначения.

Используя эти инструменты, вам не нужно беспокоиться об ABAP, языке программирования 4GL, на котором реализована вся бизнес-логика SAP.

Существует также несколько отображений XML, определенных для BAPI (а также RFC и IDoc), которые позволяют передавать деловые документы в конверте XML. Эти наиболее заметны

  • bXML (тип содержимого: application/x-sap.busdoc)
  • RFC-XML (тип содержимого: application/x-sap.rfc)
  • IDoc-XML (тип контента: application/x-sap.idoc)

а также МЫЛО.

person Tom    schedule 07.11.2009

BAPI (Business API) — это спецификация интерфейса SAP и способ получения информации из системы. Я бы сказал, что самый простой способ взглянуть на это как на удаленный вызов процедуры в системе SAP, дающий вам доступ к данным и функциям (написанным на ABAP), которые находятся в SAP. Это дает вам некоторый API для извлечения данных из системы (например, заказа), изменения их в вашем приложении (например, добавления позиций в заказ), а затем отправки их обратно, а также вызова бизнес-функций (например, публикации этого заказа, чтобы он был более обрабатывается в системе SAP).

Существуют оболочки для вызова BAPI из ряда языков. Просто воспользуйтесь Google или выполните поиск в справочной системе SAP или в онлайн-сети разработчиков SAP по адресу sdn.sap.com.

ABAP — это язык программирования, на котором написана большая часть системы SAP. По сути, это версия COBOL 4/GL с добавлением некоторого SQL.

person Thorsten    schedule 08.10.2009
comment
Спасибо за помощь! Я до сих пор не на 100% понимаю, в чем разница между BAPI и RFC. Я понимаю, что BAPI должны быть более стабильным API, но отличается ли протокол? Являются ли BAPI просто стабильным набором RFC, или они также называются не на уровне протокола? (последнее имеет значение для меня, потому что есть расширение PHP, которое позволяет вам вызывать RFC, но мне не ясно, позволит ли оно вам также вызывать BAPI) - person Alan Storm; 09.10.2009
comment
С этой точки зрения RFC и BAPI одинаковы. BAPI — это стабильная функция, которую можно вызывать удаленно. Поэтому, если расширение PHP позволяет вам вызывать RFC, вы также должны иметь возможность вызывать BAPI. Если вы работаете над вызовом BAPI, внимательно изучите необходимые структуры данных: обычно они довольно обширны и их сложно создать вручную. Обычно должны быть другие BAPI, которые немного облегчают жизнь. В моем примере, если вы хотите опубликовать заказ, вы обычно ищете этот заказ (через BAPI) и система возвращает этот объект заказа (через другой BAPI). - person Thorsten; 09.10.2009

  1. Забудьте о бапи на секунду. SAP имеет собственный протокол связи, называемый RFC (удаленный вызов функции). SAP предоставляет dll (или общую библиотеку для * nix), которую вы можете использовать для вызова функций в SAP из c. SAP также предоставляет оболочки этой dll для java и .net. И есть обертки этой dll с открытым исходным кодом для php, python, perl и ruby. Итак, процесс. а) кто-нибудь разработает (удаленно) функцию в abap. б) вы можете использовать rfc dll с оболочкой для выбранного вами языка и вызвать эту функцию sap. в) все довольны.

    Вернемся к БАПИ. На основе технологии, описанной в предыдущем разделе. SAP решила создать набор функций, которые выполняют бизнес-задачи. И решили назвать их БАПИ. Потому что название «Функции, которые занимаются бизнесом» не круто.

  2. Вот расширение php для вызова sap. Вы также можете найти много информации о php и sap в sap. сдн.

  3. ABAP — это язык платформы SAP.

person Igal Serban    schedule 08.10.2009
comment
С точки зрения кодирования BAPI и RFC очень похожи. Но BAPI предлагают более целостный набор функций и являются официальным интерфейсом SAP для внешнего мира. Это также включает в себя некоторые гарантии стабильности и т. д. Доступно (обычно) достаточно BAPI для выполнения большинства стандартных операций в SAP, и обычно никому не нужно разрабатывать какой-либо код в SAP. - person Thorsten; 09.10.2009

BAPI - это функциональные модули с удаленным доступом, к которым прикреплены некоторые «стандарты» программирования, если кто-то хочет называть их «BAPI», например. сообщения возвращаются в определенных форматах, параметры набираются определенным образом. На самом деле они представляют собой не что иное, как функциональные модули SAP, поддерживающие удаленную связь с помощью радиокнопки.

Я не согласен с тем, что не нужно писать код SAP, потому что SAP предоставил так много BAPI, чтобы покрыть большинство стандартных вещей. Почти для каждой реализации требуется код, а поставляемый SAP материал — это только основа. Менеджеры и продавцы скажут по-разному, но это не так.

person maxx    schedule 07.06.2012