1

I using a trigger to caluclate the min date regarding other custom objects an everything works fine. But I would like to fill the field "Gültig von" after pressing the Button "New Object" with the result of my trigger. The field "Gültig von" looks like this: enter image description here

And my trigger code looks like this:

trigger GueltigVonVorGueltigBisUnt on Unterbrechung__c (before insert, after insert) {

String aboIdErsterSchritt;
String accIdErsterSchritt;
date datumDefault = Date.today();

if(Trigger.isBefore){

    //Reklamation initialisieren
    Unterbrechung__c ges = System.trigger.new.get(0);

    //Aboid selektieren  
    aboIdErsterSchritt = ges.abo__c;

    //Aus der entsprechenden Abo.Id das entsprechende Account herausfinden
    accIdErsterSchritt = [Select accountname__c From Abo__c where Id =:aboIdErsterSchritt LIMIT 1].accountname__c;

   //Listen mit allen Unterobjekten dieses Abos
   List <Reklamation__c> reklamation = new List<Reklamation__c>([select gueltig_bis__c FROM Reklamation__c where abonr__c =:aboIdErsterSchritt]); 
   List <Unterbrechung__c> unterbrechung = new List<Unterbrechung__c>([select gueltig_bis__c FROM Unterbrechung__c where abo__c =:aboIdErsterSchritt]); 
   List <Reise__c> reise = new List<Reise__c>([select gueltig_bis__c FROM Reise__c where abo__c =:aboIdErsterSchritt]);
   List <Geschenk__c> geschenk = new List<Geschenk__c>([select gueltig_bis__c FROM Geschenk__c where abonr__c =:aboIdErsterSchritt]);

   //Größtes ReklamationsDatum "Gültig bis" für datumDefault nehmen
   for(Reklamation__c c: reklamation){
       if(datumDefault <= c.gueltig_bis__c){
           datumDefault = c.gueltig_bis__c.addDays(1);
       } 
    }

    //Größtes Unterbrechungsdatum "Gültig bis" für datumDefault nehmen
    for(Unterbrechung__c u: unterbrechung){
        if(datumDefault <= u.gueltig_bis__c){
            datumDefault = u.gueltig_bis__c.addDays(1);
        }
    }

    //Größtes Reisedatum "Gültig bis" für datumDefault nehmen
    for(Reise__c r: reise){
        if(datumDefault <= r.gueltig_bis__c){
            datumDefault = r.gueltig_bis__c.addDays(1);
        }
    }

    //Größtes Geschenkdatum "Gültig bis" für datumDefault nehmen
    for(Geschenk__c g: geschenk){
        if(datumDefault <= g.gueltig_bis__c){
            datumDefault = g.gueltig_bis__c.addDays(1);
        }
    }

    //Geschenk Gültig von mit datumDefault vorbelegen
    if (ges.gueltig_von__c < datumDefault){
        ges.gueltig_von__c = datumDefault;
    }
 }

What do I miss?

  • So - you are trying to default a field on the new object screen with the result from a trigger? This can't be done that way as the trigger occurs due to a DML event; you need to use a VF page/controller – cropredy Apr 21 '16 at 15:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.