製品をチェック

SAP Ariba Source ODBC Driver の30日間無償トライアルをダウンロード

 30日間の無償トライアルへ

製品の詳細

SAP Ariba Source アイコン SAP Ariba Source ODBC Driver 相談したい

SAP Ariba Source ODBC ドライバーは、ODBC 接続をサポートする任意のアプリケーションからリアルタイムなSAP Ariba Source アカウントデータに直接接続できるパワフルなツールです。標準のODBC ドライバーインタフェースを使用して、データベースのようにSAP Ariba Source データにアクセスし、読み、書き、更新を実行できます。

Linux/Unix 上でPHP からSAP Ariba Source のデータに接続・連携

CData ODBC ドライバを使って、Linux/Unix マシン上でSAP Ariba Source データに連携可能なPHP アプリケーションを作成。PHP でのODBC ネイティブサポートを活用します。

古川えりか
コンテンツスペシャリスト

最終更新日:2023-09-22
saparibasource ロゴ

CData

odbc ロゴ画像

PHP(Linux)

こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。

CData ODBC Driver for SAPAribaSource をLAMP またはWAMP スタックにドロップし、SAP Ariba Source に接続されたWeb アプリケーションを構築します。本記事では、PHP のビルトインODBC 機能でSAP Ariba Source データに接続し、クエリを実行して、結果を出力する手順を説明します。

CData ODBC ドライバとは?

CData ODBC ドライバは、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。

  1. SAP Ariba Source をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレミスデータソースに対応
  2. 多様なアプリケーション、ツールにSAP Ariba Source データを連携
  3. ノーコードでの手軽な接続設定
  4. 標準 SQL での柔軟なデータ読み込み・書き込み

CData ODBC ドライバでは、1.データソースとしてSAP Ariba Source の接続を設定、2.PHP 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。

UNIX/Linux マシンでCData ODBC Drivers を使用する

CData ODBC Drivers は、Ubuntu、Debian、RHEL、CentOS、Fedora など、Red Hat およびDebian ベースのさまざまなシステムでサポートされています。また、いくつかライブラリやパッケージが要求されることがありますが、それらの多くはシステムにデフォルトでインストールされています。サポートされているLinux オペレーティングシステムのバージョンと必要なライブラリの詳細については、インストール済みのもの、またはWeb 上にあるヘルプドキュメントの「はじめに」の章を参照してください。

ドライバーマネージャーをインストールする

ドライバーをインストールする前に、システムにドライバーマネージャーがあることを確認してください。この記事では、広くサポートされている無料のオープンソース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 SAPAribaSource ...

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

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

CData ODBC Driver for SAPAribaSource をunixODBC で使用するには、ドライバーがUTF-16 を使用するように設定されていることを確認します。そのために、インストール場所(通常はcdata.odbc.saparibasource.ini)のlib フォルダにある、ドライバー(cdata.odbc.saparibasource.ini)のINI ファイルを以下のように編集します。

cdata.odbc.saparibasource.ini

... [Driver] DriverManagerEncoding = UTF-16

DSN を変更する

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

SAP Ariba Source に接続するには、以下を設定します。

  • API:本製品にSAP Ariba データを取得させたいAPI を指定。ビジネスロールに基づき、Supplier、Sourcing Project Management、またはContract API を選択します(可能な値は、SupplierDataAPIWithPaginationV4、SourcingProjectManagementAPIV2、または ContractAPIV1 です)。
  • DataCenter:アカウントのデータがホストされているデータセンター。
  • Realm:アクセスしたいサイト名。
  • Environment:テスト環境、または本番環境のいずれかに指定。(可能な値は、TEST またはPRODUCTION)。

Supplier Data API またはContract API に接続する場合は、さらに以下を設定します。

  • User:API 呼び出しを行うユーザーのId。
  • PasswordAdapter:認証するUser に関連付けられたパスワード。

Supplier API に接続している場合は、ProjectId をデータを取得したいソーシングプロジェクトのId に設定します。

OAuth 認証

接続プロパティを設定した後、認証のためにOAuth 接続を設定する必要があります。

  • AuthScheme をOAuthClient に設定します。
  • サービスにアプリケーションを登録し、APIKeyOAuthClientId、およびOAuthClientSecret を取得する必要があります。

    OAuth アプリケーションの作成について、詳しくはヘルプドキュメントを参照してください。

OAuth の自動リフレッシュ

以下を設定して、接続してください。

  • APIKey:アプリケーション設定のApplication key。
  • OAuthClientId:アプリケーション設定のOAuth Client Id。
  • OAuthClientSecret:アプリケーション設定のOAuth Secret。

接続すると、本製品は自動でOAuth プロセスを完了します。

  1. 本製品はSAP Ariba からアクセストークンを取得し、それを使ってデータをリクエストします。
  2. 本製品はアクセストークンの期限が切れると自動的にリフレッシュします。
  3. OAuth 値はOAuthSettingsLocation で指定された場所に基づいてメモリに保存されます。

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

[CData SAPAribaSource Source] Driver = CData ODBC Driver for SAPAribaSource Description = My Description API = SupplierDataAPIWithPagination-V4 APIKey = wWVLn7WTAXrIRMAzZ6VnuEj7Ekot5jnU Environment = SANDBOX Realm = testRealm AuthScheme = OAuthClient

これらの構成ファイルの使用方法については、オンラインのヘルプドキュメントを参照してください。

接続を確立する

odbc_connect またはodbc_pconnect を呼び出して、SAP Ariba Source への接続を開きます。 接続を閉じるには、odbc_close もしくはodbc_close_all を使います。

$conn = odbc_connect("CData ODBC SAPAribaSource Source","user","password");

接続はodbc_connect で開かれ、スクリプトが終わると終了します。odbc_pconnect メソッドで開いた接続は、スクリプトが終わっても開いたままです。これにより同じクレデンシャルであれば他のスクリプトで接続を共有することが可能です。スクリプト間で接続を共有することにより、システムリソースを節約し、クエリの実行を高速化できます。

$conn = odbc_pconnect("CData ODBC SAPAribaSource Source","user","password"); ... odbc_close($conn); //persistent connection must be closed explicitly

プリペアドステートメントを作成する

odbc_prepare を使って、プリペアドステートメントおよびパラメータライズドクエリを作成します。

$query = odbc_prepare($conn, "SELECT * FROM Vendors WHERE Region = ?");

クエリを実行する

Prepared ステートメントをodbc_execute を使って実行します。

$conn = odbc_connect("CData ODBC SAPAribaSource Source","user","password"); $query = odbc_prepare($conn, "SELECT * FROM Vendors WHERE Region = ?"); $success = odbc_execute($query, array('USA'));

Non-Parameterized クエリは、odbc_exec を使います。

$conn = odbc_connect("CData ODBC SAPAribaSource Source","user","password"); $query = odbc_exec($conn, "SELECT SMVendorID, Category FROM Vendors WHERE Region = 'USA'");

結果の処理

odbc_fetch_array 関数の結果セット配列としてアクセスします。

$conn = odbc_connect("CData ODBC SAP Ariba Source データ Source","user","password"); $query = odbc_exec($conn, "SELECT SMVendorID, Category FROM Vendors WHERE Region = 'USA'"); while($row = odbc_fetch_array($query)){ echo $row["SMVendorID"] . "\n"; }

odbc_result_all 関数で、結果セットをHTML テーブルとして表示します。

$conn = odbc_connect("CData ODBC SAP Ariba Source データ Source","user","password"); $query = odbc_prepare($conn, "SELECT * FROM Vendors WHERE Region = ?"); $success = odbc_execute($query, array('USA')); if($success) odbc_result_all($query);

他のサンプルクエリ

ドライバーがサポートしているSQL の詳細は、ヘルプドキュメントを参照してください。上のサンプルは、PHP community documentation for all ODBC functions をSAP Ariba Source 向けに変更したものです。

SAP Ariba Source からPHP へのデータ連携には、ぜひCData ODBC ドライバをご利用ください

このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをコーディングなしで扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。

CData ODBC ドライバは日本のユーザー向けに、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。