Ich schreibe eine Trigger-Handler-Klasse für einen After-Insert-Trigger für ein Objekt 'A'.Nach der Übergabe von trigger.new an eine Funktion in der Handler-Klasse kann ich aber auf das A-Feld zugreifen Die übergeordneten Objektfelder sind alle null. Wie kann ich auf Felder für übergeordnete Objekte zugreifen, ohne die ID vom Trigger selbst zusammen mit der Variablen trigger.new zu übergeben. HierZugriff auf übergeordnete Objektfelder in der Trigger-Handler-Klasse
ist die Probe Auslöser ::
if(trigger.isInsert && Trigger.isAfter){
TriggerHandler.handleAfterInsert(trigger.new);
}
hier ist die Handler-Klasse ::
public class DedupeTriggerHandler{
public static void handleAfterInsert(List<A__c >AList) {
// accessing parent objects field here
}
}
Ich mag die übergeordnete Objekt für den Zugriff auf Felder und nicht untergeordnete Objekte fields.You die Felder Kind-Objekt zugreifen kann inneren SOQL mit query.Usually können wir die übergeordneten Objektfelder mit Zugriff ‚‘ (Punkt) operator.But In diesem Fall funktioniert es nicht! –
Ich kann immer noch falsch verstanden werden, aber in diesem Fall (in meiner Erfahrung), müssen Sie nur eine Karte der Eltern-IDs erstellen. Wenn Sie also mit Contacts zu tun haben und Account sObject-Felder abrufen möchten, durchlaufen Sie einfach trigger.new, um die AccountId abzurufen und zur Map hinzuzufügen. Dann könnten Sie eine SOQL-Datei erstellen, um die von Ihnen benötigten Kontofelder zu erhalten (z. B. [ID, Name, Besitzer vom Konto mit ID in: Konto-IDs auswählen]). Die Sache ist, mit trigger.new, trigger.oldmap, etc, ich denke nicht, dass Sie direkten Zugriff auf Parent oder Child sObjects haben, bis Sie eine SOQL aus der Datenbank machen. – Steve
das ist richtig '' mit trigger.new, trigger.oldmap haben Sie keinen direkten Zugriff auf Parent oder Child sObjects, bis Sie eine SOQL von der Datenbank ''. –