Módulos do guia

Vindo do Protheus

iDempiere para quem vem do Protheus

Os conceitos do Protheus que você já domina, traduzidos para o iDempiere: dicionário, pontos de entrada, rotinas, empresas e filiais.

Se você desenvolve em ADVPL, metade do caminho já está andada. O Protheus e o iDempiere partem da mesma ideia: um dicionário de dados que descreve tabelas, campos e telas, e um sistema que monta tudo a partir dele. O que muda são os nomes, o lugar onde as coisas ficam e o fato de que, no iDempiere, você tem o código-fonte inteiro na mão.

Esta página é um mapa. Use as tabelas para achar o equivalente do que você já conhece e siga os links para os módulos da trilha.

O dicionário

No Protheus, o dicionário fica nas tabelas SX. No iDempiere, fica nas tabelas AD_ (Application Dictionary), editadas pelas janelas do perfil System.

ProtheusiDempiereOnde aprender
SX2 (tabelas)Table and Column (AD_Table)Módulo 01
SX3 (campos)Aba Column (AD_Column) e aba Field (AD_Field)Módulo 01
SIX (índices)Aba Table IndexMódulo 08
SX7 (gatilhos)CalloutMódulo 05
SXB (consulta padrão, F3)Referência Search e Info WindowMódulo 01 e 08
SX5 (tabelas genéricas)Referência do tipo ListMódulo 01
SX6 (parâmetros MV_)System Configurator (AD_SysConfig)Módulo 08
SX1 (perguntas)Parâmetros do processo (AD_Process_Para)Módulo 06

A diferença que mais surpreende: no Protheus, o SX3 descreve o campo e a tela ao mesmo tempo. No iDempiere, isso é separado. A Column descreve o dado; o Field descreve como ele aparece numa aba específica. A mesma coluna pode aparecer em várias janelas, com rótulo, ordem e comportamento diferentes em cada uma.

Propriedades do campo (SX3)

Campo do SX3Equivalente no iDempiere
X3_TIPO, X3_TAMANHO, X3_DECIMALReference e Length da coluna
X3_TITULOName do elemento (e do campo, se quiser um rótulo diferente)
X3_OBRIGATMandatory (ou Mandatory Logic, se depender de condição)
X3_RELACAO (inicializador padrão)Default Logic
X3_WHENRead Only Logic (a lógica é invertida: diz quando não pode editar)
X3_VALID, X3_VLDUSERCallout ou validação na classe de modelo / event handler
X3_CBOXReferência List
X3_F3Reference Key de uma referência Table ou Search
X3_BROWSEShow in Grid no campo
X3_CONTEXT virtualColuna virtual (Column SQL)
X3_FOLDER (pasta)Field Group

Código

ProtheusiDempiere
ADVPL / TLPPJava 17
RPO, compilação e patchPlugin OSGi (um JAR) instalado no servidor
Ponto de entradaEvent Handler ou Model Validator (reagem a eventos de qualquer tabela, sem tocar no core)
AxCadastro, MVC (ModelDef / ViewDef)Janela cadastrada no Dicionário, sem código. Regras ficam na classe de modelo
Rotina automática (MsExecAuto)Chamar a classe de modelo direto ou rodar um processo; de fora, pela API REST
User Function chamada pelo menuProcess
TReportPrint Format ou relatório Jasper
Schedule / JobScheduler

Um ponto de atenção para quem vem do Protheus: no iDempiere você nunca altera o core. Assim como você não edita fonte padrão da TOTVS, aqui toda customização vai num plugin separado. A diferença é que o fonte do core está aberto para você ler, debugar e, se achar um bug, corrigir e mandar para o projeto.

Estrutura da empresa e dos dados

ProtheusiDempiere
Empresa (SM0)Client (tenant)
FilialOrganization
Campo _FILIAL em toda tabelaAD_Client_ID e AD_Org_ID em toda tabela
D_E_L_E_T_ (exclusão lógica)IsActive para desativar; exclusão física quando permitido
R_E_C_N_O_Chave primária <Tabela>_ID e coluna UUID <Tabela>_UU
Tabela compartilhada / exclusivaData Access Level da tabela

O que você ganha, e o que muda na rotina

  • Sem licença por usuário. O iDempiere é GPL. O custo está em implantar e manter, não em pagar por acesso.
  • Banco aberto. PostgreSQL, com nomes de tabela e coluna legíveis (C_Order, C_BPartner) em vez de SC5010 e A1_COD.
  • O fonte é seu. Dá para debugar o core linha a linha no Eclipse.
  • O que exige adaptação: Java e OSGi no lugar do ADVPL, e uma comunidade menor, sem uma empresa por trás dando suporte oficial. A localização fiscal brasileira existe, mas não vem no pacote padrão.

Por onde começar

  1. Módulo 00 · Ambiente de desenvolvimento
  2. Módulo 01 · Seu primeiro CRUD sem código. É aqui que o seu conhecimento de SX2 e SX3 rende mais rápido.