Solución de problemas del conector de Salesforce en Jitterbit Studio
Descripción general
Este tema proporciona información de solución de problemas específica del conector de Salesforce. También puede aplicarse a Salesforce Service Cloud y los conectores de ServiceMax.
Todas las entradas de solución de problemas en esta página
-
- La operación de actualización o inserción falla para algunos registros: ID externo duplicado
- Actividad de inserción o actualización: El campo de ID de registro no se puede asignar
- Actividades de escritura masiva: Se omite el primer registro de datos cuando el origen no tiene fila de encabezado
- Los pasos de operación de actividad masiva muestran estado "Incomplete" sin datos de entrada o salida
- Las actividades masivas fallan cuando se activan mediante una solicitud de API o SOAP
Pruebas y registro
Si experimentas problemas con el conector de Salesforce, se recomiendan estos pasos de solución de problemas:
-
Asegúrate de que la conexión de Salesforce sea exitosa usando el botón Test en la pantalla de configuración. Si la conexión no es exitosa, el error devuelto puede proporcionar una indicación del problema.
-
Revisa los registros de operación para obtener cualquier información escrita durante la ejecución de la operación.
-
Habilita el registro de depuración de operación (para agentes en la nube o para agentes privados) para generar archivos de registro y datos adicionales.
-
Si utilizas agentes privados, puedes revisar los registros del agente para obtener más información.
-
Para consideraciones adicionales de solución de problemas, consulta Solución de problemas de operación.
Límites de registros y fragmentación
Las operaciones fallan debido a los límites de registros de la API de Salesforce
-
Síntoma: Una actividad estándar de Salesforce (como Upsert) falla o procesa menos registros de lo esperado porque los datos de origen exceden el límite de registros por llamada. La operación puede fallar con:
EXCEEDED_ID_LIMIT: record limit reached. cannot submit more than 200 records into this call -
Causa: Las actividades estándar de Salesforce aceptan un máximo de 200 registros por llamada. Cuando se envían más registros en una sola llamada, Salesforce rechaza el exceso. Esto puede ocurrir de dos formas: la fragmentación no está habilitada, o está habilitada pero el origen no puede respetarla. La fragmentación se respeta solo cuando el origen es un conector nativo. Con cualquier otro origen, como HTTP v2, todos los registros se envían en una sola llamada independientemente del tamaño de fragmento configurado. Consulta La fragmentación requiere un conector nativo como origen.
- Resolución:
- Habilita la fragmentación en la operación y establece el tamaño de fragmento en 200 o menos. Para obtener instrucciones, consulta Habilitar fragmentación.
- Confirma que el tamaño de fragmento se aplique realmente a los datos de origen. Cuando el origen es una carga útil grande producida por otra actividad, verifica que la operación la divida en llamadas de 200 registros o menos. Si el límite se sigue excediendo a pesar de un tamaño de fragmento correcto, contacta con el soporte de Jitterbit.
- Para actividades masivas de Salesforce, aumenta el tamaño de fragmento predeterminado de 200 a un valor mayor, como 10,000, ya que las actividades masivas están diseñadas para manejar volúmenes altos de registros.
La fragmentación divide los datos durante la transformación en lugar de hacerlo en la recuperación. Cuando el origen es una actividad de Salesforce, cada fragmento se escribe en un archivo temporal y los archivos se combinan en el destino final después de procesar todos los fragmentos. Cuando el destino es una actividad de Salesforce, cada fragmento de origen produce un fragmento de destino, con la transformación aplicada por separado a cada uno, y los fragmentos de destino resultantes se combinan posteriormente. Para más detalles, consulta Información detallada sobre fragmentación.
Errores de autenticación
La autenticación multifactor impide conexiones de autenticación básica
- Síntoma: Una conexión que utiliza Autenticación básica con el conector Salesforce, Salesforce Service Cloud o ServiceMax falla en la prueba de conexión, o se conecta pero falla en las operaciones con un error de autenticación.
- Causa: Estos conectores comparten la misma base de código y se autentican en una organización de Salesforce. La autenticación básica requiere una cuenta de Salesforce cuyo conjunto de permisos asignado no incluya el permiso Autenticación multifactor para inicios de sesión de API. Cuando se asigna ese permiso (MFA activo para la cuenta), las conexiones de autenticación básica fallan.
- Resolución:
- En Salesforce, revisa el conjunto de permisos asignado al usuario de inicio de sesión de integración del sistema y confirma que Autenticación multifactor para inicios de sesión de API no esté seleccionado. Los tipos de inicio de sesión de integración del sistema están exentos del requisito de MFA de Salesforce. Para más detalles, consulta las Preguntas frecuentes sobre autenticación multifactor de Salesforce.
- Si no se puede eliminar MFA del usuario de integración, cambia la conexión a autenticación OAuth 2.0 de dos patas.
Nota
El uso de OAuth 2.0 de dos patas requiere la versión del agente 11.59 o posterior. En agentes 12.x, requiere 12.3 o posterior para el conector de Salesforce, y 12.4 o posterior para los conectores de Salesforce Service Cloud y ServiceMax.
Falta de coincidencia del Nombre Alternativo del Sujeto (SAN) del certificado
-
Síntoma: Una conexión de Salesforce a un sandbox u organización con dominios mejorados habilitados falla con:
Certificate for <url> doesn't match any of the subject alternative names -
Posibles causas:
- El certificado no incluye la URL de MyDomain o sandbox de Salesforce en sus Nombres Alternativos del Sujeto.
- La casilla Sandbox en la configuración de conexión de Salesforce no está activada correctamente.
-
Resolución:
- Inspecciona las entradas SAN del certificado usando OpenSSL:
openssl x509 -in cert.crt -text -noout. Confirma que la sección Nombre Alternativo del Sujeto incluya tu URL de MyDomain de Salesforce. - En la configuración de conexión de Salesforce en Studio, verifica que la casilla Sandbox esté correctamente configurada para tu organización de destino.
- Si la URL de Salesforce no está presente en los SAN, regenera el certificado para incluir el dominio específico.
- Si la misma conexión funciona en un grupo de agentes en la nube pero falla en un agente privado, la causa podría ser una extensión SNI faltante en el protocolo de enlace TLS del agente. Consulta La conexión al sandbox de Salesforce falla con falta de coincidencia de certificado.
- Inspecciona las entradas SAN del certificado usando OpenSSL:
La conexión, configuración u operación falla intermitentemente con SERVER_UNAVAILABLE
-
Síntoma: Una prueba de conexión de Salesforce, configuración de actividad u operación falla intermitentemente con:
SERVER_UNAVAILABLE: server temporarily unavailablePor ejemplo, esto puede ocurrir al seleccionar un objeto durante la configuración de la actividad.
-
Posible causa: Salesforce devuelve este código de fallo cuando su propio servidor no puede procesar temporalmente la solicitud; el conector lo reporta con este mensaje genérico en lugar de pasar texto más específico de Salesforce.
- Resolución: Reintenta la prueba de conexión, el paso de configuración u operación, esperando más tiempo entre cada intento si continúa fallando. Si el error persiste u ocurre frecuentemente, consulta Salesforce Trust para verificar si hay un incidente reportado que afecte tu instancia, o contacta al Soporte de Salesforce. Un escenario relacionado se describe en el artículo de Salesforce SERVER_UNAVAILABLE: Too Many Requests Waiting for Connections.
Errores de configuración de actividad
El esquema de datos no incluye campos de Salesforce agregados recientemente
- Síntoma: Un campo agregado recientemente a un objeto de Salesforce no aparece en el esquema de transformación al configurar una actividad de Salesforce.
- Causa: El esquema de datos se almacena en caché desde la última vez que se configuró la actividad y no se actualiza automáticamente.
- Resolución: Abre la configuración de la actividad y avanza a través de cada paso. Realiza al menos un cambio menor (como agregar y eliminar un carácter del nombre de la actividad) para forzar una recarga del esquema. Haz clic en Finalizado para guardar la configuración actualizada.
Automap no asigna campos cuando una actividad de Salesforce es el destino de la transformación
- Síntoma: Cuando una actividad de Salesforce (como Insertar o Actualizar o insertar) se utiliza como destino de una transformación, usar Automap no asigna ningún campo.
- Causa: El esquema de la actividad de Salesforce incluye un nodo raíz adicional encima de los campos del objeto cuando se refleja el esquema. Este nodo raíz adicional impide que automap coincida los campos de origen con los campos de destino correctos.
- Resolución:
- En el lienzo de transformación, localiza el nodo de objeto de nivel superior en el lado del destino (por ejemplo, Cuenta).
- Arrastra el nodo de origen correspondiente para alinearlo manualmente.
- Con los nodos alineados, ejecuta Automap nuevamente. Los campos bajo el nodo se asignarán automáticamente.
Actividad de consulta: La consulta de relación padre-hijo genera un esquema jerárquico
- Síntoma: Una actividad de consulta de Salesforce que utiliza una consulta SOQL de relación padre-hijo genera un esquema de respuesta jerárquico. Cuando este esquema se refleja en el lado del destino de una transformación, la salida es XML jerárquico en lugar de una estructura plana.
- Causa: El esquema jerárquico refleja la relación padre-hijo en la consulta. Reflejar el esquema de origen en el destino de la transformación preserva esa jerarquía en la salida.
- Resolución:
- Para producir una salida plana, define un esquema plano en el lado del destino de la transformación en lugar de reflejar el esquema de origen.
- Si accedes a los resultados de la consulta en un script, los datos ya están disponibles como una estructura plana sin ninguna configuración adicional.
Errores de escritura de datos
Falla de Upsert en algunos registros: ID externo duplicado
- Síntoma: Una operación Upsert o Bulk Upsert de Salesforce se completa pero reporta fallos en algunos registros.
- Causa: Múltiples registros de origen comparten el mismo valor de ID externo. Cuando el ID externo no es único, Salesforce devuelve un error y el upsert falla para esos registros.
- Resolución:
- Revisa el archivo de fallos en la página Runtime de la Consola de Administración (pestaña Activity Logs) para identificar qué registros fallaron.
- Asegúrate de que el campo utilizado como ID externo tenga un valor único para cada registro. Consulta Crear un ID externo de Salesforce para Jitterbit.
Actividad Insert o Update: No se puede asignar el campo Record ID
- Síntoma: Una transformación incluye una asignación al campo Record ID de Salesforce en una actividad Insert o Update, pero la operación no utiliza el valor asignado.
- Causa: El campo Record ID de Salesforce no puede contener una asignación en las actividades Insert y Update. Salesforce asigna el Record ID automáticamente al insertar; la actividad Update identifica registros por su ID de Salesforce existente, que no es un campo de destino asignable.
- Resolución: Elimina la asignación al campo Record ID de la transformación. Si el objetivo es actualizar un registro específico por su ID de Salesforce, verifica que los datos de origen proporcionen ese ID y que la actividad Update esté configurada para coincidir con él.
Actividades de escritura masiva: Primer registro de datos omitido cuando el origen no tiene fila de encabezado
- Síntoma: Una actividad de escritura masiva de Salesforce (Bulk Insert, Bulk Upsert, Bulk Update, Bulk Delete o Bulk Hard Delete) se ejecuta sin error pero se escriben menos registros de lo esperado en Salesforce. Cuando el origen contiene solo un registro de datos, no se escribe ningún registro.
- Causa: Las actividades de escritura masiva de Salesforce siempre tratan la primera fila de datos de origen como la fila de encabezado de columna. Este comportamiento no se puede cambiar. Si el archivo de origen no incluye una fila de encabezado dedicada, el primer registro de datos se consume como encabezado y no se escribe en Salesforce.
- Resolución:
- Asegúrate de que los datos de origen incluyan una fila de encabezado como primera fila. Los valores del encabezado deben coincidir con los nombres de columna definidos en la asignación de campos de la actividad.
- Verifica que las filas de datos comiencen en la segunda fila, inmediatamente después del encabezado.
Los pasos de operación de actividad masiva muestran estado "Incomplete" sin datos de entrada o salida
- Síntoma: Al ver un registro de operación que incluye una actividad masiva de Salesforce (Bulk Insert, Bulk Upsert, Bulk Update, Bulk Delete o Bulk Hard Delete), la entrada del paso de operación de la actividad masiva muestra un estado de Incomplete y no muestra datos de entrada o salida, incluso cuando la operación se completó exitosamente y se procesaron registros.
- Causa: Las actividades masivas de Salesforce no generan datos de entrada y salida de componentes en el registro de operación. El estado Incomplete en el paso de actividad y la ausencia de datos de entrada y salida son comportamiento esperado para todas las actividades masivas, independientemente de si el procesamiento fue exitoso.
- Resolución:
- Para determinar si se procesaron registros y si ocurrieron errores, revisa las entradas de texto en el registro de operación para buscar mensajes de error o confirmación de procesamiento exitoso.
- Para agentes privados, también puedes descargar resultados detallados por registro: en la Consola de Administración, ve a la página Runtime, selecciona la ejecución, abre la pestaña Activity Logs y descarga el archivo de resultados.
Las actividades masivas fallan cuando se activan mediante una solicitud de API o SOAP
-
Síntoma: Una actividad masiva de Salesforce (Bulk Query, Bulk Update, Bulk Insert, Bulk Upsert, Bulk Delete o Bulk Hard Delete) falla inmediatamente durante la inicialización con:
Failed to initialize the operation: Failed to get the operation with OperationID = [ID]. A database exception occurred. The reported error was: ERROR: null value in column "organization_id" of relation "bulkloadinstancetab" violates not-null constraintLa misma actividad masiva se ejecuta sin problemas cuando se activa de forma independiente o a través de otros medios.
-
Causa posible: Las operaciones activadas mediante una solicitud de API o SOAP (como un flujo de mensaje saliente de Salesforce) no admiten actividades masivas de Salesforce. En este contexto, el ID de la organización no está disponible para el subsistema de carga masiva, lo que causa el error de restricción de base de datos durante la inicialización.
- Resolución: Reemplaza la actividad masiva con la actividad estándar de Salesforce equivalente en operaciones que forman parte de una cadena activada por API o SOAP. Por ejemplo, reemplaza una Bulk Query con una actividad estándar de Query, o una Bulk Update con una actividad estándar de Update. Las actividades estándar funcionan correctamente en este contexto.