2012-04-10 9 views
1

Ich habe einen Auslöser, der on Lead (after update) feuert. Wir haben ein Objekt namens Finance, das einige finanzielle Informationen über jeden Lead speichert. Wenn der Auslöser ausgelöst wird, werden Aktualisierungen für bestimmte Felder in einen Finanzdatensatz verschoben. Was ich geschrieben habe, funktioniert großartig, es sei denn, ein Benutzer entscheidet sich, eine ungültige E-Mail einzugeben, oder der Besitzer des Datensatzes ist inaktiv. Ein APEX-Fehler wird ausgelöst, der für die meisten Benutzer wie Kauderwelsch aussieht und ein wenig gruselig ist.Wie validiere ich einen Feldtyp in einem Trigger?

Was ich tun möchte, ist in meinem Trigger überprüfen, ob die E-Mail gültig ist oder nicht, so dass die Benutzer keinen verwirrenden Fehler erhalten. Wie kann ich überprüfen, ob der Inhalt eines Felds ein gültiger Typ ist? Ich möchte von einer Art Regex Abstand nehmen, da es einige andere Felder gibt, auf die ich diese Methode anwenden möchte, und ich möchte lieber keine Regex-Liste führen.

Irgendwelche Ideen?

Antwort

3

Sie könnten die Validierungsfehler in dem Trigger fangen:

try { 
    upsert financeRecord; 
} catch (Exception e) { 
    // do whatever you'd like to on an exception here 
} 
+0

Also, ich bin 6 Felder zur Zeit aktualisiert wird. Wenn zwei dieser Daten falsch formatiert sind, enthält "e" Informationen über die Ausnahme für diese beiden Felder oder nur für das erste Problem, auf das es trifft? Gibt es eine Möglichkeit, einen benutzerdefinierten Fehler anzuzeigen? Ich habe ein wenig nach den benutzerdefinierten Fehlern gesucht, aber nichts hilfreiches gefunden. – VictorKilo

+0

'e' speichert nur Informationen über die erste Ausnahme. Sie können einen Fehler auf der Seite anzeigen. Wenn der Fehler die Standardnachricht enthalten soll, fügen Sie dem Controller 'ApexPages.addMessages (e);' hinzu und fügen Sie der Seite ein '' -Tag hinzu. Andernfalls könnten Sie die Exception-Klasse immer ableiten und diese anstelle der standardmäßigen Exception werfen. – barelyknown

+0

Cool! Danke für die Hilfe! – VictorKilo