[Salesforce]apexでレコードをフォローさせる
レコードを作った段階で自動的にフォローさせたかったので調べてみた。
チャター
デフォルトでは一部のレコードを除いてレコードのフォロー機能はオフになっている。
オンにするには、フィード追跡
で有効にする。
設定 -> カスタマイズ -> Chatter -> フィード追跡
を選択。
有効にしたいオブジェクトを選んで、フィード追跡の有効化
にチェックを入れて保存。
すると、設定したレコード詳細の上部にフォローの表示とチャターコメントが出現する。
フォローしたい場合はここをクリックしてフォロー出来る。
フォローすると以下のような表示に変わる。
apexでのフォロー
フォローは、EntitySubscription
なるオブジェクトで管理されている。
現在のフォロー関係一覧を取得するSOQLは以下。
SELECT Id, ParentId, SubscriberId FROM EntitySubscription
ParentId
が、フォロー対象のユーザーやオブジェクトのレコードID。
SubscriberId
が、フォローするユーザーのID、となる。
なので、このオブジェクトにフォロー対象とフォローするIDを入れてインサートしてやればよい。
例)
1 2 3 4 |
|
トリガーで実装する場合は、レコードのIDが必要になるので、after insert
で実行すること。
参考
memo: Force.com : 行動を作成したとき、自動的にフォローするようにしたい
チャター関係は以下のPDFにまとまっていた。
http://developerforcejp.s3.amazonaws.com/books/cheatsheets/Chatter-cheatsheet_Ja.pdf