Contexto de negócio (Introdução)

Informações Gerais

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 liberação de períodos de contrato,
utilizando a mensagem “Order.

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 (cada mensagem) e o RM considerava uma única transação para todos os movimentos/mensagens.
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 liberação para contratos com rateio por município 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 erro 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 de liberaçao de períodos 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 a partir do mesmo processo de integração com Suprimento/Faturamento ou o de cancelamento de liberação.

Enquanto esse movimento não for corrigido e reenviado pelo usuário, este ficará com o status: "Período Liberado com Movimentos não Integrados”.

Definição da Regra de Negócio

O processo "Gerar Integração com Suprimento/Faturamento" 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 todos os movimentos gerados foram integrados ou se houveram problemas de integração, conforme explicado anteriormente.

Ao executar o processo de integração com Suprimento/Faturamento, caso o não tenha nenhuma inconsistência já verificada pelo RM, a geração é realizada de forma transparente para o usuário.
Ou seja, o movimento 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 ou qualquer falha de rede, 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.

No exemplo acima o erro é decorrente do uso de um Local de Estoque não integrado, podendo o usuário fazer a integração do mesmo e executar novamente o processo de integração ou efetuar o cancelamento da liberação do período e fazer nova liberação com Local de Estoque corretamente 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:

O cancelamento da liberação e consequentemente a exclusão dos movimentos continua 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 cancelamento da liberação para que os movimentos sejam excluídos e a liberação cancelada. Caso a exclusão do movimento não ocorra por inconsistências de integração, seguirá o mesmo fluxo de status apresentado anteriormente, apresentando informação de movimentos não integrados.