Может ли SAP работать с Python?
Можно ли использовать Python для запроса базы данных SAP?
6 ответов
Модуль Python SAP RFC кажется неактивным - последний (незначительный) коммит 2 года назад - но может служить вам:
Pysaprfc - это оболочка для SAP librfc (librfc32.dll в Windows, librfccm.so или librfc.so в Linux). Он использует превосходный пакет расширения ctypes от Thomas Heller для доступа к librfc и для определения типов данных, совместимых с SAP.
Современные версии SAP идут Web Service
способ - вы могли бы построить SAP Web Service
и потреблять это от Python
,
С помощью SAP NetWeaver разработчики могут подключать приложения и источники данных для интеграции процессов с использованием веб-служб.
В частности, разработчики могут использовать одну инфраструктуру для определения, реализации и использования веб-служб на основе отраслевых стандартов. SAP NetWeaver поддерживает синхронные, асинхронные модели с сохранением состояния и без сохранения состояния веб-службы, что позволяет разработчикам поддерживать различные сценарии интеграции.
sapnwrfc
поддерживает это SAP NetWeaver
функциональность, заменяет старый RFC SDK и активно поддерживается.
Python RFC-соединитель теперь доступен как SAP с открытым исходным кодом
В SAP теперь есть Python RFC-коннектор, называемый pyrfc. Это заменяет sapnwrfc.
Это можно найти по адресу: https://github.com/SAP/PyRFC
"Пакет Pyrfc Python предоставляет привязки Python для библиотеки SAP NetWeaver RFC для удобного вызова модулей ABAP из модулей Python и модулей Python из ABAP через протокол SAP Remote Function Call (RFC)".
Если вы говорите о (то, что раньше называлось) базе данных SAP AKA SapDb, и теперь она MaxDB (некоторое время распространялась также MySql Inc, теперь снова только SAP - и так называемая SAP MaxDB), она поставляется с несколько модулей доступа Python, описанные здесь.
Это единственное значение, которое я могу присоединить к "SAP как движку базы данных" - что вы хотите получить доступ к SAP MaxDB. Другие ответы делают разные предположения и (я полагаю) также правильны... при этих разных предположениях.
SAP НЕ является сервером базы данных. Но с помощью модуля Python SAP RFC вы можете легко запросить большинство таблиц. Он использует какую-то неподдерживаемую функцию sap (которую использует весь мир). И эта функция имеет некоторые ограничения на размер поля и типы данных.
Как указывалось выше, когда вы просто хотите читать таблицы или выполнять вызовы RFC или BAPI, вы можете использовать CPython с неподдерживаемым модулем Python SAP RFC или SAP RFC Piers Harding. RFC-вызовы только для чтения таблицы: RFC_GET_TABLE_ENTRIES или RFC_READ_TABLE, где первый вариант предпочтителен, но также не передается клиентам.
Для более официального использования вы можете использовать JCO-коннектор SAP с Jython или SAP-коннектор.Net с Ironpython; оба соединителя можно загрузить с рынка услуг SAP, и оба позволяют вызывать функциональность RFC, включая два вызова, перечисленные выше.
Как также указывалось выше, способ, предложенный SAP для доступа к функциональным возможностям бэкэнда, заключается в обширной инфраструктуре SOA SAP. Здесь вы можете использовать Jython, например, с библиотекой Axis или Ironpython с Microsoftsofts WCF. Обратите внимание, что услуги, предоставляемые SAP, очевидно, не позволят вам получить доступ к простым таблицам, вместо этого вы можете просто позвонить, что предоставляет служба. SAP уже предоставляет около 3.000 сервисов (см. ES Wiki на SDN), и создание собственного сервиса на самом деле очень просто, если у вас есть бизнес-логика в функционально удаленном модуле.
Python - один из наиболее часто используемых объектно-ориентированных языков программирования, который очень легко кодировать и понимать.
Чтобы использовать Python с SAP, нам необходимо установить модуль Python SAP RFC, известный как PyRFC. Один из его доступных методов - RFC_READ_TABLE, который можно вызвать для чтения данных из таблицы в базе данных SAP.
Кроме того, пакет PyRFC предоставляет различные привязки, которые можно использовать для выполнения вызовов в любом случае. Мы можем использовать его для выполнения вызовов либо из модулей ABAP в модули Python, либо наоборот. Можно определить эквивалентные типы данных SAP, которые используются при обмене данными.
Кроме того, мы можем создать веб-сервис на Python, который можно использовать для взаимодействия. SAP NetWeaver полностью совместим с веб-службами с полным или без сохранения состояния.