JD Edwards のデータをDevExpress Data Grid にデータバインドする。

加藤龍彦
加藤龍彦
デジタルマーケティング
CData ADO.NET Provider for JD Edwards をDevExpress のWindows Forms およびWeb コントロールと組み合わせて使い、チャートに JD Edwards のデータ を取り込みます。



CData ADO.NET Provider for JD Edwards は、サードパーティ製コントロールと組み合わせて使える標準的なADO.NET データアクセスコンポーネントを備えています。通常のADO.NET データバインドの手順に沿って進めるだけで、UI コントロールからリアルタイムデータの取得・表示を実現できます。この記事では、CData のコンポーネントを使って DevExpress UI コントロール(Windows Forms およびWeb コントロール) にデータバインドする方法を紹介します。今回は、リアルタイムのデータを可視化するチャートにデータバインドしていきます。

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

Windows Forms コントロール

下のコードでは、JD Edwards でDevExpress のチャートに追加する方法を説明します。JDEdwardsDataAdapter はチャートコントロールのSeries プロパティにバインドします。コントロールのDiagram プロパティはx 軸とy 軸をカラム名として定義します。


using (JDEdwardsConnection connection = new JDEdwardsConnection(
"URL=https://your-jde-environment-app.example.com;User=admin;Password=myPassword;")) {
  JDEdwardsDataAdapter dataAdapter = new JDEdwardsDataAdapter(
  "SELECT DocumentNumber, Amount FROM AccountsPayable.AccountLedger WHERE BusinessUnit = '100'", connection);

  DataTable table = new DataTable();
  dataAdapter.Fill(table);
  DevExpress.XtraCharts.Series series = new DevExpress.XtraCharts.Series();
  chartControl1.Series.Add(series);
  DataTable table = new DataTable();
  series.ValueDataMembers.AddRange(new string[] { "Amount" });
  series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Qualitative;
  series.ArgumentDataMember = "DocumentNumber";
  series.ValueScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
  chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
  ((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true;
}
The complete code example and the resulting chart.

Web コントロール

下のコードではJD Edwards でDevExpress Web を操作するための設定方法を説明します。JDEdwardsDataAdapter はチャートのSeries プロパティにバインドします。Diagram プロパティはx 軸とy 軸をカラム名として定義します。


using DevExpress.XtraCharts;

using (JDEdwardsConnection connection = new JDEdwardsConnection(
"URL=https://your-jde-environment-app.example.com;User=admin;Password=myPassword;"))
{
  JDEdwardsDataAdapter JDEdwardsDataAdapter1 = new JDEdwardsDataAdapter("SELECT DocumentNumber, Amount FROM AccountsPayable.AccountLedger WHERE BusinessUnit = '100'", connection);
  DataTable table = new DataTable();
  JDEdwardsDataAdapter1.Fill(table);
  DevExpress.XtraCharts.Series series = new Series("Series1", ViewType.Bar);
  WebChartControl1.Series.Add(series);
  DataTable table = new DataTable();
  series.ValueDataMembers.AddRange(new string[] { "Amount" });
  series.ArgumentScaleType = ScaleType.Qualitative;
  series.ArgumentDataMember = "DocumentNumber";
  series.ValueScaleType = ScaleType.Numerical;
  ((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true;
}
An ASP.NET application created with the ADO.NET Provider and the DevExpress Web Forms control.(Salesforce is shown.)

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

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

 ダウンロード

詳細:

JD Edwards Icon JD Edwards ADO.NET Provider

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