ColdFusion から UKG Pro WFM のデータにクエリ

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
ColdFusion の標準データアクセスコードで UKG Pro WFM のデータ に接続。



CData JDBC ドライバーを使用すると、ColdFusion の高速開発ツールを使って UKG Pro WFM のデータ にシームレスに接続できます。本記事では、ColdFusion から UKG Pro WFM のデータ に接続し、UKG Pro WFM テーブルにクエリを実行する方法を説明します。

ColdFusion で UKG Pro WFM 用JDBC データソースを作成

JDBC データソースを設定すると、cfquery タグや executeQuery などのCFScript から標準SQL を実行できるようになります。

  1. インストールディレクトリから、ドライバーのJAR ファイルと.lic ファイルをColdFusion のクラスパスにコピーします。例えば、C:\MyColdFusionDirectory\cfusion\wwwroot\WEB-INF\lib にコピーします。または、ColdFusion Administrator の[Java と JVM]ページで、[ColdFusion Class Path]ボックスにファイルへのパスを入力します。

    ドライバーのJAR ファイルとライセンスファイルは、インストールディレクトリの lib サブフォルダにあります。

    この手順の後、サーバーを再起動してください。

  2. ドライバーをデータソースとして追加します。

    ColdFusion Administrator 画面で、[データ&サービス]ノードを展開し、[データソース]をクリックします。[新しいデータソースの追加]セクションで、データソースの名前を入力し、[ドライバー]メニューから[Other]を選択します。

    ColdFusion にJDBC データソースを追加(Salesforce の例)
  3. ドライバーのプロパティを設定します。

    • JDBC URL:JDBC URL に接続プロパティを入力します。JDBC URL は jdbc:api: で始まり、その後にセミコロン区切りで name=value 形式の接続プロパティを指定します。

      まず、Profile 接続プロパティをディスク上の UKGProWFM プロファイルの場所に設定します(例:C:\profiles\UKGProWFM.apip)。次に、ProfileSettings 接続プロパティを UKGProWFM の接続文字列に設定します(以下を参照)。

      UKGProWFM API プロファイル設定

      UKG Pro Workforce Management では、OAuth 2.0 の Resource Owner Password Credentials グラント(grant_type=password)を使用して API へのアクセスを認可します。一般的な OAuth ベースのプロファイルとは異なり、ブラウザでのリダイレクトや認可コードのステップはありません。ドライバーが UKG Pro WFM のユーザー名、パスワード、クライアント ID、クライアントシークレットを使って、直接アクセストークンを取得します。

      認証するには、以下の接続プロパティを設定します。

      • AuthScheme:OAuthPassword に設定します。
      • Host:UKG Pro Workforce Management のデータセンター/テナントのホスト名に設定します(例:yourcompany.mykronos.com)。プロトコル(https://)や末尾のスラッシュは含めないでください。
      • OAuthClientId:UKG Pro Workforce Management の OAuth アプリケーションに発行されたクライアント ID に設定します。
      • OAuthClientSecret:UKG Pro Workforce Management の OAuth アプリケーションに発行されたクライアントシークレットに設定します。
      • User:UKG Pro Workforce Management のユーザー名に設定します。
      • Password:UKG Pro Workforce Management のパスワードに設定します。

      アクセストークンは https://{Host}/api/authentication/access_token から取得します。UKG Pro Workforce Management が発行するリフレッシュトークンの有効期限は7日間です。リフレッシュトークン自体の期限切れによってトークンの更新に失敗した場合、ドライバーは User/Password の認証情報で再認証し、新しいアクセストークンを取得する必要があります。

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

      JDBC URL の構築には、UKG Pro WFM JDBC ドライバーに組み込まれた接続文字列デザイナーをご利用ください。JAR ファイルをダブルクリックするか、コマンドラインから実行します。

      
      java -jar cdata.jdbc.api.jar
      

      接続プロパティを入力し、接続文字列をクリップボードにコピーします。

      組み込みの接続文字列デザイナーでJDBC URL を生成(Salesforce の例)

      一般的なJDBC URL は次のようになります。

      jdbc:api:Profile=C:\profiles\UKGProWFM.apip;AuthScheme=OAuthPassword;ProfileSettings='Host=yourcompany.mykronos.com;User=your_username;Password=your_password;';OAuthClientId=your_client_id;OAuthClientSecret=your_client_secret;
    • Driver Class:ドライバークラスを入力します。ドライバークラスは cdata.jdbc.api.APIDriver です。
    • Driver Name:ドライバーのユーザー定義名を入力します。
    • Username:認証に使用するユーザー名を入力します。
    • Password:認証に使用するパスワードを入力します。
JDBC URL で必須の接続プロパティを指定(Salesforce の例)

これで、[操作]列で CData UKG Pro WFM データソースを有効にして接続をテストできます。ステータスがOK と表示されたら、UKG Pro WFM データソースの準備完了です。

[操作]列で接続をテスト(Salesforce の例)

クエリの実行

cfquery タグで UKG Pro WFM にSQL ステートメントを送信できます。cfqueryparam タグを使用して、パラメータ化クエリを作成し、クエリ文字列によるSQL インジェクションを防止します。

注意:cfquery とcfscript を使用するには、.cfm ファイルを作成します。その.cfm ファイル内に、クエリを実行するコードを記述します(下記参照)。ファイルをWeb サーバーのルートディレクトリ(Adobe ColdFusion の場合はwwwroot など)に直接配置します。変更を反映するには、ファイル配置後にサービスを再起動してください。



<cfquery name="APIQuery" dataSource="CDataAPI">
  SELECT * FROM Employees WHERE PersonId = <cfqueryparam value="#PersonId#" cfsqltype="cf_sql_varchar">
</cfquery>
<cfdump var="#APIQuery#">

CFScript で記述すると以下のようになります。


<cfscript>
result = queryExecute(
  "SELECT * FROM Employees WHERE PersonId = ?",
  [
    { value="12345", cfsqltype="cf_sql_varchar" }
  ],
  { datasource="CDataAPI" }
);

writeDump( var= result );
</cfscript>

その後、以下のように.cfm ファイルにリクエストを送信できます。

http://MyServer:8500/query.cfm?PersonId=12345
クエリ結果をHTML テーブルで表示(Salesforce の例)

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

API Driver で UKG Pro WFM のライブデータに接続

UKG Pro WFM に接続