各製品の資料を入手。
詳細はこちら →HCL Domino のデータをDevExpress Data Grid にデータバインドする。
HCL Domino 用の CData ADO.NET プロバイダーをDevExpress Windows Forms とWeb コントロールとともに使用し、HCL Domino をチャートに入力します。
最終更新日:2022-01-31
この記事で実現できるHCL Domino 連携のシナリオ
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
HCL Domino 用の CData ADO.NET プロバイダーはサードパーティーコントロールで使うことのできる通常のADO.NET データベースアクセスコンポーネントを実装しています。データバインドするための通常のADO.NET プロセスに従うことで、UI コントロールから実データへの双方向アクセスを可能にします。 この記事では、CData を使ってDevExpress Windows Forms とウェブコントロールにデータバインドする方法を説明します。ここでは、最新のデータを表示するチャートにデータバインドします。
Domino への接続
Domino のデータに接続するには、以下のプロパティを設定してください。
- URL: Domino データベースをホスティングしているサーバーのホスト名、またはIP を入力します。サーバーのポート番号を含めてください。例えば、http://sampleserver:1234/。
- DatabaseScope: Domino Web UI 内のスコープ名を入力します。ドライバーは、ここで指定したスコープによって制御されるスキーマの、フォームとビューを公開します。Domino Admin UI で、サイドバーからScopes メニューを選択します。このプロパティを、既存のスコープ名に設定します。
Domino での認証
Domino は、ログインクレデンシャルまたはAzure Active Directory OAuth アプリケーションを使用した認証をサポートしています。
ログインクレデンシャル
ログインクレデンシャルで認証するには、以下のプロパティを設定してください:
- AuthScheme: これを"OAuthPassword" に設定します
- User: 認証するDomino ユーザーのユーザー名
- Password: 認証するDominoユ ーザーに関連付けられたパスワード
ドライバーはログインクレデンシャルを使用して、自動的にOAuth トークン交換を実行します。
AzureAD
この認証方法は、Azure Active Directory をIdP として使用してJWTトークンを取得します。Azure Active Directory にカスタムのアプリケーションを作成し、それをIdP として設定する必要があります。そのためには、ヘルプドキュメントの指示に従ってください。その後、以下のプロパティを設定します。
- AuthScheme: これを"AzureAD" に設定します
- InitiateOAuth: これをGETANDREFRESH に設定します。InitiateOAuth を使用すると、OAuth 交換の繰り返しやOAuthAccessToken の手動設定を避けることができます。
- OAuthClientId: カスタムOAuth アプリケーションのセットアップ時に取得したクライアントID
- OAuthClientSecret: カスタムOAuth アプリケーションのセットアップ時に取得したクライアントシークレット
- CallbackURL: アプリ登録時に定義したリダイレクトURI。例えば、https://localhost:33333
- AzureTenant: データにアクセスするために使用されるMicrosoft Online テナント。companyname.microsoft.com 形式の値またはテナントID のいずれかを指定してください。
テナントID は、Azure ポータルのAzure Active Directory > プロパティページに表示されているディレクトリID と同じです。
Windows Forms コントロール
下のコードでは、HCL Domino でDevExpress のチャートに追加する方法を説明します。DominoDataAdapter はチャートコントロールのSeries プロパティにバインドします。コントロールのDiagram プロパティはx 軸とy 軸をカラム名として定義します。
using (DominoConnection connection = new DominoConnection(
"Server=https://domino.corp.com;Database=names.nsf;Port=3002;SSLClientCertType=PEMKEY_FILE;SSLClientCert=full_path_of_certificate.pem;SSLServerCert=*")) {
DominoDataAdapter dataAdapter = new DominoDataAdapter(
"SELECT Name, Address FROM ByName WHERE City = 'Miami'", 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[] { "Address" });
series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Qualitative;
series.ArgumentDataMember = "Name";
series.ValueScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true;
}

Web コントロール
下のコードではHCL Domino でDevExpress Web を操作するための設定方法を説明します。DominoDataAdapter はチャートのSeries プロパティにバインドします。Diagram プロパティはx 軸とy 軸をカラム名として定義します。
using DevExpress.XtraCharts;
using (DominoConnection connection = new DominoConnection(
"Server=https://domino.corp.com;Database=names.nsf;Port=3002;SSLClientCertType=PEMKEY_FILE;SSLClientCert=full_path_of_certificate.pem;SSLServerCert=*"))
{
DominoDataAdapter DominoDataAdapter1 = new DominoDataAdapter("SELECT Name, Address FROM ByName WHERE City = 'Miami'", connection);
DataTable table = new DataTable();
DominoDataAdapter1.Fill(table);
DevExpress.XtraCharts.Series series = new Series("Series1", ViewType.Bar);
WebChartControl1.Series.Add(series);
DataTable table = new DataTable();
series.ValueDataMembers.AddRange(new string[] { "Address" });
series.ArgumentScaleType = ScaleType.Qualitative;
series.ArgumentDataMember = "Name";
series.ValueScaleType = ScaleType.Numerical;
((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true;
}