Es fundamental interpretar el código de forma correcta antes de adaptarlo a tu trabajo y si tdeseas aportar algo puedes dejarlo en los comentarios.
Solución:
Mi más sentido pésame si está leyendo esto, porque significa que está siendo torturado por un mensaje de error extremadamente inútil y vago. Veamos si podemos superar esto sin arrancar demasiado cabello. 🙂
¿Error de implementación o error de DML?
Si buscas en Google “valor duplicado encontrado:
Error DML
Si recibe este error de una operación DML, está de suerte. Las posibles soluciones parecen ser más sencillas. A veces, incluso puede que solo haya uno “
Estas son algunas de las mejores publicaciones para los errores basados en DML:
- Blog de Daniel Sokolowski – “Valor duplicado encontrado duplicados …”
- Foros de desarrolladores – “Excepción: se encontró un valor duplicado:
… “ - Foros de desarrolladores: “Se ha encontrado un valor duplicado: valor duplicado desconocido …”
Básicamente, parece que el problema se reduce a campos con unique
limitaciones. La publicación del blog de Daniel hace un gran trabajo al desglosar el proceso de depuración.
Error de implementación
Si recibe este error al intentar implementar metadatos, las cosas son un poco más difíciles.
La depuración de errores de implementación es casi siempre dolorosa de alguna manera, pero este mensaje de error en particular con sus dos vagas “
Paso uno: identificar el problema
Este paso es fácil de comenzar, pero a veces es difícil de terminar. Eche un vistazo al mensaje de error y le explicaré a qué me refiero.
Error: objects/Opportunity.object(2098,13):duplicate value found: duplicates value on record with id:
Claramente, los metadatos del objeto Opportunity que estoy tratando de implementar están causando un problema. Sin embargo, no empieces a buscar en Google todavía. Hay más para que usted aprenda sobre qué es exactamente lo que está fallando.
Olvídese del “mensaje” de error por un momento y concéntrese en la ubicación del error.
Error: objects/Opportunity.object(2098,13)...
Lo importante aquí es (2098,13)
. Este es el número de línea y columna dentro del Opportunity.object
archivo de metadatos de donde proviene el problema.
Así es como se ve mi archivo cerca de esa línea …
Esto me dice que el error parece estar relacionado específicamente con el StageName
campo de lista de selección que estoy intentando implementar.
Importante: Si este es EXACTAMENTE el problema que tiene, salte hasta el final para ver una posible solución.
Paso dos: aislar el problema
Las implementaciones son cosas engañosas y complicadas con muchas dependencias con las que lidiar. Al depurar errores de metadatos que no están relacionados con el código Apex, simplifique las cosas eliminando todo de su paquete de implementación excepto el componente que le está causando problemas (y sus dependencias directas, por supuesto).
Si sigue recibiendo el error después de hacer esto, entonces ha iniciado con éxito el proceso de aislamiento del problema. En mi caso, puedo intentar aislar aún más las cosas eliminando todo el StageName
campo y volver a intentar mi implementación.
Después de eliminar ese campo, ¡mi implementación finalmente se realiza correctamente! Esto prueba de manera concluyente que algo que estoy impulsando en el StageName
campo está causando el error.
Recuerde, este ejemplo SOLO es relevante para mi situación. Los componentes de metadatos que le están causando problemas probablemente tengan nombres diferentes, sean de diferentes tipos, etc. Este es solo un ejemplo.
Paso tres: comience a excavar
Ahora que he aislado de manera concluyente el problema en un campo particular en un objeto específico, puedo comenzar a investigar más a fondo. A continuación, se muestran las causas posibles más comunes.
Para campos de lista de selección …
Si ha reducido las cosas a un problema con un campo de lista de selección, asegúrese de que su organización de destino no tenga ya un lista de selección inactiva campo con el mismo nombre que uno de los que está intentando implementar.
Si este es el caso, deberá eliminar el valor de la lista de selección. Una vez que haga esto, su implementación debería continuar (hasta que el siguiente error se le ocurra, por supuesto).
Para otros problemas …
Si su problema no está relacionado con un campo de lista de selección, el consenso general parece ser que surgen algunas situaciones extrañas si el seguimiento del historial de campos está habilitado en el objeto que le está causando problemas.
Estas son las mejores soluciones que he encontrado relacionadas con el posible problema del “Seguimiento del historial de campo”.
- DaveS (StackExchange) – “Object Deploy falla con: se encontró un valor duplicado:
… “ - Blog de Michael Welburn: “Error de la API de metadatos de Salesforce.com: valor duplicado en el registro con ID”
- Problemas conocidos en revisión: “La implementación falla y se encuentra un valor duplicado:
… “
Conclusión
Depurar errores de Salesforce nunca es divertido. No es especialmente divertido cuando los mensajes de error son vagos, como los inútiles “valor duplicado encontrado:
Los pasos de la sección “Error de implementación” son útiles para depurar otros tipos de errores relacionados con la implementación que no son de código. Espero que los hayas encontrado útiles. A medida que pasa el tiempo, si aparecen “sabores” adicionales de este error, actualizaré esta respuesta para incluirlos. ¡Buena suerte ahí fuera!
Problema conocido: la implementación falla con un valor duplicado encontrado: valor duplicado en el registro con id: error
Espero que esto pueda ayudar: si se enfrenta a este error para los diseños de página, ¡aquí está la mejor solución!
Solución alternativa:
- Acciones rápidas para Salesforce Classic o Lightning, los botones de las listas relacionadas pueden mostrar duplicados, lo que no debería ser así. (Observe el diseño completo de la página para ver si hay duplicados)
- Eliminarlos y guardarlos del entorno de origen no funciona (los duplicados vuelven a aparecer después de guardar).
- Recupere a través de ant y edite el archivo de diseño de página recuperado para eliminar los duplicados manualmente.
-
Implemente el archivo recuperado y modificado de su entorno local a Target.
Problema conocido: la implementación falla y se encuentra un valor duplicado
Después de muchas horas tratando de buscar todos los problemas mencionados en esta página, y enojándome tanto por la falta de mensajes de error útiles en DX, se me recordó que la configuración de implementación puede dar más información.
El error que estaba obteniendo en DX era solo
N/A duplicate value found:
. The Path se mostraba simplemente como N / A.
Sin embargo, cuando entro en Configuración de implementación en la organización, se muestra el Nombre de la API.
Ahora, creo que sé por qué la ruta mostró N / A en este caso, porque la fuente se bloqueó debido a la duplicación de un informe. Había creado el informe en Carpetas públicas, extraje la fuente, luego moví el informe a una carpeta existente y volví a extraer la fuente. Consulte el número 165 en CLI Github y el problema relacionado. Pude usar la solución alternativa mencionada para arreglar mi fuente y luego implementarla.
Espero que este truco de intentar encontrar el error ayude a otra persona.
Reseñas y valoraciones
Puedes añadir valor a nuestro contenido colaborando tu experiencia en las crónicas.