[Salesforce]apexでレコードをフォローさせる

レコードを作った段階で自動的にフォローさせたかったので調べてみた。

チャター

デフォルトでは一部のレコードを除いてレコードのフォロー機能はオフになっている。
オンにするには、フィード追跡で有効にする。

設定 -> カスタマイズ -> Chatter -> フィード追跡を選択。
有効にしたいオブジェクトを選んで、フィード追跡の有効化にチェックを入れて保存。

すると、設定したレコード詳細の上部にフォローの表示とチャターコメントが出現する。
フォローしたい場合はここをクリックしてフォロー出来る。

フォローすると以下のような表示に変わる。

apexでのフォロー

フォローは、EntitySubscriptionなるオブジェクトで管理されている。
現在のフォロー関係一覧を取得するSOQLは以下。

SELECT Id, ParentId, SubscriberId FROM EntitySubscription

ParentIdが、フォロー対象のユーザーやオブジェクトのレコードID。
SubscriberIdが、フォローするユーザーのID、となる。

なので、このオブジェクトにフォロー対象とフォローするIDを入れてインサートしてやればよい。

例)

1
2
3
4
EntitySubscription follow = new EntitySubscription();
follow.ParentId = 'ID'; //対象のレコード
follow.SubscriberId = 'ID'; //ユーザーのID
insert follow;

トリガーで実装する場合は、レコードのIDが必要になるので、after insertで実行すること。

参考

memo: Force.com : 行動を作成したとき、自動的にフォローするようにしたい

チャター関係は以下のPDFにまとまっていた。
http://developerforcejp.s3.amazonaws.com/books/cheatsheets/Chatter-cheatsheet_Ja.pdf

   このエントリーをはてなブックマークに追加