Linux/UNIX 上のPython からSAP Netweaver Gateway データにデータ連携

詳細情報をご希望ですか?

無償トライアル:

ダウンロードへ

製品の詳細情報へ:

SAP Netweaver Gateway ODBC Driver

SAP Netweaver Gateway ODBC Driver を使って、ODBC 接続をサポートするあらゆるアプリケーション・ツールからSAP Netweaver Gateway にデータ連携。

SAP Netweaver Gateway データにデータベースと同感覚でアクセスして、SAP Netweaver Gateway のEntities データに使い慣れたODBC インターフェースで双方向連携。



CData ODBC Driver for SAP Netweaver Gateway を使って、Linux/UNIX 上のPython アプリケーションからSAP Netweaver Gateway データへのデータ連携が可能になります。Python でpyodbc module for ODBC を活用しましょう。

豊富なPython のエコシステムでデータ連携が簡単に行えます。CData Linux/UNIX ODBC Driver for SAP Netweaver Gateway とpyodbc module を使って、簡単にSAP Netweaver Gateway に連携するPython アプリケーションが構築できます。本記事では、pyodbc のビルトイン関数を使って、SAP Netweaver Gateway に接続し、クエリを実行、表示する方法を説明します。

CData ODBC Drivers をUNIX/Linux マシンで利用

CData ODBC Drivers は、Ubuntu、Debian、RHEL、CentOS、Fedora などの様々なRed Hat ベースおよびDebian ベースのシステムでサポートされています。必要なライブラリとパッケージもいくつかあり、システムによっては、それらがデフォルトでインストールされる場合があります。Linux オペレーティングシステムのサポートされているバージョンと必要なライブラリの詳細については、ヘルプドキュメント(オンラインでインストールおよび検索)の[はじめに]セクションを参照してください。

Driver Manager のインストール

ドライバーをインストールする前に、システムにドライバーマネジャーがあることを確認してください。この記事では、広くサポートされている無料のオープンソースODBC ドライバーマネジャーであるunixODBC を使用します。

Ubuntu のようなDebian ベースのシステムの場合、APT パッケージマネジャーを使用してunixODBC をインストールできます。

$ sudo apt-get install unixODBC unixODBC-dev

Red Hat Linux に基づくシステムの場合、yum またはdnf を使用して、unixODBC をインストールできます。

$ sudo yum install unixODBC unixODBC-devel

unixODBC ドライバーマネジャーは、odbcinst.ini ファイルからドライバーに関する情報を読み取り、odbc.ini ファイルからデータソースに関する情報を読み取ります。 ターミナルに以下のコマンドを入力すると、システム上の構成ファイルの場所を特定できます。

$ odbcinst -j

コマンドの出力には、ODBC データソースと登録済みのODBC ドライバーの構成ファイルの場所が表示されます。 ユーザーデータソースには、odbc.ini が存在するホームフォルダを持つユーザーアカウントからのみアクセスできます。システムのデータソースには、すべてのユーザーがアクセスできます。 以下は、このコマンドの出力例です。

DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /home/myuser/.odbc.ini SQLULEN Size.......:8 SQLLEN Size........:8 SQLSETPOSIROW Size.:8

ドライバーのインストール

標準パッケージ形式(Debian .deb パッケージ形式または.rpm ファイル形式)でドライバーをダウンロードすることができます。フィルをダウンロードしたら、ターミナルからドライバーをインストールできます。

ドライバーインストーラーは、ドライバーをunixODBC に登録し、システムDSN を作成します。これは、後にODBC 接続をサポートするツールやアプリケーションで使用できます。

Ubuntu のようなDebian ベースのシステムの場合、sudo を付けるか、root として次のコマンドを実行します。 $ dpkg -i /path/to/package.deb

Red Hat システムおよび.rpms をサポートするその他のシステムの場合には、sudo またはroot として以下のコマンドを実行します。 $ rpm -i /path/to/package.rpm

ドライバーがインストールされると、unixODBC ドライバーマネジャーを使用して、登録されたドライバーと定義されたデータソースを一覧表示できます。

登録済みドライバーを一覧表示

$ odbcinst -q -d CData ODBC Driver for SAP Netweaver Gateway ...

定義されたデータソースを一覧表示

$ odbcinst -q -s CData SAPGateway Source ...

CData ODBC Driver for SAP Netweaver Gateway をunixODBC で使用するには、ドライバーがUTF-16 を使用するように構成されていることを確認してください。これを行うには、以下のように、インストール場所のlib フォルダ(通常は、/opt/cdata/cdata-odbc-driver-for-sapgateway) にあるドライバーのINI ファイル(cdata.odbc.sapgateway.ini) を編集します。

cdata.odbc.sapgateway.ini

... [Driver] DriverManagerEncoding = UTF-16

DSN の変更

ドライバーのインストールにより、システムDSN が事前定義されます。システムデータソースファイル(/etc/odbc.ini)を編集し、必要な接続プロパティを定義することで、DSN を変更できます。さらに、$HOME/.odbc.ini で変更するためにroot アクセスを必要としない、ユーザー固有のDSN を作成できます。

SAP Gateway はBasic 認証とOAuth 2.0 認証の両方を許可します。Basic 認証を使用して自分のアカウントに接続するか、OAuth を使用して他のユーザーが彼らのアカウントでサービスからデータを取得できるようにすることができます。基本となる認証情報に加え、SAP Gateway テーブルへのアクセスには以下の追加プロパティが必要です。

  • Url: 環境のURL、またはサービスの完全URL に設定。例えば、完全URL は次のようになります:https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/。この例では、環境URL は次のようになります:https://sapes5.sapdevcenter.com。
  • Namespace: 適切なService Namespace を設定。先ほどの例では、IWBEP が名前空間です。サービスへの完全URL が指定されている場合は任意です。
  • Service: データを取得するサービスに設定。先ほどの例では、サービスはGWSAMPLE_BASIC です。完全URL が指定されている場合は必須ではありません。

Basic 認証での認証

Basic 認証では、自分のログインクレデンシャルを使用して接続します。次のプロパティを設定します。

  • User: これはSAP Gateway へのログインに使用するユーザー名です。
  • Password: これはSAP Gateway へのログインに使用するパスワードです。

OAuth 認証での認証

ユーザー資格情報の接続プロパティを設定せずに接続できます。 接続すると、本製品はデフォルトブラウザでSAP Gateway OAuth エンドポイントを開きます。ログインして、本製品にアクセス許可を与えます。本製品が以下のOAuth プロセスを完了します。 他のOAuth 認証フローについては、ヘルプドキュメントの「OAuth 認証の使用」を参照してください。

/etc/odbc.ini または$HOME/.odbc.ini

[CData SAPGateway Source] Driver = CData ODBC Driver for SAP Netweaver Gateway Description = My Description User = user Password = password URL = https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/

これらの構成ファイルの使用に関する具体的な情報については、、ヘルプドキュメントを参照してください。

以下のステップに従ってpyodbc をインストールし、Python オブジェクトを介してSAP Netweaver Gateway へのアクセスを開始できます。

pyodbc のインストール

pip ユーティリティを使用してモジュールをインストールできます。

pip install pyodbc

必ず以下のコードでモジュールをインポートしてください。

import pyodbc

Python でのSAP Netweaver Gateway データへの接続

これで、ODBC 接続文字列またはDSN で接続できます。以下は、接続文字列の構文です。

cnxn = pyodbc.connect('DRIVER={CData ODBC Driver for SAP Netweaver Gateway};User=user;Password=password;URL=https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/;')

以下は、DSN の構文です。

cnxn = pyodbc.connect('DSN=CData SAPGateway Sys;')

SAP Netweaver Gateway へのSQL の実行

Cursor をインスタンス化し、Cursor クラスのexecute メソッドを使用してSQL ステートメントを実行します。

cursor = cnxn.cursor()

選択

fetchallfetchone、およびfetchmany を使用し、SELECT ステートメントから返されたRows を取得できます。

import pyodbc cursor = cnxn.cursor() cnxn = pyodbc.connect('DSN=CData SAPGateway Source;User=MyUser;Password=MyPassword') cursor.execute("SELECT ProductID, Quantity FROM SalesOrderLineItems WHERE Quantity = '15'") rows = cursor.fetchall() for row in rows: print(row.ProductID, row.Quantity)

パラメータ化されたクエリをシーケンスまたは因数リストで提供できます。

cursor.execute( "SELECT ProductID, Quantity FROM SalesOrderLineItems WHERE Quantity = ?", '15',1)

挿入

INSERT コマンドもexecute メソッドを使用します。ただし、挿入後に変更が失われないためにcommit メソッドを呼び出す必要があります。

cursor.execute("INSERT INTO SalesOrderLineItems (Quantity) VALUES ('15')") cnxn.commit()

更新と削除

挿入の場合と同様に、更新または削除の場合でも、execute を呼び出した後、commit を呼び出す必要があります。

cursor.execute("UPDATE SalesOrderLineItems SET Quantity = '15'") cnxn.commit()

メタデータの発見

getinfo メソッドを使用してデータソースやドライバーの機能に関する情報などのデータを取得できます。getinfo メソッドは、入力をODBC SQLGetInfo メソッドに渡します。

cnxn.getinfo(pyodbc.SQL_DATA_SOURCE_NAME)

CData ODBC Driver for SAP Netweaver Gateway を使用してSAP Netweaver Gateway に接続できるLinux/UNIX 環境で、Python アプリを構築することができるようになりました。