Ao incluir um produto no pedido ou pesquisar produtos, a tela fica carregando por cerca de 1 minuto e depois exibe a mensagem "ORA-01013: o usuário solicitou o cancelamento da operação atual". Apesar do texto, quem cancelou a operação não foi o usuário: o sistema interrompe automaticamente a busca de preço quando ela passa de 60 segundos.
Este artigo trata do caso em que essa demora é causada pela configuração da "Tabela de Origem" nas tabelas de preço.
Quando este erro aparece
"Central de Vendas": ao incluir um produto no pedido.
"Consulta de Produtos": em pesquisas genéricas, como parte da descrição. Basta um produto da lista estar sem preço para a pesquisa inteira falhar. Já a pesquisa de um produto específico que tenha preço funciona normalmente.
O erro só ocorre com parceiros cuja tabela de preço faz parte do círculo ou leva até ele pela origem, e com produtos que não têm preço do tipo "Fixo" nessas tabelas. Produtos com preço do tipo "Percentual" também são afetados, porque o percentual é aplicado sobre o preço da tabela de origem.
Por que acontece
Quando um produto não tem preço na tabela do parceiro, o sistema busca o preço na "Tabela de Origem" da versão vigente dessa tabela. Se também não encontrar lá, segue para a origem da origem, e assim por diante. A busca termina quando chega a uma tabela cuja origem é ela mesma. Se o produto não tiver preço em nenhuma delas, ele vem com preço zero.
O problema acontece quando duas ou mais tabelas apontam uma para a outra, formando um círculo. Por exemplo:
A Tabela A tem como origem a Tabela B.
A Tabela B tem como origem a Tabela A.
Se um produto não tem preço em nenhuma das duas, o sistema fica indo de uma tabela para a outra sem parar e só para quando atinge o limite de 60 segundos. O sistema não impede que esse círculo seja cadastrado.
Como identificar o círculo
Identifique a tabela de preço usada pelo parceiro do pedido.
Acesse a tela "Tabelas de Preços" (Comercial » Arquivo » Tabelas de Preços) e localize essa tabela.
Na aba "Histórico de Atualizações", veja a "Tabela de Origem" da versão vigente, que é a de "Dt. Vigor" mais recente que já está em vigor.
Localize a tabela de origem e repita o passo 3 nela.
Continue seguindo as origens. Se voltar a uma tabela pela qual já passou, as tabelas estão em círculo.
Confira também as versões anteriores: uma origem errada costuma se repetir nas versões seguintes. Se a cadeia terminar em uma tabela cuja origem é ela mesma, não há círculo e o erro tem outra causa. Nesse caso, abra um chamado no Service Desk com o print do erro e o horário em que ele ocorreu.
Como corrigir
O círculo é resultado de um cadastro errado da "Tabela de Origem". A forma de corrigir depende de qual deveria ser a origem da versão afetada.
Se a origem correta for a própria tabela (como nas versões anteriores), não é possível corrigir pela tela. Ao tentar, o sistema exibe a mensagem "ORA-20101: A tabela não pode se originar dela mesma.". Nesse caso, a correção só pode ser feita por intervenção direta no banco de dados.
Se a origem correta for outra tabela, que não leve de volta a esta, a correção pode ser feita pela tela:
Na tela "Tabelas de Preços", localize a tabela que fechou o círculo. Em geral, é a que teve a "Tabela de Origem" alterada por último.
Na aba "Histórico de Atualizações", altere a "Tabela de Origem" de cada versão afetada para a tabela correta.
Salve e inclua o produto novamente.
Importante: os produtos sem preço nessa tabela passam a usar o preço da nova tabela de origem, com o "Percentual %" da versão aplicado, se houver. Se o sistema não permitir alterar uma versão antiga, abra um chamado da mesma forma.
Como evitar
Antes de informar uma "Tabela de Origem", confira se a tabela escolhida não busca preço, direta ou indiretamente, na tabela que você está cadastrando.
O botão "Copiar tabela" e a atualização de preços criam versões novas que repetem a origem da versão anterior. Por isso, uma origem errada se repete nas versões seguintes: corrija assim que identificar o problema.
Comentários
0 comentário
Escreva seu comentário aqui
Por favor, entre para comentar.