Informações Gerais

 

Especificação

Produto

Todos

Módulo

Não se aplica

Segmento Executor

 

Projeto1

M_FRM005

IRM1

PCREQ-9739

Requisito1

PCREQ-9740

Subtarefa1

Não foi possível localizar o servidor Jira para esta macro. Pode ser devido à configuração do Link do Aplicativo.

Chamado2

 

País

(  ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   ( X ) Todos.

Outros

 

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 

Objetivo

Implementar as apis e alterações na camada do EAI para uso com o novo monitor único de integrações. 

 

Definição da Regra de Negócio

Alteração no comportamento da fila do EAI.

Para comportar o novo monitor único de integrações TOTVS, as seguintes alterações devem ser realizadas na camada de EAI:

  • Toda mensagem recebida no EAI, independentemente de estar em  um formato correto ou não, deverá ser gravada na fila de integrações. Hoje somente mensagens em formato válido e que atendam aos requisitos abaixo são gravadas na fila (no contexto Protheus):
    • A empresa e filial contidas no cabeçalho da mensagem única sejam válidas no contexto Protheus;
    • Seja possível atribuir o usuário 'admin' para o processamento da mensagem.

A priorização do retorno dos erros na mensagem deverá ser através da responsemessage da mensagem única. Alguns casos ainda poderão retornar via SoapFault (uma mensagem que não possa ser reconhecida em nenhum protocolo retornará por SoapFault, por compatibilidade do legado, por exemplo). 

Criação de novos Status para as mensagens na fila de Integrações

Novos status deverão ser criados para apresentação no monitor único. São Eles:

  • Received: É o estado inicial de uma mensagem. Apenas chegou no destino, mas não foi sequer identificada como uma mensagem TOTVS. 
  • Recognized: Quando a mensagem foi “parseada” e reconhecida como uma mensagem TOTVS. 
  • Validated: Quando a mensagem foi validada e aceita para seguir o processamento. Algumas validações que colocam a mensagem neste estado são: unicidade do UUID da mensagem e aplicativo de origem da mensagem X mensagens anônimas habilitadas. 
  • Delivering: Indica que a mensagem foi encaminhada pra entrega. Geralmente é o status que indica que a mensagem está na fila. 
  • Delivered: Indica que a mensagem foi enviada para o destino. Não significa que ela foi processada com sucesso. No caso de mensagens assíncronas, o status mudaria para Delivered ao receber a ReceiptMessage do destino.
  • Processed: Indica que a mensagem de negócio (BusinessMessage) foi processada sem erros.  Este status será opcional para mensagens do tipo ResponseMessage e ReceiptMessage.
  • Processing: Indica que a mensagem de negócio (BusinessMessage) está em processamento. Esse status somente ocorrerá nas mensagens de recebimento.
  • Refused: Quando, durante o processo de validação, a mensagem não atende aos critérios. Exemplos: mensagem com UUID existente, mensagem recebida de aplicativo não cadastrado. 
  • Malformed: Quando, na tentativa de “parsear” a mensagem, ela não se apresenta no formato de mensagem TOTVS. 
  • NotDelivered: Quando a mensagem não é enviada ao destino. Os motivos estão relacionados a queda na conexão, erro na transmissão, entre outros. Neste estado, a resposta (ou recibo, no caso de envio assíncrono) não foi gerada pelo destinatário.
  • BusinessError: a mensagem foi enviada e a resposta contém erros.

 

Apesar de alguns dos status não existirem no sistema ou não existirem de maneira física, somente lógica (Delivering correspondendo a 'aguardando execução') a resposta à api deverá retornar algum status válido.

 

 FASE DE INCLUSÃO DA MENSAGEM NA FILA/REPOSITÓRIO

Recebimento/

Envio

Sync/

Async

DescriçãoEstado Monitor

Comportamento

RM

Status Mensagem

RM

Comportamento

 Protheus

Status Mensagem

Protheus

Comportamento

 DataSul

Status Mensagem

DataSul

Comportamento

 Logix

Status

Mensagem

Logix

RECEBIMENTOSync/AsyncInício da gravação da fila/repositórioReceivedEAI da RM recebe a mensagem. Somente mensagens no formato TOTVSMessage (que possui o UUID no cabeçalho) poderão entrar no EAI do RM.A fila de mensagens do RM tem como chave primaria o UUID original da mensagem. Nesse caso, vou precisar recuperar o UUID da mensagem antes de salvar na fila do RM.Por esse motivo, não será possível implementar os estados de "Malformed" e "Recognized".Finalizada com erroO Protheus recebe a mensagem, porém, somente mensagens legíveis para o Protheus (Mensagem única e Totvs Integrator) serão gravadas na fila, pois a mesma depende de controles (abertura de empresa, filial) que devem ser identificadas na mensagem. Desta maneira, os status de Malformed e Recognized não serão implementados.Aguardando execução.    
RECEBIMENTOSync/AsyncReconhecida como uma mensagem TOTVSReconizedNão se aplicaNão se aplicaNão se aplicaNão se aplica    
RECEBIMENTOSync/AsyncSucesso ao executar validaçõesValidateEAI da RM valida mensagem.Verifica integração, verifica mapas. Nesse momento será executado o gatilho customizado para suspender definitivamente a execuçaõ da mensagem [CanSaveQueue]. Em esperaMensagem validada como uma mensagem do EAI Protheus (Mensagem única ou Totvs Integrator) aguadando a execução pelo adapterAguardando processamento    
RECEBIMENTOSync/AsyncErros nas validaçõesRefused Finalizada Refused (status e nome a serem definidos)    
RECEBIMENTOAsyncMensagem de recibo foi enviada para a origem   Não se aplicaNão se aplica    
ENVIOSync/AsyncInício da gravação da filaReceived Finalizada com erroMensagem gravada na filaAguardando execução    
ENVIOSync/AsyncSucesso ao executar validaçõesValidateEAI da RM valida mensagem.Verifica integração, verifica mapas, executa evento CanSaveQueue. Em esperanão se aplicanão se aplica    
ENVIOSync/AsyncErros nas validaçõesRefused Finalizada com erronão se aplicanão se aplica    

Informações RM

  • A mensagem ficará com o status de "Validate" ou "Refused" no término da fase de Inclusão da mensagem da Fila
  • A mensagem nasce que o status de processamento de "Finalizada com erro".

Informações Protheus

  • Uma inclusão de envio na fila do EAI Protheus só é possível se a mensagem for válida. Desta forma, somente o status de Aguardando Execução é esperado.

Status de monitor não implementado no recebimento das mensagens:

STATUSRMProtheus   
Received     
Validate     
Refused     
Processing     
Processed     
BusinessError     
NotDelivered X   
Recognizedx    
MalformedxX   
DeliveringxX   


FASE DE EXECUÇÃO DA MENSAGEM NA FILA/REPOSITÓRIO

Recebimento/

Envio

Sync/

Async

DescriçãoEstado Monitor

Comportamento

RM

Status

Mensagem

RM

Status execução

RM

Comportamento Protheus

Status

Mensagem

Protheus

Comportamento DataSul

Status

Mensagem

DataSul

Comportamento Logix
RECEBIMENTOSync/AsyncInício da execução da mensagem  Em processamento  Em processamento   
RECEBIMENTOSync/AsyncSucesso ao executar validações Refaz novamente algumas validações. Execução de gatilho customizado para impedir a execuçaõ da mensagem naquele momento [CanExcuteQueue].Essa validação ocorre porque o momento de execução da mensagem pode ser diferente do momento de salvar na fila (em caso de mensagens assincronas). Nesse intervalo, mudanças nos cadastro de integração podem ser realizas. Nesse momento o contexto RM (CodColigada, CodFilial) é preparado.       
RECEBIMENTOSyncErro na validaçãoRefused Finalizada com erroSuspended/Error Falhou   
RECEBIMENTOAsyncErro na validaçãoRefused Em esperaSuspended/Error Falhou   
RECEBIMENTOSync/AsyncEnvio da mensagem para processamento pelos adaptersProcessingNesse momento os adapters serão chamados para gravação dos dados no RM.   Em processamento   
RECEBIMENTOSync/AsyncSucesso ao executar a mensagem no RMProcessedAs informações foram salvas corretamente no RMFinalizada com sucessoOk Finalizada.   
RECEBIMENTOSyncErro na execução dos adaptersBusinessErrorAs informações não foram salvas no RM.Alterações devem ser feitas na origem e re-enviadas para o destino (nova mensagem)Finalizada com erroErrorVamos separar o erro de execução do adapter. Hoje não existe diferença entre erro de validação e erro de negócioBusinessError (será criada).   
RECEBIMENTOAsyncErro na execução dos adaptersBusinessErrorAs informações não foram salvas no RM.Porem as mesmas já foram feitas na origem.Em espera Vamos separar o erro de execução do adapter. Hoje não existe diferença entre erro de validação e erro de negócioBusinessError   
RECEBIMENTOAsyncErro ao entregar respostaNotDeliveredOcorreu algum erro ao retornar a resposta da mensagem para a origem. Seja por timeout, erro webServer, rede, etc. Nesse caso a mensagem não poderá ser executada novamente. Portanto, o status de processamento ficará como suspensa.Isso ocorre devido ao problema de não incluir as mensagens de resposta na fila. Deve ser resolvido com a tarefa da implementação do assincronoFinalizada com erroErrorA resposta assíncrona é outra mensagem. A original continua com seu status, e a response ficará com erro.Falhou   
ENVIOSync/AsyncInício da execução da mensagem  Em processamento  Em processamento   
ENVIOSync/AsyncSucesso ao executar validações Refaz novamente algumas validações. Executa evento CanExcuteQueue.       
ENVIOSyncErro na validaçãoRefused Finalizada com erroSuspended/Error falhou   
ENVIOAsyncErro na validaçãoRefused Em esperaSuspended/Error Falhou   
ENVIOSync/AsyncMensagem será enviada para o webService de destinoDeliveringMensagem está a caminho   Em processamento   
ENVIOSync/AsyncSucesso ao ao receber a mensagem de resposta ou reciboDeliveredAs informações foram enviadas para o destino, e o destino retorno a resposta ou o recibo. Mas não garante que foi concluído com sucesso pelo destino ErrorMensagens síncronas retornam com o status do processamento da outra ponta. Mensagens assíncronas, ao receber o recibo assume finalizada.Finalizada ou falhou.   
ENVIOSync/AsyncSucesso com a mensagem de respostaProcessedGravação Ok nas tabelas de De/para Finalizada com sucessOk Finalizada.   
ENVIOSyncErro na mensagem de respostaBusinessErrorOcorreu algum erro no destino. A mensagem de resposta contém algum erroFinalizada com erroError Falhou   
ENVIOAsyncErro na mensagem de respostaBusinessErrorOcorreu algum erro no destino. A mensagem de resposta contém algum erroEm esperaError Falhou   
ENVIOAsyncErro ao enviar a mensagem para o destinoNotDeliveredOcorreu algum erro ao enviar a mensagem para o destino.Seja por timeout, erro webServer, rede, etc.Em esperaError Falhou   
ENVIOSyncErro ao enviar a mensagem para o destinoNotDeliveredOcorreu algum erro ao enviar a mensagem para o destino.Seja por timeout, erro webServer, rede, etc.Finalizada com erroError Falhou   

 

Status de monitor não  implementado no envio das mensagens:

STATUSRMDataSul Proheus Logix 
Received    
Validate    
Refused    
Processing   
Processed    
BusinessError    
NotDelivered    
Recognizedx   
Malformedx   
Delivering    

 

Opcional

Protótipo de Tela

 

<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.

 

Protótipo 01

 

 

 

 

 

 

 

 

 

Fluxo do Processo

 

Não se aplica

Dicionário de Dados

 Não se aplica

  

 

 

Grupo de Perguntas

 

Não se aplica

Consulta Padrão

 

Não se aplica

Estrutura de Menu

 Não se aplica

 

Cadastro de Papéis

Não se aplica


[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.

[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante

[3] Categorias são obrigatórias para os programas FLEX.

[4] Obrigatório quando o projeto for FLEX

[5] Obrigatório quando o projeto for FLEX

[6] Obrigatório quando o projeto for FLEX

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.