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

Newer Version Available

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

Chatter オブジェクトのトリガ

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

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

  • 種別が TextPostLinkPostHasLinkContentPostHasContent の 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 トリガも実行されます。