ColdFusion から JD Edwards のデータにクエリ

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



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

ColdFusion で JD Edwards 用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:jdedwards: で始まり、その後にセミコロン区切りで name=value 形式の接続プロパティを指定します。

      ドライバーは 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 に送信してセッショントークンを取得し、キャッシュします。セッションの有効期限が切れる前に、新しいトークンが自動でリクエストされます。

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

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

      
      java -jar cdata.jdbc.jdedwards.jar
      

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

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

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

      jdbc:jdedwards:URL=https://your-jde-environment-app.example.com;User=admin;Password=myPassword;
    • Driver Class:ドライバークラスを入力します。ドライバークラスは cdata.jdbc.jdedwards.JDEdwardsDriver です。
    • Driver Name:ドライバーのユーザー定義名を入力します。
    • Username:認証に使用するユーザー名を入力します。
    • Password:認証に使用するパスワードを入力します。
JDBC URL で必須の接続プロパティを指定(Salesforce の例)

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

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

クエリの実行

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

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



<cfquery name="JDEdwardsQuery" dataSource="CDataJDEdwards">
  SELECT * FROM AccountsPayable.AccountLedger WHERE BusinessUnit = <cfqueryparam value="#BusinessUnit#" cfsqltype="cf_sql_varchar">
</cfquery>
<cfdump var="#JDEdwardsQuery#">

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


<cfscript>
result = queryExecute(
  "SELECT * FROM AccountsPayable.AccountLedger WHERE BusinessUnit = ?",
  [
    { value="100", cfsqltype="cf_sql_varchar" }
  ],
  { datasource="CDataJDEdwards" }
);

writeDump( var= result );
</cfscript>

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

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

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

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

 ダウンロード

詳細:

JD Edwards Icon JD Edwards JDBC Driver

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