Olá, já tem muito tempo que não coloco nenhum conteúdo novo por aqui.
Não é por falta de conteúdo, tenho algumas dicas para postar e pretendo fazer vídeos para tornar os exemplos mais visuais possíveis.
Ainda anão tive condição de fazer este novo conteúdo porque andei focado em alguns projetos nos últimos meses durante o horário comercial, projetos grandes e do tipo que demandaria uma equipe para tocar, porém executados por uma pessoa só como sempre.
Três projetos para ser mais especifico.
Sistema de portaria de oficina.
O primeiro e mais simples foi um sistema de portaria para ser executado em diversas filiais, os requisitos foram um sistema WEB sendo executado em Table com várias funções além de registrar entrada e saída de fornecedores, visitantes, clientes, e funcionários como?
- Frota de veículos:
- Registrar saídas com urgência.
- Impedir saída com um veículo se estiver reservado para outra pessoa.
- Registrar KM rodado e a condição do veículo no retorno.
- Registrar o tempo de viagem entre uma filial e outra.
- Mostrar as reservas de veículos no dia.
- Cliente:
- Gerar pré ordem para o cliente.
- Se for veículo agendado consumir a agenda.
- Se tiver agenda futura questionar se deseja manter esta agenda ou adiantar para o dia corrente.
- Registrar a condição do veículo na entrada e saída.
- Fornecedores:
- Registrar a entrada de um fornecedor assim como seu objetivo.
- Comunicar o departamento responsável da chegada do fornecedor.
- Visitantes:
- Registrar a entrada de um visitante assim como seu objetivo e a quem está visitando.
- Comunicar o responsável pelo visitante de sua chegada.
Sistema de integração de estoque.
O segundo sistema foi um pouco mais complexo, foi a integração entre o estoque de uma empresa e um fornecedor.
Ao fim do dia o fornecedor recebe os movimentos de entrada e saída dos itens do estoque, além do saldo atual, este fornecedor tem uma IA (inteligência artificial) que faz cálculos em cima desses movimentos nos últimos meses para se obter o estoque ideal e automaticamente gera pedido para repor o estoque se necessário.
Como é muito complicado fazer consumo de APIs em HTTPS com o progress por conta de ter que registrar um certificado localmente, fiz um webservice em .NET core para servir de intermediário. Ele recebe os dados do programa em OpenEdge Progress, adiciona a header de segurança e repassa para o webService do fornecedor.
Integração entre ERPs
E o terceiro projeto que ainda estou trabalhando é a integração entre os ERPs.
Os requisitos são que todo movimento realizado em uma ordem de serviço no nosso ERP ou no ERP de terceiro deve ser integrado quase que em tempo real e para atender essa demanda a estrutura do sistema ficou mais ou menos assim:
Do ERP Terceiro para nosso ERP:
Ao cadastrar ou alterar no ERP Terceiro, imediatamente é registrado esta alteração no servidor Kafka, fiz um programa em C# Windows Forms que monitora o sistema de mensageria Kafka. Este monitor assim que recebe o ID o salva no banco de dados em MySQL e faz um GET no webService do ERP terceiro para obter as demais informações, se obtiver sucesso complementa o registro no MySQL com esses novos dados e repassa para o webService do OpenEdge Progress feito com WebSpeed. O programa no WebSpeed por sua vez faz validações de integridade dos dados e verifica se é possível ou não aplicar esse registro no ERP e por fim devolve ao Monitor Kafka se houve sucesso ou falha na integração que atualiza o MySQL finalizando o ciclo.
Para o caminho contrário, um cadastro feito no nosso ERP sendo integrado ao ERP Terceiro é mais simples, o programa do ERP feito em OpenEdge Progress vai enviar os dados para um webService intermediário feito em ASP.NET, é o mesmo caso do segundo projeto que serviu de base para este, e por fim este webService faz o GET de um TOKEN de segurança e o utiliza para fazer a integração com o webService do ERP Terceiro.
Além dás varias linguagens e recursos adotados para atender as requisições deste projeto existem várias particularidades relacionadas a área de segurança, tais como, liberações de IPs de saída para acesso ao sistema terceiro, certificados de segurança em subdomínio e localmente para conectar ao Kafka com protocolo SSL, e sistema de autorização OAuth 2.0 onde é necessário obter um TOKEN de segurança antes de qualquer transação.
Pretendo documentar melhor esse sistema futuramente através de tutorial.
E o porque do devlog?
Além de todos esses projetos estou estudando a legislação LGPD e C# tentando me familiarizar melhor com a linguagem já que tenho a usado bastante ultimamente como pode ser visto no segundo e terceiro projeto.
E para estudar resolvi aprender a programar jogos no fim do dia, está ai o motivo de eu não postar conteúdo a um bom tempo.
Estou estudando a Engine Unity e produzindo um jogo 2D, criei um DedLog no site itch.io e gostei do resultado. Por isso resolvi criar um DevLog aqui também e manter o site atualizado de forma mais dinâmica e menos séria.
Bom, por hora é isso.
Espero que mais esse projeto do Devlog dê certo assim como todos os outros que estou tocando ao mesmo tempo.