ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →無償トライアル:
無償トライアルへ製品の情報と無償トライアルへ:
Dynamics GP アカウントデータ(ベンダー、顧客、請求書、見積もりなど)を組み込んだパワフルなJava アプリケーションを短時間・低コストで作成して配布できます。
加藤龍彦
ウェブデベロッパー
JDBC Driver
インターネット上には、多くのPostgreSQL クライアントがあります。標準のドライバーからBI、アナリティクスツールまで、PostgreSQL はデータアクセスのための一般的なインターフェースです。 JDBC ドライバーを使用することで、簡単に任意の標準クライアントから接続できるPostgreSQL エントリポイントを作成できます。
Dynamics GP にPostgreSQL データベースとしてアクセスするには、CData JDBC Driver for DynamicsGP とJDBC foreign data wrapper (FDW) を使用します。ここでは、FDW をコンパイルしてインストールし、PostgreSQL サーバーからDynamics GP にクエリを実行します。
JDBC データソースとしてDynamics GP に接続するには、以下が必要です。
Driver class:
cdata.jdbc.dynamicsgp.DynamicsGPDriver
認証するには、User およびPassword 接続プロパティを設定します。
接続するには、Url をWeb サービスのエンドポイントに設定します。例えば、http://{servername}:{port}/Dynamics/GPService です。さらに、CompanyId を設定します。この値は組織のセットアップウィンドウで「ツール」->「設定」->「組織」をクリックして取得できます。
デフォルトでデータサマリを返し、パフォーマンスを節約します。Line items などの詳細を返すには、LookupIds をtrue に設定します。ただしエンティティは一度に一つずつ返される必要があります。
JDBC URL の構成については、Dynamics GP JDBC Driver に組み込まれている接続文字列デザイナを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.dynamicsgp.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
以下は一般的なJDBC URL です。
jdbc:dynamicsgp:CompanyId=mycompanyId;user=myuser;password=mypassword;URL= http://{servername}:{port}/Dynamics/GPService;
FDW は、PostgreSQL を再コンパイルせずに、PostgreSQL の拡張機能としてインストールできます。例としてjdbc2_fdw 拡張子を使用します。
ln -s /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libjvm.so /usr/lib/libjvm.so
make install USE_PGXS=1
拡張機能をインストールした後、以下のステップに従ってDynamics GP へのクエリの実行を開始します。
CREATE EXTENSION jdbc2_fdw;
CREATE SERVER DynamicsGP
FOREIGN DATA WRAPPER jdbc2_fdw OPTIONS (
drivername 'cdata.jdbc.dynamicsgp.DynamicsGPDriver',
url 'jdbc:dynamicsgp:CompanyId=mycompanyId;user=myuser;password=mypassword;URL= http://{servername}:{port}/Dynamics/GPService;',
querytimeout '15',
jarfile '/home/MyUser/CData/CData\ JDBC\ Driver\ for\ Salesforce MyDriverEdition/lib/cdata.jdbc.dynamicsgp.jar');
CREATE USER MAPPING for postgres SERVER DynamicsGP OPTIONS (
username 'admin',
password 'test');
postgres=# CREATE FOREIGN TABLE salesinvoice (
salesinvoice_id text,
salesinvoice_CustomerName text,
salesinvoice_TotalAmount numeric)
SERVER DynamicsGP OPTIONS (
table_name 'salesinvoice');
postgres=# SELECT * FROM salesinvoice;