SAP Crystal Reports で SharePoint ののデータをレポートに出力
Crystal Reports にはリモートデータへのデータ処理をオフロードするためのさまざまなオプションが用意されており、リアルタイムレポートを実現できます。Crystal Reports がJDBC に対応しているため、CData JDBC Driver for SharePoint によってこの機能をCrystal Reports で利用できるようになります。この記事では、レポート実行時にデータを更新するSharePoint のデータレポートを作成する方法を紹介します。
SharePoint データ連携について
CData を使用すれば、SharePoint のライブデータへのアクセスと統合がこれまでになく簡単になります。お客様は CData の接続機能を以下の目的で利用しています:
- Windows SharePoint Services 3.0、Microsoft Office SharePoint Server 2007 以降、SharePoint Online を含む、幅広い SharePoint バージョンのデータにアクセスできます。
- 非表示カラムとルックアップカラムのサポートにより、SharePoint のすべてにアクセスできます。
- フォルダを再帰的にスキャンして、すべての SharePoint データのリレーショナルモデルを作成できます。
- SQL ストアドプロシージャを使用して、ドキュメントや添付ファイルをアップロード・ダウンロードできます。
多くのお客様は、SharePoint データをデータベースやデータウェアハウスに統合するために CData ソリューションを活用していますが、Power BI、Tableau、Excel などのお気に入りのデータツールと SharePoint データを統合しているお客様もいます。
お客様が CData の SharePoint ソリューションで問題を解決している方法については、ブログをご覧ください:Drivers in Focus: Collaboration Tools
はじめに
以下の表は、この記事で使用するツールとバージョンです。
| アプリケーション名 | バージョン |
|---|---|
| SAP Crystal Reports 2020 | SP3 |
| JDBC Driver | 23.0.8565 |
JDBC Driver のデプロイ
Crystal Reports のクラスパスにドライバーJAR を含めて、CData JDBC Driver for SharePoint をインストールします。DataDriverCommonElement の下にあるClassPath 要素のパスに、.jar を含むフルファイルパスを追加します。
CRConfig.xml ファイルのデフォルトの場所はC:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\java ですが、インストールによって多少異なる場合があります。ドライバーJAR はインストールディレクトリのlib サブフォルダにあります。
ClassPath にJAR を追加したら、Crystal Reports を再起動します。
SharePoint のデータに接続
SharePointのJDBC Driver をデプロイしたら、レポートウィザードを使用して新しいレポートにSharePoint のデータを追加できます。
- File -> New -> Standard Report をクリックします。
- Create New Connection の下にあるJDBC (JNDI) を展開し、Make a New Connection をダブルクリックします。
- CData JDBC Driver for SharePoint を使用して接続文字列を作成します。
- Microsoft Entra ID(Azure AD)
- ADFS、Okta、OneLogin、またはPingFederate SSO ID プロバイダーを介したシングルサインオン(SSO)
- Azure MSI
- Azure パスワード
- OAuthJWT
- SharePointOAuth
- Windows(NTLM)
- Kerberos
- ADFS
- 匿名アクセス
ウィザードでJDBC 接続URL を入力します。
jdbc:sharepoint:User=myuseraccount;Password=mypassword;Auth Scheme=NTLM;URL=http://sharepointserver/mysite;SharePointEdition=SharePointOnPremise;
ドライバークラス名を設定します。
cdata.jdbc.sharepoint.SharePointDriver
- レポートに必要なテーブルを選択します。
- SAP Crystal Reports でSharePoint のデータのテーブルをリンクすることもできます。テーブル間のリンクを追加したら、NEXT をクリックします。
- テーブルを選択したら、選択したテーブルからレポートに表示するフィールドを選び、NEXT をクリックします。
- レポート上の情報をグループ化するために「Group By」フィールドを選択します。
- 集計合計に基づいてグループを並べ替え、NEXT をクリックします。
JDBC URL の構成については、SharePoint JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインからjar ファイルを実行します。
java -jar cdata.jdbc.sharepoint.jar
Microsoft SharePoint への接続
URL の設定:
Microsoft SharePoint では、2つの範囲でデータを操作できます。グローバルなMicrosoft SharePoint サイト全体を対象にするか、個々のサイトのみを対象にするかを選択できます。
グローバルなMicrosoft SharePoint サイトですべてのリストおよびドキュメントを操作したい場合は、URL 接続プロパティをサイトコレクションURL に設定しましょう。以下のような形式です。
https://teams.contoso.com
個々のサイトのリストおよびドキュメントのみを扱いたい場合は、URL 接続プロパティを個々のサイトURL に設定してください。以下のような形式です。
https://teams.contoso.com/TeamA
続いて、お使いの環境に適した認証プロパティを設定していきましょう。詳細な設定手順については、 href="/kb/help/" target="_blank">ヘルプドキュメントの「はじめに」をご参照ください。
Microsoft SharePoint Online
SharePointEdition を"SharePoint Online" に設定し、User およびPassword にはSharePoint へのログオンで使用するクレデンシャル(例:Microsoft Online Services アカウントのクレデンシャル)を設定します。
Microsoft SharePoint Online は様々なクラウドベースアーキテクチャをサポートしており、それぞれ異なる認証スキームが利用できます。
Microsoft SharePoint オンプレミス
Microsoft SharePoint オンプレミスでは、多くのオンプレミス環境に対応した認証方式をサポートしています。
まずSharePointEdition を"SharePoint On-Premises" に設定しましょう。
Windows(NTLM)認証
これは最も一般的な認証方式です。そのため、CData 製品ではNTLM をデフォルトとして使用するよう事前設定されています。Windows のUser およびPassword を設定するだけで接続できます。
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
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 を使用して、SharePoint のデータに基づくSAP Crystal レポートが作成できました。CData JDBC Driver for SharePoint の詳細と無料トライアルのダウンロードについては、SharePoint JDBC Driver ページをご覧ください。ご不明な点がございましたら、サポートチームまでお問い合わせください。