WCF アプリケーションで Oracle Eloqua Reporting のデータ の OData サービスを公開

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

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

OData サービスの作成

以下の手順で、OData 経由でOracle Eloqua Reporting のデータへの接続を提供する 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.OracleEloquaReporting" type="System.Data.CData.OracleEloquaReporting.OracleEloquaReportingProviderServices, System.Data.CData.OracleEloquaReporting.Entities.EF6" />
        </providers>
      </entityFramework>
      </configuration>
    2. インストールディレクトリの lib/4.0 にある System.Data.CData.OracleEloquaReporting.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 Oracle Eloqua Reporting Data Source を選択し、必要な認証情報を入力します。

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

    AuthScheme=Basic;User=user;Password=password;Company=MyCompany;

    Oracle Eloqua Reporting では、以下の認証方法に対応しています。

    • Basic 認証(ユーザーとパスワード)
    • OAuth 2.0 コードグラントフロー
    • OAuth 2.0 パスワードグラントフロー

    Basic 認証(ユーザーとパスワード)

    ユーザーとパスワードで認証するには、以下のプロパティを設定します。

    • AuthScheme: Basic を指定します。
    • Company: Oracle Eloqua Reporting アカウントに関連付けられた会社名を指定します。
    • User: ログインアカウント名を指定します。
    • Password: ログインパスワードを指定します。

    OAuth 認証(コードグラントフロー)

    OAuth コードグラントフローで認証するには、AuthScheme を OAuth に設定し、カスタム OAuth アプリケーションを作成します。カスタム OAuth アプリケーションの作成方法については、ヘルプドキュメントをご参照ください。

    続いて、以下のプロパティを設定します。

    • InitiateOAuth: GETANDREFRESH を指定します。OAuthAccessToken の自動取得と更新に使用します。
    • OAuthClientId: アプリケーション登録時に割り当てられたクライアント ID を指定します。
    • OAuthClientSecret: アプリケーション登録時に割り当てられたクライアントシークレットを指定します。
    • CallbackURL: アプリケーション登録時に定義したリダイレクト URI を指定します。

    接続すると、デフォルトブラウザで Oracle Eloqua Reporting の OAuth エンドポイントが開きます。ログインしてアプリケーションに権限を付与してください。アクセストークンの有効期限が切れると、ドライバーが自動的に更新します。

    OAuth 認証(パスワードグラントフロー)

    OAuth パスワードグラントフローでは、OAuth アプリケーションの資格情報とユーザー資格情報を組み合わせて認証できます。ブラウザでの手動による権限付与は必要ありません。この認証方法を使用するには、OAuth アプリを作成する必要があります(ヘルプドキュメントを参照)。

    以下のプロパティを設定します。

    • AuthScheme: OAuthPassword を指定します。
    • Company: 会社の一意の識別子を指定します。
    • User: ログインアカウント名を指定します。
    • Password: ログインパスワードを指定します。
    • OAuthClientId: カスタム OAuth アプリケーション登録時に割り当てられたクライアント ID を指定します。
    • OAuthClientSecret: カスタム OAuth アプリケーション登録時に割り当てられたクライアントシークレットを指定します。
  9. OData クライアントからアクセスさせたい Oracle Eloqua Reporting のテーブルとビューを選択します。
  10. Project -> Add New Item -> WCF Data Service をクリックします。
  11. データソースクラスを指定し、新しい WCF Data Service へのアクセスを構成します。以下の例では、エンティティの Access Rule が All に設定されています。これは、すべてのユーザーがデータの読み取りと変更を行えることを意味します。

      
    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 OracleEloquaReportingService{
      public class OracleEloquaReportingDataService : DataService<OracleEloquaReportingEntities> {
        public static void InitializeService(DataServiceConfiguration config) {
          config.SetEntitySetAccessRule("*", EntitySetRights.All);
          config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
        }
      }
    }
    	
  12. プロジェクトを実行します。これで、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/OracleEloquaReportingDataService.svc/)。
  4. OData サービスへの接続後、ウィンドウ下部の Next ボタンをクリックします。
  5. ウィザードの次のウィンドウに、利用可能なテーブルの一覧が表示されます。インポートするテーブルを選択し、Finish をクリックします。
  6. Close をクリックして、Power Pivot にデータをインポートします。

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

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

 ダウンロード

詳細:

Oracle Eloqua Reporting Icon Oracle Eloqua Reporting ADO.NET Provider お問い合わせ

Oracle Eloqua Reportingと連携する強力な.NETアプリケーションを迅速に作成・デプロイできます。