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 para el conector de Salesforce. También puede aplicarse a los conectores de Salesforce Service Cloud y ServiceMax.
Todas las entradas de solución de problemas en esta página
-
- Upsert falla para algunos registros: ID externo duplicado
- Actividad de Inserción o Actualización: El campo de ID de registro no se puede mapear
- 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 aparecen como "Incompleto" sin datos de entrada ni de salida
- Las actividades masivas fallan cuando se activan mediante una solicitud de API o SOAP
Pruebas y registro
Si experimenta problemas con el conector de Salesforce, se recomiendan los siguientes pasos de solución de problemas:
-
Asegúrese de que la conexión de Salesforce sea exitosa utilizando el botón Probar en la pantalla de configuración. Si la conexión no es exitosa, el error devuelto puede proporcionar una indicación del problema.
-
Verifique los registros de operaciones para cualquier información escrita durante la ejecución de la operación.
-
Habilite el registro de depuración de operaciones (para agentes en la nube o para agentes privados) para generar archivos de registro y datos adicionales.
-
Si utiliza agentes privados, puede consultar los registros de agentes para obtener más información.
-
Para consideraciones adicionales de solución de problemas, consulte Solución de problemas de operaciones.
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 los esperados porque los datos de origen superan 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 excedente. Esto puede ocurrir cuando la fragmentación no está habilitada, o cuando está habilitada pero no se respeta porque el origen es un conector basado en Connector SDK, como HTTP v2. La fragmentación no es compatible con orígenes basados en SDK, por lo que todos los registros se envían en una sola llamada sin importar el tamaño de fragmento configurado (consulte El fragmentado no se respeta cuando la fuente es un conector basado en SDK).
-
Resolución:
- Habilite la fragmentación en la operación y establezca el tamaño de fragmento en 200 o menos. Para obtener instrucciones, consulte Habilitar fragmentación.
- Confirme 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, verifique que la operación la divida en llamadas de 200 registros o menos. Si el límite sigue superándose a pesar de un tamaño de fragmento correcto, comuníquese con el soporte de Jitterbit.
- Para las actividades masivas de Salesforce, aumente 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 grandes volúmenes de registros.
La fragmentación divide los datos durante la transformación en lugar de al recuperarlos. 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 luego. Para más detalle, consulte información detallada sobre el fragmentado.
Errores de autenticación
La autenticación multifactor impide las conexiones con autenticación básica
- Síntoma: Una conexión que utiliza Basic Auth con el conector de Salesforce, Salesforce Service Cloud o ServiceMax falla en la prueba de conexión, o se conecta pero las operaciones fallan 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 Multi-Factor Authentication for API Logins. Cuando ese permiso está asignado (MFA activo para la cuenta), las conexiones con autenticación básica fallan.
- Resolución:
- En Salesforce, revise el conjunto de permisos asignado al usuario de inicio de sesión de integración del sistema y confirme que Multi-Factor Authentication for API Logins 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, consulte las preguntas frecuentes sobre la autenticación multifactor de Salesforce.
- Si no es posible eliminar la MFA del usuario de integración, cambie la conexión a autenticación OAuth 2.0 de 2 patas.
Note
El uso de OAuth 2.0 de 2 patas requiere la versión 11.59 o posterior del agente. En agentes 12.x, requiere la versión 12.3 o posterior para el conector de Salesforce, y la versión 12.4 o posterior para los conectores de Salesforce Service Cloud y ServiceMax.
Desajuste de Nombres Alternativos del Sujeto del Certificado (SAN)
-
Síntoma: Una conexión de Salesforce a un sandbox o a una organización con Enhanced Domains habilitado 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 de sandbox de Salesforce en sus Nombres Alternativos del Sujeto.
- La casilla de verificación Sandbox en la configuración de la conexión de Salesforce no está correctamente activada.
-
Resolución:
- Inspeccione las entradas SAN del certificado con OpenSSL:
openssl x509 -in cert.crt -text -noout. Confirme que la sección de Nombres Alternativos del Sujeto incluya la URL de MyDomain de Salesforce. - En la configuración de la conexión de Salesforce en Studio, verifique que la casilla de verificación Sandbox esté correctamente configurada para la organización de destino.
- Si la URL de Salesforce no está presente en los SAN, regenere el certificado para incluir el dominio específico.
- Si la misma conexión funciona correctamente en un grupo de agentes en la nube pero falla en un agente privado, la causa puede ser en cambio una extensión SNI faltante en el apretón de manos TLS del agente. Consulte La conexión del sandbox de Salesforce falla con un desajuste de certificado.
- Inspeccione las entradas SAN del certificado con OpenSSL:
Errores de configuración de actividades
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 queda en caché desde la última vez que se configuró la actividad y no se actualiza automáticamente.
- Resolución: Abra la configuración de la actividad y avance por cada paso. Realice al menos un cambio menor (como agregar y luego eliminar un carácter del nombre de la actividad) para forzar la recarga del esquema. Haga clic en Finalizado para guardar la configuración actualizada.
Automap no mapea campos cuando una actividad de Salesforce es el destino de la transformación
- Síntoma: Cuando una actividad de Salesforce (como Inserción o Upsert) se utiliza como destino de una transformación, usar Automap no mapea ningún campo.
- Causa: El esquema de la actividad de Salesforce incluye un nodo raíz adicional por encima de los campos del objeto cuando el esquema se refleja. Este nodo raíz adicional impide que Automap haga coincidir los campos de origen con los campos de destino correctos.
- Resolución:
- En el lienzo de la transformación, ubique el nodo de objeto de nivel superior en el lado de destino (por ejemplo, Account).
- Arrastre el nodo de origen correspondiente para alinearlo manualmente.
- Con los nodos alineados, ejecute Automap de nuevo. Los campos bajo el nodo se mapearán automáticamente.
Actividad de Consulta: Una consulta padre-hijo genera un esquema jerárquico
- Síntoma: Una actividad de Consulta de Salesforce que utiliza una consulta SOQL padre-hijo genera un esquema de respuesta jerárquico. Cuando este esquema se refleja en el lado de 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 de la consulta. Reflejar el esquema de origen en el destino de la transformación conserva esa jerarquía en la salida.
- Resolución:
- Para generar una salida plana, defina un esquema plano en el lado de destino de la transformación en lugar de reflejar el esquema de origen.
- Si se accede a los resultados de la consulta desde un script, los datos ya están disponibles como una estructura plana sin necesidad de configuración adicional.
Errores de escritura de datos
Upsert falla para algunos registros: ID externo duplicado
- Síntoma: Una operación Upsert o Upsert Masivo de Salesforce se completa, pero informa fallos para algunos registros.
- Causa: Varios 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:
- Revise el archivo de fallos en la página Runtime de la Consola de Administración (pestaña Registros de Actividad) para identificar qué registros fallaron.
- Asegúrese de que el campo utilizado como ID externo tenga un valor único para cada registro. Consulte Crear una ID Externa de Salesforce para Jitterbit.
Actividad de Inserción o Actualización: El campo de ID de registro no se puede mapear
- Síntoma: Una transformación incluye un mapeo al campo de ID de registro de Salesforce en una actividad de Inserción o Actualización, pero la operación no utiliza el valor mapeado.
- Causa: El campo de ID de registro de Salesforce no puede contener un mapeo en las actividades de Inserción y Actualización. Salesforce asigna el ID de registro automáticamente al insertar; la actividad de Actualización identifica los registros por su ID de Salesforce existente, que no es un campo de destino mapeable.
- Resolución: Elimine el mapeo al campo de ID de registro de la transformación. Si el objetivo es actualizar un registro específico según su ID de Salesforce, verifique que los datos de origen proporcionen ese ID y que la actividad de Actualización esté configurada para hacer coincidir los registros con base en él.
Actividades de escritura masiva: Se omite el primer registro de datos cuando el origen no tiene fila de encabezado
- Síntoma: Una actividad de escritura masiva de Salesforce (Inserción Masiva, Upsert Masivo, Actualización Masiva, Eliminación Masiva o Eliminación Masiva Dura) se ejecuta sin errores, pero se escriben menos registros de los esperados 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 los datos de origen como la fila de encabezado de columnas. 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úrese 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 el mapeo de campos de la actividad.
- Verifique que las filas de datos comiencen en la segunda fila, inmediatamente después del encabezado.
Los pasos de operación de actividad masiva aparecen como "Incompleto" sin datos de entrada ni de salida
- Síntoma: Al ver un registro de operación que incluye una actividad masiva de Salesforce (Inserción Masiva, Upsert Masivo, Actualización Masiva, Eliminación Masiva o Eliminación Masiva Dura), la entrada de paso de la operación de la actividad masiva muestra un estado de Incompleto y no muestra datos de entrada ni de salida, incluso cuando la operación se completó correctamente y se procesaron los registros.
- Causa: Las actividades masivas de Salesforce no generan datos de entrada y salida de componente en el registro de la operación. El estado Incompleto en el paso de la actividad y la ausencia de datos de entrada y salida son el comportamiento esperado para todas las actividades masivas, independientemente de si el procesamiento tuvo éxito.
- Resolución:
- Para determinar si se procesaron los registros y si se produjeron errores, revise las entradas de texto del registro de la operación para ver mensajes de error o la confirmación de un procesamiento exitoso.
- Para agentes privados, también puede descargar resultados detallados por registro: en la Consola de Administración, vaya a la página Runtime, seleccione la ejecución, abra la pestaña Registros de Actividad y descargue 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 (Consulta Masiva, Actualización Masiva, Inserción Masiva, Upsert Masivo, Eliminación Masiva o Eliminación Masiva Dura) 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 por otros medios.
-
Posible causa: Las operaciones activadas mediante una solicitud de API o SOAP (como un flujo de mensajes salientes de Salesforce) no admiten actividades masivas de Salesforce. En este contexto, el ID de organización no está disponible para el subsistema de carga masiva, lo que provoca el fallo de la restricción de la base de datos durante la inicialización.
- Resolución: Reemplace la actividad masiva por la actividad estándar de Salesforce equivalente en las operaciones que forman parte de una cadena activada por API o SOAP. Por ejemplo, reemplace una Consulta Masiva por una actividad estándar de Consulta, o una Actualización Masiva por una actividad estándar de Actualización. Las actividades estándar funcionan correctamente en este contexto.