gpt4 book ai didi

triggers - Salesforce Apex 触发器 "isAPI"上下文变量

转载 作者:行者123 更新时间:2023-12-02 22:03:18 27 4
gpt4 key购买 nike

有没有办法确定触发器是通过 API 调用还是通过 Salesforce Web 界面执行?

我想做这样的事情:

trigger Update_Last_Modified_By_API on My_Object__c (before update) {

for (My_Object__c o : Trigger.New) {

if (isAPI) {
o.Last_Modified_By_API__c = datetime.now();
}

}

}

(当前使用 API 版本 25.0,但很快就会更新到 26.0)

最佳答案

目前没有标准方法可以告诉触发器内实际导致更新或插入发生的原因(API、标准页面布局、VF 页面和 Controller 、其他一些 Apex 代码等)。这是 Trigger Context Variables 的完整列表.

要实现此目的,我建议在对象上创建一个自定义复选框字段,例如 IsAPI__c (默认值为 false)。然后您需要做的就是通过任何 API 调用为该字段传递 true ,然后检查触发器中批处理中每条记录的字段(只需确保您记得将其重置为完成后返回 false,因此来自 UI 的后续调用不会被视为 API 调用)。

trigger Update_Last_Modified_By_API on My_Object__c (before update) {
for ( My_Object__c o : Trigger.New ) {
if ( o.IsAPI__c ) {
o.Last_Modified_By_API__c = datetime.now();
}
o.IsAPI__c = false;
}
}

关于triggers - Salesforce Apex 触发器 "isAPI"上下文变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12495866/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com