我在更新触发后创建了以下内容,但我无法保存,我不太清楚为什么它不起作用
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();
}
}
}
非常感谢
答案 0 :(得分:1)
你的意思是因为它不能编译而无法保存?嗯,看起来很好看,有任何错误吗?
你的第一个版本最终将成为一个无休止的循环:)更新 - &gt;更新 - &gt;更新......更不用说查询没有任何WHERE子句,所以一旦达到10,0001条记录,它最终会爆炸......
第二版更好:)仅适用于当前触发器的范围,“更新前”可以免费保存到数据库。