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

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
Microsoft R Open で Dynamics 365 Business Central のデータ のデータビジュアライゼーションを作成し、高性能な統計関数で分析。

純粋な R スクリプトと標準 SQL で Dynamics 365 Business Central のデータ にアクセスできます。CData ODBC ドライバ for Dynamics 365 Business Central と RODBC パッケージを使用すると、R からリモート Dynamics 365 Business Central のデータ を操作できます。CData ドライバを使用することで、業界で実績のある標準に準拠したドライバを活用し、人気のオープンソース言語 R でデータにアクセスできます。この記事では、ドライバを使用して Dynamics 365 Business Central のデータ に SQL クエリを実行し、R で Dynamics 365 Business Central のデータ を可視化する方法を説明します。

R をインストール

マルチスレッドや管理コードによるドライバのパフォーマンス向上は、マルチスレッド対応の Microsoft R Open や、BLAS/LAPACK ライブラリにリンクした R を実行することで補完できます。この記事では Microsoft R Open(MRO)を使用します。

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

Dynamics 365 Business Central への接続情報と、Windows および Linux 環境での DSN 設定手順を説明します。

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 認証の使用」を参照してください。

DSN を設定する際に、Max Rows 接続プロパティも設定することをお勧めします。これにより返される行数が制限され、レポートやビジュアライゼーションの設計時のパフォーマンス向上に役立ちます。

Windows

まだ設定していない場合は、ODBC DSN(データソース名)で接続プロパティを指定します。これはドライバーインストールの最後のステップです。Microsoft ODBC データソースアドミニストレーターを使用して、ODBC DSN を作成・設定できます。

Linux

Linux 環境で CData ODBC Driver for Dynamics 365 Business Central をインストールする場合、ドライバーのインストール時にシステム DSN が事前定義されます。システムデータソースファイル(/etc/odbc.ini)を編集して、必要な接続プロパティを定義することで DSN を変更できます。

/etc/odbc.ini

[CData D365BusinessCentral Source]
Driver = CData ODBC Driver for Dynamics 365 Business Central
Description = My Description
OrganizationUrl = https://myaccount.financials.dynamics.com/

これらの設定ファイルの使用方法の詳細については、ヘルプドキュメント(インストール済みまたはオンライン)を参照してください。

RODBC パッケージを読み込む

ドライバを使用するには、RODBC パッケージをダウンロードします。RStudio で、[ツール] -> [パッケージのインストール]をクリックし、[パッケージ]ボックスに RODBC と入力します。

RODBC パッケージをインストールした後、以下の行でパッケージを読み込みます。

library(RODBC)

注意:この記事では RODBC バージョン 1.3-12 を使用しています。Microsoft R Open を使用すると、Microsoft の MRAN リポジトリのチェックポイント機能を使用して同じバージョンでテストできます。 checkpoint コマンドを使用すると、MRAN リポジトリでホストされている CRAN リポジトリのスナップショットからパッケージをインストールできます。2016年1月1日のスナップショットにはバージョン 1.3-12 が含まれています。

library(checkpoint)
checkpoint("2016-01-01")

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

以下の行で R から DSN に接続できます。

conn <- odbcConnect("CData D365BusinessCentral Source")

スキーマの検出

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

sqlTables(conn)

SQL クエリを実行

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

accounts <- sqlQuery(conn, "SELECT accountid, Name FROM Accounts", believeNRows=FALSE, rows_at_time=1)

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

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 ODBC Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

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

Dynamics 365 Business Central ODBC Driver は、ODBC 接続をサポートするさまざまなアプリケーションからDynamics 365 Business Central データへの接続を実現するパワフルなツールです。

標準のODBC ドライバーインターフェースを使用して、データベースのようにDynamics 365 Business Central にアクセスし、Items、Sales Orders、Purchase Orders などの読み、書き、更新を実行できます。