Produto: | TOTVS Gestão de Estoque, Compras e Faturamento |
Versões: | 11.82 e posteriores |
Ocorrência: | Violação da chave TXPRDRED ao salvar o cadastro de um novo produto |
Ambiente: | Cadastro de Produto |
Passo a passo: | Ao salvar o cadastro de um novo produto é apresentado a mensagem:
O incidente é apresentado pois o valor atual do código reduzido é menor que o valor máximo encontrado na TPRODUTO para a coligada em questão. Com isso, ao salvar o produto o sistema está tentando gerar um valor de código reduzido automaticamente que já se encontra cadastrado na base de dados. Para igualar os valores do MAX(CODIGOREDUZIDO) – Maior valor encontrado para o código reduzido na coligada - e da sequência atual nos parâmetros do sistema, basta executar a consulta abaixo:
De posse do último código reduzido, será necessário alterar a sequencial atual no parâmetro do sistema. Segue abaixo a imagem de onde deve ser feito a alteração no parâmetro:
Realizando essa configuração, você irá igualar o último valor encontrado na tabela TPRODUTO em relação a GAUTOINC, e a inconsistência não deverá ser mais apresentada novamente. IMPORTANTE Pode ser que mesmo após seguir o procedimento acima, a mensagem continuará a ser apresentada. Neste caso é necessário executar a consulta T-SQL abaixo novamente:
Verificar se o retorno da consulta é = 9999. Veja o exemplo abaixo:
Caso o retorno seja o mesmo da imagem acima, não poderemos afirmar que este é o último código reduzido gerado na tabela para a coligada em questão. Provavelmente em sua base de dados existe mais de 9999 produtos cadastrados com códigos reduzidos maiores que este valor e por isso a mensagem continua sendo apresentada. Entretanto, a consulta T-SQL retorna este valor pois este é o maior número que pode ser gerado de acordo com a máscara definida no parâmetro. Neste exemplo, a máscara é #### (Verificar qual é a máscara definida no seu parâmetro):
Neste caso, é necessário executar a consulta abaixo para verificar o maior código reduzido da coligada.
Feito isso, basta colocar o valor retornado na consulta acima no parâmetro do valor atual do código reduzido para que a mensagem de chave duplicada não seja apresentada. Veja na continuação do exemplo anterior:
Aplicando a alteração no parâmetro:
|
Observações: | Para mais informações:
|