Jrepository Nova Biblioteca Para Desenvolvimento Sankhya Com Tipagem Forte

Olá desenvolvedores Sankhya!

Estou compartilhando um projeto que desenvolvi recentemente: a biblioteca JRepository. Ela nasceu da minha experiência com desenvolvimento no Sankhya e visa resolver muitos dos desafios que todos nós enfrentamos ao lidar com o JapeWrapper.

Nova versão! v1.1.0🚀

Pessoal, nova versão do JRepository no ar

.

Baixe a versão mais recente em:
Download: Página de Release

Features:

  • Corrige a duplicação de memória. Mantendo a mesma interface de API e uso previamente divulgado.
  • Exception com a mensagem clara, eliminando mensagem genérica: “Ocorreu um erro”.

Novas sugestões de melhorias são muito bem vindas!


Qual problema ela resolve?

Se você já desenvolveu no Sankhya, provavelmente já enfrentou estes desafios:

  • Erros de digitação ao informar nomes de campos
  • Conversões de tipos inconsistentes entre VO e Java
  • Descoberta de erros apenas em tempo de execução
  • Código repleto de chamadas verbosas ao JapeWrapper/JapeFactory
  • Ter de conhecer previamente o nome entidade e seus campos/tipos

Como o JRepository transforma isso?

A biblioteca traz uma abordagem inspirada no Spring Data JPA:

// ANTES (JapeWrapper tradicional)
JapeWrapper daoParceiro = JapeFactory.dao("Parceiro");
DynamicVO parceiro = daoParceiro.findByPK(new BigDecimal(1001));
String nomeAtual = parceiro.asString("NOMEFARC");  // 🚨 ERRO: nome errado!
daoParceiro.prepareToUpdate(parceiro)
        .set("NUMEND", "123")
        .update();

// DEPOIS (com JRepository)
Parceiro parceiro = JRepository.findByPK(new Parceiro(), new BigDecimal(1001));
String nomeAtual = parceiro.getNomeParc();  // Autocompletar do IDE!
parceiro.setNumEnd("123");
parceiro.persist();  // Detecta automaticamente se é insert ou update

Esse e mais exemplos estão disponíveis no README do projeto: Link do projeto no Github.

Principais vantagens

  • Segurança em tempo de compilação: erros são identificados antes da execução
  • Autocompletar preciso: seu IDE sugere apenas campos que realmente existem
  • Validação automática: dados incorretos são rejeitados precocemente
  • Conversão de tipos automática: sem necessidade de casting manual
  • Rastreamento de mudanças: apenas campos alterados são atualizados
  • Código mais limpo e legível: menos boilerplate, mais foco na lógica

Modelo de classes

A biblioteca já possui modelos para entidades todas as entidades mapeadas pelo DynamicEntityNames. São mais de 807 entidades já mapeadas.

Para entidades customizadas não-mapeadas (tabelas AD_), também temos suporte:

AdEntity tabelaFretes = new AdEntity("AD_FRETES");
tabelaFretes.set("CODFRETE", new BigDecimal(1));
tabelaFretes.set("VALOR", new BigDecimal(100.0));
tabelaFretes.persist();

Como usar?

  1. Baixe o JAR da release mais recente
  2. Adicione como dependência no seu projeto de desenvolvimento
  3. Ao implantar, adicione tanto o JAR da sua personalização quanto o JRepository no mesmo Módulo Java no Sankhya

No repositório do projeto no GitHub você encontrará diversos exemplos práticos de implementação para diferentes casos de uso.

Recursos

O projeto está disponível no Github. Clique aqui para acessar!
Para baixar o .jar do projeto basta acessar a página de Releases no Github. Ou clique aqui.

Se você quiser contribuir, reportar bugs ou sugerir melhorias, fique à vontade para abrir issues ou comentar aqui em baixo. Fico à disposição.

Irei desenvolver também uma ferramenta online para criar sua própria classe SankhyaEntity integrada ao JRepository. Fiquem ligados.

Sua opinião é importante!

Esta é a primeira versão do JRepository e seu feedback é crucial.
Por favor, deixe seu comentário com críticas, melhorias e sugestões.


Built with

by pegorari.dev

3 respostas