Dynamics AX データをR で分析

CData JDBC Driver for Dynamics AXで標準的なR 関数とお好みの開発環境を使って、 Dynamics AX を分析。



Pure R スクリプトおよび 標準SQL を使って、R およびJava をインストール可能なあらゆるマシン上でDynamics AX にアクセス。CData JDBC Driver for Dynamics AX とRJDBC package を使って、R でリモートDynamics AX data を利用できます。CData Driver を使うことで、業界が認めた基準で書かれたドライバーを活用して、オープンソースでポピュラーなR 言語のデータにアクセスできます。この記事では、ドライバーを使ってDynamics AX にSQL クエリを実行する方法、および標準R 関数を呼び出してDynamics AX をビジュアライズする方法について説明します。

R をインストール

マルチスレッドのMicrosoft R Open を実行すること、またはBLAS/LAPACK ライブラリにリンクされたオープン R を実行することによって、マルチスレッドおよびマネージドコードから利益を得られたドライバーのパフォーマンスにマッチできます。ここでは、Microsoft R Open 3.2.3 を使用します。CRAN レポジトリのJan. 1, 2016 snapshot からパッケージをインストールするために事前設定されています。このsnapshot は再現性を保証します。

RJDBC パッケージをロード

ドライバーを使うにはRJDBC パッケージをダウンロードします。RJDBC パッケージをインストールしたら、次のコードを入力してパッケージをロードします。

library(RJDBC)

JDBC データソースとしてDynamics AX に接続

下記の情報を使いDynamics AX にJDBC データソースとして接続します。

  • Driver Class:cdata.jdbc.dynamicsax.DynamicsAXDriver に設定。
  • Classpath:Driver JAR の場所を設定します。デフォルトではインストールディレクトリの[lib]サブフォルダです。

dbConnect やdbSendQuery のようなDBI 関数は、R にデータアクセスコードを書くための統一インターフェースを提供します。

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

これで、DBI 関数を使ってDynamics AX に接続しSQL クエリを実行する準備が整いました。dbConnect 関数を使ってJDBC 接続を初期化します。一般的なJDBC 接続文字列は次のとおりです。

conn <- dbConnect(driver,"User=MyUser;Domain=MyDomain;objectserver=MicrosoftDynamicsAX@WIN-1IP52JPQVJS:2712;")

To connect to DynamicsAX, specify User, Domain, and ObjectServer. You can also surface tables for a specific Company; when this property is blank, the default company is used.

Alternatively, you can use the .NET Business Connector to connect on behalf of DynamicsAX users. You can obtain the ProxyUser and ProxyDomain properties on the System service accounts form: Click System Administration -> Setup -> System -> System Service Accounts. Additionally, set ProxyPassword.

By default, only transaction data and base information from the TRANSACTION and MAIN table groups is returned. You can specify which groups to return with TableGroups.

Set Language to use the same language you use in your DynamicsAX labels.

スキーマ Discovery

ドライバーはDynamics AX API をリレーショナルデータベース、ビュー、ストアドプロシージャとしてモデルします。次のコードを使ってテーブルリストを検出します。

dbListTables(conn)

SQL クエリの実行

dbGetQuery 関数を使ってDynamics AX API がサポートするすべてのSQL クエリを実行できます:

custinvoicetrans <- dbGetQuery(conn,"SELECT Name, Qty FROM CustInvoiceTrans")

次のコマンドを使って、結果を[data viewer]ウィンドウで見ることができます。

View(custinvoicetrans)

Dynamics AX Data をプロット

CRAN レポジトリで利用可能なあらゆるデータ初期化パッケージを使ってDynamics AX を分析する準備が整いました。ビルトインバーのplot 関数を使って簡単なバーを作成できます。

par(las=2,ps=10,mar=c(5,15,4,2)) barplot(custinvoicetrans$Qty, main="Dynamics AX CustInvoiceTrans", names.arg = custinvoicetrans$Name, horiz=TRUE)
 
 
ダウンロード