Contexto de negócio (Introdução)
Especificação | |||
Produto | TOTVS Obras e Projetos | Módulo | Projetos |
Requisito1 | Controle de status de integração para movimentos integrados. | Subtarefa1 |
|
Release de Entrega Planejada | Réplica |
| |
País | ( x ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. |
Objetivo
Essa melhoria implementada tem como objetivo resolver ‘gaps’ do processo de envio de movimento através dos processos de Pedido de Material e Pedido de Material extra,
utilizando as mensagens “Request” http://tdn.totvs.com/pages/viewpage.action?pageId=271661028 e “Order” http://tdn.totvs.com/pages/viewpage.action?pageId=271661028
Problema
Os controles de transação para geração de Múltiplos Movimentos não eram corretos, uma vez que o Protheus considera uma transação para cada movimento gerado, já o RM considerava uma única transação para todos os movimentos.
Caso ocorresse erro do segundo movimento em diante, os movimentos executados com sucesso ficavam no Protheus e no RM eram todos apagados. Fazendo com que as bases integradas ficassem inconsistentes.
Um exemplo desse problema é a geração de movimentos por Obra no RM. Nesse cenário já teríamos problema na exclusão desses movimentos, pois o RM entende como somente uma transação, fazendo com que não seja mais possível excluir esses movimentos.
Solução
Apesar de estar no mesmo processo, a geração no movimento foi separada internamente do processo de integração. Assim, caso haja erros de integração, os movimentos e consequentemente todos os cálculos efetuados continuam salvos na base e passíveis de ser somente reenviados para o sistema integrado.
Para esse controle, foi acrescentado um novo status no Fluxo dos Pedidos para que o usuário final visualize os movimentos pendentes de integração.
Ou seja, caso sejam gerados movimentos no RM e algum desses não seja integrado corretamente, o usuário final deverá somente ajustar a inconsistência e reenviar o movimento para integração.
Enquanto esse movimento não for corrigido e reenviado pelo usuário, este ficará com o status: "Em Suprimento/Faturamento com Movimentos não Integrados”.
O processo de geração do pedido e seu fluxo de aprovações se mantiveram da mesma forma.
A melhoria consiste na criação de um status para que seja informado ao usuário se o movimento gerado foi totalmente integrado ou se houveram problemas de integração conforme explicado anteriormente.
Ao ter um pedido pronto para Geração do Movimento, ao acionar o processo para geração do envio, caso o pedido não tenha nenhuma inconsistência, a geração é realizada de forma transparente para o usuário.
Ou seja, o movimento vai ser gerado no sistema integrado e a coluna "status" do anexo de movimento informará ao usuário que aquele movimento foi integrado:
Caso a geração encontre alguma inconsistência da integração, como por exemplo um Local de Estoque que não contém De-Para, vai ser informado um log ao usuário informando qual a inconsistência deverá ser ajustada:
O pedido vai ser gravado na base com toda sua memória de calculo, mas com status de "Em Suprimento/Faturamento com Movimentos não Integrados”, ou seja, ficará aguardando o usuário corrigir as inconsistências encontradas para que seja realizado somente o reenvio do movimento para o sistema integrado:
Após o usuário fazer as correções que neste exemplo é o ajuste do Local de Estoque, basta o usuário executar novamente o processo de Geração de Movimentos para que este seja integrado corretamente:
A exclusão dos movimentos continuam de forma transparente para o usuário, não importando se o movimento já está Integrado ou com status de "Em Suprimento/Faturamento com Movimentos não Integrados", basta executar o processo de "Excluir Movimentos" para que esse movimento seja excluído e o pedido possa sofrer alterações novamente. Caso a exclusão do movimento não ocorra por inconsistências de integração, seguirá o mesmo fluxo de status apresentado anteriormente.
O processo de geração do pedido e seu fluxo de aprovações se mantiveram da mesma forma.
A melhoria consiste na criação de um status para que seja informado ao usuário se o movimento gerado foi totalmente integrado ou se houveram problemas de integração conforme explicado anteriormente.
Ao ter um pedido pronto para Geração do Movimento, ao acionar o processo para geração do envio, caso o pedido não tenha nenhuma inconsistência, a geração é realizada de forma transparente para o usuário.
Ou seja, o movimento vai ser gerado no sistema integrado e a coluna "status" do anexo de movimento informará ao usuário que aquele movimento foi integrado:
Caso a geração encontre alguma inconsistência da integração em qualquer dos movimentos que esteja gerando, irá ser informado um log ao usuário informando qual a inconsistência deverá ser ajustada:
Consequentemente, no anexo de movimentos, o movimento que foi integrado com sucesso aparece como status de "Integrado" e o movimento que ocorreu inconsistência que nesse exemplo, foi de Produto não integrado, fica com status de "Não Integrado" e o pedido com status de "Em Suprimento/Faturamento com Movimentos não Integrados”. Ou seja, aguardando o usuário corrigir a inconsistência para executar novamente o processo de geração para o sistema integrado e aí sim o pedido ficar totalmente integrado:
A exclusão dos movimentos continuam de forma transparente para o usuário, não importando se o movimento já está Integrado ou com status de "Em Suprimento/Faturamento com Movimentos não Integrados", basta executar o processo de "Excluir Movimentos" para que esse movimento seja excluído e o pedido possa sofrer alterações novamente. Caso a exclusão do movimento não ocorra por inconsistências de integração, seguirá o mesmo fluxo de status apresentado anteriormente.
Importante: O parâmetro "Geração do movimento após aprovação" não houve modificação, seguindo o mesmo fluxo dos status de "Integrado" ou "Não Integrado" para o movimento manual ou automático.