Loading

Errore di Process Builder 'Il flusso non è stato in grado di accedere al valore poiché non è stato impostato né assegnato'

Data pubblicazione: Sep 7, 2021
Descrizione

Un processo che esegue un riferimento tra oggetti genera un errore se la chiave esterna (ad esempio un campo di relazione) da cui il riferimento dipende non è popolata.

Ad esempio, se un processo per un referente (Contact) utilizza il criterio '[Contact].Account.Name equals Acme', il processo genererà un errore se attivato per un referente per cui Account è vuoto. L'errore generato in Registri debug è 'Il flusso non è stato in grado di accedere al valore di myVariable_current.Account.Name poiché non è stato impostato né assegnato'.

Risoluzione
Per evitare questo tipo di errore, utilizzare criteri per controllare se il campo chiave esterna (ovvero di relazione) è null prima di creare riferimenti tra oggetti basati su tale campo.

L'ordine dei criteri è rilevante. La verifica che un campo di ricerca non sia null deve essere eseguita prima della valutazione di qualsiasi condizione che esegua un riferimento tra oggetti in tale ricerca.

Riprendendo l'esempio precedente, i criteri del processo dovrebbero essere '[Contact].AccountId Is Null False' AND '[Contact].Account.Name equals Acme' in questo ordine. Il controllo che AccountId non sia null deve avvenire prima che il riferimento tra oggetti basato sul campo Account venga popolato.


Se si utilizza "il valore della formula seguente è true" in Criteri per l'esecuzione delle azioni, per questo esempio è possibile utilizzare la seguente formula:

AND (NOT(ISBLANK( [Contact].AccountId )), [Contact].Account.Name = "Acme")

In molte relazioni standard, il nome del campo include "Id". Ciò talvolta causa confusione in merito al campo o ai campi da controllare per escludere che siano null. Riprendendo l'esempio precedente, un errore frequente è il tentativo di controllare la presenza di un valore null in "[Contact].Account.Id", che è un riferimento tra oggetti al campo Id in Account. Questo genera un errore se il campo di ricerca Account è vuoto. Il criterio corretto controlla "[Contact].AccountId" (il campo di ricerca Account per Contact). È importante assicurarsi che il criterio controlli il campo di ricerca stesso, anziché creare un riferimento tra oggetti al campo "Id" di un altro oggetto.


Come affermato nel Problema noto W-2763830, la sintassi di questa formula non funziona se si utilizza un criterio basato su formula e si crea un riferimento tra oggetti a un campo elenco di selezione (in particolare se si utilizzano le funzioni TEXT o ISPICKVAL con il riferimento spanning a tale elenco di selezione). Se è necessario creare un riferimento tra oggetti a un campo elenco di selezione all'interno di criteri di Process Builder, utilizzare criteri basati su condizione. Se è necessario utilizzare criteri basati su formula, utilizzare la funzione CASE quando si creano riferimenti tra oggetti a elenchi di selezione.
 

Nota: l'errore si verifica anche se un campo di formula che fa riferimento a un campo di ricerca null viene utilizzato come criterio in Process Builder.

 



Vedere anche: 
Risoluzione dei problemi dei processi e questo aggiornamento critico 
Video Salesforce su YouTube su questo argomento
Numero articolo Knowledge

000382782

 
Caricamento
Salesforce Help | Article