CData OData Provider で Dynamics NAV に接続



この記事では、Dynamics NAV OData サービスのセットアップ方法と、CData ADO.NET Provider for OData を使用してこれらのサービスに接続する方法を紹介します。この記事では ADO.NET プロバイダーを使用していますが、ODBC や JDBC など他のテクノロジーからも接続できます。

一部の Dynamics NAV インスタンスでは、無料の Community Edition では利用できないセキュア認証が必要になる場合があります。

Dynamics NAV Web サービスのセットアップ

以下の手順に従って、Dynamics NAV 管理ツールで OData サービスを有効にします。

  1. 管理ツールで OData Services ノードを展開し、Enable OData Services チェックボックスがオンになっていることを確認します。

  2. Dynamics NAV で「Web Services」を検索します。OData サービスを通じて現在公開されているすべてのページの一覧が表示されます。
  3. New ボタンをクリックして新しいサービスを追加します。
  4. 取得するデータの Object Type を選択します。
  5. 取得するデータの Object Id を選択します。

たとえば、顧客の一覧を取得するには、Object Id が 22 のページを公開するように設定します。 Service Name は、CData プロバイダーで Dynamics NAV からデータを取得する際にテーブル名として表示されます。これで、OData 経由で Dynamics NAV に接続できるようになります。

Dynamics NAV への接続

Dynamics NAV に接続するには、以下のプロパティが必要です。これらの情報は Dynamics NAV 管理ツールで確認できます。

  • URL:URL は以下の形式になります:
    http://<Server>:<WebServicePort>/<ServerInstance>/OData
  • User:Dynamics NAV にユーザーを認証するためのユーザー名。
  • Password:Dynamics NAV にユーザーを認証するためのパスワード。
  • AuthScheme:認証スキームは NAV インスタンスの構成によって異なりますが、Windows 認証を使用している場合は NTLM または NEGOTIATE 認証を使用する必要があります。

これらの接続プロパティを設定すると、Server Explorer から Dynamics NAV に接続できます。前のセクションでセットアップしたサービスにアクセスできます。

Server Explorer からの接続方法については、ヘルプドキュメントの「はじめに」の章を参照してください。使用可能な接続プロパティの詳細については、「接続文字列オプション」の章を参照してください。

別の会社への接続

テーブルに直接クエリを発行すると、Dynamics NAV は現在アクティブな会社のデータのみを表示します。DirectURL 擬似カラムを使用すると、現在アクティブでない会社からデータを取得できます。

DirectURL 擬似カラムに OData サービスの完全な URL を設定します。DirectURL は URL 接続プロパティに設定された値を上書きします。DirectURL に Company パラメータを含めてください。例:

SELECT * FROM Customers WHERE DirectURL='http://<Server>:<WebServicePort>/<ServerInstance>/OData/Company(''CData'')/Customers'

あとは、対象の Web サービスへのパスを指定するだけです。URL 内のアポストロフィは SQL エンコードする必要があります:会社名を2つのシングルアポストロフィで囲んでください。また、Company パラメータの値は URL エンコードする必要があります。