Serviços do SISMETRO
API-Internal
O Serviço API-Internal
O API-Internal é um serviço desenvolvido em Laravel que roda em um container dentro do servidor dokku na AWS (dokku.api.sismetro.com).
A ideia deste serviço é prover um serviço sólido para centralizar a maior quantidade de regras de negócio possíveis do SISMETRO.
O API-Internal tem alguns processos que rodam, dentre eles:
- Web: Que provém a interface web para conexão de outros serviços junto ao API-Internal;
- Schedule: Que roda o cron do Laravel do API-Internal;
- Worker: Que roda a queue de nome "api-internal" com objetivo de rodar processos do SISMETRO em background;
- Analise: Que roda a queue de nome "analise" coim os processos de análise de planos, sendo a Análise v2.
- Controle: Que roda a queue de nome "controle", com os processos de análise de leitura de controle (drawcontroleitem), utilizando de parte do código da Análise v2 para isto.
Integrador V3 (PHP)
O Integrador V3 (PHP)
O Integrador V3 (integration) é um serviço desenvolvido em Laravel que roda em um container dentro do servidor dokku na AWS (dokku.api.sismetro.com).
A ideia deste serviço é prover um serviço sólido para integrações usando PHP/Laravel com Webservices REST/SOAP.
O Integrador V3 (integration) tem alguns processos que rodam, dentre eles:
- Web: Que provém a interface web para conexão de outros serviços junto ao integration;
- Schedule: Que roda o cron do Laravel do integration;
- Worker: Que roda a queue de nome "integration" com objetivo de rodar processos de Integração gerais em background;
- g5_cost_center: Que roda a queue de nome "integration-g5-cost-center" com os jobs de integração de Centro de Custo para o Senior G5;
- g5_assets: Que roda a queue de nome "integration-g5-assets" com os jobs de integração de Patrimônios/Bens com o Senior G5.
Integrador V3 - Senior G5 - Patrimônios/Bens
A integração do Integrador V3 com o Webservice de Patrimônios/Bens integra os Bens do Senior G5 com o SISMETRO.
FUNCIONAMENTO
O funcionamento da integração funciona através de jobs e queues. Todos os jobs do tipo funcionam na queue "integration-g5-assets".
Para integração de tipo "A":
- A cada tempo roda o job "SeniorG5PatBemJob" com o parâmetro "A";
- O Job SeniorG5PatBemJob percorre todas as integrações de idTipo 9 e idVendor 3 ativas e que possuam no parametro4 o texto "php" e despacha um job "SeniorG5PatBemUnidadeJob" para cada integração;
- O Job SeniorG5PatBemUnidadeJob analisa a configuração da integração e caso haja no parametro3 o texto "INT_POR_FILIAL", ele inicia um job "SeniorG5PatBemUnidadeFilialCompleteJob" para cada filial, senão ele gera apenas para a filial e empresa com respectivos idERP na configuração da Integração;
- O Job SeniorG5PatBemUnidadeFilialCompleteJob requisita para a classe SeniorG5PatBem que é uma classe focada para a requisição SOAP do Webservice para consumir a porta Exportar 5 e analisa o retorno. Caso haja registros, ele analisa e monta uma requisição para envio ao API-Internal para integração. Após o processamento de cada registro, ele manda uma requisição para o Webservice de Confirmação para confirmar a integração dos itens. Caso haja registros ainda para execução, ele despacha um novo job com os mesmos parâmetros para continuar a integração.
Sobre a cada tempo de execução do job "SeniorG5PatBemJob" com o parâmetro "A", muda de acordo com o dia da semana, sendo da seguinte forma:
- De segunda a sexta, o processo roda a cada 40 minutos;
- Sábados, o processo roda a cada 90 minutos;
- Domingos, o processo roda a cada 2 horas.
O principal motivo disso é para fazer com que o serviço rode mais vezes apenas nos dias necessários e os dias que não necessita por causa de menores mudanças, rode menos vezes deixando que outros serviços utilizem os recursos do servidor.
Para Integração de tipo "T":
- As integrações de Tipo T rodam exatamente igual a de tipo "A", porém, rodam em horários específicos, sendo os seguintes: 04h01, 12h01 e 20h01.
INTEGRAÇÃO DE TIPO T FORÇADA
Além disso, há a integração de tipo "T" forçada. Essa integração ocorre às 03h10 das madrugadas de Segunda, Quarta e Sábado.
A integração de tipo "T" forçada funciona praticamente igual a integração de tipo "T" normal, porém, ele roda o job "SeniorG5PatBemConsultaTJob" onde coloca todas as integrações do tipo que possuam idTipo 9, idVendor 3, parametro3 possua "php" e não possua "IgnoraTotal" para tipo "T" e coloca-se para rodar o Job "SeniorG5PatBemUnidadeJob".
Integrador V3 - Senior G5 - Centro de Custo
A integração do Integrador V3 com o Webservice de Centro de Custo integra os Centro de Custo do Senior G5 com o SISMETRO.
Desde o dia 10/03/2025, este integrador se tornou o integrador padrão de centro de custo para o Senior G5.
FUNCIONAMENTO
O funcionamento da integração funciona através de jobs e queues. Todos os jobs do tipo funcionam na queue "integration-g5-cost-center".
Para integração de tipo "A":
- A cada tempo roda o job "SeniorG5CadCentroCustoJob" com o parâmetro "A";
- O Job SeniorG5CadCentroCustoJob percorre todas as integrações de idTipo 25 e idVendor 3 ativas e despacha um job "SeniorG5CadCentroCustoUnidadeJob" para cada integração;
- O Job SeniorG5CadCentroCustoUnidadeJob analisa a configuração da integração e ele inicia um job "SeniorG5CadCentroCustoUnidadeEmpresaJob" para a empresa que está com o idERP configurado na configuração da Integração;
- O Job SeniorG5CadCentroCustoUnidadeEmpresaJob requisita para a classe SeniorG5CadCentroCusto que é uma classe focada para a requisição SOAP do Webservice para consumir a porta Exportar 2 e analisa o retorno. Caso haja registros, ele analisa e monta uma requisição para envio ao API-Internal para integração. Após o processamento de cada registro, ele manda uma requisição para o Webservice de Confirmação para confirmar a integração dos itens. Caso haja registros ainda para execução, ele despacha um novo job com os mesmos parâmetros para continuar a integração.
Sobre a cada tempo de execução do job "SeniorG5CadCentroCustoJob" com o parâmetro "A", muda de acordo com o dia da semana, sendo da seguinte forma:
- De segunda a sexta, o processo roda a cada 30 minutos;
- Sábados, o processo roda a cada 60 minutos;
- Domingos, o processo roda a cada 2 horas.
O principal motivo disso é para fazer com que o serviço rode mais vezes apenas nos dias necessários e os dias que não necessita por causa de menores mudanças, rode menos vezes deixando que outros serviços utilizem os recursos do servidor.
Para Integração de tipo "T":
- As integrações de Tipo T rodam exatamente igual a de tipo "A", porém, rodam em horários específicos, sendo os seguintes: 03h01, 11h01 e 19h01.
INTEGRAÇÃO DE TIPO T FORÇADA
Além disso, há a integração de tipo "T" forçada. Essa integração ocorre às 04h10 das madrugadas de Segunda, Quarta e Sábado.
A integração de tipo "T" forçada funciona praticamente igual a integração de tipo "T" normal, porém, ele roda o job "SeniorG5PatBemConsultaTJob" onde coloca todas as integrações do tipo que possuam idTipo 25, idVendor 3 e não possua "IgnoraTotal" para tipo "T" e coloca-se para rodar o Job "SeniorG5CadCentroCustoUnidadeJob".