ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →CData
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
Hibernate を使用することで、オブジェクト指向のドメインモデルを従来のリレーショナルデータベースにマッピングすることができます。以下のチュートリアルでは、CData JDBC Driver for D365BusinessCentral を使用し、Hibernate でDynamics 365 Business Central リポジトリのORM を生成する方法を説明します。
この記事を通してEclipse がIDE として選択されていますが、CData JDBC Driver for D365BusinessCentral はJava Runtime Environment をサポートするすべての 製品で機能します。Knowledge Base には、IntelliJ IDEA やNetBeans からDynamics 365 Business Central に接続するためのチュートリアルがあります。
以下のステップに従って、Eclipse にHibernate プラグインをインストールします。
以下のステップに従って、新しいプロジェクトにドライバーJARs を追加します。
以下のステップに従って、Dynamics 365 Business Central に接続プロパティを構成します。
以下の値をインプットします。
Connection URL:jdbc:d365businesscentral: で始まり、セミコロンで区切られた接続プロパティのリストが続く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 認証の使用」を参照してください。
JDBC URL の構成については、Dynamics 365 Business Central JDBC Driver に組み込まれている接続文字列デザイナを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.d365businesscentral.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
以下は一般的なJDBC URL です。
jdbc:d365businesscentral:OrganizationUrl=https://myaccount.financials.dynamics.com/;
以下のステップに従って、前の手順で作成した構成を選択します。
以下のステップに従って、reveng.xml 構成ファイルを生成します。アクセスするテーブルをオブジェクトとして指定します。
以下のステップに従って、plain old Java objects (POJO) をDynamics 365 Business Central テーブルに生成します。
POJO は、前のステップのリバースエンジニアリング設定に基づいて作成されます。
生成したマッピングごとにhibernate.cfg.xml にマッピングタグを作成し、Hibernate がマッピングリソースを指定するようにする必要があります。hibernate.cfg.xml を開き、次のようにマッピングタグを挿入します。
cdata.d365businesscentral.D365BusinessCentralDriver
jdbc:d365businesscentral:OrganizationUrl=https://myaccount.financials.dynamics.com/;
org.hibernate.dialect.SQLServerDialect
前の手順で作成したエンティティを使用して、Dynamics 365 Business Central の検索と変更を行うことができます。
import java.util.*;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.Query;
public class App {
public static void main(final String[] args) {
Session session = new
Configuration().configure().buildSessionFactory().openSession();
String SELECT = "FROM Accounts A WHERE Name = :Name";
Query q = session.createQuery(SELECT, Accounts.class);
q.setParameter("Name","MyAccount");
List<Accounts> resultList = (List<Accounts>) q.list();
for(Accounts s: resultList){
System.out.println(s.getaccountid());
System.out.println(s.getName());
}
}
}