Salesforce:ビューの検索条件に「現在ログインしているユーザー」を設定するには

1 min読了の目安(約1500字TECH技術記事

用途

「特定の項目が現在のログインユーザと一致しているレコードだけを表示させたい」
という要望に出会った。
ちょっと試してみたらできたので備忘的に残しておく。

調べてみたこと

グローバル変数[$User.Id]を使えば良いんじゃね?

→無理でした。

対象のオブジェクトに数式項目を追加してTrue の値をソートする

DeveloperForce

ビューに表示するオブジェクトに数式(チェックボックス)でログインユーザID=対象項目のユーザ という数式を作ればtrueになったレコードだけを表示できるらしい。

ほんとかよ?w

ってことで試してみた。

▼前提条件
・対象項目がユーザオブジェクトを参照していること

項目を作成する

  1. [設定]→[オブジェクトマネージャ]→[項目とリレーション]→[新規]

  2. [数式]を選択→[次へ]

  3. 表示ラベル、項目名を設定→[次へ]

  4. 数式を入力して[次へ]→[次へ]→[保存]で完了

ビュー画面を作成する

  1. 対象のオブジェクトをクリックしてビュー画面を開く

  2. 適当に新規ビューを作成して検索条件を変更

  3. やったーできたー

// Todo)開発者環境でちゃんと項目作って画像取り直しとく

最後に

今回はTrue/Falseのチェックボックス項目としたが、IF文を使えば更に応用できそう。

小話

・基本的に項目名はFieldXXとかにしちゃだめ。メンテナンス性がめっちゃ下がる。

・命名規則はしっかり決めよう。例えばチェックボックスならexistHogeとか。困ったらキャメルケースで良い。

・命名で迷うのは開発者あるある。むしろ悩め。ここを決める時間は惜しまないこと。

・なんで命名大事なん?って疑問に思った人はリーダブルコードを読もう。
 お金がない?お馬さんが買ってあげるからAmazon欲しい物リストを公開なさい。

・って言ったけど命名に悩みすぎるくらいなら…まあ妥協しても良い。
 しかしその妥協は後で君を殴りにくるからね。