WCF でJD Edwards の OData サービスを公開する方法

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
この記事では、WCF サービスアプリケーションを開発してJD Edwards のデータの OData フィードを生成する方法を解説します。



CData ADO.NET Provider for JD Edwards を使用すると、Windows Communication Foundation(WCF)フレームワークを活用してサービス指向アプリケーションを素早く開発し、JD Edwards のデータを OData コンシューマーに提供できます。この記事では、接続用の Entity Data Model を作成し、WCF Data Service を構成して OData サービスを公開する方法を解説します。公開したフィードは、Power Pivot や CData ADO.NET Provider for OData を使用するアプリケーションなど、さまざまな OData クライアントから利用できます。

OData サービスの作成

以下の手順で、OData 経由でJD Edwards のデータへの接続を提供する WCF サービスアプリケーションを作成します。

  1. Visual Studio を開き、新しいプロジェクトを作成します。WCF Service Application テンプレートを選択します。
  2. 自動生成された IService.cs と Service1.svc を削除します。
  3. Entity Framework 6 をインストールします:

    Visual Studio のパッケージマネージャーコンソールを使用して、最新バージョンの Entity Framework をインストールします。以下のコマンドを実行すると、Entity Framework が自動的にダウンロード・インストールされます。

    Install-Package EntityFramework
  4. Entity Framework プロバイダーを登録します:
    1. App.config または Web.config ファイルの "providers" セクションに、以下のプロバイダーエントリを追加します。Entity Framework のインストールが成功していれば、このセクションはすでに存在しているはずです。
      
      <configuration>
      ...
      <entityFramework>
        <providers>
          ...
          <provider invariantName="System.Data.CData.JDEdwards" type="System.Data.CData.JDEdwards.JDEdwardsProviderServices, System.Data.CData.JDEdwards.Entities.EF6" />
        </providers>
      </entityFramework>
      </configuration>
    2. インストールディレクトリの lib/4.0 にある System.Data.CData.JDEdwards.Entities.dll への参照を追加します。
    3. プロジェクトをビルドして、EF6 のセットアップを完了します。
  5. Project -> Add New Item -> ADO.NET Entity Data Model をクリックします。
  6. 表示される Entity Data Model ウィザードで、'EF Designer from Database' オプションを選択します。
  7. Choose Your Connection ダイアログが表示されたら、New Connection をクリックします。
  8. Connection properties ダイアログで、CData JD Edwards Data Source を選択し、必要な認証情報を入力します。

    一般的な接続文字列は以下のとおりです:

    URL=https://your-jde-environment-app.example.com;User=admin;Password=myPassword;

    ドライバーは Application Interface Services(AIS)Server を経由して JD Edwards に接続します。以下の接続プロパティを設定します。

    • URL:AIS Server のベース HTTPS URL(例:https://jde-ais.example.com:8300)。
    • User:JD Edwards のユーザー名。
    • Password:JD Edwards のパスワード。
    • Environment(オプション):使用する JD Edwards の環境(例:本番環境なら PD920、開発環境なら DV920)。指定しない場合は、AIS Server のデフォルト環境が使用されます。
    • Role(オプション):セッションで使用する JD Edwards のロール。指定しない場合は、AIS Server のデフォルトロールが使用されます。
    • DeviceName(オプション):接続元のデバイスまたはアプリケーションの識別子。AIS Server での監査やログ記録に使用されます。
    • Jasserver(オプション):リクエストのルーティング先となる Java Application Server(JAS)インスタンス。クラスタ環境で便利です。

    公開するデータの選択

    JD Edwards ではテーブルとビジネスビューが System Code ごとに整理されており、ドライバーは各 System Code をそれぞれ個別のスキーマとして公開します。利用できるスキーマは、以下のプロパティで制御できます。

    • DataModel:System Code をスキーマとして公開する ERP モジュール(カンマ区切りで複数指定可)。接続先インスタンスのすべての System Code を公開する場合は All を指定します。デフォルトは FinancialManagement です。
    • SystemCodes:DataModel の System Code に加えて公開したい System Code のカンマ区切りリスト(例:42,43)。

    接続時、ドライバーは認証情報を AIS Server に送信してセッショントークンを取得し、キャッシュします。セッションの有効期限が切れる前に、新しいトークンが自動でリクエストされます。

    Add Connection ダイアログで指定する接続プロパティ。(Salesforce の例)
  9. OData クライアントからアクセスさせたい JD Edwards のテーブルとビューを選択します。 Entity Data Model ウィザードで利用可能なテーブル。(Salesforce の例)
  10. Project -> Add New Item -> WCF Data Service をクリックします。
  11. データソースクラスを指定し、新しい WCF Data Service へのアクセスを構成します。以下の例では、エンティティの Access Rule が All に設定されています。これは、すべてのユーザーがデータの読み取りと変更を行えることを意味します。

    able to read and modify data.
    
      
    using System;
    using System.Collections.Generic;
    using System.Data.Services;
    using System.Data.Services.Common;
    using System.Linq;
    using System.ServiceModel.Web;
    using System.Web;
    
    namespace JDEdwardsService{
      public class JDEdwardsDataService : DataService<JDEdwardsEntities> {
        public static void InitializeService(DataServiceConfiguration config) {
          config.SetEntitySetAccessRule("*", EntitySetRights.All);
          config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
        }
      }
    }
    	
  12. プロジェクトを実行します。これで、OData 対応アプリケーションから Salesforce データにアクセスし、変更を反映できるようになります。ブラウザでフィードにアクセスできます。フィードは次のように表示されます: 生の OData フィード。(Salesforce の例)

Power Pivot から OData サービスを利用する

これで、任意の OData クライアント(例:Excel Power Pivot)からサービスを利用できます。

  1. Excel を開き、Power Pivot Window ボタンをクリックします。
  2. 新しいポップアップが表示されます。From Data Feeds オプションを選択します。
  3. 表示される Table Import Wizard で、OData URL を入力します(例:http://localhost:12449/JDEdwardsDataService.svc/)。 JD Edwards の OData URL。
  4. OData サービスへの接続後、ウィンドウ下部の Next ボタンをクリックします。
  5. ウィザードの次のウィンドウに、利用可能なテーブルの一覧が表示されます。インポートするテーブルを選択し、Finish をクリックします。 Table Import Wizard で利用可能なテーブル。(Salesforce の例)
  6. Close をクリックして、Power Pivot にデータをインポートします。 Power Pivot にロードされたテーブル。(Salesforce の例)

はじめる準備はできましたか?

JD Edwards Data Provider の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

JD Edwards Icon JD Edwards ADO.NET Provider

JD Edwards 連携のパワフルな.NET アプリケーションを素早く作成して配布。