Definizione di trigger Apex
Apex Code si può invocare mediante trigger. I trigger Apex si possono configurare per eseguire azioni personalizzate prima o dopo modifiche di record Salesforce come inserimenti, aggiornamenti o eliminazioni.
Versioni (Edition) richieste
| Disponibile in: Salesforce Classic (non in tutte le organizzazioni) e Lightning Experience |
Disponibile in: Performance Edition, Unlimited Edition, Developer Edition, Enterprise Edition, e Database.com Edition Oggetti standard, Campagne, Casi ed Email non sono disponibili nella versione Database.com Edition. |
| Autorizzazioni utente richieste | |
|---|---|
| Per definire i trigger Apex: | Apex autore |
I trigger Apex sono memorizzati nell'applicazione come metadati sotto l'oggetto a cui sono associati.
È possibile aggiungere, modificare o eliminare Apex tramite l'interfaccia utente di Salesforce solo in un'organizzazione Developer Edition, in un'organizzazione di prova Enterprise Edition di Salesforce o in un'organizzazione Sandbox. In un'organizzazione di produzione Salesforce, è possibile modificare Apex solo utilizzando la chiamata di deploy dell'API dei metadati, le estensioni Salesforce per Visual Studio Code o lo Strumento di migrazione Ant. Le estensioni Salesforce per Visual Studio Code e lo Strumento di migrazione Ant sono risorse gratuite fornite da Salesforce a supporto dei propri utenti e partner, ma non sono considerati parte dei Servizi ai fini dell'Accordo principale sui servizi di Salesforce.
- Dalle impostazioni di gestione dell'oggetto per il quale si desidera accedere ai trigger, accedere a Trigger. Per gli oggetti standard Allegato, Documento contenuto e Nota non è possibile creare trigger nell'interfaccia utente Salesforce. Per questi oggetti, i trigger si possono creare tramite strumenti di sviluppo quali la Developer Console o le estensioni Salesforce per Visual Studio Code. In alternativa si può utilizzare anche l'API dei metadati.
- Nell'elenco Trigger, fare clic su Nuovo.
-
Per specificare la versione di Apex e l'API utilizzata con questo trigger, fare clic su Impostazioni versione.
Se l'organizzazione ha installato pacchetti gestiti da AppExchange, è possibile specificare anche quale versione di ciascun pacchetto utilizzare con questo trigger. Associare il trigger alla versione più recente di Apex, dell'API e di ogni pacchetto gestito utilizzando i valori predefiniti per tutte le versioni. È possibile specificare una versione precedente di un pacchetto gestito se si desidera accedere a funzionalità o componenti diversi da quelli presenti nella versione più recente.
- Fare clic su Trigger Apex e selezionare la casella di controllo È attivo se si desidera compilare e abilitare il trigger. Lasciarla deselezionata se si desidera solo memorizzare il codice nei metadati dell'organizzazione. Questa casella di controllo è selezionata per impostazione predefinita.
-
Nella casella di testo Corpo, immettere l'Apex per il trigger. Un singolo trigger può avere una lunghezza massima di 1 milione di caratteri.
Per definire un trigger, utilizzare la sintassi seguente:
trigger TriggerName on ObjectName (trigger_events) { code_block }dove trigger_events può essere un elenco separato da virgole contenente uno o più degli eventi seguenti:
-
before insert -
before update -
before delete -
after insert -
after update -
after delete -
after undelete
Nota- Un trigger invocato da un
insert, undeleteo unupdatedi un evento ricorrente o di un'operazione ricorrente genera un errore di esecuzione quando il trigger viene chiamato in blocco dall'API Lightning Platform. - Si supponga di utilizzare un trigger after-insert o after-update per modificare la proprietà di lead, referenti o opportunità. Se si utilizza l'API per modificare la proprietà dei record o se un utente Lightning Experience modifica il titolare di un record, non viene inviata alcuna notifica per email. Per inviare notifiche tramite email al nuovo titolare di un record, impostare la proprietà
triggerUserEmailin DMLOptions sutrue.
-
- Fare clic su Salva.
I trigger vengono memorizzati con un flag isValid impostato su true a condizione che i metadati dipendenti non siano cambiati dall'ultima compilazione del trigger. Se vengono apportate modifiche ai nomi degli oggetti o ai campi utilizzati nel trigger, incluse modifiche superficiali come le modifiche alla descrizione di un oggetto o di un campo, il flag isValid viene impostato su false finché il compilatore Apex non elabora nuovamente il codice. La ricompilazione viene effettuata alla successiva esecuzione del trigger o quando un utente salva nuovamente il trigger nei metadati.
Se un campo di ricerca fa riferimento a un record eliminato, Salesforce cancella il valore del campo di ricerca per impostazione predefinita. In alternativa è possibile decidere di impedire l'eliminazione dei record se si trovano in una relazione di ricerca.
la compilazione di tutte le classi e di tutti i trigger deve andare a buon fine, e ogni trigger deve avere una copertura del test. È necessario che almeno il 75% del proprio Apex sia coperto dai test di unità per distribuire il codice agli ambienti di produzione. Vedere Test di unità Apex.

