ERP - Integração Pedidos via WebServices - A operação de execução informada é inserção, no entanto o item de produto de sequência X já existe.
Incidente
Ao ser efetuada a integração de um Pedido via WebService, o pedido não é integrado (ou é integrado de forma parcail, dependendo da configuração da requisição de entrada), mas a seguinte mensagem é retornada para a integração de alguns itens: 'A operação de execução informada é inserção, no entanto o item de produto de sequência X já existe.'
Ao verificar a requisição de entrada de integração, os campos SeqIpd estão sendo registrados todos de forma sequencial, e não estão duplicados na requisição, o que indicaria a passagem de um SeqIpd que já existe no XML de entrada.
Causa
Essa situação ocorre quando um dos produtos presentes no pedido é do tipo M-Montagem (Campo E075PRO.TipPro) e está sendo repassado o parâmetro SeqIpd de forma fixa na requisição.
Solução
Importante
Como descrito na Causa, esta solução está baseada em um cenário onde a integração do pedido possui produtos do tipo M-Montagem (Campo E075PRO.TipPro) e está sendo repassado o parâmetro SeqIpd de forma fixa na requisição.
No que tange a geração de um pedido com um produto do tipo M-Montado, o conceito do ERP é "explodir" os componentes desse produto ao inserir o produto no pedido.
Exemplo abaixo, onde o produto "Monitor" é um produto Montado, com 3 componentes e é adicionado no pedido na tela F120GPD_RVPE - Mercado / Gestão de Vendas / Pedidos / Agrupado:
Então neste cenário acima, a inserção do produto "Monitor" consome 4 SeqIpd do pedido.
Agora, com relação a integração de pedido via WebService, ocorre que quando é passado no WebService o primeiro item como sendo do tipo M-Montado, e o próximo item tem uma sequencia (SeqIpd) fixa definida na requisição, quando o sistema vai inserir o segundo item, vai indicar que a sequencia já existe, porque o sistema "explodiu" o primeiro item e já utilizou as sequencias 2 à 4.
Mesmo caso do exemplo acima, agora executado via MCDebug:
Agora se retirar o SeqIpd do segundo item repassado na requisição, o processamento ocorre normalmente:
Então é necessário fazer a tratativa no processo de integração do pedido.
Siga os passos abaixo para tratar esse tema:
1. Verifique como que estão sendo repassados os produtos e as sequências de produtos na requisição de integração.
2. Efetue os devidos ajustes no processo de integração para que as Sequências de Produtos (SeqIpd) sejam encaminhadas na requisição de forma adequada, conforme o conceito do sistema;
2.1. Se é necessário definir forçadamente o SeqIpd na geração do pedido, então o SeqIpd deve levar em consideração a "explosão" que o sistema faz em um produto do tipo M-Montado. Neste caso, pode haver necessidade de alguma construção de integração personalizada para atender essa necessidade, de forma que o SeqIpd repassado leve em consideração os componentes definidos no Produto M-Montado.
Observação
- A definição dos componentes de um produto Montado pode ser verificada na tela F075CSM_1 - Cadastros / Produtos e Serviços / Composição / Simplificada;
- Os WebServices nativos de exportação de Produtos para o Varejo possibilitam verificar os dados da composição de um Produto Montado e podem ser utilizados para consulta prévia da composição de um Produto de forma que o sistema que fizer a chamada do WebService de gravação de Pedidos possa calcular a quantidade de componentes para pular os SeqIpds adequadamente na integração do Pedido WebServices de Exportação de Produtos para o Varejo: Com.senior.g5.co.int.gs.produtogs, Com.senior.g5.co.int.varejo.produto, Com.senior.g5.co.int.varejo.produtosservicos. Esses WebServices exigem modulos da Proprietária e configurações específicas para que possam ser utilizados. Caso não haja possibilidade de utilização desses WebServices, pode ser criado um WebService Personalizado para atender essa necessidade.