9600 - Recálculo de pedido via WebService ou AçãoSID
Problema: Descrição do Problema: É utilizada uma AçãoSID para integração do ERP com um sistema externo.
Exemplo:
ACAO=SID.PED.GRAVAR
NUMPED=
CODCLI=1
CODREP=10
DATEMI=19/08/2013
CODCPG=002
CIFFOB=C
OBSPED=
RECPED=0
Nesse momento é gerado o pedido 90 no ERP com a condição de pagamento 002.
ACAO=SID.PED.GRAVARPRODUTO
NUMPED=90
SEQIPD=
CODPRO=P001
CODDER=
CODTPR=teste
QTDPED=1
PREUNI=14.00
Nesse momento o sistema grava o produto com valor unitário de 14.00. Esse valor é diferente do valor da tabela de preço, porém está dentro da tolerância. Agora é passado uma ação para trocar a condição de pagamento:
ACAO=SID.PED.GRAVAR
NUMPED=90
CODCLI=1
CODREP=10
DATEMI=19/08/2013
CODCPG=009
CIFFOB=C
OBSPED=
RECPED=0
Neste momento o sistema troca o valor unitário do produto de 14.00 (inserido via SID) para 15.00 (valor da tabela de preço). O parâmetro Buscar valores no recálculo do pedido da tela F070FVE está definido como Não. Via tela padrão do sistema F120GPD essa situação não ocorre.
Rotina/Tela: Geração de Pedidos via SID/WebService.
Solução: Solução 9600: No ERP existe o parâmetro Buscar valores no recálculo do pedido da tela F070FVE para definir se o pedido será ou não recalculado, ou seja, definir no mesmo para que seja apresentado a mensagem ao usuário, porém esse parâmetro não é considerado na geração de pedidos via SID/WebService, para isto, existe o identificador VEN-120RECBV01 que permite definir se deverá buscar os valores ou não.
Foi cerificado que: Ao inserir um pedido através da ação SID.PED.GRAVAR com a condição de pagamento X e inserido um produto com a ação SID.PED.GRAVARPRODUTO passando um valor unitário e uma tabela de preço, após alterar a condição de pagamento para Y através da ação SID.PED.GRAVAR o sistema está atribuindo o preço unitário para o produto o valor da tabela de preço e não o preço unitário passado via regra.
Exemplo:
ACAO=SID.PED.GRAVAR
NUMPED=
CODCLI=1
CODREP=10
DATEMI=19/08/2013
CODCPG=002
CIFFOB=C
OBSPED=
RECPED=0
Nesse momento é gerado o pedido 90 no ERP com a condição de pagamento 002.
ACAO=SID.PED.GRAVARPRODUTO
NUMPED=90
SEQIPD=
CODPRO=P001
CODDER=
CODTPR=teste
QTDPED=1
PREUNI=14.00
Nesse momento o sistema grava o produto com valor unitário de 14.00. Esse valor é diferente do valor da tabela de preço, porém está dentro da tolerância. Agora é passado uma ação para trocar a condição de pagamento:
ACAO=SID.PED.GRAVAR
NUMPED=90
CODCLI=1
CODREP=10
DATEMI=19/08/2013
CODCPG=009
CIFFOB=C
OBSPED=
RECPED=0
Neste momento o sistema troca o valor unitário do produto de 14.00 (inserido via SID) para 15.00 (valor da tabela de preço). O parâmetro Buscar valores no recálculo do pedido da tela F070FVE está definido como Não. Via tela padrão do sistema F120GPD essa situação não ocorre.
Rotina/Tela: Geração de Pedidos via SID/WebService.
Solução: Solução 9600: No ERP existe o parâmetro Buscar valores no recálculo do pedido da tela F070FVE para definir se o pedido será ou não recalculado, ou seja, definir no mesmo para que seja apresentado a mensagem ao usuário, porém esse parâmetro não é considerado na geração de pedidos via SID/WebService, para isto, existe o identificador VEN-120RECBV01 que permite definir se deverá buscar os valores ou não.
Lembrando que, em processos relacionados a pedidos via WebService/AçãoSID o sistema ERP sempre efetua o recálculo do pedido quando ocorre uma alteração do pedido via WebService (neste caso, mesmo que o ERP não disponibilize um WebService/Porta específicos para solicitar o recálculo do pedido, através de uma chamada de alteração do pedido via WebService, por exemplo, e utilizando o identificador de regras indicado acima, é possível fazer recálculo do pedido via WebService e ainda utilizar uma lógica personalizada para efetuar o recálculo).
Importante: O identificador só tem funcionalidade se na tela F070FVE o campo Buscar valores no recálculo do pedido estiver com o valor P-Perguntar.
Importante: O identificador só tem funcionalidade se na tela F070FVE o campo Buscar valores no recálculo do pedido estiver com o valor P-Perguntar.