Histórico da Página
...
- 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 ontem (data atual - 1), a data deve estar no formato (yyyy-MM-dd) ex: 2021-03-31 |
...
3. Processo
Através do JSON o java 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 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:
...
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/2" através do link: https://controlroom.hxgnagron.com/sga-etl/swagger-ui.html#/
*Obs - Existe um timeout fixo de 60 segundos no código 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:
...
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 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 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, etc).
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> |