Error "Infracción de la restricción PRIMARY KEY 'PK##0671112'" al realizar la rutina de cierre de fin de año en General Ledger

En este artículo se proporciona una solución para el problema por el que no se puede realizar la rutina de cierre de fin de año en General Ledger en Microsoft Dynamics GP debido al error "PK##0671112" de infracción de la restricción PRIMARY KEY .

Se aplica a: Microsoft Dynamics GP
Número de KB original: 950019

Síntomas

Al intentar realizar la rutina de cierre de fin de año en General Ledger en Microsoft Dynamics GP, recibe el siguiente mensaje de error:

[Microsoft] [Odbc SQL Server Driver][SQL Server]Infracción de la restricción PRIMARY KEY "PK##0671112". No se puede insertar una clave duplicada en el objeto '##0671112'

Causa

Las transacciones de cierre de fin de año contienen una moneda que no está asignada a una cuenta.

Solución

Para resolver este problema, asigne la moneda a la cuenta adecuada. Para ello, siga estos pasos:

  1. Haga que todos los usuarios salgan de Microsoft Dynamics GP.

  2. Restaure una copia de seguridad de la base de datos de la empresa que se realizó antes de intentar realizar la rutina de cierre de fin de año de General Ledger.

  3. Inicie la Consola de administrador de soporte técnico, el Analizador de consultas de Microsoft SQL o SQL Server Management Studio. Para ello, use uno de los métodos siguientes en función del programa que esté usando.

    Método 1: Para SQL Server motor de escritorio

    Si usa SQL Server motor de escritorio (también conocido como MSDE 2000), inicie la Consola de administrador de soporte técnico. Para ello, seleccione Inicio, Todos los programas, Consola de administrador de Microsoft y, después, Consola de administrador de soporte técnico.

    Método 2: para SQL Server 2000

    Si usa SQL Server 2000, inicie el Analizador de consultas SQL. Para ello, seleccione Inicio, Todos los programas, Microsoft SQL Server y, a continuación, Analizador de consultas.

    Método 3: para SQL Server 2005

    Si usa SQL Server 2005, inicie SQL Server Management Studio. Para ello, seleccione Inicio, Todos los programas, Microsoft SQL Server 2005 y, a continuación, seleccione SQL Server Management Studio.

  4. Ejecute el siguiente script en la base de datos de la empresa:

    Select CURNCYID FROM GL20000
    
  5. Anote todas las monedas mostradas en la columna CURNCYID .

  6. Inicie Microsoft Dynamics GP e inicie sesión como usuario 'sa'.

  7. En el menú Tarjetas , seleccione Financiero y, a continuación, seleccione Cuenta.

  8. En el campo Cuenta , escriba el número de cuenta de ganancias retenidas.

  9. Seleccione Moneda.

  10. En la ventana Seleccionar monedas de cuenta, active las casillas id. de moneda que anotó en el paso 5.

  11. Realice la rutina de cierre de fin de año en General Ledger.