Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Linha de Produto:Microsiga Protheus
Segmento:Recursos Humanos
Módulo:SIGAGPE
Função:WSMIDPROC
Requisito/Story/Issue (informe o requisito relacionado) :DRHESOCP-15423


02. SITUAÇÃO/REQUISITO

Objetivo: definir contratos e api´s para o monitor principal do Middleware.

Esse estudo e codificação deverá ser feito juntamente com o analista Robson

Vamos definir 5 APIS que serão consumidos pela equipe do TAF, na primeira tela do Monitor, esta issue trata especificamente do botão transmitir.

Após selecionar o card com o evento (por enquanto será possível apenas um tipo de evento por processo, esse bloqueio será feito pela equipe do TAF), devemos desenvolver a API para realizar a transmissão para o MID dos eventos selecionados, gerando lotes de até 50 eventos.
Para isso, devemos utilizar as funções já desenvolvidas para o envio via JOB;

Além de atualizar a tabela RJE com o número do ticket e o status aguardando retorno, devemos também alimentar a tabela RJN.

Esta tabela será utilizada para apresentar ao usuário o status e percentual de transmissão dos lotes de eventos, a partir do botão "Atualizar" que será explicado em outra issue.

Gravação da Tabela RJN:

RJN_ID = Código criado automaticamente para agrupar lotes enviados no processamento
RJN_METODO = "POST"
RJN_DATAREQ = Data de Envio
RJN_HORAREQ = Hora de envio
RJN_STATUS = "1" (será atualizado em outro processamento)
RJN_DATRESP = Data do retorno (será atualizado em outro processamento)
RJN_HORRESP = Hora do retorno (será atualizado em outro processamento)
RJN_PERC = 0.00 - Percentual de eventos enviados (será atualizado em outro processamento)
RJN_RESP = Resposta Governo
RJN_Param= Parâmetros informados pelo usuário para transmissão (filial, data de competência e tipo de evento)

Nota:
Na API de transmissão incluir controle por usuário

Critério de Aceite:
Selecionar card de um evento para a transmissão e verificar se o status do evento na tabela RJE muda para "2" Aguarda retorno.
Verificar se são criados lotes de 50 eventos e se esses dados são gerados na tabela RJN
Verificar se os registros estão sendo transmitidos ao RET

Selecionar dois cards e clicar no botão Transmitir, o TAF deve apresentar uma mensagem solicitando que apenas um tipo de evento seja selecionado.

03. SOLUÇÃO

Desenvolvimento de uma API REST para transmitir os eventos do eSocial ao Middleware, a partir da seleção realizada no filtro do Monitor THF.

Depois que os cards são montados com o filtro que o usuário selecionou, cabe a API gravar os dados da transação na tabela RJN (Controle de Transações) e depois realizar a chamada do JOB para envio dos dados.

Os dados devem ser enviados pelo JOB, em lotes de 50 registros e ainda deve atualizar a tabela RJE (Tabela de eventos) com status 2.

A API de transmissão deve ainda incluir controle por usuário.

03. SOLUÇÃO

Desenvolvimento da API de transmissão com base nos requisitos descritos acima.

Importante ressaltar que para utilização da API é necessário realizar a configuração do Wizard( rotina GPEAWIZD), para comunicação com o TSS  e para configuração de parâmetros necessários durante a transmissão, e também ter configurado o serviço REST. 


Campos da tabela de Controle de Transações (RJN) que preenchidos durante a transmissão:

  • RJN_ID           - Gravação do ID de controle da tabela;
  • RJN_DTREQ   - Gravação da data de transmissão;
  • RJN_HRREQ   - Gravação da hora de transmissão;
  • RJN_STATUS  - Gravação do status 2;
  • RJN_PARAMS - Gravação dos parâmetros informados pelo usuário no momento da transmissão.


Para maiores informações, consultar as documentações abaixo:

Tabela de Controle de Transações (RJN): https://tdn.totvs.com/x/vqoPHw

Configuração do Wizardhttps://tdn.totvs.com/x/dau2Hg

Configuração do serviço REST no Protheushttps://tdn.totvs.com/x/-m4SCw

Documentação detalhada da API de Transmissão:Desenvolvimento..

Templatedocumentos

HTML
<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>

...