non-programmers salesforce 小ネタブログ

Apexやvisualforceなどプログラミングの力を使わずにどこまでやれるか小ネタを投稿します。

salesforceで部署のメンバーの分しかレコードが表示されないレポートを、全部署の枚数分作らずに1枚だけで済ませる方法

どう略していいのかわからずに長いタイトルをつけてしまいました。センスが悪いです。

 

忙しい人のためにこの記事を3行でまとめると、

  • 1枚のレポートで部署ごとのレポートを作ります。
  • 別部署の人が同じレポートを見ても自分の部署の分しか情報が出てきません。
  • 数式カスタム項目(チェックボックス)で「$User.Department = Owner:User.Department 」という項目を作って、レポートの表示条件をtrueにするだけ

 

もう答えを書いてしまいましたが、一応背景から説明します。

salesforceを使っていると、「各部の部会で使うレポートを作って欲しい」という要望が管理者のもとに届くことは当然起こることです。この時の仕様は以下のようなものです。

  • 自分の部署のメンバーのレコードだけが見えているものが欲しい。
  • 部署の全員が同じレポートを見れるようにして欲しい。

通常、自分の部署のメンバーのレコードだけを見る方法として、ロールを使うレポートがあります。「レポートの表示」を「私のチームの◯◯(◯◯には「取引先」「商談」などのオブジェクト名が入ります)」選ぶ方法です。

 

f:id:non-prog-sf:20150523233832p:plain

ただし、ロールを使う場合は重大な欠点があります。ロールを使っても部長(マネージャー)しか全員分のレポートを見ることができないためです。私のチームというのは「自分と自分よりも下位のロールの人」という意味であり、同レベルのメンバー間のレコードを見ることができないのです。そのため、部署のメンバーは自分のレコードしかレポートに表示されないという現象が起こります。

じゃあ、1部署ごとに条件設定で各部署のメンバーを表示させるレポートを作っていった場合、部署数×必要レポート数となり、かつメンバー変更やレポートの仕様変更の度に、すべてのレポートを変えないといけないとなると、どう考えても運用者の負担が大きくなってしまいます。というか大企業であれば絶対無理。

 

その解決方法が、冒頭で述べた「$User.Department = Owner:User.Department 」です。これは商談のレポートを例にとって説明します。まず、各部署の今週の新規商談の一覧を出したいという要望を受けたとします。メンバーが今週何件新しい案件を取ってきたかというレポートで、自分の部署のメンバー以外の情報は必要ない、ただしメンバー全員が同じ情報を見れること、という条件です。

 

1.各ユーザのレコードに部署名を入れます。

f:id:non-prog-sf:20150526233255p:plain

2.レポートを作りたい商談のカスタム項目を新規作成します。

商談の場合は設定→カスタマイズ→商談→項目→商談カスタム項目「新規」ボタンですね。

f:id:non-prog-sf:20150526233422p:plain

3.数式を選択します。

f:id:non-prog-sf:20150526233549p:plain

 4.チェックボックスを選択します。名前は適当につけてください。

f:id:non-prog-sf:20150526233615p:plain

 5.ユーザの部署と商談所有者の部署をイコールで結びます。

f:id:non-prog-sf:20150526233846p:plain

f:id:non-prog-sf:20150526233851p:plain

f:id:non-prog-sf:20150526234121p:plain

6.あとは道なりに進んで完了してください。

7.レポートの時に条件を追加し、今回作ったカスタム項目をtrueで一致するもののみを表示させるようにしてください。

f:id:non-prog-sf:20150526234254p:plain

これで完成です。

 

簡単に仕組みを説明します。この数式はレコードの閲覧者の部署と所有者の部署が一致した場合にtrueを返す仕組みになっています。営業一部のAさんが作った商談Aと営業二部のBさんが作った商談Bがあるとします。Aさんがこれらのレコードを閲覧した時、このカスタム項目は商談Aはtrue、商談Bはfalseを返します。逆にBさんが閲覧した時は商談Aがfalse、商談Bがtrueを返します。つまりレコードを閲覧する人によって、可変な項目なのです。これを使うことで、同じレポートなのに誰が見ても自分の部署のレコードしか表示されないレポートが出来上がるのです。

もちろん、所有者だけでなく、参照項目がユーザになっているものはすべて適用できるので、会社の状況に合わせていろんなレポートが作れると思います。