Questo testo è stato tradotto utilizzando il sistema di traduzione automatica di Salesforce. Partecipa al nostro sondaggio per fornire un feedback su questo contenuto e dirci cosa vorresti vedere dopo.

Leggi qui le nostre pianificazioni degli aggiornamenti.

I sistemi dimostrano il comportamento automatico consentendo all'azienda di raggiungere gli obiettivi chiave più rapidamente e su larga scala. Una sana automazione consente agli utenti di concentrarsi su lavori di valore elevato e riduce il tempo dedicato a operazioni manuali ripetitive o all'immissione di dati complessi.

Molto spesso, l’automazione significa tradurre i processi aziendali da una forma all’altra: dalla forma cartacea alla forma digitale, da un vecchio sistema a uno nuovo. Con ogni traduzione dei processi aziendali viene offerta un'opportunità di trasformazione.

Trasformazione non significa utilizzare le nuove tecnologie per introdurre cambiamenti dirompenti e confusi per gli utenti. Trasformazione significa creare modi più semplici per svolgere il lavoro, consentire al business di crescere senza frizioni e consentire agli utenti aziendali di concentrarsi più a fondo su ciò che conta davvero per i loro stakeholder. Da un punto di vista architettonico, si tratta di identificare le operazioni che possono essere eliminate del tutto o gestite automaticamente. Richiede una chiara connessione tra le modalità di utilizzo della tecnologia e il suo impatto misurabile sul business.

Una cosa importante da notare sull'automazione con Salesforce: può essere eseguita con una varietà di strumenti, utilizzando serie di competenze programmatiche e dichiarative. Progettare automazioni ben progettate non significa scegliere di creare con un solo strumento di automazione. Si tratta di utilizzare approcci coerenti e prevedibili e di consentire ai team di sviluppare, testare, distribuire e gestire le automazioni progettate. Le automazioni devono assumere la forma più manutenbile e leggibile possibile.

Questa sezione descrive come progettare e rifattorizzare le automazioni per consentire alle aziende di raggiungere gli obiettivi chiave più rapidamente e su larga scala. È possibile migliorare l'architettura delle automazioni in Salesforce concentrandosi sull'efficienza e l'integrità dei dati.

Creare efficienza nelle automazioni non significa ricreare correttamente il business come al solito con le tecnologie Salesforce. Si tratta di comprendere a fondo le metriche chiave e i risultati aziendali di cui i team saranno responsabili per l'incontro o il tracciamento e di fare un passo indietro per vedere le unità funzionali all'interno e in tutto il lavoro che si sta automatizzando. Si tratta di identificare come creare schemi con le automazioni che consentono all'azienda di operare in modo più efficace e rapido, su larga scala.

Una logica di automazione efficiente renderà i sistemi:

  • Più scalabile e utile per l'azienda
  • Più utile per gli utenti
  • Più adattabile e in grado di soddisfare le esigenze aziendali in continua evoluzione

È possibile migliorare l'efficienza delle automazioni tramite la progettazione dei processi e la logica operativa.

La progettazione dei processi prevede la definizione delle modalità di esecuzione del lavoro. Costruire processi realmente efficienti ed efficaci significa che i progetti non si limitano a replicare i metodi di lavoro correnti. È essenziale identificare ed eliminare le fasi inefficaci o poco chiare. I processi ottimizzati dovrebbero creare un valore aziendale misurabile (vedere KPI) senza passaggi inutili. Passaggi poco chiari o non necessari probabilmente creeranno debito tecnico e determineranno automazioni ingestibili.

Spesso, la responsabilità di individuare e documentare i processi aziendali ricadrà sotto la responsabilità di un analista aziendale o anche di un amministratore di sistema. Gli architetti sono responsabili della collaborazione con questi membri del team per assicurarsi che i progetti dei processi siano tecnicamente solidi e ben strutturati. Applicare la propria Knowledge della piattaforma Salesforce il prima possibile aiuterà il team a identificare i processi da semplificare attraverso l'automazione o i processi che devono cambiare per evitare costose personalizzazioni.

Per creare processi ottimizzati per Salesforce, tenere presente quanto segue:

  • Definire accuratamente i processi. È più probabile che i processi con scopi poco chiari o definizioni ambigue vengano interpretati in modo errato in fase di progettazione. Ciò porterà a progetti difettosi basati su presupposti, che determineranno automazioni errate o inefficienti. Assicurarsi che i processi aziendali che si desidera automatizzare soddisfino i seguenti standard:

    • Limitato a una singola funzione specifica (vedere Unità funzionali)
    • Ha output chiaramente definiti e misurabili (vedere Valore aziendale)
    • Ha input e output chiaramente definiti
  • Chiarire le fasi del processo.* Anche se a volte può essere allettante aggiungere ulteriori fasi che "potrebbero essere utili in futuro", questo non è mai un buon approccio. Ogni fase di un'automazione è rilevante per l'esito del processo complessivo. Assicurarsi che ogni fase del processo abbia le seguenti caratteristiche:

    • Esegue un'operazione specifica e granulare (vedere componibile)
    • Obbligatorio per il processo per generare l'output definito (rimuovere tutte le fasi non essenziali)
    • Può essere completato utilizzando un numero minimo di risorse
    • Utilizza i dati di sistema esistenti anziché richiedere gli input dell'utente dove possibile (vedere Coinvolgimento)
    • Fornisce opzioni di input che gli utenti possono comprendere senza dover sapere come funzionano i sistemi sottostanti (vedere utile)

L'elenco di schemi e antischemi riportato di seguito mostra l'aspetto corretto (e scadente) dell'ottimizzazione in un'organizzazione Salesforce. È possibile utilizzarli per convalidare i progetti di automazione prima di crearli o identificare le automazioni che devono essere ottimizzate ulteriormente.

Per ulteriori informazioni sugli strumenti di automazione dei processi disponibili in Salesforce, vedere Strumenti rilevanti per l'automazione.

La logica operativa si occupa dell'efficacia con cui un processo viene tradotto dalla sua progettazione in un'implementazione effettiva. Le automazioni con una forte logica operativa continuano a funzionare bene, indipendentemente dai picchi di volume delle transazioni o dal numero di istanze simultanee in esecuzione. Automazioni logicamente valide aiutano le aziende a scalare più facilmente per operare a livelli di domanda più elevati. La creazione di una forte logica operativa nelle automazioni è direttamente correlata all'affidabilità complessiva del sistema.

Le automazioni che non funzionano in modo efficace offrono esperienze utente e cliente scadenti, causando potenziali perdite di reddito e perdita di Trust dei clienti. Hanno anche costi di manutenzione più elevati e possono diventare colli di bottiglia che ritardano i processi correlati, contribuendo a problemi di prestazioni complessive del sistema.

Per creare una logica operativa efficace nelle automazioni, considerare quanto segue:

  • Assicurarsi che tutti coloro che creano automazioni conoscano il modo giusto per farlo. Scelte di progettazione sbagliate possono essere effettuate con qualsiasi tipo di strumento di automazione. Il codice non è meno soggetto a errori o scelte di implementazione inadeguate rispetto agli strumenti basati sui clic. L'uso di ID riferimento codificati, ad esempio, è un anti-schema che appare sia nel flusso che nel codice. Gli strumenti basati su clic non devono essere visti come una licenza per consentire a chiunque di rilasciare un'automazione in produzione. Ogni membro del team che crea un'automazione deve sapere come crearla nel modo giusto. Per ulteriori informazioni su come definire e applicare standard efficaci nei vari sistemi, vedere gli standard di progettazione.
  • Documentare chiaramente tutti i percorsi di esecuzione. L'aumento dell'utilizzo delle automazioni non solo aumenta i potenziali volumi di dati, ma aumenta anche i contesti di chiamata non pianificata. È necessario capire in che modo è possibile invocare automazioni diverse e assicurarsi che in tutte le automazioni con più punti di ingresso compaiano controlli delle transazioni adeguati (vedere Gestione dei dati). Ad esempio, i flussi schermata non verranno eseguiti con caricamenti di dati in blocco, ma probabilmente verranno eseguiti trigger Apex e flussi attivati (e AutoLaunched). Documentare chiaramente i percorsi di esecuzione pianificati e potenziali per le automazioni è un aspetto chiave per capire quali condizioni logiche sarà necessario soddisfare durante l'implementazione.
  • “Bulkify” tutte le operazioni sui dati (incluso SOQL). Ogni operazione sui dati (inserimento, aggiornamento e così via) deve essere eseguita sulle raccolte. Sempre. Senza eccezioni. Questo è ciò che si intende per operazioni di “bulkification”. Benché la piattaforma possa supportare operazioni sui dati singleton, non è mai consigliabile consentire l'implementazione di schemi singleton.
  • Utilizzare SOSL per operazioni di ricerca. Esiste l'errata convinzione che le operazioni sui dati non possano essere eseguite sui record restituiti tramite SOSL. È vero che DML non può essere invocato direttamente sui risultati SOSL, ma il codice può analizzare i risultati SOSL e creare una raccolta a cui si può fare riferimento nei metodi DML o nelle classi Database. Le differenze principali tra SOSL e SOQL sono i tipi di risultato per ciascuno e il modo in cui rispondono alle ricerche generalizzate o con caratteri jolly. SOSL può funzionare con diversi tipi di sObject (motivo per cui il tipo restituito è diverso) e può gestire ricerche di caratteri jolly e stringhe generalizzate con prestazioni migliori di SOQL.
  • Trattare SOQL come un'operazione dati. Non utilizzare SOQL per trovare i record, ma per perfezionare le operazioni sui dati. Le operazioni SOQL e sui dati possono avere un impatto molto simile sulle prestazioni del database relazionale sottostante. SOQL può anche passare un indicatore DML esplicito che blocca le righe del database in previsione delle operazioni sui dati. Per creare automazioni scalabili, assicurarsi di trattare l'SOQL con una dovuta diligenza simile: non utilizzarlo senza criteri di selezione molto specifici e ben formati, non consentire riferimenti a campi estranei e richiedere un'attenta corrispondenza dei tipi di dati tra i campi e gli input dei filtri nella logica delle istruzioni WHERE. Il codice deve inoltre disporre di controlli appropriati per garantire che una query non venga mai eseguita in contesti non in blocco o in base a criteri di filtro nulli o vuoti.
  • Mantenere le operazioni sincrone strettamente concentrate sul lavoro che aiuta un utente in tempo reale. Durante l'ottimizzazione dei processi, identificare la logica pertinente a ciò che gli utenti devono fare in tempo reale o quasi in tempo reale e a ciò che può essere rinviato in una transazione asincrona (asincrona). Vedere Gestione dei dati per ulteriori considerazioni sulla progettazione delle operazioni di sincronizzazione/asincronismo.

L'elenco di schemi e antischemi riportato di seguito mostra la logica operativa corretta (e scadente) nell'automazione di Salesforce. È possibile utilizzarli per convalidare i progetti di automazione prima di crearli o identificare le automazioni che devono essere ottimizzate ulteriormente.

Per ulteriori informazioni sugli strumenti disponibili in Salesforce che possono aiutare a pianificare la scalabilità, vedere Strumenti rilevanti per l'automazione.

I KPI di automazione misurano l'impatto di un'automazione nel tempo. Senza di loro, non sarà possibile capire se un'automazione sta davvero aggiungendo valore aziendale o creando complessità indesiderata per gli utenti. Ogni automazione creata deve essere collegata a una serie di KPI chiari e misurabili.

I KPI corretti sono definiti da un valore misurabile e da un intervallo di tempo associato. Gli esempi includono:

  • [Numero X] ore lavorative salvate al mese
  • Errori di elaborazione dovuti all'immissione manuale dei dati ridotti di [Y%] alla settimana

Una volta ottenuti KPI chiari e misurabili, è necessario anche capire se e come un'automazione in Salesforce genererà dati rilevanti per la generazione di rapporti rispetto a tali KPI.

L'elenco di schemi e antischemi riportato di seguito mostra l'aspetto dei KPI corretti (e scadenti) quando si tratta di automazioni Salesforce. È possibile utilizzarli per convalidare i KPI esistenti o identificare dove è necessario identificare meglio i KPI prima di crearli.

Per ulteriori informazioni sugli strumenti disponibili in Salesforce per assistenza con gli indicatori di prestazione chiave (KPI), vedere Strumenti pertinenti all'automazione.

La tabella seguente mostra una selezione di schemi da cercare (o creare) nell'organizzazione e di schemi anti-schemi da evitare o a cui destinare la riparazione.

✨ Scopri altri schemi per l'efficienza in Pattern & Anti-Pattern Explorer.

Schemi Anti-schemi
Processo di progettazione Nella propria organizzazione:
- Ogni flusso serve un unico scopo specifico
- Ogni fase esegue un'operazione specifica e granulare
- I flussi sono organizzati in una struttura gerarchica costituita da un flusso principale e da sottoflussi di supporto
- Tutti gli input utente hanno uno scopo chiaro all'interno del flusso
- Agli utenti viene chiesto di fornire dati solo quando non è possibile utilizzare i dati di sistema esistenti
Nella propria organizzazione:
- I flussi servono a più scopi e richiedono input aggiuntivi per fornire contesto
- I flussi richiedono input i cui dati non vengono utilizzati
- Gruppi di fasi correlate contengono funzionalità che si sovrappongono a gruppi di fasi in altri flussi
- I flussi richiedono gli input dell'utente quando è possibile utilizzare i dati memorizzati
In Apex:
- Ogni classe serve un unico scopo specifico
- Ogni metodo esegue un'operazione specifica e granulare
- Tutte le variabili di input hanno uno scopo chiaro all'interno della classe
- L'esecuzione del codice richiede un numero minimo di risorse
In Apex:
- Le classi servono a più scopi
- I metodi eseguono più operazioni o i metodi eseguono operazioni non in linea con lo scopo dichiarato della classe di cui fanno parte
- Le variabili di input non vengono effettivamente utilizzate nei metodi
- I metodi recuperano inutilmente i dati dal database o da sistemi esterni
Logica operativa Nel flusso:
- Nessuna variabile fa riferimento a valori codificati (per tipi di record, utenti, ecc.)
- Tutti i flussi e i processi AutoLaunched utilizzano elementi decisionali e/o di pausa per valutare i criteri di immissione e impedire loop o esecuzioni infinite su grandi volumi di dati
- I flussi (compresi i processi) passano la logica ad Apex in contesti con grandi volumi di dati
- I sottoflussi vengono utilizzati per le sezioni di un processo che devono essere riutilizzate in tutta l'azienda
Nel flusso:
- Le variabili hanno valori codificati
- I flussi (compresi i processi) devono essere disattivati manualmente prima del caricamento in blocco dei dati
- I flussi (compresi i processi) attivano avvisi di "eccezione non gestita"
- Anche i flussi semplici causano regolarmente errori relativi ai limiti del governor
- Porzioni di un flusso vengono ripetute tra i flussi anziché utilizzare i sottoflussi
In Apex:
- Nessuna variabile fa riferimento a valori codificati (per tipi di record, utenti, ecc.)
- Tutti i criteri dei caratteri jolly vengono visualizzati in SOSL
- SOQL è racchiuso in try-catch
- Nessun SOQL viene visualizzato all'interno di un loop
- Le istruzioni SOQL sono selettive, tra cui:
-- nessun utilizzo di confronti LIKE o confronti di testo parziali
-- gli operatori di comparizione utilizzano la logica positiva (cioè INCLUDE, IN) come logica principale o solo logica
-- l'utilizzo di = NULL, != NULL è raro e/o segue sempre un operatore di comparizione positivo
-- non vengono visualizzate istruzioni LIMIT 1
-- nessun utilizzo della parola chiave ALL ROWS
In Apex:
- Le variabili hanno valori codificati
- SOSL è raramente o non costantemente utilizzato per i criteri di selezione dei caratteri jolly
- SOQL non è racchiuso in try-catch
- SOQL viene visualizzato all'interno dei loop
- Le istruzioni SOQL non sono selettive, tra cui:
-- vengono visualizzati i criteri di filtro per Mi piace e caratteri jolly
-- i confronti che utilizzano i criteri NOT, NOT IN vengono utilizzati come operatore principale o unico di confronto
-- = NULL, != NULL vengono utilizzati come operatore principale o unico di confronto
-- Vengono visualizzate le istruzioni LIMIT 1
-- viene utilizzata la parola chiave ALL ROWS
Negli standard di progettazione e nella documentazione:
- I percorsi di esecuzione pianificati e potenziali per le automazioni sono delineati chiaramente
- I casi d'uso per le operazioni sincrone e asincrone all'interno delle automazioni sono delineati chiaramente come parte degli standard di progettazione
Negli standard di progettazione e nella documentazione:
- L'invocazione dell'automazione non è documentata
- I casi d'uso per le operazioni sincrone e asincrone non sono affrontati
KPIs Nella documentazione:
- Gli output per ogni automazione sono misurabili e temporizzati
- Gli stakeholder responsabili sono elencati per ogni KPI
Nella documentazione:
- Non esistono KPI per le automazioni o hanno intervalli di tempo non chiari per le misurazioni
- Esistono KPI senza stakeholder responsabili
All'interno di rapporti e cruscotti digitali:
- Tutte le metriche correlate ai KPI sono incluse in almeno un rapporto o cruscotto digitale
All'interno di rapporti e cruscotti digitali:
- I rapporti KPI non esistono o mancano metriche correlate ad alcuni KPI

L'integrità dei dati riguarda la qualità con cui un sistema mantiene dati precisi e completi. Salesforce Platform mantiene una logica di elaborazione solida progettata per proteggere l'integrità dei dati memorizzati nel database relazionale di una singola organizzazione. Uno dei fondamenti della creazione di automazioni sane è comprendere i comportamenti di integrità dei dati incorporati in Salesforce e assicurarsi che tutti i progetti di automazione siano in linea con (e riconoscano) questi comportamenti.

I più grandi modelli anti-pattern nella progettazione dell'automazione derivano dal mancato riconoscimento dei potenti servizi di integrità e dal mancato utilizzo delle funzionalità standard che sfruttano questi servizi. Per progettare automazioni che proteggano e mantengano l'integrità dei dati è necessario conoscere l'ordine fondamentale dei comportamenti operativi di Salesforce.

Estendendo correttamente l'integrità dei dati nelle automazioni personalizzate, il sistema può:

  • operare su volumi di dati in blocco e ingenti senza intervento manuale,
  • applicare le policy di sicurezza degli utenti quando necessario e passare al contesto di sistema quando necessario,
  • riscontrare errori in fase di esecuzione e seguire percorsi di ripristino o errore prevedibili.

È possibile migliorare l'integrità dei dati nelle automazioni Salesforce attraverso una gestione corretta dei dati e degli errori.

Il primo passo per progettare una gestione corretta dei dati in Salesforce è capire come la piattaforma multitenant gestisce le transazioni. Ciò include la comprensione del comportamento di esecuzione incorporato utilizzato da Salesforce Platform per garantire l'integrità dei dati durante le operazioni sui dati a livello di record. Per ulteriori informazioni sugli impatti di questo comportamento, vedere Manipolazione del database in Nozioni di base sull'architettura Salesforce.

Una cattiva gestione dei dati nelle automazioni può essere uno degli anti-schemi più difficili da identificare e risolvere completamente. La natura ricorsiva e sovrapposta dell'ordine di esecuzione della piattaforma può rendere difficile individuare l'origine dei problemi. La sezione specifica di codice o di flusso che genera un errore fatale o supera i limiti del governor potrebbe non essere la causa principale di un problema di gestione dei dati sottostante.

La conoscenza delle transazioni è fondamentale per creare automazioni che funzionino in modo affidabile e su larga scala con Salesforce. Ciò significa assicurarsi che ogni fase di un'automazione sia progettata con la Knowledge di dove si trova in relazione all'ordine di esecuzione controllato dalla piattaforma, possa svolgere correttamente la sua funzione e trasmetta correttamente le informazioni alla fase successiva.

Indipendentemente dallo strumento di automazione in uso, una corretta consapevolezza delle transazioni segue schemi simili e richiede considerazioni comuni:

  • Si supponga che a ogni automazione venga chiesto di eseguire volumi di dati elevati senza preavviso, in qualsiasi momento. Le automazioni devono avere percorsi che consentano l'esecuzione in batch o in blocco (vedere Scalabilità).
  • Non mescolare le operazioni sui dati di sistema e contesto utente nella stessa transazione.
  • Prenotare le operazioni sui dati di sincronizzazione per i contesti prima e utilizzare le operazioni asincrone per tutte le azioni dopo il contesto.
  • Utilizzare messaggistica e notifiche per evitare di creare esperienze in app che richiederebbero all'utente di attendere i dati in base ai risultati di un'operazione asincrona.

Oltre alla consapevolezza delle transazioni, esiste una seconda dimensione nella gestione dei dati: sapere quando eseguire la logica in diversi contesti di esecuzione. I motivi più comuni per suddividere le automazioni in contesti di esecuzione diversi sono:

  • Operazioni su grandi volumi e/o dati complessi
    • Le operazioni di blocco non garantiscono che un'automazione gestisca correttamente grandi volumi di dati. Se il volume di operazioni sui dati all'interno di un'automazione supera i limiti per transazione, sarà necessario eseguire operazioni sui dati utilizzando funzionalità specifiche per volumi di dati elevati (ad esempio tramite batch Apex o l'API Bulk 2.0). Questi hanno limiti di transazione distinti, adatti a volumi di dati elevati.
    • Le operazioni sui dati che devono attraversare gerarchie di relazioni complesse o eseguire ricalcoli complessi (esclusi i campi formula) tra i record possono facilmente superare i limiti per transazione se eseguite in blocco. Considerare quanto sia "rumoroso" un aggiornamento a un record, in termini di operazioni sui dati correlate o SOQL necessarie per completare le azioni successive nel sistema.
    • I tipi di sObject coinvolti nell'intera catena di un'automazione possono richiedere di suddividere le operazioni sui dati in transazioni separate per evitare errori "DML misti".
  • Logica che deve essere eseguita nel contesto dell'utente o del sistema
    • Salesforce Platform impone condivisione e visibilità nel contesto dell'utente. Se è necessario eseguire operazioni che si estendono oltre i livelli di autorizzazione degli utenti dell'automazione, è necessario assicurarsi che tali operazioni vengano eseguite nel contesto di sistema.
    • Strumenti diversi verranno eseguiti o meno in contesti diversi:
      • Apex verrà eseguito nel contesto di sistema per impostazione predefinita. È possibile controllare se e come i comportamenti Apex applicano le regole di condivisione a livello di utente utilizzando le parole chiave di condivisione in una definizione di classe Apex.
      • Il flusso non ha un singolo comportamento predefinito. Un flusso verrà eseguito nel contesto dell'utente o del sistema in base al modo in cui viene avviato. È possibile imporre la condivisione nel contesto di sistema.
      • I processi (ovvero le automazioni create con Process Builder) vengono eseguiti nel contesto di sistema senza condividere considerazioni. (Nota: Si consiglia di creare automazioni low-code con Flusso.
  • Logica che deve essere eseguita in modo asincrono
    • Operazioni di sistema esterno: le chiamate sincrone o le azioni che accedono a dati esterni non sono incluse in alcun comportamento di ritiro della piattaforma. Per sfruttare questi comportamenti, è necessario inserire le azioni che coinvolgono sistemi esterni in transazioni separate (utilizzando metodi Apex asincroni, percorsi asincroni o azioni invocabili).
    • Evento e messaggistica - Per controllare il flusso di eventi o messaggi correlati alle operazioni sui dati (e sfruttare i comportamenti di ritiro della piattaforma), collocare tutte le azioni correlate alla messaggistica o agli eventi in contesti successivi, utilizzando metodi Apex asincroni.

L'elenco di schemi e antischemi riportato di seguito mostra l'aspetto di una corretta (e scarsa) gestione dei dati nelle automazioni Salesforce. È possibile utilizzarli per convalidare i progetti di automazione prima di crearli o identificare le automazioni che devono essere rifattorizzate per migliorare la gestione dei dati.

Per ulteriori informazioni sugli strumenti disponibili in Salesforce per la gestione dei dati nell'automazione, vedere Strumenti pertinenti all'automazione.

La gestione degli errori è fondamentale per l'integrità dei dati. Una gestione avanzata degli errori aiuta anche il sistema a scalare e invecchiare con maggiore resilienza.

Una gestione errata degli errori nelle automazioni può causare:

  • Incoerenze dei record e altri problemi di integrità dei dati
  • Invio di notifiche imprecise agli utenti e ad altri sistemi
  • Spreco di tempo e risorse per l'elaborazione manuale o ripetuta
  • Mancanza complessiva di Trust in un sistema

La gestione degli errori nelle automazioni richiede di fornire a qualsiasi processo in esecuzione la possibilità di analizzare un errore alla ricerca di informazioni, la logica di accesso su quali dovrebbero essere le fasi successive in base alle informazioni sugli errori e quindi seguire il percorso corretto. Queste funzionalità non devono essere create più e più volte in ogni automazione (è un anti-schema di ottimizzazione). Ogni automazione del sistema dovrebbe invece avere la possibilità di collegarsi ai componenti di gestione degli errori pertinenti.

Per inserire controlli corretti per la gestione degli errori nelle automazioni, porre le seguenti domande:

  • Che cos'è un errore "fatale"?
  • Che cos'è un errore "ripristinabile"?
  • Per le automazioni attivate da azioni dell'utente, come può l'automazione rilevare e informare l'utente degli errori prima di tentare di confermare le modifiche?

Dopo aver deciso come gestire questi errori, è possibile iniziare a creare una gestione efficace degli errori nelle automazioni. L'elenco di schemi e antischemi riportato di seguito mostra l'aspetto di una corretta (e scarsa) gestione degli errori in un'automazione Salesforce. È possibile utilizzarli per convalidare i progetti di automazione prima della creazione o identificare le automazioni che devono essere rifattorizzate per migliorare la gestione degli errori.

Per ulteriori informazioni sugli strumenti disponibili in Salesforce per la gestione degli errori, vedere Strumenti pertinenti all'automazione.

La tabella seguente mostra una selezione di schemi da cercare (o creare) nell'organizzazione e di schemi anti-schemi da evitare o a cui destinare la riparazione.

✨ Scopri altri schemi per l'integrità dei dati in Pattern & Anti-Pattern Explorer.

Schemi Anti-schemi
Gestione dei dati Nel dizionario dei dati:
- Esistono dati a livello di campo e logica di assegnazione delle priorità per tutte le fonti di dati e gli oggetti data lake
- La mappatura dei campi dall'oggetto data lake all'oggetto modello di dati esiste
Nel dizionario dei dati:
- I dati a livello di campo e la logica di assegnazione delle priorità per le fonti di dati e gli oggetti data lake non sono inclusi
- La mappatura dei campi dagli oggetti data lake agli oggetti modello di dati non è inclusa
In Apex:
- Tutte le istruzioni DML sincrone o i metodi delle classi Database vengono eseguiti in contesti di esecuzione precedenti all'attivazione
- Le invocazioni Apex asincrone utilizzano aree di attesa per 'concatenare' DML complessi tra le transazioni
- Batch Apex viene utilizzato esclusivamente per grandi volumi di dati
- @future Apex non viene usato o usato con parsimonia, per chiamate o DML oggetto di sistema
In Apex:
- Le istruzioni DML vengono visualizzate regolarmente nel codice che verrà richiamato nei contesti after trigger
- Apex asincrono è usato raramente
- Le funzioni Apex asincrone vengono utilizzate in modo arbitrario, tra cui:
-- Metodi futuri e Apex in area di attesa vengono utilizzati in modo incoerente o intercambiabile
-- Le operazioni di database non hanno una logica chiara e coerente per passare l'esecuzione ad Apex batch quando necessario
Nel flusso:
- Tutti i flussi avviati nel contesto utente astraggono tutte le transazioni del contesto di sistema ai sottoflussi, che vengono posizionati in modo coerente dopo un elemento Pausa, per creare una nuova transazione
- Sequenze complesse di operazioni sui dati correlate vengono create con Orchestrator (invece di invocare più sottoflussi all'interno di un flusso monolitico)
- Tutti i flussi attivati da record hanno valori ordine trigger compilati
- I flussi che coinvolgono chiamate di sistema esterne o processi di lunga durata utilizzano percorsi asincroni
Nel flusso:
- Grandi flussi monolitici tentano di coordinare sequenze complesse di operazioni sui dati correlate (con o senza sottoflussi)
- I flussi attivati da record non utilizzano affatto gli attributi dell'ordine di attivazione o non utilizzano i valori dell'ordine di attivazione in modo coerente
- I percorsi asincroni non vengono utilizzati in modo coerente o per nulla
Nella propria organizzazione:
- Le regole di riconciliazione per la risoluzione dell'identità seguono la logica di assegnazione delle priorità nel dizionario dei dati
Nella propria organizzazione:
- Le regole di riconciliazione per la risoluzione dell'identità non seguono la logica di assegnazione delle priorità nel dizionario dei dati
Gestione errori In Apex:
- Il codice racchiude tutti i DML, SOQL, callout e altre fasi critiche del processo in blocchi di prova
- Le eccezioni personalizzate vengono utilizzate per creare messaggi di errore avanzati e logica
- In contesti asincroni e in blocco, vengono utilizzati metodi di classe Database anziché DML
- I metodi delle classi database possono essere utilizzati esclusivamente per tutte le operazioni sui dati (anziché DML)
In Apex:
- DML, SOQL, callout o altre fasi critiche del processo non sono racchiuse in blocchi di prova
- Le istruzioni System.debug vengono visualizzate nel codice di produzione (e non vengono commentate)
- Non vengono utilizzati metodi di classe Database
- Le operazioni sui dati vengono eseguite esclusivamente con DML
Nei componenti Web Lightning (LWC):
- JavaScript racchiude tutte le operazioni sui dati e le fasi critiche del processo nei blocchi if ()/else if ()
- Tutte le funzioni @wire utilizzano dati e proprietà di errore fornite dall'API
- Tutte le istruzioni if (error)/else if (error) contengono logica per elaborare gli errori e fornire messaggi informativi
In LWC:
- JavaScript non viene utilizzato in modo coerente se ()/altro se () blocca operazioni sui dati o fasi critiche del processo
- Le funzioni @wire non utilizzano i dati e le proprietà di errore fornite dall'API (o non li utilizzano in modo coerente)
- Se utilizzato, se (errore)/altro se (errore) le istruzioni non contengono effettivamente logica per elaborare gli errori e fornire messaggi di errore utili
In Aura:
- JavaScript racchiude tutte le operazioni sui dati e le fasi cruciali del processo in blocchi try-catch
- All'interno dei blocchi try-catch, Errore JavaScript nativo viene utilizzato nelle istruzioni throw (nessun utilizzo di $A.error())
- Tutta la logica di errore recuperabile viene visualizzata all'interno delle istruzioni di cattura e fornisce messaggi utente chiari
In Aura:
- JavaScript non racchiude in modo coerente le operazioni sui dati e le fasi critiche del processo nei blocchi try-catch
- I componenti utilizzano $A.error()
- La logica di errore recuperabile non viene visualizzata in modo coerente all'interno delle istruzioni di cattura e i messaggi di errore agli utenti non sono chiari
Nel flusso:
- I flussi schermata utilizzano costantemente connettori di errore per mostrare gli errori agli utenti
- I messaggi di errore personalizzati sono configurati per gli errori che verranno visualizzati sullo schermo
- I flussi con operazioni sui dati, chiamate e altre logiche di elaborazione critiche hanno percorsi di errore per tutte le azioni chiave
Nel flusso:
- I flussi non utilizzano i percorsi di errore in modo coerente o per nulla
- I messaggi di errore personalizzati non vengono utilizzati, quindi gli utenti visualizzano il messaggio predefinito "Si è verificato un errore non gestito in questo flusso"

Il concetto di valore aziendale, nel contesto dell'automazione, riguarda la qualità dei processi che creano un impatto positivo misurabile per gli stakeholder aziendali. Idealmente, l'automazione dei processi consente agli utenti di dedicare meno tempo a operazioni ripetitive e di basso valore. Aiuta anche a migliorare l'integrità dei dati eliminando le attività di elaborazione manuali che potrebbero introdurre errori. Proprio come Process Design, l'identificazione e la fornitura di automazioni in grado di generare valore aziendale reale richiedono un lavoro che va oltre le scoperte di base e l'analisi aziendale.

A volte può sembrare che il modo migliore per offrire valore all'azienda sia automatizzare semplicemente ogni processo richiesto da un utente aziendale, nell'ordine in cui appare nel backlog (o nell'area di attesa di biglietteria) o in base a fattori politici dell'organizzazione. Questo può portare a due problemi correlati: costruire automazioni in un ordine non ottimale e costruire completamente automazioni sbagliate. Il primo problema, la scarsa definizione delle priorità, impedisce che i processi di alto valore vengano implementati come dovrebbero, rallentando potenzialmente la crescita. Il secondo problema, la creazione di automazioni errate, non solo ritarda la consegna di automazioni di valore elevato, ma porta anche a tempo perso, costi inutili e maggiore frustrazione tra i team di consegna.

È possibile offrire un valore aziendale maggiore concentrandosi sugli indicatori di prestazione chiave e sulla definizione delle priorità.

StrumentoDescrizioneEfficienzaIntegrità dei datiValore aziendale
Batch ApexRaggruppare i record in batch ed elaborarli in blocchi gestibiliXX
Metodi futuri ApexEseguire metodi Apex in background in modo asincronoXX
Apex Area di attesaAggiungere processi Apex a un'area di attesa e monitorarliXX
Apex SchedulerEseguire classi Apex in modo asincrono a orari specificiXX
ApprovazioniSpecificare i passaggi necessari per approvare i recordXX
Apex asincronoEseguire Apex Code in modo asincronoXX
Azioni automaticheEseguire aggiornamenti di campo, invii di email e altre azioni in backgroundXX
Einstein Next Best ActionMostrare i consigli giusti alle persone giuste al momento giustoXX
Avviso tramite emailCreare e inviare email automaticheXX
Azioni di inoltro al livello superioreSpecificare le azioni automatiche da eseguire per l'inoltro dei casi al livello superioreXX
Aggiornamento di campoAggiornare i valori dei campi in base all'automazioneXX
Flow BuilderCreare automazioni con un'interfaccia "point-and-click"XX
Estensioni flussoAccedere alle variabili memorizzate come input di componenti nei flussiX
Libreria di modelli di flussoUtilizzare i modelli per progettare flussi specifici del settoreXX
Trigger di flussoAutomatizzare processi aziendali complessiX
Azioni invocabiliAggiunta di funzionalità Apex ai flussiXX
OrchestratoreCreare e gestire automazioni a più fasiXX
Messaggio in uscitaInviare informazioni da un processo automatico con conferme e tentativi X
Pubblicazione di eventi piattaforma con il flussoPubblicazione di eventi tramite interazioni utente e automazioniX
Query OptimizerUtilizzare la selettività e gli indici per migliorare le prestazioni di query, rapporti e visualizzazioni elencoXX
Flusso SalesforceCreazione di automazioni dichiarative dei processi con Flow BuilderXX
Invio di notifiche con i flussiInviare messaggi tramite SMS, WhatsApp o Facebook MessengerXX
Invio di notifiche con i processiInviare messaggi tramite SMS, WhatsApp o Facebook MessengerXX
Modificatore SOQL FOR UPDATEBloccare i record per evitare condizioni di gara e problemi di sicurezza del threadX
Strategie BuilderIdentificare i consigli da visualizzare nelle pagine dei recordXX
SottoflussiRidurre la complessità dei flussi tramite il riutilizzoX
Abbonamento agli eventi piattaforma con il flussoRicevi messaggi pubblicati tramite automazioniX
Azioni operazioneDeterminare i dettagli dell'assegnazione dati a un utente da un'automazioneX
RisorsaDescrizioneEfficienzaIntegrità dei datiValore aziendale
Governatori e limiti dell'esecuzione ApexInformazioni su come il motore di runtime Apex impone i limitiXX
Risorse di gestione dei batchCreare, gestire, pianificare e monitorare i processi batchXX
Procedure consigliate per SOQL e SOSLMigliorare le prestazioni delle query delle applicazioni con volumi di dati elevatiX
Modello Design Standards (Standard di progettazione)Creare standard di progettazione per l'organizzazioneXXX
Bulkification dei flussi nelle transazioniFlussi di progettazione da utilizzare per le raccolteXX
Considerazioni sui dati dei flussiInformazioni sui flussi attivati da pianificazione per i dati batchXX
Debug del flussoTestare e risolvere i problemi dei flussiX
Come vengono elaborate le richiesteInformazioni su come Salesforce elabora rapidamente i processi e riduce al minimo gli erroriXX
Modello di foglio di calcolo KPIDeterminare il valore aziendale di una determinata metricaXX
Effettuazione di chiamate a sistemi esterni da azioni invocabiliChiamata di sistemi esterni da un flusso utilizzando ApexX
Operazioni DML misteSapere quali sObject possono essere utilizzati insieme per DML nella stessa transazioneXX
Ordine di esecuzioneInformazioni sull'ordine degli eventi per inserimenti, aggiornamenti e inserimenti con aggiornamentoXX
Domande frequenti sul piano di queryOttimizzare le query che coinvolgono grandi volumi di datiXX
Considerazioni sui flussi attivati da pianificazioneComprendere i comportamenti speciali dei flussi attivati da pianificazioneX
Controllo delle transazioniGenera un punto di salvataggio che specifica lo stato corrente del databaseXX
Cosa accade quando un flusso non riesce?Informazioni sulla gestione degli errori nei flussiXX
Guida alle procedure consigliate per l'automazione dei flussi di lavoroSuggerimenti introduttivi sull'automazione di SalesforceXXX
Utilizzo di query SOQL molto grandiScrittura di query SOQL più efficientiX

Aiutaci a mantenere Salesforce Well-Architected pertinente per te; partecipa al nostro sondaggio per fornire un feedback su questo contenuto e dirci cosa vorresti vedere dopo.