Sintomas
Ao libertar um lote de faturas A Receber de Contas, o lote é suspenso com a mensagem de sistema 6909. A ardebug irá apresentar a seguinte mensagem de erro:
Violação da restrição da CHAVE PRIMÁRIA "HistDocSlsTax0". Não é possível inserir a chave duplicada no objeto "HistDocSlsTax".
Causa
Existe outra fatura na tabela ardoc com o mesmo número de referência que uma das faturas neste lote. O resultado é que Salomão está a tentar inserir um registo duplicado na tabela HistDocSlsTax.
Solução alternativa
Para contornar este problema, siga estes passos:
-
Localize os registos duplicados. Para tal, execute a seguinte instrução 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
Tenha em atenção <XXXXXX> é um marcador de posição para o número de lote suspenso.Este script devolverá o registo ardoc das duas (ou mais) faturas com o mesmo número de referência.
-
Atualize a fatura no lote suspenso para algo ligeiramente diferente, como adicionar um "A" ao final. Eis um exemplo das instruções de atualização necessárias:
update ardoc set refnbr='01013A' where refnbr='010130' and batnbr='<XXXXXX>'update artran set refnbr='01013A' where refnbr='010130' and batnbr='<XXXXXX>'
Informações adicionais
Quando selecionar um novo número de referência, certifique-se de que o novo número de referência ainda não foi utilizado. Tente também manter o número da fatura com o mesmo comprimento que os outros números de referência.