dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

[Salesforce]承認プロセスの「割り当て先として使用するユーザ項目」について

メモです。
承認プロセスの設定で、「割り当て先として使用するユーザ項目」というのが出てくるけどどういう挙動になるのかわからず。
合わせて、その下にある「XXX 所有者の承認者項目を使用」というチェックボックスについても。

f:id:dackdive:20170926191854p:plain

公式ドキュメントはこちら。
承認プロセスで自動化された承認者の選択


割り当て先として使用するユーザ項目

ざっくりとした説明

ユーザオブジェクトの任意の項目(※)を設定しておくと、続く承認ステップの設定で「ユーザのこの項目に設定した人を承認者にする」ということができるようになる。
※ただし階層関係の項目のみ。カスタム項目を作らない限り該当するのは「マネージャ」項目だけ


もうちょっと具体的に

この項目を設定せずに承認ステップの割り当て先(承認者)の選択画面を開くと、選択肢として選べるのは以下のいずれか。

f:id:dackdive:20170926192536p:plain

  • 申請者が承認者を手動で選択する
    • 文字通り、申請する側が申請時に明示的に承認者を選ぶ
  • 自動的にキューに割り当てる
    • 別途作成しておいたキューを割り当てる
  • 自動的に承認者に割り当てる
    • 特定のユーザを明示的に指定したり、申請するオブジェクトに作成されている参照項目(ユーザ)を使う

ここで、ユースケースとして「申請者のマネージャを承認者に設定したい」というのは割とありそうだが、上記の選択肢では実現できない。
このときに先ほどの項目を使う。

f:id:dackdive:20170926193953p:plain

設定すると上のキャプチャのように、「選択したユーザ項目を使用して自動的に承認者を割り当てる。」という選択肢が1個増える。
このような設定にしておくと、申請時に申請者のマネージャ(人によって異なる)が自動的に承認者に選ばれるようになる。

デフォルトでは「マネージャ」しか選べないが、ユーザのカスタム項目で階層関係型の項目を追加してあげればそちらを利用することも可能。


XXX 所有者の承認者項目を使用

こちらは、申請するレコードの所有者と申請者が異なる場合に承認者の選ばれ方が変わってくる。
ユーザの階層関係項目を使って承認者を選ぶところは同じだが、ON にすると文字通り、承認者はレコードの「申請者」ではなく「所有者」に設定されている内容を見に行く。

なのでたとえば、部長 > 上司 > 部下 という 3 人のユーザがいて、

  • 「部下」のマネージャ項目は「上司」
  • 「上司」のマネージャ項目は「部長」

という設定をしているとする。

この状態で「部下」が所有者になっているレコードを申請するとき、

  • 「XXX 所有者の承認者項目を使用」が OFF の場合
    • 「部下」が申請した場合:承認者は「上司」
    • 「上司」が申請した場合:承認者は「部長」
  • ON の場合
    • 「部下」が申請しても「上司」が申請しても、承認者は「上司」(所有者である「部下」のマネージャ項目を使うため)

という挙動になる。