python sap abap

¿SAP puede trabajar con Python?



abap (6)

¿Se puede usar Python para consultar una base de datos SAP?


Como se indicó anteriormente, cuando solo desea leer tablas o hacer llamadas RFC o BAPI, puede usar CPython con el módulo Python SAP RFC sin mantenimiento o SAP RFC de Piers Harding. Las llamadas RFC para leer una tabla son RFC_GET_TABLE_ENTRIES o RFC_READ_TABLE, donde se prefiere la primera, pero no se entrega a los clientes.

Para una forma más oficial, puede usar el conector JCO de SAP con Jython o el .Net Connector de SAP con Ironpython; ambos conectores pueden descargarse del mercado de servicios de SAP y ambos permiten llamar a la funcionalidad RFC, incluidas las dos llamadas mencionadas anteriormente.

Como también se indicó anteriormente, la forma propuesta por SAP para acceder a la funcionalidad de back-end es a través de la amplia infraestructura SOA de SAP. Aquí puede utilizar Jython con, por ejemplo, la biblioteca Axis o Ironpython con Microsofts WCF. Tenga en cuenta que, obviamente, los servicios proporcionados por SAP no le permitirán acceder a las tablas simples, sino que solo puede llamar, lo que proporciona un servicio. SAP ya ofrece aproximadamente 3.000 servicios (consulte ES Wiki en SDN), y crear su propio servicio es realmente simple, una vez que tenga su lógica empresarial en un módulo de función habilitado de forma remota.



SAP ahora tiene un conector RFC de Python llamado pyrfc. Esto reemplaza a sapnwrfc.

Esto se puede encontrar en: https://github.com/SAP/PyRFC

"El paquete pyrfc Python proporciona enlaces Python para la Biblioteca RFC de SAP NetWeaver, para una forma cómoda de llamar a los módulos ABAP desde los módulos Python y Python desde ABAP, a través del protocolo de llamada a función remota (RFC) de SAP".


Sap no es un servidor de base de datos. Pero con el módulo RFC de Python SAP puede consultar la mayoría de las tablas con bastante facilidad. Está usando alguna función no compatible de sap (que todo el mundo está usando). Y esta función tiene alguna limitación en el tamaño del campo y los tipos de datos.


Si está hablando (lo que solía llamarse) SAP Database AKA SapDb , y ahora es SapDb (por un tiempo distribuido también por MySql Inc., now nuevamente solo por SAP, llamado SAP MaxDB ), viene con Varios módulos de acceso a Python, documentados here .

Este es el único significado que puedo adjuntar a "SAP como motor de base de datos": que desea acceder a SAP MaxDB. Otras respuestas hacen suposiciones diferentes y (creo) también son correctas ... bajo esas suposiciones diferentes.


El módulo de RFC de Python SAP parece inactivo: último compromiso (insignificante) hace 2 años, pero puede servirle:

Pysaprfc es un contenedor de SAP librfc (librfc32.dll en Windows, librfccm.so o librfc.so en Linux). Utiliza el excelente paquete de extensión ctypes de Thomas Heller para acceder a librfc y definir tipos de datos compatibles con SAP.

Las versiones modernas de SAP funcionan a la manera del Web Service : puede crear un SAP Web Service y consumirlo desde Python .

Con SAP NetWeaver, los desarrolladores pueden conectar aplicaciones y fuentes de datos para integrar procesos que utilizan servicios web.

En particular, los desarrolladores pueden usar una infraestructura para definir, implementar y usar servicios web de una manera basada en estándares de la industria. SAP NetWeaver admite modelos de servicios web síncronos, asíncronos, sin estado y sin estado, lo que permite a los desarrolladores admitir diferentes escenarios de integración.

sapnwrfc compatible con esta funcionalidad de SAP NetWeaver , supersedes al SDK RFC más antiguo y se mantiene activamente.