Especificação | |||
Produto | Todos | Módulo | Não se aplica |
Segmento Executor |
| ||
Projeto1 | M_FRM005 | IRM1 | PCREQ-9739 |
Requisito1 | PCREQ-9740 | Subtarefa1 |
|
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).
Implementar as apis e alterações na camada do EAI para uso com o novo monitor único de integrações.
Para comportar o novo monitor único de integrações TOTVS, as seguintes alterações devem ser realizadas na camada de EAI:
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).
Novos status deverão ser criados para apresentação no monitor único. São Eles:
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ção | Estado Monitor | Comportamento RM | Status Mensagem RM | Comportamento Protheus | Status Mensagem Protheus | Comportamento DataSul | Status Mensagem DataSul | Comportamento Logix | Status Mensagem Logix |
---|---|---|---|---|---|---|---|---|---|---|---|
RECEBIMENTO | Sync/Async | Início da gravação da fila/repositório | Received | EAI 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 erro | O 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. | ||||
RECEBIMENTO | Sync/Async | Reconhecida como uma mensagem TOTVS | Reconized | Não se aplica | Não se aplica | Não se aplica | Não se aplica | ||||
RECEBIMENTO | Sync/Async | Sucesso ao executar validações | Validate | EAI 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 espera | Mensagem validada como uma mensagem do EAI Protheus (Mensagem única ou Totvs Integrator) aguadando a execução pelo adapter | Aguardando processamento | ||||
RECEBIMENTO | Sync/Async | Erros nas validações | Refused | Finalizada | Refused (status e nome a serem definidos) | ||||||
RECEBIMENTO | Async | Mensagem de recibo foi enviada para a origem | Não se aplica | Não se aplica | |||||||
ENVIO | Sync/Async | Início da gravação da fila | Received | Finalizada com erro | Mensagem gravada na fila | Aguardando execução | |||||
ENVIO | Sync/Async | Sucesso ao executar validações | Validate | EAI da RM valida mensagem.Verifica integração, verifica mapas, executa evento CanSaveQueue. | Em espera | não se aplica | não se aplica | ||||
ENVIO | Sync/Async | Erros nas validações | Refused | Finalizada com erro | não se aplica | não se aplica |
Informações RM
Informações Protheus
Status de monitor não implementado no recebimento das mensagens:
STATUS | RM | Protheus | |||
---|---|---|---|---|---|
Received | |||||
Validate | |||||
Refused | |||||
Processing | |||||
Processed | |||||
BusinessError | |||||
NotDelivered | X | ||||
Recognized | x | ||||
Malformed | x | X | |||
Delivering | x | X |
FASE DE EXECUÇÃO DA MENSAGEM NA FILA/REPOSITÓRIO
Recebimento/ Envio | Sync/ Async | Descrição | Estado Monitor | Comportamento RM | Status Mensagem RM | Status execução RM | Comportamento Protheus | Status Mensagem Protheus | Comportamento DataSul | Status Mensagem DataSul | Comportamento Logix |
---|---|---|---|---|---|---|---|---|---|---|---|
RECEBIMENTO | Sync/Async | Início da execução da mensagem | Em processamento | Em processamento | |||||||
RECEBIMENTO | Sync/Async | Sucesso 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. | ||||||||
RECEBIMENTO | Sync | Erro na validação | Refused | Finalizada com erro | Suspended/Error | Falhou | |||||
RECEBIMENTO | Async | Erro na validação | Refused | Em espera | Suspended/Error | Falhou | |||||
RECEBIMENTO | Sync/Async | Envio da mensagem para processamento pelos adapters | Processing | Nesse momento os adapters serão chamados para gravação dos dados no RM. | Em processamento | ||||||
RECEBIMENTO | Sync/Async | Sucesso ao executar a mensagem no RM | Processed | As informações foram salvas corretamente no RM | Finalizada com sucesso | Ok | Finalizada. | ||||
RECEBIMENTO | Sync | Erro na execução dos adapters | BusinessError | As 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 erro | Error | Vamos separar o erro de execução do adapter. Hoje não existe diferença entre erro de validação e erro de negócio | BusinessError (será criada). | |||
RECEBIMENTO | Async | Erro na execução dos adapters | BusinessError | As 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ócio | BusinessError | ||||
RECEBIMENTO | Async | Erro ao entregar resposta | NotDelivered | Ocorreu 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 assincrono | Finalizada com erro | Error | A resposta assíncrona é outra mensagem. A original continua com seu status, e a response ficará com erro. | Falhou | |||
ENVIO | Sync/Async | Início da execução da mensagem | Em processamento | Em processamento | |||||||
ENVIO | Sync/Async | Sucesso ao executar validações | Refaz novamente algumas validações. Executa evento CanExcuteQueue. | ||||||||
ENVIO | Sync | Erro na validação | Refused | Finalizada com erro | Suspended/Error | falhou | |||||
ENVIO | Async | Erro na validação | Refused | Em espera | Suspended/Error | Falhou | |||||
ENVIO | Sync/Async | Mensagem será enviada para o webService de destino | Delivering | Mensagem está a caminho | Em processamento | ||||||
ENVIO | Sync/Async | Sucesso ao ao receber a mensagem de resposta ou recibo | Delivered | As 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 | Error | Mensagens síncronas retornam com o status do processamento da outra ponta. Mensagens assíncronas, ao receber o recibo assume finalizada. | Finalizada ou falhou. | ||||
ENVIO | Sync/Async | Sucesso com a mensagem de resposta | Processed | Gravação Ok nas tabelas de De/para | Finalizada com sucess | Ok | Finalizada. | ||||
ENVIO | Sync | Erro na mensagem de resposta | BusinessError | Ocorreu algum erro no destino. A mensagem de resposta contém algum erro | Finalizada com erro | Error | Falhou | ||||
ENVIO | Async | Erro na mensagem de resposta | BusinessError | Ocorreu algum erro no destino. A mensagem de resposta contém algum erro | Em espera | Error | Falhou | ||||
ENVIO | Async | Erro ao enviar a mensagem para o destino | NotDelivered | Ocorreu algum erro ao enviar a mensagem para o destino.Seja por timeout, erro webServer, rede, etc. | Em espera | Error | Falhou | ||||
ENVIO | Sync | Erro ao enviar a mensagem para o destino | NotDelivered | Ocorreu algum erro ao enviar a mensagem para o destino.Seja por timeout, erro webServer, rede, etc. | Finalizada com erro | Error | Falhou |
Status de monitor não implementado no envio das mensagens:
STATUS | RM | DataSul | Proheus | Logix |
---|---|---|---|---|
Received | ||||
Validate | ||||
Refused | ||||
Processing | x | |||
Processed | ||||
BusinessError | ||||
NotDelivered | ||||
Recognized | x | |||
Malformed | x | |||
Delivering |
<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
Não se aplica
Não se aplica
Não se aplica
Não se aplica
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. |
---|