各製品の資料を入手。
詳細はこちら →こんにちは!テクニカルディレクターの桑島です。
CData JDBC Driver for DynamicsNAV は、JDBC 標準をインプリメントし、BI ツールからIDE まで幅広いアプリケーションでDynamics NAV への接続を提供します。この記事では、Akorbi Digital RunMyProcess のDSEC からDynamics NAV に接続し、iPaaS 上のRunMyProcess からDynamics NAV のデータを利用する方法を説明します。
RunMyProcess のマニュアル内の「EnterpriseConnect」 の手順に従い、EnterpriseConnect Agent を設定します。
「JDBC Adapter」にJDBC経由でRDBMSに接続する手順が記載されているので、本章の内容を参考に「JDBC.config」ファイルを開きます。
#DBAgent Configuration
DynamicsNAV = {"sqlDriver" : "cdata.jdbc.dynamicsnav.DynamicsNAVDriver", "sqlSource" = "jdbc:dynamicsnav:http://myserver:7048;User=myserver\Administrator;Password=admin;ServerInstance=DYNAMICSNAV71;","sqlDriverPath" = "cdata.jdbc.dynamicsnav.jar" }
JDBCドライバのライブラリ cdata.jdbc.dynamicsnav.jar をunified-adapter-[version].jar と同じパスに配置します。
(注意)CDataのライセンスファイルcdata.jdbc.dynamicsnav.lic も同じパスに配置してください。なお、ラインセンスはCData 製品をインストールしたマシンの固有情報から生成していますので、インストールしたマシンと配置するマシンが異なる場合は、オフラインアクティベーションが別途必要になります。
Windows 版の場合は、Windows サービス内のRunMyProcess DigitalSuite EnterpriseConnect Agent を起動します。コマンドでの起動はRunMyProcess マニュアル内の「Starting the EnterpriseConnect Agent」を参照ください。
runAdapter.bat からJDBC Adapter を起動します。Adapter が起動するとagent address(例:127.0.0.1:8080)でアクセスできるようになります。以下、Windows 環境でのコマンド実行結果の例です。
C:\Program Files (x86)\dsec-agent\jdbc>java -Djava.util.logging.config.file=./log.properties -cp lib/* org.runmyprocess.sec2.AdapterHandler :
2021-06-09 14:37:58|INFO|correlationId=|Searching for config file...
2021-06-09 14:37:58|INFO|correlationId=|Adapter Handler started with [JDBC] configuration
2021-06-09 14:37:59|INFO|correlationId=|agent address: 127.0.0.1:8080
2021-06-09 14:38:00.251:INFO::ConnectionThread: Logging initialized @1820ms to org.eclipse.jetty.util.log.StdErrLog
2021-06-09 14:38:00|INFO|correlationId=|onConnect() websocket connection between Agent and Adapter established
DigitalSuite EnterpriseConnect Agent および、JDBC Adapter が正常に起動した状態だと、ローカルマシンのブラウザから http://localhost:(指定したポート番号)/ にアクセスすると下記の画面が表示されます。
Postman やcURL といったAPI にアクセス出来るツールからJDBC Adapter に対してアクセス出来るか確認します。本手順ではPostman を利用してHTTP POST リクエストを発行します。
RequestHeader には以下の通り設定します。
Content-Type application/json
RequestBody には以下の通り設定します。
{
"protocol":"JDBC",
"data":{
"DBType":"DynamicsNAV",
"sqlUsername":"",
"sqlPassword":"",
"sqlStatement":"SELECT * FROM (テーブル名))"
}
}
「JDBC.config」ファイルにてクレデンシャル情報を含めている場合は、sqlUsername およびsqlPassword は空のままで構いません。テーブル名がわからない場合は、「SELECT * FROM sys_tables」で一覧を取得出来ます。
Response のStatus が200でBody にJSON 形式でDynamics NAV のデータが返ってきていれば成功です。
DegitalSuite Studio プロジェクトを作成して、作成したプロジェクト内にProvider を作成します。
続いてProvider 内にConnector を作成します。
ContentにはJDBC Adapter でテストしたRequest body と同じJSON データを登録します。
{
"protocol":"JDBC",
"data":{
"DBType":"DynamicsNAV",
"sqlUsername":"",
"sqlPassword":"",
"sqlStatement":"SELECT * FROM (テーブル名))"
}
}
「Launch Test」を開いて、テストを実行します。右側ペインの「Result」内にDynamics NAV 内のデータが取得出来ている事を確認出来たら成功です。
このようにDynamicsNAV 内のデータをDSEC 経由でRunMyProcess DegitalSuite Studio で利用することができるようになります。
サポートされるSQL についての詳細は、ヘルプドキュメントの「サポートされるSQL」をご覧ください。テーブルに関する情報は「データモデル」をご覧ください。