ÍNDICE
- Visão Geral
- Tela Parâmetros
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ção | Descrição |
---|---|
PIMS_COL / FG_TIPO_INTEGRACAO | Define o Tipo de Integração, 1 - Solinftec / 2 - Hexagon |
PIMS_COL / FG_INTEGRACAO_HEXAGON_ATIVADA | Define 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_PIMSSERVER | Define 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_INT | Define 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_INT | Define 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_HEXAGON | Define a URL para envio de uma requisição GET que retorna os apontamentos de Atividades Mecanizadas do serviço da Hexagon |
PIMS_COL / USUARIO_HEXAGON | Define o usuário do cliente na hexagon |
PIMS_COL / SENHA_HEXAGON | Define senha do cliente na hexagon |
PIMS_COL / COMPANY_CODE_HEXAGON | Define 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. |
PIMS_COL / DT_INTEGRACAO_HEXAGON | Define 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_HEXAGON | Tempo, 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.).