[toc]
概要
帳票出力時に、ボタンをクリックしたユーザのプロファイルに応じて帳票内の項目を表示・非表示にする方法です。
設定は XAデザイナー側と ViewFramer側の2つに分かれます。
例:
- システム管理者:帳票に「原価」「社内メモ」列を表示
- 一般ユーザ:上記を非表示(空欄ではなく要素自体が出ない)
前提条件
- XAデザイナーとViewFramerの両方へのアクセス権限があること
XAデザイナー側の設定
1. データセット設定でフィールドを作成する
「データセット設定」で、プロファイル名を保持するフィールドを作成します。
ViewFramer から渡されたプロファイル名がここに格納されます。
2. 条件式を作成する
「出力項目」タブで、プロファイル名フィールドを使った表示制御用の条件式を以下のように作成します。
"プロファイル" == 'プロファイル名’
例:「システム管理者」のプロファイルの時に項目を表示する場合
"プロファイル" == 'システム管理者’
3. 表示/非表示の制御設定を行う
-
表示・非表示を制御したい要素を選択し、「デフォルト」と表示されている部分をクリックします。
-
「+」で Case を追加します。
- 追加した Case の「ケース」タブで、以下の設定を行います。
-
「表示」にチェックを入れます。
-
「適用条件」に、ステップ2で作成した条件式を選択します。
-
「デフォルト」では「要素」タブの「表示」のチェックを外します(条件不一致時は非表示)。
-
4. レイアウトを保存する
設定完了後、レイアウトを保存します。
ViewFramer側の設定
1. ビューのリレーション設定を作成する
主オブジェクトとユーザオブジェクトのリレーションを作成します。
「どのユーザがクリックしても成立する条件式」を設定します。
例:ユーザID != [商談] 商談ID かつ 有効 = 固定値 'true'
詳しくは以下の記事をご参照ください。
ViewFramerでボタンをクリックしたユーザの情報を出力したい
既存のリレーションに別名「User」が設定済みの場合は、新たに追加するリレーションには別の別名を付けてください。
プロファイルオブジェクトもリレーションに追加し、以下の条件式でユーザオブジェクトと連結します。
プロファイルオブジェクトの「プロファイルID」 = ユーザーオブジェクトの「プロファイルID」
2. 出力項目設定でビュー項目を作成する
「出力項目設定」タブで、プロファイルオブジェクトの「プロファイル名」を取得するビュー項目を作成します。
3. 出力条件設定を構成する
ログインユーザのユーザIDをパラメータで受け取るよう設定します。
ユーザID 等しい(=) パラメーター名 [任意のパラメーター名]
詳しくは以下の記事をご参照ください。
ViewFramerでボタンをクリックしたユーザの情報を出力したい
パラメーター名は後述の JavaScript 編集時と一致させてください。
4. マッピングの設定・配備を行う
- マッピングでビューを取得します。
-
「Documentizer」タブでテンプレート側のフィールドと、プロファイル名を取得するビュー項目をマッピングします。
-
出力確認画面でユーザIDを入力して、出力確認を行います。
詳しくは「【ViewFramer】マッピングの[出力確認]タブについて(Salesforce)」をご参照ください。
- 配備します。
5. JavaScriptコードを編集する
サンプルボタンのコードを以下のように変更し、ログインユーザのIDをパラメータとして渡します。
例:「3. 出力条件設定を構成する」で定義したパラメータの値を、User.Id から $User.Id に変更してください。
変更前
VIEWFRAMER.action({
mappingNm:'Samplemapping',
fileName:'Samplemapping',
opportunityId:'{!JSENCODE(Opportunity.Id)}',
userID:'{!JSENCODE(User.Id)}',変更後
VIEWFRAMER.action({
mappingNm:'Samplemapping',
fileName:'Samplemapping',
opportunityId:'{!JSENCODE(Opportunity.Id)}',
userID:'{!JSENCODE($User.Id)}',$User.Id を使うことで、ボタンをクリックしたログインユーザの ID が渡されます。
セキュリティ確保のため JSENCODE は必ず使用してください。
確認方法
実際にボタンをクリックして、ログインユーザのプロファイルに応じた項目の表示・非表示が正しく動作することを確認してください。