Atenção
Este artigo é um artigo interno e não deve ser divulgado aos clientes! Em caso de dúvidas no procedimento, peça auxílio.
Descrição: Após efetuar o faturamento do pedido o mesmo não sobe para o instore retornando a mensagem O índice e o comprimento devem se referir a um local dentro da cadeia de caracteres. Nome do parâmetro: length
Causa: Este incidente ocorre pois o número do pedido está em duplicidade ou falta informações nas tabelas.
Solução: Para solucionar o incidente, execute o processo abaixo:
1. Caso o pedido seja da modalidade showrooming, verifique nas tabelas LOJA_PEDIDO_ENTREGA_LISTA e LOJA_PEDIDO_ENTREGA se o pedido aparece. Utilize os filtros de ID_PEDIDO_ORIGEM ou PEDIDO;
SELECT * FROM LOJA_PEDIDO_ENTREGA_LISTA WHERE ID_PEDIDO_ORIGEM='XX' SELECT * FROM LOJA_PEDIDO_ENTREGA WHERE ID_PEDIDO_ORIGEM='XX'
1.1 Caso o pedido não seja um showrooming, verifique a tabela LOJA_PEDIDO conforme o comando abaixo:
SELECT * FROM LOJA_PEDIDO WHERE ID_PEDIDO_ORIGEM='XX'
2. Verifique se o campo CODIGO_FILIAL_ORIGEM está correto de acordo com as informações da loja na tabela LOJA_PEDIDO_PGTO E LOJA_PEDIDO_VENDA;
SELECT * FROM LOJA_PEDIDO_PGTO WHERE PEDIDO='XX' SELECT * FROM LOJA_PEDIDO_VENDA WHERE PEDIDO='XX'
2.1 Caso o pedido esteja com o código da filial incorreto e valores diferentes do pedido ou até mesmo uma data anterior, se trata de um pedido diferente e/ou possível reaproveitamento de banco.
3. Neste caso será necessário remover as informações incorretas para que não haja informações duplicadas. Remova as informações duplicadas da tabela em que está duplicado, podendo ser a tabela LOJA_PEDIDO_ENTREGA, LOJA_PEDIDO_ENTREGA_LISTA ou LOJA_PEDIDO_PGTO se for um pedido que não seja showrooming.
BEGIN TRAN DELETE FROM LOJA_PEDIDO_ENTREGA WHERE PEDIDO='XX' DELETE FROM LOJA_PEDIDO_ENTREGA_LISTA WHERE PEDIDO='XX' DELETE FROM LOJA_PEDIDO_PGTO WHERE PEDIDO='XX' ROLLBACK COMMIT
3.1 Após remover será necessário inserir os dados de pagamento no do pedido , é possível efetuar o insert com o comando abaixo, lembrando que os dados devem ser inseridos de acordo com o pagamento do cliente.
INSERT INTO LOJA_PEDIDO_VENDA VALUES ('XX','XX','X','XX','XX','XX','XX',GETDATE()) INSERT INTO LOJA_PEDIDO_PGTO VALUES ('xx','xx','x','x','xx','xx',NULL,NULL,NULL,NULL, 'xx','x',NULL,NULL,'x','x','x',NULL,'x',NULL,'xx', NULL,NULL,'x',NULL,NULL,NULL)
4. Após essa ação, reinicie o serviço do OMS e o pedido será integrado caso não ocorra nenhum outro incidente.