Mensaje de sistema 6909 - otro proceso ya ha agregado el elemento


Síntomas


Al liberar un lote de facturas de cuentas por cobrar, el lote se suspende con el mensaje de sistema 6909. El ardebug se le proporciona el mensaje de error siguiente:
Infracción de restricción PRIMARY KEY 'HistDocSlsTax0'. No se puede insertar una clave duplicada en el objeto 'HistDocSlsTax'.

Causa


Hay otra factura en la tabla de ardoc con el mismo número de referencia como una de las facturas de este lote. El resultado es que Solomon está intentando insertar un registro duplicado en la tabla HistDocSlsTax.

Solución alternativa


Para evitar este problema, siga estos pasos:
  1. Buscar los registros duplicados. Para ello, ejecute la siguiente instrucción SQL:
    select refnbr, doctype, batnbr, * from ardoc tablea 
    where doctype='IN' and refnbr IN
    (select refnbr from ardoc tableb where doctype='IN' and tablea.refnbr=tableb.refnbr
    and tablea.tstamp<>tableb.tstamp and (tablea.batnbr='<XXXXXX>' OR tableb.batnbr='<XXXXXX>'))
    order by refnbr, batnbr
    Nota < XXXXXX > es un marcador de posición para el número de lote suspendido.

    Esta secuencia de comandos devolverá el ardoc facturas de registro de los dos (o más) con el mismo número de referencia.
  2. Actualizar la factura en el lote suspendido a algo ligeramente distinto, por ejemplo, agregando una "A" al final. Aquí es un ejemplo de las instrucciones de actualización necesarios:
    update ardoc set refnbr='01013A' where refnbr='010130' and batnbr='<XXXXXX>'
    update artran set refnbr='01013A' where refnbr='010130' and batnbr='<XXXXXX>'

Más información


Cuando se selecciona un nuevo número de referencia, asegúrese de que el nuevo número de referencia aún no se ha usado. También intente mantener al número de factura de la misma longitud que los otros números de referencia.