Kurze Beschreibung:
wir haben 3 Objekte, die in Master-Detail Beziehung miteinander stehen (s. Abbildung).
Auf der untersten Ebene - Bestellposition - führt ein Trigger diverse Berechnungen durch. Dabei wird unter anderem die ID des relevanten Kunden über die Relation zur Bestellung berechnet, ungefähr so:
Funktioniert einwandfrei im Frontend!
Jetzt die entsprechende Testklasse schreiben. Alle Testobjekte sind da und miteinander verknüpft. Trotzdem meldet sich der Trigger beim Ausführen mit der folgenden Fehlermeldung:
System.DmlException: Insert failed. First exception on row 0; first error: REQUIRED_FIELD_MISSING, Required fields are missing: [Kunde__c]
Problemlösung:
in der Testklasse muss auch der entsprechende Bezug zwischen Bestellposition und Bestellung hergestellt werden. Die letzte Zeile zeigt wie.
wir haben 3 Objekte, die in Master-Detail Beziehung miteinander stehen (s. Abbildung).
Auf der untersten Ebene - Bestellposition - führt ein Trigger diverse Berechnungen durch. Dabei wird unter anderem die ID des relevanten Kunden über die Relation zur Bestellung berechnet, ungefähr so:
ID
idKunde = Bestellung__r.Kunde__c;
Funktioniert einwandfrei im Frontend!
Jetzt die entsprechende Testklasse schreiben. Alle Testobjekte sind da und miteinander verknüpft. Trotzdem meldet sich der Trigger beim Ausführen mit der folgenden Fehlermeldung:
System.DmlException: Insert failed. First exception on row 0; first error: REQUIRED_FIELD_MISSING, Required fields are missing: [Kunde__c]
Problemlösung:
in der Testklasse muss auch der entsprechende Bezug zwischen Bestellposition und Bestellung hergestellt werden. Die letzte Zeile zeigt wie.
Bestellung
b = New Bestellung();
...
BestellPosition
p = New BestellPosition();
...
p.Bestellung__r
= b;
Kommentare
Kommentar veröffentlichen