R から JDBC 経由でDynamics 365 Business Centralののデータを分析

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
CData JDBC Driver for Dynamics 365 Business Central を使って、お好みの開発環境と標準的な R 関数でDynamics 365 Business Central のデータを分析できます。

R と Java がインストールされている環境であれば、純粋な R スクリプトと標準的な SQL を使用してDynamics 365 Business Central のデータにアクセスできます。CData JDBC Driver for Dynamics 365 Business Central と RJDBC パッケージを使えば、R からリモートのDynamics 365 Business Central のデータを操作できます。CData Driver を使用することで、業界で実績のある標準規格に準拠したドライバーを活用し、人気のオープンソース言語 R でデータにアクセスできます。この記事では、ドライバーを使ってDynamics 365 Business Centralに SQL クエリを実行し、標準的な R 関数を呼び出してDynamics 365 Business Central のデータを可視化する方法を説明します。

R のインストール

マルチスレッドとマネージドコードによるドライバーのパフォーマンス向上を最大限に活かすには、マルチスレッド対応の Microsoft R Open を使用するか、BLAS/LAPACK ライブラリとリンクされたオープンソース R を使用します。この記事では Microsoft R Open 3.2.3 を使用しています。このバージョンは、2016年1月1日時点の CRAN リポジトリのスナップショットからパッケージをインストールするように事前設定されており、再現性が確保されています。

RJDBC パッケージの読み込み

ドライバーを使用するには、RJDBC パッケージをダウンロードしてください。 RJDBC パッケージをインストールしたら、以下のコードでパッケージを読み込みます。

library(RJDBC)

Dynamics 365 Business Centralに JDBC データソースとして接続

Dynamics 365 Business Centralに JDBC データソースとして接続するには、以下の情報が必要です。

  • Driver Class: cdata.jdbc.d365businesscentral.D365BusinessCentralDriver に設定します。
  • Classpath: ドライバー JAR ファイルの場所を設定します。デフォルトでは、インストールフォルダの lib サブフォルダです。

dbConnect や dbSendQuery などの DBI 関数は、R でデータアクセスコードを記述するための統一されたインターフェースを提供します。以下のコードで、CData JDBC Driver for Dynamics 365 Business Central に JDBC リクエストを行う DBI ドライバーを初期化します。

driver <- JDBC(driverClass = "cdata.jdbc.d365businesscentral.D365BusinessCentralDriver", classPath = "MyInstallationDir\lib\cdata.jdbc.d365businesscentral.jar", identifier.quote = "'")

これで DBI 関数を使用してDynamics 365 Business Centralに接続し、SQL クエリを実行できます。dbConnect 関数で JDBC 接続を初期化します。

Dynamics 365 Business Central 接続プロパティの取得・設定方法

Dynamics 365 Business Central への認証には、User およびAccessKey プロパティが必要です。

データに接続するには、OrganizationUrl を指定します。OrganizationUrl は、 http://businesscentral.dynamics.com/abc123/ などのBusiness Central アカウントへのエンドポインであるか、Web サービスのルートを参照する必要があります。OrganizationUrl を指定する方法 および利用可能なエンドポイントについての詳細は、Business Central エンドポイント を参照してください。組織内に複数の会社がある場合は、どの会社に接続するかを特定するためにCompany を指定する必要があります。 会社が1つだけの場合は、Company を指定する必要はありません。

Dynamics 365 Business Central に認証するには、User およびAccessKey 接続プロパティを指定します。Microsoft では、これらをテストおよび開発目的で推奨します。ただし、運用環境での使用は推奨していません。User およびAccessKey の値を取得するには、Dynamics 365 Business Central の「ユーザー」ページに移動して「編集」をクリックします。User Name および Web Service Access Key の値は、User およびPassword 接続文字列プロパティとして入力する値です。User Name はE メールアドレス ではありません。短縮されたユーザー名です。

Microsoft では、OAuth 認証を使用する本番ユースケースを推奨します。詳細については、ヘルプドキュメントの「OAuth 認証の使用」を参照してください。

組み込みの接続文字列デザイナー

JDBC URL の構築には、Dynamics 365 Business Central JDBC Driver に組み込まれている接続文字列デザイナーが便利です。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行してください。

java -jar cdata.jdbc.d365businesscentral.jar

接続プロパティを入力し、接続文字列をクリップボードにコピーします。

以下は、一般的な JDBC 接続文字列を含む dbConnect 呼び出しの例です。

conn <- dbConnect(driver,"jdbc:d365businesscentral:OrganizationUrl=https://myaccount.financials.dynamics.com/;")

スキーマの検出

このドライバーは、Dynamics 365 Business Central API をリレーショナルテーブル、ビュー、ストアドプロシージャとしてモデル化します。以下のコードでテーブルの一覧を取得できます。

dbListTables(conn)

SQL クエリの実行

dbGetQuery 関数を使用して、Dynamics 365 Business Central API でサポートされている任意の SQL クエリを実行できます。

accounts <- dbGetQuery(conn,"SELECT accountid, Name FROM Accounts")

以下のコマンドで、結果をデータビューアウィンドウに表示できます。

View(accounts)

Dynamics 365 Business Central のデータのプロット

これで、CRAN リポジトリで利用可能なデータ可視化パッケージを使ってDynamics 365 Business Central のデータを分析できます。組み込みのバープロット関数でシンプルな棒グラフを作成できます。

par(las=2,ps=10,mar=c(5,15,4,2))
barplot(accounts$Name, main="Dynamics 365 Business Central Accounts", names.arg = accounts$accountid, horiz=TRUE)

はじめる準備はできましたか?

Dynamics 365 Business Central Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

Dynamics 365 Business Central (NAV) Icon Dynamics 365 Business Central JDBC Driver お問い合わせ

Items、Sales Orders、Purchase Orders などのDynamics 365 Business Central アカウントデータを組み込んだパワフルなJava アプリケーションを短時間・低コストで作成して配布できます。