Mensaje de error cuando intenta contabilizar transacciones de Contabilidad analítica o guardar un patrón de registro en Microsoft Dynamics GP: "No se puede insertar una clave duplicada en el objeto 'AAGXXXXX'"

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 897280
Síntomas
Al intentar contabilizar transacciones de Contabilidad analítica en Microsoft Dynamics GP, puede aparecer el siguiente mensaje de error:

[Microsoft] [ODBC SQL Server Driver] [SQL Server] Infracción de restricción PRIMARY KEY 'PKAAG30000', no se puede insertar una clave duplicada en el objeto 'AAG30003'

Nota
en este mensaje de error AAG30000 es un marcador de posición de la tabla. La palabra "restricción" es una palabra mal escrita de "restricción".

El mensaje de error real que reciba puede contener una de las siguientes tablas:
  • AAG00103
  • AAG00500
  • AAG00600
  • AAG00601
  • AAG00602
  • AAG00603
  • AAG00400
  • AAG00401
  • AAG00201
  • AAG00310
  • AAG00900
  • AAG00901
  • AAG00902
  • AAG00903
  • AAG10000
  • AAG10001
  • AAG10002
  • AAG10003
  • AAG20000
  • AAG20001
  • AAG20002
  • AAG20003
  • AAG30000
  • AAG30001
  • AAG30002
  • AAG30003
Causa
Este problema se produce porque el siguiente valor disponible (aaRowID) indicado para esta tabla (aaTableID) en la tabla AAG00102 ya se ha utilizado en la tabla correspondiente (o serie de subtablas).

Por ejemplo, la tabla '30000' en la tabla AAG00102 se mire las tablas AAG30000, AAG30001, AAG30002 y AAG30003, así que tenga cuidado de comprobar todas las tablas en la serie de la tabla correspondiente.



Solución
Para evitar este problema, utilice uno de los métodos siguientes a continuación para comparar el valor usado más alto de la tabla de AA (y subtablas) con el siguiente valor disponible que se almacenan en la tabla AAG00102.

Nota: Antes de seguir las instrucciones de este artículo, asegúrese de que tiene una copia de seguridad completa de la base de datos que pueda restaurar si surge algún problema.

Método 1: usar la secuencia de comandos de SQL para actualizar los valores de AAG00102 para la mayoría de las tablas AA

Puede descargar una secuencia de comandos SQL mediante el siguiente vínculo y ejecutarla en SQL Server Management Studio en la base de datos de la compañía actualizar automáticamente el siguiente número disponible que se almacenan en la tabla AAG00102 en comparación a la última utiliza valor en la tabla de Contabilidad analítica. La secuencia de comandos se verá en las siguientes tablas: AAG10000, AAG20000, AAG30000, AAG00201, AAG00400, AAG00401, AAG00500, AAG00600, AAG00900 y AAG00903. Por lo que se estudia la mayoría de las tablas de Contabilidad analítica, pero no todos y no Sub-tablas para una serie. Para obtener la secuencia de comandos, visite el siguiente sitio Web de Microsoft:

https://mbs.Microsoft.com/files/Customer/GP/downloads/servicepacks/AA_Update_AAG00102.SQL

Método 2: método Manual para valor de investigación y actualización en AAG00102 para una tabla de AA a la vez

  1. Abra SQL Server Management Studio. Para ello, haga clic en Inicio, seleccione programas, seleccione Microsoft SQL Server versióny, a continuación, haga clic en SQL Server Management Studio.
  2. En la ventana Conectar a SQL Server , inicie sesión SQL Server Management Studio con la contraseña de sa.
  3. Haga clic en el Nueva consulta icono para abrir una ventana de consulta y copie o escriba el siguiente script en la ventana de consulta. Ejecutar en la base de datos de la empresa.
    select MAX (aaGLHdrID) from AAG30000*/Insert in the appropriate column/table for the aaGLHdrID and AAG30000 placeholders in the script.
  4. Tenga en cuenta los resultados de la consulta que mostrarán el valor más alto que se utilizó por última vez en la tabla. (Si la tabla tiene subtablas, asegúrese de comprobar la mayor última utiliza valor en aquellos también.)
  5. Escriba el siguiente script en la ventana de consulta y ejecutar contra la base de datos Dynamics:
    select * from AAG00102 where CMPANYID = 'nnn'
    Nota: En esta consulta, sustituya el nnn marcador de posición con el Id. Para encontrar el ID de compañía, escriba la consulta siguiente en la ventana de consulta.
    select * from SY01500
    Seleccione la base de datos de DYNAMICS en la lista en la parte superior de la ventana y, a continuación, presione F5.
  6. Compruebe que el valor del campo aaRowID para el valor de aaTableID de 30000 (o tabla) es igual o mayor que el valor que anotó en el paso 4.
  7. Utilice la siguiente secuencia de comandos para actualizar el valor. Para ello, escriba la siguiente secuencia de comandos en la ventana de consulta y, a continuación, presione F5.
    update aag00102 set aaROWID = 'yyyy' where aaTableID = 30000 and CMPANYID = 'zzz'
    Nota: En esta secuencia de comandos, reemplace el aaaa marcador de posición con el valor que anotó en el paso 4. Reemplazar la zzz marcador de posición con el Id. Reemplazar la aaTableID con la tabla adecuada.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 897280 - Última revisión: 10/22/2015 22:33:00 - Revisión: 1.4

Microsoft Dynamics GP 2015, Microsoft Dynamics GP 2013, Microsoft Dynamics GP 2010, Microsoft Dynamics GP 10.0

  • kberrmsg kbmbsmigrate kbbug kbmt KB897280 KbMtes
Comentarios