Última actualización el 17 de abril de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo resuelve el error FIELD_CUSTOM_VALIDATION_EXCEPTION?

El flujo activado por registros es una forma de automatizar los procesos comerciales. Record-Triggered Flow es una poderosa herramienta para que los administradores y desarrolladores de sistemas implementen procesos comerciales sin escribir código. Sin embargo, un gran poder conlleva una gran responsabilidad : si un usuario comienza a crear un nuevo flujo para cada requisito, o crea flujos sin comprender las limitaciones de Salesforce, entonces, un usuario puede encontrar muchos problemas, ya sea en el futuro o durante la fase de prueba/implementación. .

En mi última publicación Cómo corregir un error de operación DML MIXTO , analicé cómo resolver el error de operación del lenguaje de manipulación de datos mixtos (DML) mediante el uso de una ruta programada. La ruta programada separa las operaciones DML, en los objetos de configuración y no configuración, en el mismo proceso y, por lo tanto, evita incurrir en un error de operación DML mixto.

Este artículo va un paso más allá; analiza otro error común : error FIELD_CUSTOM_VALIDATION_EXCEPTION. El artículo lo ayudará a comprender los siguientes elementos:

  1. Por qué pueden ocurrir errores
  2. Cómo identificar errores (usando un registro de depuración)
  3. Como resolver el problema

Objetivos:

Después de leer este blog, podrá:

  • Comprender qué es el error FIELD_CUSTOM_VALIDATION_ EXCEPTION
  • Resolver error FIELD_CUSTOM_VALIDATION_EXCEPTION
  • y mucho más

Tamara McCleary trabaja como administradora de sistemas en Gurukul on Cloud (GoC). Usan Salesforce para administrar Oportunidades y Cotizaciones, y cada Oportunidad puede tener múltiples Cotizaciones. Cada vez que un cliente acepta una Cotización, todos los demás registros de Cotización relacionados con esa oportunidad deben tener el Estado actualizado a Denegado.

¿Qué es el error FIELD_CUSTOM_VALIDATION_EXCEPTION?

Supongamos que ha creado un flujo activado por registros en el objeto Lead para realizar alguna operación DML. Ahora está actualizando registros de 1K a través del cargador de datos, lo que activa el flujo activado por registro en el objeto de cliente potencial. Si el flujo desencadenado por registro falla en cualquier registro debido a una Regla de validación / Campos obligatorios / Desencadenador de Apex (interviniendo en el medio si tiene alguno), actualmente hace que todo el lote se revierta y encontrará el error FIELD_CUSTOM_VALIDATION_EXCEPTION .

A continuación, le mostraré cómo, si hay una regla de validación definida en un objeto y se cumplen las condiciones de error de validación, un flujo falla y arroja un error roll_back a un usuario.

Antes de comenzar, suponga que hay una regla de validación definida en el objeto de cotización . Establece que el campo Descripción debe completarse, o no puede ser nulo, si el campo Estado , en el Objeto de cotización , se actualiza a Denegado . Suponga también que el campo Descripción, en una de las Cotizaciones, se dejó en blanco.

A la luz de lo anterior, primero, actualicemos la Etapa de oportunidad a Cerrada perdida . Esto activará nuestro Proceso en el Objeto de Oportunidad y actualizará automáticamente el Estado de Cotizaciones relacionado a Denegado .

Esto, a su vez, generará un error ALL_OR_NONE_OPERATION_ROLLED_BACK porque, como se mencionó anteriormente, hay una regla de validación definida en el Objeto de cotización para asegurarse de que, si alguien actualiza el Estado a Denegado, el campo Descripción de la cotización no puede ser nulo.

A continuación , usaremos el correo electrónico de error para identificar la causa raíz de la falla del flujo.

Y luego, finalmente, actualizaremos nuestro flujo, en función de la falla de la causa raíz capturada del registro de depuración, completando el campo Descripción y, por lo tanto, resolviendo el error ALL_OR_NONE_OPERATION_ROLLED_BACK.

requisitos previos

Lea primero este artículo y asegúrese de completar los pasos enumerados Actualizar cotizaciones relacionadas a Denegadas excepto la que fue aceptada .

👉 El correo electrónico de error de falla de flujo que se envía al creador del proceso que está fallando no puede explicar el motivo detrás del error FIELD_CUSTOM_VALIDATION_ EXCEPTION . Actualmente, según el diseño de flujo, si un registro falla en tiempo de ejecución, todo el lote se revertirá.

El motivo del error FIELD_CUSTOM_VALIDATION_EXCEPTION es que actualmente el flujo de Salesforce está diseñado para funcionar solo cuando el encabezado allOrNone es verdadero . En otras palabras, Salesforce Flow revertirá todos los cambios a menos que todos los registros se procesen correctamente.

Para resolver el mismo error en Apex, utiliza el método de clase de la base de datos. Al usar el método, puede especificar si desea o no permitir el procesamiento de registros parciales si se encuentran errores. Puede hacerlo pasando un segundo parámetro booleano adicional. Si especifica falso para este parámetro y si un registro falla, el resto de las operaciones DML aún pueden tener éxito.

 Actualización de la base de Database .update(opp tList, false );

De forma predeterminada, este parámetro allOrNone es true , lo que significa que si al menos un sObject no se puede procesar, todos los sObjects restantes no se procesarán y se generará una excepción para el registro que provoca un error.

Solucionar el error FIELD_CUSTOM_VALIDATION_ EXCEPTION

Para corregir el error ALL_OR_NONE_OPERATION_ROLLED_BACK en un flujo, debemos actualizar el flujo y agregarle el campo Descripción . Realice las siguientes instrucciones para solucionar el error ALL_OR_NONE_OPERATION_ROLLED_BACK en un Flujo:

Paso 1: Clonar flujo existente

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en el nombre del flujo que se modificará. En este caso, cotizaciones relacionadas actualizadas a denegadas .
  4. Haga clic en el botón Guardar como en la parte superior derecha del generador de flujo.
  5. Haga clic en Guardar .

Paso 2: Modifique el elemento Actualizar registros para agregar una descripción

El siguiente paso es modificar la acción Actualizar cotizaciones relacionadas para agregarle el campo Descripción , como se muestra en la siguiente captura de pantalla:

Al final, Tamara's Flow se verá como la siguiente captura de pantalla:

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

  1. Ahora actualice el Estado de cotización a Aceptado . Tenga en cuenta que las Cotizaciones relacionadas son actualizadas por el Flujo.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/04/17/how-to-fix-field_custom_validation_exception-error-2/

Entradas recomendadas