Ir al contenido principal
Todas las coleccionesIntegración con SalesforceSalesforce FAQ
Error de manejo en la consola del desarrollador
Error de manejo en la consola del desarrollador
Gin Lin avatar
Escrito por Gin Lin
Actualizado hace más de 3 meses

Si ha hecho algunas pruebas, procesos o desencadenadores automatizados en Salesforce, pueden ocurrir errores al usar Salesforce Integration. Este artículo le ayuda a resolver estos errores comunes.


Problema de Apex Testing

Escenario

Al realizar pruebas automatizadas para la organización, si la prueba incluye una llamada HTTP de Cooby, puede ocurrir un error.

Solución

Hay dos métodos para resolver estos errores.

  1. Clase Contexto de Prueba: Pretende que el callout tenga éxito para resolver la ocurrencia de error.

    La clase TestContext contiene métodos para configurar mocks de llamada HTTP durante la ejecución de pruebas.

    • setPackageMock()

      • Propósito: Establece un simulacro de paquete por defecto para las llamadas HTTP cuando se ejecutan pruebas.

      • Uso: Este método debe ser llamado para asegurar que las llamadas HTTP sean simuladas durante la ejecución de la prueba.

    • setMock(HttpCalloutMock mockInstance)

      • Propósito: Establece una instancia simulada específica para las llamadas HTTP cuando se ejecutan pruebas.

      • Parámetros:

        • mockInstance: La instancia de HttpCalloutMock a ser utilizada durante las pruebas.

      • Uso: Utilice este método para especificar un simulacro personalizado para las llamadas HTTP durante las pruebas.

  2. Clase TriggerControl: Desactiva el disparador y evita directamente que se produzca el comportamiento de llamada.

    La clase TriggerControl contiene métodos para gestionar el estado de los disparadores (activándolos o desactivándolos) para diferentes sObjects.

    • disable(String sObjectName)

      • Propósito: Desactiva el disparador para el sObjeto especificado.

      • Parámetros:

        • sObjectName: El nombre del sObject para el cual el disparador debe ser desactivado.

      • Uso: Llama a este método para evitar que un disparador se ejecute para un objeto específico.

    • enable(String sObjectName)

      • Propósito: Activa el disparador para el sObjeto especificado.

      • Parámetros:

        • sObjectName: El nombre del sObject para el cual el disparador debe estar habilitado.

      • Uso: Llama a este método para permitir que un disparador se ejecute para un objeto específico.

    • isDisabled(String sObjectName)

      • Propósito: Comprueba si el disparador del sObject especificado está desactivado.

      • Parámetros:

        • sObjectName: El nombre del sObject a verificar.

      • Devuelve: True si el disparador está desactivado, False en caso contrario.

      • Uso: Utilice este método para verificar el estado de activación de un sObject específico.

    • disableAll()

      • Propósito: Desactiva todos los disparadores.

      • Uso: Llame a este método para evitar que todos los disparadores se ejecuten.

    • enableAll()

      • Proporción: Habilita todos los activadores.

      • Uso: Llama a este método para permitir que se ejecuten todos los disparadores.


Post problema de instalación

Entendiendo la instalación de Post Script

El script de instalación de Post se ejecuta como un usuario especial del sistema que representa nuestro paquete. Esto significa que todas las operaciones realizadas por el script parecen ser realizadas por nuestro paquete.

La ejecución del script de instalación de Post es iniciada por una llamada API del sistema, que impone ciertas limitaciones a las características disponibles de Salesforce durante esta transacción. Algunas de estas limitaciones incluyen:

  • Accediendo a ciertos objetos estándar como Grupo, CollaborationGroup y NetworkMember, etc

  • Uso limitado de los Eventos de Plataforma.

  • Operaciones DML en la configuración de objetos. Las transacciones API no pueden realizar operaciones DML en objetos de configuración y metadatos, tales como crear o modificar roles de usuario, perfiles o configuraciones personalizadas.

  • Activadores y Reglas de flujo de trabajo. Algunos activadores y reglas de flujo de trabajo pueden no ser invocados durante las transacciones API, dependiendo de cómo se estructura la transacción y si respeta el orden de ejecución.

  • Gestión de sesiones. Las transacciones iniciadas por API no mantienen una sesión de usuario del mismo modo que las sesiones interactivas. Esto puede afectar las operaciones basadas en sesión, como mantener el estado a través de múltiples transacciones.

Si alguna de las automatizaciones de su Organización que se activa en los objetos Contacto, Lead o Cooby interactúa con las características anteriores, la actualización de datos podría fallar y recibirá un correo electrónico con mensajes de error.

Contexto especial y desafíos

Es importante tener en cuenta que el script de instalación de Post se ejecuta en el contexto de un usuario especial "fantasma". Este contexto único puede llevar a varios retos:

  • Restricciones de características: Debido a la ejecución del nivel de sistema, algunas características de Salesforce están restringidas, lo que puede no ser el caso cuando los trabajos son ejecutados manualmente por un usuario normal.

  • Diferencias contextuales: El código que se ejecuta perfectamente en un contexto de usuario regular puede fallar durante la ejecución de Post Instalación debido a estas restricciones.

  • Debugging Difficulties: Estos fallos pueden ser difíciles de detectar antes de su lanzamiento e incluso más difíciles de depurar cuando ocurren. Desafortunadamente, no hay forma de ejecutar su código InstallHandler en este contexto de usuario "fantasma".

Escenario

Cooby cambiará extensamente Contact/Lead durante la post-instalación (para permitir que nuestras funciones funcionen correctamente). Si el usuario ha establecido activadores para cuando cambia Contacto/Inicio, se producirá un error en este momento.

Solución

Si nota errores durante la ejecución de la instalación de Post por favor, por favor:

  1. [Required] Comprobar Mensajes de Error: Revise los mensajes de error proporcionados para identificar los problemas específicos.

  2. [Required] Revisar registros de depuración: Analiza las líneas de error para determinar la causa de los errores.

  3. [Opción 1] Lotes de ejecución manual para el mantenimiento de datos de Cooby: guía

  4. [Opción 2] Actualizar o Desactivar Automatización: Desactivar o actualizar temporalmente las condiciones de activación de los procesos de automatización que puedan estar causando estos errores.

Recomendamos comprobar y ajustar temporalmente los procesos de automatización de su órgano si se producen errores. Esto puede implicar revisar y potencialmente actualizar cualquier automatización, disparadores o flujos de trabajo personalizados que puedan entrar en conflicto con las operaciones realizadas por el Post Install Script.


Lotes ejecutados manualmente para mantenimiento de datos de Cooby

Escenario

Debido a que hay un error de post-instalación, Cooby no se ejecutará correctamente, y el usuario no quiere deshabilitar estos activadores.

Paso de Operación

  1. Abrir consola de desarrollador:

    • Inicia sesión en tu Salesforce org.

    • Haga clic en el icono de engranaje en la esquina superior derecha.

    • Seleccione Consola de Desarrollador en el menú desplegable.

  2. Ejecutar los trabajos de mantenimiento:

    • En la Consola de Desarrolladores, haga clic en Depurar en la barra de menú.

    • Seleccione Abrir Ejecuta Anónima Ventana (o presione Ctrl + E).

  3. En la ventana anónima, introduzca el siguiente comando:

    cooby.DataMaintenanceManager.run();

    • Haga clic en Ejecutar para iniciar el trabajo por lotes.

  4. Una vez hecho, significa que ha completado el trabajo por lotes manuales.

Verificando el estado del trabajo por lotes

  1. Navega a los trabajos Apex:

    • Ve a Configurar haciendo clic en el icono de engranaje en la esquina superior derecha y seleccionando Configurar.

    • En el cuadro Búsqueda rápida, escribe Apex Jobs y selecciónalo de entre los resultados.

  2. Supervisar el estado del trabajo:

    • En la página de trabajos de Apex, verás una lista de todos los trabajos de Apex.

    • La columna Estado mostrará el estado actual de su trabajo por lotes (por ejemplo, Cola, Ingresos, Completados o Fallidos).

    • Estamos especialmente interesados en cinco Clases Apex específicas. Algunas de estas clases pueden tener Total Lotes: 0, indicando que no hay nada que cambiar y que ya está todo listo.

Finalización de Manejo y errores

Recibir Notificación por correo electrónico:

  • Una vez que todos los trabajos por lotes se hayan completado, puede recibir una notificación por correo electrónico.

  • Este correo electrónico contendrá detalles sobre cualquier error ocurrido durante la ejecución de los trabajos por lotes.

Si nota cualquier fallo durante el trabajo por lotes, se ejecuta, le informamos de que estos errores están directamente relacionados con los procesos de automatización configurados dentro de su Salesforce org. Para corregir estos errores, puede seguir los pasos siguientes:

  1. Comprobar mensajes de error:

    • Revise los mensajes de error proporcionados en la notificación de correo electrónico o en la página de Trabajos de Apex. Estos mensajes a menudo contienen detalles sobre los procesos específicos de automatización o las condiciones que causaron el error.

  2. Revisar registros de depuración:

    • Navega a Configurar y buscar "Registros de Depuración" en el cuadro de Búsqueda Rápida.

    • Revise los registros para identificar el proceso exacto y las condiciones que desencadenaron los errores.

  3. Actualizar o desactivar Automatización:

    • Una vez que haya identificado el proceso de automatización relevante, puede desactivarlo temporalmente o actualizar sus condiciones de activación para evitar que los errores vuelvan a ocurrir.


Esperamos que este documento le ayude a entender mejor cómo funciona Cooby. Para cualquier duda o duda relacionada con su integración con Salesforce, escríbanos a [email protected]💜

¿Ha quedado contestada tu pregunta?