SAP peut-il fonctionner avec Python?

Python peut-il être utilisé pour interroger une base de données SAP?

23
demandé sur Tshepang 2009-09-23 19:55:23

6 réponses

Le module Python SAP RFC semble inactif- dernier commit (insignifiant) il y a 2 ans-mais peut vous servir:

Pysaprfc est un wrapper autour de SAP librfc (librfc32.dll sous Windows, librfccm.so ou librfc.so sous Linux). Il utilise l'excellent paquet d'extension ctypes de Thomas Heller pour accéder à librfc et pour définir des types de données compatibles SAP.

Les versions modernes de SAPWeb Service way - vous pouvez construire un SAP Web Service et le consommer à partir de Python.

Avec SAP NetWeaver, les développeurs peuvent connecter des applications et des sources de données pour intégrer des processus à l'aide de services Web.

En particulier, les développeurs peuvent utiliser une infrastructure pour définir, mettre en œuvre et utiliser des services Web selon les normes de l'industrie. SAP NetWeaver prend en charge les modèles de services web synchrones, asynchrones, avec état et sans état, ce qui permet aux développeurs de prendre en charge différents scénarios d'intégration.

sapnwrfc prend en charge cette fonctionnalité SAP NetWeaver, remplace l'ancien SDK RFC, et est activement maintenue.

20
répondu gimel 2009-09-23 16:32:32

Le connecteur Python RFC est maintenant disponible en tant que SAP open source

11
répondu bsrdjan 2017-03-01 23:30:32

Si vous parlez de (ce qui était appelé) La base de données SAP AKA SapDb , et est maintenant MaxDB (pendant un certain temps distribué également par MySql Inc, Maintenant Encore une fois par SAP seulement-et ainsi nommé SAP MaxDB), Il est livré avec plusieurs modules d'accès Python, documentés ici.

C'est la seule signification que je peux attacher à "SAP comme moteur de base de données" - que vous voulez accéder à SAP MaxDB. D'autres réponses font des hypothèses différentes et (je crois) sont également correct... sous ces différentes hypothèses.

5
répondu Alex Martelli 2009-09-23 20:45:05

Sap N'est pas un serveur de base de données. Mais avec le module Python SAP RFC, vous pouvez interroger la plupart des tables assez facilement. Il utilise une fonction non prise en charge sap (que tout le monde utilise). Et cette fonction a une certaine limitation sur la taille du champ et les types de données.

4
répondu Igal Serban 2009-09-23 18:49:28

SAP a maintenant un connecteur Python RFC appelé pyrfc. Ceci remplace sapnwrfc.

Cela peut être trouvé à: https://github.com/SAP/PyRFC

" le paquet python pyrfc fournit des liaisons Python pour la bibliothèque RFC SAP NetWeaver, pour un moyen confortable d'appeler des modules ABAP à partir de Python et des modules Python à partir D'ABAP, via le protocole SAP remote Function Call (RFC)."

4
répondu hansonap 2015-07-08 18:19:44

Comme indiqué ci-dessus, lorsque vous voulez simplement lire des tables ou faire des appels RFC ou BAPI, vous pouvez utiliser CPython avec le module SAP RFC Python non maintenu ou Piers Harding SAP RFC. Les appels RFC pour simplement lire une table sont RFC_GET_TABLE_ENTRIES ou RFC_READ_TABLE, où le premier est préféré, mais pas non plus libéré aux clients.

Pour une manière plus officielle, vous pouvez utiliser le connecteur JCO de SAP avec Jython ou le connecteur. net de SAP avec Ironpython; les deux connecteurs peuvent être téléchargés à partir de SAP Service marketplace et les deux permettent d'appeler la fonctionnalité RFC, y compris les deux appels énumérés ci-dessus.

Comme indiqué ci-dessus, la manière proposée par SAP d'accéder à la fonctionnalité backend est via la vaste infrastructure SOA de SAP. Ici, vous pouvez utiliser Jython avec par exemple la bibliothèque Axis ou Ironpython avec Microsofts WCF. Notez que les services fournis par SAP ne vous permettront évidemment pas d'accéder aux tables simples, mais vous pouvez simplement appeler, ce qu'un service fournit. SAP fournit déjà environ 3.000 services (voir le wiki ES sur SDN), et la création de votre propre service est en fait simple, une fois que vous avez votre logique métier dans un module de fonction activé à distance.

2
répondu Frank Bechmann 2009-10-06 09:35:18