SAP Crystal Reports で HCL Domino ののデータをレポートに出力
Crystal Reports にはリモートデータへのデータ処理をオフロードするためのさまざまなオプションが用意されており、リアルタイムレポートを実現できます。Crystal Reports がJDBC に対応しているため、CData JDBC Driver for HCL Domino によってこの機能をCrystal Reports で利用できるようになります。この記事では、レポート実行時にデータを更新するHCL Domino のデータレポートを作成する方法を紹介します。
以下の表は、この記事で使用するツールとバージョンです。
| アプリケーション名 | バージョン |
|---|---|
| SAP Crystal Reports 2020 | SP3 |
| JDBC Driver | 23.0.8565 |
JDBC Driver のデプロイ
Crystal Reports のクラスパスにドライバーJAR を含めて、CData JDBC Driver for HCL Domino をインストールします。DataDriverCommonElement の下にあるClassPath 要素のパスに、.jar を含むフルファイルパスを追加します。
CRConfig.xml ファイルのデフォルトの場所はC:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\java ですが、インストールによって多少異なる場合があります。ドライバーJAR はインストールディレクトリのlib サブフォルダにあります。
ClassPath にJAR を追加したら、Crystal Reports を再起動します。
HCL Domino のデータに接続
HCL DominoのJDBC Driver をデプロイしたら、レポートウィザードを使用して新しいレポートにHCL Domino のデータを追加できます。
- File -> New -> Standard Report をクリックします。
- Create New Connection の下にあるJDBC (JNDI) を展開し、Make a New Connection をダブルクリックします。
- CData JDBC Driver for HCL Domino を使用して接続文字列を作成します。
- URL:Domino データベースをホスティングしているサーバーのホスト名またはIP アドレス。Domino データベースをホスティングしているサーバーのポートを含めます。例:http://sampleserver:1234/
- DatabaseScope:Domino Web UI でのスコープ名。CData 製品は、指定されたスコープに適合するスキーマのフォームとビューを公開します。Domino Admin UI で、サイドバーのScopes メニューを選択してください。このプロパティを既存のスコープ名に設定します
- AuthScheme:OAuthPassword
- User:認証するDomino ユーザーのユーザー名
- Password:認証するDomino ユーザーに関連付けられたパスワード
- AuthScheme:AzureAD
- InitiateOAuth:これをGETANDREFRESH に設定します。InitiateOAuth を使用すると、OAuth 交換の繰り返しやOAuthAccessToken の手動設定を避けることができます
- OAuthClientId:カスタムAzure AD アプリケーションの作成時に取得したクライアントID
- OAuthClientSecret:カスタムAzure AD アプリケーションの作成時に取得したクライアントシークレット
- CallbackURL:カスタムAzure AD アプリケーションの登録時に指定されたリダイレクトURI。例えば、https://localhost:33333
- AzureTenant:データにアクセスするために使用されるMicrosoft Online テナント。companyname.microsoft.com 形式の値またはテナントID のいずれかを指定してください
ウィザードでJDBC 接続URL を入力します。
jdbc:domino:URL=http://dominoserver:3002/;DatabaseScope=names;TableTypes=Tables;AuthScheme=OAuthPassword;User=MyUser;Password=MyPassword;
ドライバークラス名を設定します。
cdata.jdbc.domino.DominoDriver
- レポートに必要なテーブルを選択します。
- SAP Crystal Reports でHCL Domino のデータのテーブルをリンクすることもできます。テーブル間のリンクを追加したら、NEXT をクリックします。
- テーブルを選択したら、選択したテーブルからレポートに表示するフィールドを選び、NEXT をクリックします。
- レポート上の情報をグループ化するために「Group By」フィールドを選択します。
- 集計合計に基づいてグループを並べ替え、NEXT をクリックします。
JDBC URL の構成については、HCL Domino JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインからjar ファイルを実行します。
java -jar cdata.jdbc.domino.jar
Domino への接続
それでは、Domino のデータに接続していきましょう。接続するには、以下のプロパティを設定してください。
Domino での認証
続いて、認証方法を設定しましょう。Domino では、ログインクレデンシャル(OAuthPassword)またはMicrosoft Entra ID(AzureAD)のいずれかによる認証をサポートしています。
ログインクレデンシャル
ログインクレデンシャルで認証するには、以下のプロパティを設定してください:
ドライバーがログインクレデンシャルを使用して、自動的にOAuth トークン交換を実行します。
Microsoft Entra ID(Azure AD)
この認証方法は、Azure Active Directory をIdP として使用してJWT トークンを取得します。Azure Active Directory にカスタムのアプリケーションを作成し、それをIdP として設定する必要があります。詳しい手順については、ヘルプドキュメントの指示に従ってください。その後、以下のプロパティを設定します。
テナントID は、Azure ポータルのAzure Active Directory > プロパティページに表示されているディレクトリID と同じです。
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
JDBC URL を設定する際に、Max Rows 接続プロパティを設定することもできます。これにより返される行数が制限され、レポートやビジュアライゼーションをデザインする際のパフォーマンス向上に役立ちます。
その後、グループ化、並べ替え、集計を設定できます。集計とサマリーを使用してチャートを作成するには、次のセクションを参照してください。
チャートの作成
グループ化するカラムを選択した後、標準レポート作成ウィザードでチャートを作成するオプションが表示されます。以下の手順に従って、Name カラムの値を集計するチャートを作成します。
- 標準レポート作成ウィザードで、Bar Chart オプションを選択し、「On change of」メニューでグループ化したカラムを選択します。
- Show Summary メニューで、作成した集計を選択します。
- 必要に応じてフィルターとテンプレートを選択し、ウィザードを完了します。
レポートのテンプレートを選択すると、完成したレポートをプレビューし、データが入力されたチャートを表示できます。
完成したレポート
レポートに最初に指定したすべてのフィールドが含まれていることを確認できます。
リモートデータの操作
データの更新を確認するには、File をクリックし、「Save Data with Report」オプションをオフにします。レポートを操作すると(例えば、詳細にドリルダウンすると)、Crystal Reports はレポートの表示に必要なデータを取得するためにSQL クエリを実行します。すでに取得したデータを再読み込みするには、レポートを更新または再実行します。
詳細要素を非表示にし、サーバー側グループ化を有効にすることで、ドライバーに処理をオフロードできます。これを行うには、レポート作成ウィザードでグループ化するカラムを選択する必要があります。
- File -> Report Options をクリックし、「Perform Grouping On Server」オプションを選択します。
- Report -> Section Expert をクリックし、レポートのDetails セクションを選択します。「Hide (Drill-Down OK)」オプションを選択します。
詳細を非表示にしてレポートをプレビューすると、Crystal Reports はGROUP BY クエリを実行します。チャートのカラムをダブルクリックして詳細にドリルダウンすると、Crystal Reports は必要なデータのみを取得するSELECT WHERE クエリを実行し、読み込み時間を短縮します。
これで、SAP Crystal Reports とCData JDBC Driver を使用して、HCL Domino のデータに基づくSAP Crystal レポートが作成できました。CData JDBC Driver for HCL Domino の詳細と無料トライアルのダウンロードについては、HCL Domino JDBC Driver ページをご覧ください。ご不明な点がございましたら、サポートチームまでお問い合わせください。