J'ai créé, après déclenchement de mise à jour, mais je suis incapable d'avoir à sauver, je ne pas tout à fait undetstand pourquoi il ne fonctionne pasSalesforce après mise à jour 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;
}
J'ai aussi converti à un avant déclenchement de mise à jour, et il fonctionne très bien, quelqu'un peut-il me s'il vous plaît aider à comprendre pourquoi,
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();
}
}
}
Merci beaucoup
Merci pour votre réponse, corrigez-moi si je me trompe, vous ne pouvez pas utiliser une mise à jour DML dans un après déclenchement pour le même objet, si la mise à jour DML autres objets, nous devrions être bon, correct? – Sam
Normalement, vous ne pouvez pas obtenir l'erreur "UNABLE TO LOCK ROW". Il y a une astuce si vous en avez vraiment vraiment besoin, mais alors c'est votre travail de vous assurer qu'il n'entrera pas dans une boucle infinie et finira par être terminé à cause des limites du gouverneur. Mais vous êtes libre d'insérer, mettre à jour, supprimer tous les autres objets qui ne sont pas dans la portée de 'trigger.new'. – eyescream
Ca a du sens maintenant, merci beaucoup – Sam