トリガのエンティティおよび項目の考慮事項
トリガを作成するときは、特定のエンティティ、項目、および操作の動作を考慮します。
QuestionDataCategorySelection エンティティを after insert トリガで使用できない
1 件以上の Question レコードを挿入すると起動する after insert トリガには、挿入された Question に関連付けられた QuestionDataCategorySelection レコードへのアクセス権がありません。たとえば、次のクエリでは after insert トリガで結果を返しません。
1QuestionDataCategorySelection[] dcList =
2 [select Id,DataCategoryName from QuestionDataCategorySelection where ParentId IN :questions];項目を before トリガで更新できない
一部の項目値は、before トリガの起動後に行われるシステムの保存操作時に設定されます。結果として、これらの項目は変更できず、また before insert トリガまたは before update トリガで正確に検出できません。例には、次のものが含まれます。
- Task.isClosed
- Opportunity.amount*
- Opportunity.ForecastCategory
- Opportunity.isWon
- Opportunity.isClosed
- Contract.activatedDate
- Contract.activatedById
- Case.isClosed
- Solution.isReviewed
- Id (すべてのレコード)**
- createdDate (すべてのレコード)**
- lastUpdated (すべてのレコード)
- Event.WhoId (Shared Activities が有効化されている場合)
- Task.WhoId (Shared Activities が有効化されている場合)
* Opportunity に lineitems がない場合、Amount は before トリガによって変更できます。
** Id および createdDate は before update トリガで検出できますが、変更はできません。
after トリガで更新できない項目
次の項目は、after insert トリガまたは after update トリガによっては更新できません。
- Event.WhoId
- Task.WhoId
insert トリガおよび update トリガの行動の dateTime 項目の考慮事項
行動を作成または更新する場合は、次の日付/時間項目を使用することをお勧めします。
- 時間が指定された行動を作成または更新する場合は、日付と時刻の値が矛盾する問題を回避するために ActivityDateTime を使用します。
- 終日の行動を作成または更新する場合は、日付と時刻の値が矛盾する問題を回避するために ActivityDate を使用します。
- 行動のすべての更新および作成で機能する DurationInMinutes を使用することをお勧めします。
insert トリガおよび update トリガでサポートされない操作
insert トリガおよび update トリガでは、次の操作はサポートされていません。
- Shared Activities が有効化されている場合に、TaskRelation オブジェクトまたは EventRelation オブジェクトを使用して活動リレーションを操作する
- Shared Activities が有効化されているかどうかに関係なく、Invitee オブジェクトを使用してグループの行動で招待者リレーションを操作する
after undelete トリガでサポートされないエンティティ
特定のオブジェクトは復元できないため、after undelete トリガは使用できません。
- CollaborationGroup
- CollaborationGroupMember
- FeedItem
- FeedComment
更新トリガの考慮事項
項目履歴管理では現在のユーザの権限が優先されます。現在のユーザにオブジェクトまたは項目を直接編集する権限がない場合は、履歴管理が有効になっているオブジェクトまたは項目を変更するトリガを有効にしても、変更履歴は記録されません。
Salesforce for Outlook の Salesforce サイドパネルの考慮事項
メールが Salesforce for Outlook の Salesforce サイドパネルを使用してレコードに関連付けられている場合は、メールの関連付けが ToDo レコードの WhoId または WhatId 項目に示されます。関連付けは ToDo の作成後に完了するため、挿入または更新イベントの before または after ToDo トリガで、Task.WhoId および Task.WhatId 項目をすぐには使用できません。また、これらの項目の値は最初に null になります。ただし、WhoId および WhatId 項目は、後続の操作で保存された ToDo レコードに設定されるため、これらの項目の値を後から取得できます。