この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Newer Version Available

This content describes an older version of this product. View Latest

Chatter オブジェクトのトリガー

FeedItem および FeedComment オブジェクトのトリガーを記述できます。

FeedItem、FeedAttachment、および FeedComment のトリガーに関する考慮事項

  • 種別が TextPostQuestionPostLinkPostHasLinkContentPostHasContent の FeedItem のみを挿入できます。そのため、before トリガーまはた after insert トリガーを呼び出します。ユーザー状況の更新によって FeedItem トリガーは実行されません。
  • FeedPost オブジェクトは API バージョン 18.0、19.0、20.0 でサポートされていましたが、21.0 より前のバージョンで保存された挿入トリガーや削除トリガーは使用しないでください。
  • FeedItem では、次の項目を before insert トリガーで使用できません。
    • ContentSize
    • ContentType

    さらに、ContentData 項目は、すべての削除トリガーで使用できません。

  • FeedItem オブジェクトのトリガーは、その添付ファイルおよび機能情報が保存される前に実行されます。つまり、ConnectApi.FeedItem.attachment 情報と ConnectApi.FeedElement.capabilities 情報はトリガーでは使用できないことがあります。

    添付ファイルおよび機能の情報は、ConnectApi.ChatterFeeds.getFeedItem メソッド、ConnectApi.ChatterFeeds.getFeedElement メソッド、ConnectApi.ChatterFeeds.getFeedPoll メソッド、ConnectApi.ChatterFeeds.getFeedElementPoll メソッド、ConnectApi.ChatterFeeds.postFeedItem メソッド、ConnectApi.ChatterFeeds.postFeedElement メソッド、ConnectApi.ChatterFeeds.shareFeedItem メソッド、ConnectApi.ChatterFeeds.shareFeedElement メソッド、ConnectApi.ChatterFeeds.voteOnFeedPoll メソッド、ConnectApi.ChatterFeeds.voteOnFeedElementPoll メソッドから使用することはできません。

  • FeedAttachment はトリガー可能なオブジェクトではありません。フィード添付は、FeedItem の update トリガー内の SOQL クエリを介してアクセスできます。次に例を示します。
    1trigger FeedItemTrigger on FeedItem (after update) {
    2
    3    List<FeedAttachment> attachments =  [SELECT Id, Title, Type, FeedEntityId 
    4                                         FROM FeedAttachment 
    5                                         WHERE FeedEntityId IN :Trigger.new ];
    6    
    7    for (FeedAttachment attachment : attachments) {
    8        System.debug(attachment.Type);
    9    }
    10}
  • 関連付けられた添付のあるフィード項目を挿入すると、初めに FeedItem が挿入され、次に FeedAttachment レコードが作成されます。関連付けられた添付のあるフィード項目が更新される場合、初めに FeedAttachment レコードが挿入され、次に FeedItem が更新されます。この順序で操作した結果、Salesforce Classic では、FeedAttachment が Update および AfterInsert トリガーで使用可能になります。添付が Lightning Experience を通じて実行される場合は、update トリガーと AfterInsert トリガーの両方で使用できますが、AfterInsert トリガーでは、future メソッドを使用して FeedAttachment にアクセスします。
  • 次のフィード添付操作を行うと、FeedItem の update トリガーが起動されます。
    • FeedItem に FeedAttachment が追加された結果、FeedItem 種別が変更される。
    • FeedItem から FeedAttachment が削除された結果、FeedItem 種別が変更される。
  • 関連付けられた FeedItem が変更されない FeedAttachment の挿入や更新の場合は、FeedItem トリガーは起動されません。
  • before updateafter update の FeedItem トリガーの FeedAttachment は挿入、更新、または削除できません。
  • FeedComment の before insert および after insert トリガーの場合、FeedComment に関連付けられた ContentVersion の項目 (FeedComment.RelatedRecordId により取得) は使用できません。

Chatter トリガーのその他の考慮事項

  • Apex コードは、Chatter コンテキストで実行するときにセキュリティを強化します。非公開グループに投稿するには、コードを実行するユーザーがそのグループのメンバーである必要があります。実行ユーザーがメンバーでない場合は、FeedItem レコードで CreatedById 項目をそのグループのメンバーに設定できます。
  • CollaborationGroupMember が更新されると、メンバー数を正確にするため CollaborationGroup も自動的に更新されます。その結果、CollaborationGroupMember の update または delete トリガーを実行すると、CollaborationGroup の update トリガーも実行されます。