製品をチェック

無償トライアル:

無償トライアルへ

製品の情報と無償トライアルへ:

Dynamics 365 Business Central JDBC Driver

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

データ連携でお困りですか?

お問い合わせ

ETL/ELT のEmbulk を使ってDynamics 365 Business Central データをDB にロードする方法


OSS のETL/ELT ツールEmbulk のJDBC Plugin を使って、Dynamics 365 Business Central データを簡単にDM に同期する方法。


d365businesscentral ロゴ画像
jdbc ロゴ画像

JDBC

Embulk ロゴ画像

Embulk は、大量のデータをDB、クラウドデータストア、DWH にロードできるオープンソースETL ツールです。近頃のトレンドでは、1社で複数のオンプレアプリやSaaS を使っており、データ分析にはETL/ELT ツールを使ってデータを丸ごとDB/DWH にロードしてから、分析やビジュアライズをすることが主流になっています。Embulk には、いろいろなプラグインがあり、多様なInput とOutput 処理をサポートしています。この記事では、Embulk のJDBC Input Plugin と CData Driver for D365BusinessCentral を使って、Dynamics 365 Business Central のデータを簡単にDB にロードします。この例ではロード先のDB にはMySQL を使います。

Embulk でCData JDBC Driver for D365BusinessCentral データをロード

  • CData JDBC Driver for D365BusinessCentral をEmbulk と同じマシンにインストールします。
  • 以下のパスにJDBC Driver がインストールされます。後ほどこのパスを使います。
    C:\Program Files\CData\CData JDBC Driver for D365BusinessCentral 2019J\lib\cdata.jdbc.d365businesscentral.jar
  • 次に、EmbulkとCData JDBC Driverをつなぎこむための、JDBC Input Plugin をインストールします。
    https://github.com/embulk/embulk-input-jdbc/tree/master/embulk-input-jdbc
  • embulk gem install embulk-input-jdbc
  • 今回はロード先DB としてMySQL を使います。ほかにもSQL Server、PostgreSQL、Google BigQuery などを使うことも可能です。
    https://github.com/embulk/embulk-output-jdbc/tree/master/embulk-output-mysql embulk gem install embulk-output-mysql
  • config ファイルを作成し、Dynamics 365 Business Central -> MySQL のジョブを作成します。d365businesscentral-mysql.yml というファイル名で作成しました。
  •             
                    in:
                        type: jdbc
                        driver_path: C:\Program Files\CData\CData JDBC Driver for D365BusinessCentral 2019J\lib\cdata.jdbc.d365businesscentral.jar
                        driver_class: cdata.jdbc.d365businesscentral.D365BusinessCentralDriver
                        url: jdbc:d365businesscentral:OrganizationUrl=https://myaccount.financials.dynamics.com/;
                        table: "Accounts"
                    out: 
                        type: mysql
                        host: localhost
                        database: DatabaseName
                        user: UserId
                        password: UserPassword
                        table: "Accounts"
                        mode: insert
                
            
  • ポイントはJDBC URLです。

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

  • テーブル名は取得したいテーブル名を入れます。
  • これで準備完了です。あとは「embulk run」で実行するだけです。
  • embulk run d365businesscentral-mysql.yml
  • 実行後、MySQL Workbenchからテーブルを確認してみると、データが取得できているはずです。

クエリ条件でフィルタリングしたデータのロード

ちなみに、上記の例ではテーブル名を直接指定しましたが、以下のようにSQL Queryを書いてもいいです。 Where句で作成日や修正日を指定すれば、最新のデータだけを対象にすることも可能です。

        
            in:
            type: jdbc
            driver_path: C:\Program Files\CData\CData JDBC Driver for D365BusinessCentral 2019J\lib\cdata.jdbc.d365businesscentral.jar
            driver_class: cdata.jdbc.d365businesscentral.D365BusinessCentralDriver
            url: jdbc:d365businesscentral:OrganizationUrl=https://myaccount.financials.dynamics.com/;
                query: "SELECT accountid, Name FROM Accounts WHERE [RecordId] = 1"
            out: 
                type: mysql
                host: localhost
                database: DatabaseName
                user: UserId
                password: UserPassword
                table: "Accounts"
                mode: insert
        
    

CData JDBC Driver for D365BusinessCentral をEmbulk で使うことで、Dynamics 365 Business Central コネクタとして機能し、簡単にデータを取得して同期することができました。ぜひ、30日の無償評価版をお試しください。