0
我已经创建了更新后触发以下,但我无法把它保存,我不太undetstand为什么它不工作Salesforce的更新后触发
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();
}
}
}
非常感谢
感谢您的回应,如果我错了,请纠正我,您不能在同一对象的后触发器中使用更新DML,但是如果DML更新其他对象,我们应该很好,正确吗? – Sam
通常情况下,您无法获得“无法锁定行”错误。如果你真的需要它,那么有一个窍门,但是确保它不会进入无限循环并最终因违反州长限制而终止是你的工作。但是你可以自由地插入,更新,删除不在'trigger.new'范围内的任何其他对象。 – eyescream
现在有道理,非常感谢 – Sam