Ti trovi qui:
Creazione di una classe Apex per elaborare l'input delle informazioni di personalizzazione personalizzate
Per ogni componente Interazione di personalizzazione personalizzata registrato, è necessario fornire una classe Apex che implementa l'interfaccia Distributed Marketing (mcdm_15) BulkSendPlugin.
La classe Apex creata deve essere globale e deve implementare il metodo getBulkSendPluginData indicato di seguito:
global static Map<String, Map<String, String>>
getBulkSendPluginData(List<mcdm_15.JourneyApproval> approvals
Map<String, String> pluginData)Questo metodo accetta un elenco di oggetti JourneyApproval e una mappa dei dati di input del plugin. È quindi possibile decidere come elaborare i dati. Ecco alcuni esempi.
- Si possono avere più componenti del plug-in dell'interazione di personalizzazione personalizzata registrati, ognuno dei quali utilizza una classe Apex diversa per l'elaborazione.
- I plug-in dell'interazione di personalizzazione personalizzata vengono elaborati nell'ordine in cui sono stati registrati.
- Ogni plug-in successivo ha accesso al valore elaborato del plug-in precedente. Di conseguenza, è possibile basarsi sui dati del plug-in personalizzato elaborato con ogni plug-in nella catena.
- Lo stesso metodo getBulkSendPluginData viene chiamato quando viene elaborato il processo Invio in blocco o Invio automatico e quando viene visualizzata l'anteprima della personalizzazione durante il flusso di lavoro Invio in blocco. Attualmente, non esiste un'anteprima del plug-in personalizzato in blocco durante un flusso di lavoro Invio automatico.
- Non eseguire DML in questo metodo. In caso contrario, il flusso di lavoro Invio in blocco viene interrotto.
- Si applicano i limiti stabiliti dal governor. Gli invii in blocco vengono eseguiti in batch con un massimo di 500 membri. In questo metodo è possibile eseguire chiamate SOQL, ma devono essere eseguite in blocco come indicato in questi esempi.
- Per evitare eccezioni dovute ai limiti del governor, utilizzare la classe Limiti Apex. Limits.getQueries() e Limits.getLimitQueries() consentono di determinare se si è vicini a determinati limiti. Viene fornita un'eccezione personalizzata denominata mcdm_15.BulkSendCustomPluginException che può essere utilizzata da questo metodo. I messaggi di errore relativi a questa eccezione vengono visualizzati nell'anteprima della personalizzazione o nei dettagli del processo Invio in blocco o Invio automatico dopo l'elaborazione.
- Se si incontra un limite del governor durante l'elaborazione, il processo non riesce. È disponibile un finalizzatore della transazione che viene eseguito al termine di un processo Invio in blocco o Invio automatico. Se viene rilevato un errore, nei dettagli del processo viene visualizzato il relativo messaggio di errore. Lo stato di tutti i membri della campagna pertinenti viene reimpostato in modo da consentire il nuovo invio e si riceve una notifica nell'organizzazione.

