
本ブログでは、SAP Analytics Cloudでストーリーからデータをエクスポートできるユーザーを権限によって制御したいといった要件に対し、SAP Analytics Cloudのスクリプトで実装する手順についてご紹介します。
SAP Analytics Cloudにおいて、ストーリーからのエクスポート機能に関して、デフォルトの設定では全ユーザーに対して同一のON/OFF制御しか適用できません。しかし、スクリプトによって作成したエクスポートボタンをユーザーの所属チーム情報を基に表示・非表示を切り替えることで、ユーザーごとにエクスポートを制御することが可能です。
今回はcsvファイルのエクスポートについて記述していますが、Excelファイル、PDFファイルに対しても同様な手順で行っていただけます。
※※ SAP Analytics Cloudは、四半期に1度のペースで製品のバージョンアップが実施されます。そのため今後のバージョンアップにより、本ブログで紹介する画面キャプチャや、操作が異なる可能性があることをご了承ください。(本ブログは2023年10月に作成しています。)
※※ こちらは最適化されたデザインモードでのみ実装が可能です。
SAP Analytics Cloudではスクリプト記述によってレポート操作に対するきめ細やかな制御を加え、機能拡張を行うことができます。詳細については以下のリンクからご覧ください。
スクリプト (最適化されたストーリーエクスペリエンスおよびアナリティクスデザイナ) | SAP Help Portal
またAPIリファレンスはこちらです:Optimized Story Experience API Reference Guide Version 2023.21 (sap.com)
実装手順は以下になります。
- ストーリーでデフォルトのエクスポートボタン(ツールバー、クイックメニュー)を非表示にする
- エクスポートボタンを表示させる権限を割り当てるユーザーのためのチームを作成する
- エクスポートボタンを新規作成し、ボタンの表示を制御するスクリプトを記述する
それぞれの手順についてご紹介します。
1. ストーリーでデフォルトのエクスポートボタン(ツールバー、クイックメニュー)を非表示にする
- ツールバーでエクスポートボタンを非表示にします。
ファイル > ストーリーの編集 > 表示時設定 > ツールバーより、表示時ツールバー設定を開きます。 - ツールバーのカスタマイゼーションのエクスポートに対して、「サブメニューでの非表示」にチェックを入れます。
- 適用を選択すると、ビューモードのツールバー上で「エクスポート」オプションが非表示になっていることが確認できます。
- 続いて、クイックメニューでエクスポートを非表示にします。
対象のテーブルでスタイルパネルを開き、クイックメニューを展開して「エクスポート」のチェックを外します。 - ビューモードでチャートのその他アクションでエクスポートが非表示になっていることを確認できます。
2. エクスポートボタンを表示させる権限を割り当てるユーザーのためのチームを作成
- セキュリティ> チーム でチームを作成します。
- エクスポートを許可するユーザをチームに割り当てます。
※チーム名はこの後のスクリプトでの権限制御に使用します。
3. エクスポートボタンを新規作成し、ボタンの表示を制御するスクリプトを記述する
- ストーリーに「ボタン」を新規で追加します。
- ボタンのID、テキストを自由に変更します。
- 左側のパネルより「アウトライン」を開きます。
- 「スクリプト」の新規作成から「CSVにエクスポート」を選択します。
- エクスポート対象のソーステーブルやファイル名、範囲などを設定します。
- ボタンのfx > onClick よりボタンクリック時のスクリプトを編集します。
スクリプトを記入します。
//samlplecode ExportToCSV_1.exportReport();
「ExportToCSV_1」をご自身で作成したスクリプト「CSVにエクスポート」の名前に書き換えてください。
- 続いて、ページのfx > onInitialization よりページを初期化した際のスクリプトを編集します。
スクリプトを記入します。
//samplecode var teamInfo = Application.getTeamsInfo(); for(var i = 0; i < teamInfo.length; i++){ if(teamInfo[i].name === 'Team_ExportAuth'){ Button_1.setVisible(true); }else{ Button_1.setVisible(false); } }
「Team_ExportAuth」をご自身で作成したチーム名に書き換えたください。
「Button_1」をご自身で作成したボタンの名前に書き換えてください。チームではなくユーザーを指定の場合は以下のようになります。
//samplecode var userInfo = Application.getuserInfo().id; if(userInfo === '(ユーザのID)'){ Button_1.setVisible(true); }else{ Buttone_1.setVisible(false); }
- エクスポートができるチームに割り当てられているユーザーはビューモードでエクスポートボタンが表示され、ボタンを押すことでCSVファイルをダウンロードすることができます。
一方で、チームに割り当てられていないユーザーにはエクスポートボタンが表示されないため、ダウンロードすることができません。
以上になります。このようにスクリプトによって標準では用意されていない機能の拡張を簡単に行うことができます。是非ご利用ください。
Be the first to comment