Automatizando a configuração local do Protheus Docker Lab

Versão de referência: este artigo foi revisado com base no commit 3dfe986 , que registra a automação e a validação local da terceira parte do Protheus Docker Lab. Um ambiente reproduzível não deveria depender de uma lista de comandos lembrada apenas por quem o criou. Depois de organizar os serviços e arquivos do Protheus Docker Lab , a etapa seguinte foi transformar o procedimento documentado em um fluxo operacional pequeno, previsível e seguro para os arquivos locais. ...

Protheus OpenAPI

Projeto autoral para aprender TL++ construindo uma ferramenta real de documentação para diferentes gerações de APIs REST Protheus.

Protheus OpenAPI: uma jornada de TL++ para documentar APIs REST

Documentar uma API parece simples enquanto código e documentação nascem juntos. O problema aparece depois. Uma rota muda, um parâmetro é acrescentado, uma resposta ganha outro formato e a especificação continua descrevendo a versão anterior. Aos poucos, o contrato que deveria ajudar consumidores, testes e integrações deixa de representar o serviço publicado. No Protheus, existe ainda uma dificuldade adicional: APIs REST desenvolvidas em momentos diferentes podem usar modelos diferentes. De um lado estão endpoints TL++ baseados em annotations. De outro, serviços AdvPL construídos com WSRESTFUL, WSMETHOD e estruturas relacionadas. ...

Organizando um laboratório Protheus: boas práticas com Docker Compose

Versão de referência: este artigo foi revisado com base no commit 77562cd , que registra o estado validado da segunda parte do Protheus Docker Lab. No primeiro artigo da série, Construindo um laboratório Protheus com Docker , montei um ambiente de desenvolvimento composto por PostgreSQL, DBAccess, License Server e AppServer. Colocar os serviços em execução foi a primeira etapa. A seguinte foi transformar um arquivo Compose funcional em um projeto que eu pudesse entender, validar, recriar e evoluir. ...

AdvPL não precisa ser código legado: Engenharia de Software aplicada ao Protheus

AdvPL é frequentemente associado a código legado. A associação não surgiu por acaso. Existem customizações Protheus desenvolvidas há muitos anos, funções extensas, dependência de estado compartilhado, regras de negócio misturadas com interface, acesso direto a tabelas e poucos testes automatizados. Também existem projetos sem documentação, sem estratégia clara de versionamento e com alterações realizadas diretamente em código antigo, porque ninguém conhece completamente os efeitos de uma mudança. Mas existe uma distinção importante: ...

EXISTS vs IN vs JOIN no SQL: qual usar e quando?

Uma dúvida comum entre desenvolvedores e analistas de dados é: Qual a diferença entre EXISTS, IN e JOIN? Essas três abordagens podem retornar o mesmo resultado, mas possuem diferenças importantes de comportamento e performance, especialmente em bases grandes. Para quem trabalha com ERP como o Protheus, onde as tabelas crescem rapidamente, entender essas diferenças ajuda a evitar consultas lentas e escolhas ruins de modelagem SQL. Neste artigo, vamos analisar: como cada abordagem funciona quando usar cada uma diferenças práticas de performance exemplos com tabelas comuns do Protheus Exemplo prático Imagine duas tabelas comuns em um cenário de ERP: ...

DBOrderNickname no Protheus: um recurso pouco conhecido do AdvPL

Durante o desenvolvimento de rotinas no TOTVS Protheus, é comum trabalhar com múltiplos índices em uma tabela. Normalmente utilizamos DBSetOrder() informando apenas o número do índice, mas existe uma alternativa mais segura e legível: DBOrderNickname(). Surpreendentemente, muitos desenvolvedores não sabem que esse recurso existe. Neste post vou mostrar como utilizar essa função e por que ela pode tornar seu código mais robusto. O problema do DBSetOrder() O uso tradicional funciona assim: ...

Privacidade

Gerenciar opções

Escolha quais tecnologias opcionais podem ser utilizadas. As necessárias permanecem ativas para o funcionamento e para as preferências de interface do site.

Necessários

Preferências de tema, menu e registro da sua escolha de privacidade.

Analytics

Ajuda a compreender acessos e uso do conteúdo por meio do Google Analytics 4.

Publicidade

Reserva sua escolha para o Google AdSense, que ainda não exibe anúncios no site.