Ocorrência: | Ao preparar o Documento de saída o sistema gera erro Primary Key violation in SE1, please contact your administrator on CHKE1NOTA(MATXFUNA.PRX) - Observação: Ocorre inclusive ao utilizar um TES que não gera duplicata visto que as verificações da numeração da nota e série são feitas no início do processamento da geração da nota fiscal, onde são verificados os registros dos livros ficais (SF3), notas canceladas (SF3), notas fiscais de saída (SF2), títulos a receber (SE1) e notas fiscais de entrada (SF1) para verificar se não existem registros com o mesmo número e série. O controle da validação neste momento não pode ser baseado no TES do item, pois no momento da geração da nota fiscal é possível marcar / desmarcar vários itens de pedidos diferentes e com TES diferentes.
|
Conhecimento:
| Primary Key violation in SE1, please contact your administrator on CHKE1NOTA(MATXFUNA.PRX) Erro exibido quando utiliza o Financeiro Compartilhado entre filiais; porém, com movimentos de Saída (contas a receber) Exclusivos Ou seja, Possui "apenas uma SE1" para receber os títulos gerados por "n" Filiais. Chega um momento em que há duplicidade no número dos títulos (pois são gerados cada um de uma Filial). O compartilhamento Nativo do Protheus não causa este problema. Ocorre apenas se o modo de compartilhamento das tabelas é modificado (geralmente na implantação para atender à gestão de negócios) sem considerar a criação das chaves primárias. Há duas opções para que o problema não ocorra: - Alterar o compartilhamento das Tabelas de forma que o Financeiro e o Faturamento estejam compatíveis (ou ambos compartilhados, ou ambos exclusivos).
Se for uma base antiga, já com muitos dados é provável que não seja uma opção viável para sua base.
- Customizar a geração do Prefixo do titulo, de forma que cada Filial gere um prefixo. Assim os títulos são gerados com numeração diferente:
Para utilizar o Financeiro Compartilhado entre filiais, com movimentos de Saída (contas a receber) Exclusivos, é necessário tratar o parâmetro MV_1DUPREF por filial para formação da chave primária com prefixo diferente para que não ocorra erro de chave duplicada na SE1 Para esta alternativa, o tratamento é realizado por uma expressão ADVPL chamada por ExecBlock conforme exemplificado no link: https://www.totvs.com/mktfiles/tdiportais/helponlineprotheus/portuguese/sigafin_integracao_modulos_materiais.htm
Por padrão o conteúdo do MV_1DUPREF é SF2->SERIE sendo uma alternativa alterar para, por exemplo, SF2->F2_FILIAL+F2_SERIE (É necessário avaliar se o número a ser gerado não está já gravado na base de forma a continuar gerando o erro). Este parâmetro é macro executável logo, deve receber uma expressão ADVPL ou um retorno de um rdmake criado chamado por U_FUNCAO() Obs: Havendo dificuldade neste sentido, contate nosso Suporte a ADVPL do Protheus.
|