ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →30日間の無償トライアル
無償トライアルはこちら製品の詳細
SugarCRM ODBC ドライバーは、ODBC 接続をサポートする任意のアプリケーションからリアルタイムなSugarCRM アカウントデータに直接接続できるパワフルなツールです。標準のODBC ドライバーインタフェースを使用して、データベースのようにCRM データにアクセスし、潜在顧客、連絡先、営業案件、アカウントなどの読み、書き、更新を実行できます。
CData
こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。
CData ODBC Driver for SugarCRM をLAMP またはWAMP スタックにドロップし、Sugar CRM に接続されたWeb アプリケーションを構築します。本記事では、PHP のビルトインODBC 機能でSugar CRM データに接続し、クエリを実行して、結果を出力する手順を説明します。
CData ODBC Drivers は、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。
CData ODBC Driver では、1.データソースとしてSugar CRM の接続を設定、2.PHP 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。
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 SugarCRM
...
$ odbcinst -q -s
CData SugarCRM Source
...
CData ODBC Driver for SugarCRM をunixODBC で使用するには、ドライバーがUTF-16 を使用するように設定されていることを確認します。そのために、インストール場所(通常はcdata.odbc.sugarcrm.ini)のlib フォルダにある、ドライバー(cdata.odbc.sugarcrm.ini)のINI ファイルを以下のように編集します。
...
[Driver]
DriverManagerEncoding = UTF-16
ドライバーのインストールにより、システムDSN が事前定義されます。DSN を変更するには、システムデータソースファイル(/etc/odbc.ini)を編集し、必要な接続プロパティを定義します。さらに、$HOME/.odbc.ini での変更にルートアクセスを必要としない、ユーザー固有のDSN を作成することができます。
CData 製品をSugarCRM に認証するには、以下を有効なSugarCRM ユーザー資格情報に設定する必要があります。User:SugarCRM アカウントのユーザー。Password:SugarCRM アカウントのパスワード。
OAuth consumer key とconsumer secret は、Admin -> OAuth Keys で生成することができます。OAuthClientId にOAuth consumer key を、OAuthClientSecret にconsumer secret を設定します。
さらに、SugarCRM への接続を確立するには以下を指定します。URL:'http://{sugar crm instance}.com' の形式で、SugarCRM アカウントに紐付いているURL に設定。Platform:認証中にログインの競合が発生した場合は、SugarCRM UI で作成したプラットフォームのいずれかに設定。
SugarCRM メタデータの取得は高負荷になる可能性があることに注意してください。メタデータのキャッシュ で説明しているように、メタデータをローカルに格納することをお勧めします。
[CData SugarCRM Source]
Driver = CData ODBC Driver for SugarCRM
Description = My Description
User = MyUser
Password = MyPassword
URL = MySugarCRMAccountURL
CacheMetadata = True
これらの構成ファイルの使用方法については、オンラインのヘルプドキュメントを参照してください。
odbc_connect またはodbc_pconnect を呼び出して、Sugar CRM への接続を開きます。 接続を閉じるには、odbc_close もしくはodbc_close_all を使います。
$conn = odbc_connect("CData ODBC SugarCRM Source","user","password");
接続はodbc_connect で開かれ、スクリプトが終わると終了します。odbc_pconnect メソッドで開いた接続は、スクリプトが終わっても開いたままです。これにより同じクレデンシャルであれば他のスクリプトで接続を共有することが可能です。スクリプト間で接続を共有することにより、システムリソースを節約し、クエリの実行を高速化できます。
$conn = odbc_pconnect("CData ODBC SugarCRM Source","user","password");
...
odbc_close($conn); //persistent connection must be closed explicitly
odbc_prepare を使って、プリペアドステートメントおよびパラメータライズドクエリを作成します。
$query = odbc_prepare($conn, "SELECT * FROM Accounts WHERE Name = ?");
Prepared ステートメントをodbc_execute を使って実行します。
$conn = odbc_connect("CData ODBC SugarCRM Source","user","password");
$query = odbc_prepare($conn, "SELECT * FROM Accounts WHERE Name = ?");
$success = odbc_execute($query, array('Bob'));
Non-Parameterized クエリは、odbc_exec を使います。
$conn = odbc_connect("CData ODBC SugarCRM Source","user","password");
$query = odbc_exec($conn, "SELECT Name, AnnualRevenue FROM Accounts");
odbc_fetch_array 関数の結果セット配列としてアクセスします。
$conn = odbc_connect("CData ODBC Sugar CRM データ Source","user","password");
$query = odbc_exec($conn, "SELECT Name, AnnualRevenue FROM Accounts");
while($row = odbc_fetch_array($query)){
echo $row["Name"] . "\n";
}
odbc_result_all 関数で、結果セットをHTML テーブルとして表示します。
$conn = odbc_connect("CData ODBC Sugar CRM データ Source","user","password");
$query = odbc_prepare($conn, "SELECT * FROM Accounts WHERE Name = ?");
$success = odbc_execute($query, array('Bob'));
if($success)
odbc_result_all($query);
ドライバーがサポートしているSQL の詳細は、ヘルプドキュメントを参照してください。上のサンプルは、PHP community documentation for all ODBC functions をSugar CRM 向けに変更したものです。
このようにCData ODBC Drivers と併用することで、270を超えるSaaS、NoSQL データをコーディングなしで扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。
CData ODBC Driver は日本のユーザー向けに、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。