Loading

Erro do Process Builder 'O fluxo não conseguiu acessar o valor porque não foi definido ou atribuído'.

Data da publicação: Sep 7, 2021
Descrição
Um processo que faz uma referência de objeto cruzado falhará quando a chave estrangeira (ou seja, campo de relacionamento) da qual a referência depende não estiver preenchida.

Por exemplo, se um Processo no Contato tiver os critérios '[Contato].Account.Name igual a Acme', esse processo falhará quando acionado em um contato onde a conta está em branco. O erro gerado nos logs de depuração seria 'O fluxo falhou ao acessar o valor de myVariable_current.Account.Name porque não foi definido ou atribuído'.
Resolução
Para evitar esse tipo de erro, use critérios para verificar se o campo de chave estrangeira (também conhecido como relacionamento) é nulo antes de fazer referências de objeto cruzado com base nesse campo.

A ordem dos critérios é importante. A verificação se uma pesquisa não é nula deve ser feita antes de avaliar quaisquer condições que façam uma referência de objeto cruzado nessa pesquisa.

Continuando o exemplo fornecido acima, os critérios do processo devem ser '[Contact].AccountId Is Null False' AND '[Contact].Account.Name é igual a Acme' nessa ordem. A verificação de AccountId sendo nula deve ser antes da referência de objeto cruzado que depende do campo Conta sendo preenchido.


Ao usar "Fórmula avaliada como verdadeira" nos Critérios para Ações de Execução, a fórmula abaixo pode ser usada neste exemplo:

AND (NOT(ISBLANK( [Contact].AccountId )), [Contact].Account.Name = "Acme")
 
Muitos relacionamentos padrão incluem "Id" no nome do campo, o que às vezes causa confusão em relação aos campos que precisam ser verificados quanto a valores nulos. Continuando com o exemplo acima, um erro comum seria tentar verificar se há null em "[Contact].Account.Id", que é uma referência de objeto cruzado para o campo Id na conta e falhará quando a pesquisa de conta estiver em branco. O critério correto seria verificar "Contact].AccountId" (que é a pesquisa de conta no contato). É importante garantir que os critérios verifiquem o próprio campo de pesquisa, em vez de fazer uma referência de objeto cruzado ao campo "Id" em outro objeto.

Conforme mencionado no problema conhecido W-2763830, esta sintaxe de fórmula não funciona ao usar critérios baseados em fórmula e fazer uma referência de objeto cruzado a um campo de lista de seleção (especificamente ao usar as funções TEXT ou ISPICKVAL com a referência de abrangência a essa lista de opções). Se você precisar fazer referência de objeto cruzado a um campo da lista de opções em Critérios do Process Builder, use os critérios baseados na condição. Se você deve usar critérios baseados em fórmulas, use a função CASE ao fazer referências de objeto cruzado a listas de opções.
 

Nota: O erro também ocorrerá se um campo de fórmula que faz referência a uma pesquisa nula for usado como um critério em seu Process Builder.




Veja também:
Solucionar problemas de processos e esta atualização crítica
Vídeo do Salesforce no YouTube sobre este tópico
Número do artigo do Knowledge

000382782

 
Carregando
Salesforce Help | Article