ColdFusion にリアルタイムSalesforce Data Cloud のデータをインポートしてアプリケーションを構築

CData JDBC ドライバを使ってColdFusion にSalesforce Data Cloud のデータをインポートして使用します。

古川えりか
コンテンツスペシャリスト

最終更新日:2023-02-02

この記事で実現できるSalesforce Data Cloud 連携のシナリオ

こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。

Adobe ColdFusion は、Web アプリケーションおよびモバイルアプリケーション開発プラットフォームです。独自のスクリプト言語であるColdFusion Markup Language(CFML)を使用し、データドリブンなWeb サイトを作成したり、REST などのリモートサービスを生成したりすることができます。

ColdFusion とCData JDBC Driver for SalesforceDataCloud を組み合わせると、ColdFusion のWeb アプリケーションやモバイルアプリケーションを、運用中のSalesforce Data Cloud のデータにリンクできます。 これにより、アプリケーションの堅牢性と完成度を高めることができます。この記事では、JDBC ドライバーを使ってColdFusion マークアップファイルからSalesforce Data Cloud のデータを入力したテーブルを作成する方法について詳しく説明します。

最適化されたデータ処理が組み込まれたCData JDBC ドライバは、リアルタイムSalesforce Data Cloud のデータを扱う上で高いパフォーマンスを提供します。 Salesforce Data Cloud にSQL クエリを発行すると、CData ドライバーはフィルタや集計などのSalesforce Data Cloud 側でサポートしているSQL 操作をSalesforce Data Cloud に直接渡し、サポートされていない操作(主にSQL 関数とJOIN 操作)は組み込みSQL エンジンを利用してクライアント側で処理します。 組み込みの動的メタデータクエリを使用すると、ネイティブのデータ型を使ってSalesforce Data Cloud のデータを操作および分析できます。

Salesforce Data Cloud への接続を設定する

Coldfusion とSalesforce Data Cloud の接続を確立するには、JDBC 接続文字列が必要です。

Salesforce Data Cloud は、OAuth 標準による認証をサポートしています。

OAuth

AuthSchemeOAuth に設定します。

デスクトップアプリケーション

CData は、デスクトップでの認証を簡略化する埋め込みOAuth アプリケーションを提供します。

また、Salesforce Data Cloud コンソールで設定および登録するカスタムOAuth アプリケーションを介してデスクトップから認証することもできます。詳しくは、ヘルプドキュメントカスタムOAuth アプリの作成を参照してください。

接続する前に、次のプロパティを設定します。

  • InitiateOAuthGETANDREFRESHInitiateOAuth を使えば、繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
  • OAuthClientId (カスタムアプリケーションのみ):カスタムOAuth アプリケーションの登録時に割り当てられたクライアントID。
  • OAuthClientSecret (カスタムアプリケーションのみ):カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。

接続すると、本製品 はデフォルトブラウザでSalesforce Data Cloud のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。

以下のようにドライバーがOAuth プロセスを完了します。

  • コールバックURL からアクセストークンを取得します。
  • 古いトークンの期限が切れたときは、新しいアクセストークンを取得します。
  • OAuthSettingsLocation にOAuth 値を保存し、接続間で永続化します。
  • Web アプリケーションやヘッドレスマシンを含むその他のOAuth メソッドについては、ヘルプドキュメントを参照してください。

    組み込みの接続文字列デザイナー

    JDBC URL の作成の補助として、Salesforce Data Cloud JDBC Driver に組み込まれている接続文字列デザイナーが使用できます。JAR ファイルをダブルクリックするか、コマンドラインからjar ファイルを実行します。

    java -jar cdata.jdbc.salesforcedatacloud.jar 組み込みの接続文字列デザイナーを使ってJDBC URL を生成(salesforce data cloud の場合)

    データソースを追加してテーブルを作成する

    接続を設定したのち、次の手順に従ってはじめにCData JDBC ドライバをColdFusion のlib ディレクトリに追加し、続けて新しいデータソースを追加、接続をテスト、ColdFusion マークアップファイルを作成し、最後にSalesforce Data Cloud のデータとリアルタイム接続してColdFusion Markup Language(CFML)で記述されるテーブルに表示します。

    1. JDBC Driver for SalesforceDataCloud およびlic ファイルを"C:\Program Files\CData\CData JDBC Driver for SalesforceDataCloud\lib" から"C:\ColdFusion2021\cfusion\wwwroot\WEB-INF\lib"にコピーします。 cdata.jdbc.salesforcedatacloud.jar cdata.jdbc.salesforcedatacloud.lic

      Note:.lic ファイルをjar ファイルとともにコピーしないと、有効なライセンスがインストールされていないことを示すライセンスエラーが表示されます。 これは評価版、製品版ともに同様です。

    2. ColdFusion Administrator インターフェースで「データとサービス」を選択します。 データとサービスを選択
    3. 「新規のデータソースの追加」を行います。データソース名は、ColdFusion の変数命名規則に従っていればどのような名前でもかまいません。 JDBC ドライバーの場合は、「その他」を選択して「追加」ボタンをクリックします。 データソース名を追加
    4. 次に、ドライバーのプロパティを入力します。
      • 「JDBC URL」は、次のような形式である必要があります: jdbc:salesforcedatacloud:|connectionString|
      • 典型的な接続文字列は次のようになります:

        jdbc:salesforcedatacloud:InitiateOAuth=GETANDREFRESH
      • 「ドライバクラス」は次のようになります:cdata.jdbc.salesforcedatacloud.SalesforceDataCloudDriver
      • 「ドライバ名」の入力は任意で、これは単にColdFusion Administrator コンソールでデータソースを認識するために使われます。
      ドライバーのプロパティを入力
    5. ここで、作成したCDataSalesforce Data CloudJDBC データソースの左側にあるチェックマークをクリックして、接続をテストしてください。 データソースのステータスが「OK」になると、使用可能な状態です。 接続をテスト
    6. 次に、ColdFusion Markup ファイル(.cfm)を新規作成し、ColdFusion のwwwroot ディレクトリ("C:\ColdFusion2021\cfusion\wwwroot")に配置します。

      次のコードは、データソースにクエリを実行します。

                  
              <cfquery name="Salesforce Data CloudQuery" dataSource="CDataSalesforce Data CloudJDBC">
                SELECT * FROM Account
              </cfquery>
          
      CFTable を使用すると、HTML で素早くテーブルを出力できます。
                  
                <cftable
                query = "Salesforce Data CloudQuery"
                border = "1"
                colHeaders
                colSpacing = "2"
                headerLines = "2"
                HTMLTable
                maxRows = "500"
                startRow = "1">
      
                <cfcol header="<b>[Account ID]</b>" align="Left" width=2 text="[Account ID]"/>
      
                <cfcol header="<b>[Account Name]</b>" align="Left" width=15 text="[Account Name]"/>
      
                ...
      
              </cftable>
          
      HTML 部分を含むコード全体を以下に掲載します。
                  
              <html>
              <head><title>CData Software | Salesforce Data Cloud Account Table Demo </title></head>
              <body>
              <cfoutput>#ucase("Salesforce Data Cloud Account Table Demo")#</cfoutput>
              <cfquery name="Salesforce Data CloudQuery" dataSource="CDataSalesforce Data CloudJDBC">
      
                SELECT * FROM Account
      
              </cfquery>
              <cftable
                query = "Salesforce Data CloudQuery"
                border = "1"
                colHeaders
                colSpacing = "2"
                headerLines = "2"
                HTMLTable
                maxRows = "500"
                startRow = "1">
                <cfcol header="<b>[Account ID]</b>" align="Left" width=2 text="[Account ID]"/>
      
                <cfcol header="<b>[Account Name]</b>" align="Left" width=15 text="[Account Name]"/>
      
                ...
      
              </cftable>
              </body>
      
              </html>
          
    7. 最後に、デフォルトのポート8500のブラウザでコードをローカルに実行します。これでSalesforce Data Cloud のデータが入力されたテーブルが作成されました! コードを実行

    なお、CData JDBC ドライバはcfqueryparam 要素を使用したパラメータ化クエリもサポートしています。 次に例を示します。 SELECT * FROM Account WHERE name =

    今日からはじめましょう

    CData JDBC Driver for SalesforceDataCloud の 30日間無償トライアル をダウンロードして、Adobe ColdFusion でSalesforce Data Cloud と連携したアプリケーションの作成をはじめましょう!ご不明な点があれば、サポートチームにお問い合わせください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。