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

Gran idea o pregunta duradera:

  • ¿Cómo resuelve el error FIELD_INTEGRITY_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 el error FIELD_CUSTOM_VALIDATION_EXCEPTION , analicé cómo resolver el error FIELD_CUSTOM_VALIDATION_EXCEPTION agregando todos los campos obligatorios al elemento de datos de flujo.

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

  1. Por qué pueden ocurrir errores
  2. Cómo identificar errores leyendo el correo electrónico de error de flujo generado por el sistema
  3. Como resolver el problema.

Tamara McCleary trabaja como administradora de sistemas en Gurukul on Cloud (GoC). GoC implementó la gestión de casos hace un año. Tamara tiene un requisito de su gerente de que, tan pronto como se cierre un caso , asigne los casos relacionados al propietario principal del caso.

¿Qué es el error FIELD_INTEGRITY_EXCEPTION?

Un usuario suele encontrar un error FIELD_INTEGRITY_EXCEPTION cuando rellena un campo de búsqueda con el Id incorrecto.

Por ejemplo, al crear un contacto a través del flujo si, en lugar de AccountId , un usuario pasa una ID de registro de Oportunidad , entonces, el usuario encontrará un error FIELD_INTEGRITY_EXCEPTION .

A continuación, le mostraré cómo evitar obtener un error FIELD_INTEGRITY_EXCEPTION al usar Salesforce Flow.

Primero , actualizaré los casos secundarios al pasar la identificación incorrecta (tal vez una identificación de cuenta).

Esto generará un error FIELD_INTEGRITY_EXCEPTION porque solo se le permite pasar un User o QueueID válido para el propietario de un caso.

A continuación , le mostraré cómo identificar la causa raíz del error FIELD_INTEGRITY_EXCEPTION seguido de una forma de resolverlo.

Crear un flujo que genere un error FIELD_INTEGRITY_EXCEPTION

Para resolver este requisito, utilizaremos el Flujo desencadenado por registro después de guardar . Consulte este artículo para comprender por qué estamos utilizando el flujo desencadenado por registro posterior al guardado para este escenario.

Hay 3 pasos para resolver el requisito empresarial de Tamara utilizando el flujo activado por registro después de guardar . Debemos:

Paso 1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione la opción Record-Triggered Flow , haga clic en Create y configure el flujo de la siguiente manera:
    1. Objeto : Caso
    2. Activar el flujo cuando : se crea un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 2: uso del elemento de decisión para verificar el estado del caso

Ahora, usará el elemento Decisión para verificar si el caso está cerrado o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!$Record.IsClosed}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.True}
  5. Cuándo ejecutar el resultado : solo si el registro que activó la ejecución del flujo se actualiza para cumplir con los requisitos de la condición
  6. Haga clic en Listo .

Paso 3: Agregar acción: actualizar registros

El siguiente paso es actualizar el propietario de los casos secundarios, para ello utilizaremos el elemento Actualizar registros .

  1. En Flow Designer, debajo del nodo Cerrado , haga clic en el ícono + y seleccione el elemento Actualizar registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Para obtener información sobre cómo encontrar registros para actualizar y establecer sus valores , seleccione Especificar condiciones para identificar registros y establecer campos individualmente.
  4. Objeto : Caso
  5. Seleccione Se cumplen todas las condiciones (Y) .
  6. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : ID de padre
      2. Operador : Igual
      3. Valor : {!$Record.Id}
  7. Establecer valores de campo para los registros de oportunidad
    1. Fila 1:
      1. Campo : ID de propietario
      2. Valor : {!$Record.AccountId}
  8. Haga clic en Listo .

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

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Introducir etiqueta de flujo   el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 55
  5. Etiqueta de entrevista : Actualizar propietario de caso secundario {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

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

Prueba de concepto

  1. Actualice un registro de caso a cerrado, que tenga al menos un caso secundario.
  2. Una vez que haya terminado, haga clic en el botón Guardar . Boooommmm, encuentra un error FIELD_INTEGRITY_EXCEPTION , como se muestra en la siguiente captura de pantalla:

👉 Como se mencionó anteriormente, el motivo del error es que estamos actualizando incorrectamente la propiedad del registro del caso a un ID de cuenta.

Solucione el error FIELD_INTEGRITY_EXCEPTION

Para corregir el error FIELD_INTEGRITY_EXCEPTION en un flujo, debe pasar la identificación correcta para un campo de búsqueda. modifiquemos el flujo para pasar el valor correcto al campo OwnerId.

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, actualice el propietario del caso secundario .
  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: modificar el elemento de registros de actualización

  1. En Flow Designer, edite el elemento Actualizar casos secundarios para modificar la asignación de OwnerId.
  2. Establecer valores de campo para los registros de oportunidad
    1. Fila 1:
      1. Campo : ID de propietario
      2. Valor : {!$Record.OwnerId}
  3. Haga clic en Listo .


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

Prueba de concepto

  1. Actualice un registro de caso a cerrado, que tenga al menos un caso secundario.
  2. Una vez que haya terminado, haga clic en el botón Guardar .
  3. Tenga en cuenta que los propietarios de casos secundarios se actualizan correctamente mediante 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/18/fix-field_integrity_exception-error/

Entradas recomendadas