35

Python を使用して SAP データベースにクエリを実行できますか?

4

7 に答える 7

25

Python SAP RFCモジ​​ュールは非アクティブのようです-最後の(重要でない)コミットは2年前です-しかし、あなたに役立つかもしれません:

Pysaprfc は、SAP librfc (Windows では librfc32.dll、Linux では librfccm.so または librfc.so) のラッパーです。Thomas Heller による優れた ctypes 拡張パッケージを使用して librfc にアクセスし、SAP 互換のデータ型を定義します。

最新の SAP バージョンでは、このWeb Service方法SAP Web Service採用されていPythonます。

SAP NetWeaver を使用すると、開発者はアプリケーションとデータ ソースを接続し、Web サービスを使用してプロセスを統合できます。

特に、開発者は 1 つのインフラストラクチャを使用して、業界標準に基づいた方法で Web サービスを定義、実装、および使用できます。SAP NetWeaver は、同期、非同期、ステートフル、およびステートレスの Web サービス モデルをサポートしているため、開発者はさまざまな統合シナリオをサポートできます。

sapnwrfcはこのSAP NetWeaver機能をサポートし、古い RFC SDK に取って代わり、積極的に保守されています。

于 2009-09-23T16:24:26.370 に答える
17

Python RFC コネクタがオープン ソースとして利用可能になりました: PyRFC

于 2012-10-29T18:14:39.923 に答える
6

SAP には現在、pyrfc と呼ばれる Python RFC コネクタがあります。これは sapnwrfc に取って代わります。

これはhttps://github.com/SAP/PyRFCにあります。

「pyrfc Python パッケージは、SAP リモート ファンクション コール (RFC) プロトコルを介して、Python から ABAP モジュールと ABAP から Python モジュールを呼び出す快適な方法のために、SAP NetWeaver RFC ライブラリの Python バインディングを提供します。」

于 2015-07-08T18:19:44.947 に答える
5

(以前は名前が付けられていた) SAP Database AKA SapDbについて話している場合、現在はMaxDB (MySql Inc によってもしばらく配布されていましたが、現在は SAP のみによって配布されているため、SAP MaxDBと名付けられました) が付属しています。ここに記載されているいくつかの Python アクセス モジュール。

これが、「データベース エンジンとしての SAP」に付けられる唯一の意味です。つまり、SAP MaxDB にアクセスしたいということです。他の答えは異なる仮定をしており、(私は信じています)それらの異なる仮定の下でも正しいです。

于 2009-09-23T20:45:05.767 に答える
4

Sap はデータベース サーバーではありません。しかし、Python SAP RFC モジュールを使用すると、ほとんどのテーブルを非常に簡単にクエリできます。サポートされていない機能(世界中で使用されている)を使用しています。また、この関数には、フィールド サイズとデータ型にいくつかの制限があります。

于 2009-09-23T18:49:28.370 に答える
2

上で述べたように、テーブルを読んだり、RFC や BAPI 呼び出しをしたいだけの場合は、CPython をメンテナンスされていない Python SAP RFC モジュールまたは Piers Harding のSAP RFCで使用できます。テーブルを読み取るだけの RFC 呼び出しは RFC_GET_TABLE_ENTRIES または RFC_READ_TABLE で、前者が優先されますが、顧客にはリリースされません。

より正式な方法として、Jython で SAP の JCO コネクタを使用するか、Ironpython で SAP の .Net コネクタを使用できます。どちらのコネクタも SAP のサービス マーケットプレイスからダウンロードでき、上記の 2 つの呼び出しを含む RFC 機能を呼び出すことができます。

上記でも述べたように、バックエンド機能にアクセスするために SAP が提案する方法は、SAP の広大な SOA インフラストラクチャを経由することです。ここでは、たとえば Axis ライブラリで Jython を使用したり、Microsoft の WCF で Ironpython を使用したりできます。SAP が提供するサービスでは、明らかにプレーン テーブルへのアクセスは許可されないことに注意してください。代わりに、サービスが提供するものを呼び出すことができます。SAP はすでに約 3,000 のサービスを提供しており (SDN の ES Wiki を参照)、独自のサービスを作成することは、リモート対応の関数モジュールにビジネス ロジックを組み込むと、実際には非常に簡単です。

于 2009-10-06T09:35:18.650 に答える