Árvore de páginas

ÍNDICE

  1. Visão Geral
  2. Tela Parâmetros
  3. Processo

    3.1 - Recuperação de Parâmetros por instância

    3.2 - Processo de recuperação de dados do serviço da HEXAGON

    3.3 - Processo de inclusão de dados na tabela de integração (INT_RAPT_MEC)

    3.4 - Processo de inclusão de dados na tabela temporária (RAPT_MEC)


1. VISÃO GERAL

Fluxo de integração de dados da Hexagon

2. TELA PARÂMETROS

Principais Parâmetros

AçãoDescrição
PIMS_COL / FG_TIPO_INTEGRACAO

Define o Tipo de Integração, 1 - Solinftec / 2 - Hexagon

PIMS_COL / FG_INTEGRACAO_HEXAGON_ATIVADADefine se será ativada a integração ( utilizada para que em caso de integração por processo agendado, realize integração apenas nas instâncias onde esse parâmetro está com valor "S".
PIMS_COL / IP_PIMSSERVERDefine o Número do IP e Porta da máquina que se encontra o servidor. Ex: 127.0.0.1:8080
PIMS_COL / CD_TABLE_MEC_INTDefine o nome da tabela, esta tabela é o espelho da RAPT_MEC, ela possui duas colunas a mais que são os Ids.
PIMS_COL / CD_OWNER_INTDefine o nome da Owner onde a tabela de integração está criada.
PIMS_COL / URL_GERA_TOKEN_HEXAGON

Define o Endereço para requisição POST de geração do token de autorização

PIMS_COL / URL_APONTAMENTOS_HEXAGONDefine a URL para envio de uma requisição GET que retorna os apontamentos de Atividades Mecanizadas do serviço da Hexagon
PIMS_COL / USUARIO_HEXAGONDefine o usuário do cliente na hexagon
PIMS_COL / SENHA_HEXAGONDefine senha do cliente na hexagon
PIMS_COL / COMPANY_CODE_HEXAGONDefine o código da companhia. Cada instancia no PIMS tem um companyCode correspondente no serviço da Hexagon (não necessariamente os dois tem mesmo valor, por tanto é necessário validar o valor correspondente)
PIMS_COL / PARAMETROS_URL_HEXAGON

Define o Valor dos parâmetros utilizados na requisição GET que recupera os os apontamentos de Atividade Mecanizadas.
Valor corresponde a parâmetro e valor, podendo ser vários parâmetros separados por ; (ponto e virgula). EX: groupByUpnivel=1;groupResult=true

PIMS_COL / DT_INTEGRACAO_HEXAGONDefine a Data a partir da qual se quer buscar os dados. O sistema buscará dados do dia informado até a data de anteontem (data atual - 2). A data buscada é essa devido a possibilidade de dados estarem incompletos se forem recuperados sem esse "atraso", por caso de estar o equipamento fora de área por exemplo. A data deve estar no formato (yyyy-MM-dd) ex: 2021-03-31
PIMS_COL / TIMEOUT_REQUEST_HEXAGONTempo, em milissegundos, de aguardo de resposta do serviço de integração Hexagon. Ex: 180000  (que é o valor equivalente a 3 minutos em milissegundos).


3. Processo

Através do JSON o Java busca os dados disponibilizados pela HEXAGON no servidor dela localizado na (nuvem ou no cliente) e grava numa tabela intermediária de integração que é definida pelo consultor como por exemplo (INT_RAPT_MEC). Esta tabela é o espelho da RAPT_MEC (tabela temporária que são gravados os apontamentos de atividades mecanizadas). 

Após essa inclusão na tabela de integração o pimsserver insere os dados na tabela RAPT_MEC.

Esta integração é configurada podendo ser automática e ou manual através do botão integrar localizado na tabela temporária de atividades mecanizadas no PIMS_COL.

A integração só funciona no JAVA, ou seja, não funciona no Centura.


3.1 Recuperação de Parâmetros por instância

Quando se dá inicio na integração, é verificado a instancia apresentada na tabela de requisições.

Caso for uma integração onde o usuário pressionou o botão de "integrar" na tela do PIMS_COL, a tabela de requisições irá conter a instância corrente.


Caso a integração for por processo agendado, a tabela de requisições irá conter no campo instância o valor "TODOS", neste caso serão recuperados os parâmetros (relacionados no item 3 deste documento) de cada instância cadastrada na tabela de instancias (PMINSTANCIAS)


3.2 Processo de recuperação de dados do serviço da HEXAGON

O pimsserver observa o parâmetro PIMS_COL > FG_INTEGRACAO_HEXAGON_ATIVADA de cada instância recuperada no passo anterior e verifica o seu valor. Caso ele esteja como "S", será feita a integração dos dados para esta instância, caso esteja diferente de "S" será ignorada.

Para cada instância ativada, serão realizados os seguintes passos:

1- o pimsserver irá realizar um GET no serviço da Hexagon buscando o token de autenticação

2- o pimsserver utilizará  token + usuário + senha (indicados via parâmetro) para realizar autenticação no serviço da Hexagon (url desse serviço é indicada via parâmetro)

3 - o pimsserver irá realizar um GET no serviço da Hexagon buscando dados da data indicada no parâmetro PIMS_COL > DT_INTEGRACAO_HEXAGON. Para mais informações do serviço, consulte o swagger:

GET "/pims/1" através do link: https://controlroom.hxgnagron.com/sga-etl/swagger-ui.html#/

*Obs - Existe um parâmetro (PIMS_COL / TIMEOUT_REQUEST_HEXAGON) que determina o valor do timeout para essas requisições.


3.3 Processo de inclusão de dados na tabela de integração (INT_RAPT_MEC)

Continuando com os passos, após recuperar os dados do serviço da HEXAGON, o pimsserver irá incluir esses dados na tabela temporária:

4 - o pimsserver deleta todos os dados existentes na tabela RAPT_MEC com a data do parâmetro +  prefixo "H_" no campo CD_COLETOR. Essa deleção ocorre para evitar dados duplicas em caso de reprocessamento, ou seja, caso o usuário "volte" a data para uma que já foi processada anteriormente.

5 - o pimsserver insere os dados recuperados do serviço da hexagon na tabela de integração informada no parâmetro, PIMS_COL > CD_TABLE_MEC_INT (normalmente configurada como INT_RAPT_MEC). Nesta inclusão, adicionamos o prefixo "H_" no campo CD_COLETOR, para sabermos que esse dado veio da integração com  a Hexagon.

6 - a inclusão ocorrendo com sucesso, o parâmetro PIMS_COL > DT_INTEGRACAO_HEXAGON será atualizado, adicionando um dia em seu valor (data do parâmetro atual + 1).

7 - o processo todo (desde o passo 1) se repete até que o parâmetro da data tenha o mesmo valor da data atual (hexagon não disponibiliza dados do dia atual, apenas do dia anterior para trás) 

*Obs - todo o processo deste "loop" recuperando os dados data a data é feito com um commit dos dados a cada dia, ou seja, vamos supor que 5 dias foram processados e no 6 dia ocorra algum erro, a data da integração no parâmetro vai estar salva como o dia do erro (caso processar novamente, irá tentar recuperar dados desse dia novamente) e os dados até esse dia estarão salvos na tabela de integração, porém esses dados ainda não estarão salvos na tabela RAPT_MEC.


3.4 Processo de inclusão de dados na tabela temporária (RAPT_MEC)

 Continuando com os passos, após a inclusão dos dados na tabela de integração, o pimsserver irá incluir os dados na tabela temporária RAPT_MEC

 8 - Após a tabela de integração (INT_RAPT_MEC) estar populada com dados (indicados nos processos anteriores), o pimsserver realiza um "SELECT" nesta tabela e recupera todos os dados que estejam com valor nulo na coluna FG_CAPTADO_PIMS e insere eles na tabela RAPT_MEC.

*Obs - O processo de inclusão na tabela RAPT_MEC é realizado todo de uma vez só, por tanto, caso ocorra algum erro de leitura da tabela de integração ou de inclusão na tabela RAPT_MEC, todo o processo é abortado e nenhum dado é inserido. O processo feito de uma vez só (e não linha a linha) é feito por questão de performance.

9 - Após a inclusão realizada com sucesso na tabela RAPT_MEC, é feita uma atualização na tabela de integração. A coluna FG_CAPTADO_PIMS de todos os dados que foram enviados para a tabela RAPT_MEC recebem valor "P". Desta forma esses dados serão ignorados quando uma nova integração for realizada.


Após os dados estarem na tabela RAPT_MEC o fluxo segue normalmente através do PIMS_COL (validações, geração para tabela oficial etc.).