更新触发器后的 Salesforce
Salesforce after Update Trigger
我在更新触发器后创建了以下内容,但我无法保存它,我不太明白为什么它不起作用
trigger Adhoc_Approval_process_trigger on Ad_Hoc_Approval__c (after update) {
list<Ad_Hoc_Approval__c> ladh= new list<Ad_Hoc_Approval__c>();
list<Ad_Hoc_Approval__c> query=[select Status__c,Submitted_for_Approval_Date__c from Ad_Hoc_Approval__c];
for(Ad_Hoc_Approval__c adh : query)
{
if(adh.Status__c =='Submitted for Approval')
{
adh.Submitted_for_Approval_Date__c=Date.today();
ladh.add(adh);
}
}
update ladh;
}
我也将其转换为更新前触发器,并且工作正常,谁能帮我理解为什么,
trigger Adhoc_Approval_process_trigger on Ad_Hoc_Approval__c (before update) {
for(Ad_Hoc_Approval__c adh : trigger.new)
{
if(adh.Status__c =='Submitted for Approval')
{
adh.Submitted_for_Approval_Date__c=Date.today();
}
}
}
非常感谢
你的意思是因为它没有编译而无法保存?嗯,一看就不错,有什么错误吗?
你的第一个版本最终会成为一个永无止境的循环 :) update -> update -> update...更不用说查询没有任何 WHERE 子句所以一旦你达到 10 它最终会爆炸, 0001 条记录...
第二个版本要好得多 :) 仅适用于当前触发器的范围并且 "before update" 您可以免费保存到数据库。
我在更新触发器后创建了以下内容,但我无法保存它,我不太明白为什么它不起作用
trigger Adhoc_Approval_process_trigger on Ad_Hoc_Approval__c (after update) {
list<Ad_Hoc_Approval__c> ladh= new list<Ad_Hoc_Approval__c>();
list<Ad_Hoc_Approval__c> query=[select Status__c,Submitted_for_Approval_Date__c from Ad_Hoc_Approval__c];
for(Ad_Hoc_Approval__c adh : query)
{
if(adh.Status__c =='Submitted for Approval')
{
adh.Submitted_for_Approval_Date__c=Date.today();
ladh.add(adh);
}
}
update ladh;
}
我也将其转换为更新前触发器,并且工作正常,谁能帮我理解为什么,
trigger Adhoc_Approval_process_trigger on Ad_Hoc_Approval__c (before update) {
for(Ad_Hoc_Approval__c adh : trigger.new)
{
if(adh.Status__c =='Submitted for Approval')
{
adh.Submitted_for_Approval_Date__c=Date.today();
}
}
}
非常感谢
你的意思是因为它没有编译而无法保存?嗯,一看就不错,有什么错误吗?
你的第一个版本最终会成为一个永无止境的循环 :) update -> update -> update...更不用说查询没有任何 WHERE 子句所以一旦你达到 10 它最终会爆炸, 0001 条记录...
第二个版本要好得多 :) 仅适用于当前触发器的范围并且 "before update" 您可以免费保存到数据库。