本記事では CData サポート担当からこんなことを聞かれたらどこを確認すべきか?という観点で、よく頂くお問合せ内容をご紹介します。
記事はこちら →CData JDBC Driver for D365BusinessCentral は、Java Web アプリケーションに簡単に統合して利用することができます。本記事では、Jetty でドライバーをコネクションプールとして設定することで、効率的にDynamics 365 Business Central データをアプリケーションで連携利用する方法を説明します。Jetty でJNDI resource for D365BusinessCentral を設定します。
次の手順で、Jetty とDynamics 365 Business Central の接続を確立します。
Jetty ベースでJNDI モジュールを有効化します。JNDI を有効化するコマンドラインは以下の通り:
java -jar ../start.jar --add-to-startd=jndi
<Configure id='d365businesscentraldemo' class="org.eclipse.jetty.webapp.WebAppContext">
<New id="d365businesscentraldemo" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg><Ref refid="d365businesscentraldemo"/></Arg>
<Arg>jdbc/d365businesscentraldb</Arg>
<Arg>
<New class="cdata.jdbc.d365businesscentral.D365BusinessCentralDriver">
<Set name="url">jdbc:d365businesscentral:</Set>
<Set name="OrganizationUrl">https://myaccount.financials.dynamics.com/</Set>
</New>
</Arg>
</New>
</Configure>
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 認証の使用」を参照してください。
Web xml でリソースを設定します:
jdbc/d365businesscentraldb
javax.sql.DataSource
Container
これで、java:comp/env/jdbc/d365businesscentraldb へのルックアップでDynamics 365 Business Central データにアクセスできます:
InitialContext ctx = new InitialContext();
DataSource myd365businesscentral = (DataSource)ctx.lookup("java:comp/env/jdbc/d365businesscentraldb");
ここでは、シンプルなコネクションプーリングシナリオでのドライバーの接続について説明しました。追加での連携ケースについては、Jetty ドキュメントのWorking with Jetty JNDI 参照してください。