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.
| Protheus | iDempiere | Onde 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 Index | Módulo 08 |
| SX7 (gatilhos) | Callout | Módulo 05 |
| SXB (consulta padrão, F3) | Referência Search e Info Window | Módulo 01 e 08 |
| SX5 (tabelas genéricas) | Referência do tipo List | Mó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 SX3 | Equivalente no iDempiere |
|---|---|
X3_TIPO, X3_TAMANHO, X3_DECIMAL | Reference e Length da coluna |
X3_TITULO | Name do elemento (e do campo, se quiser um rótulo diferente) |
X3_OBRIGAT | Mandatory (ou Mandatory Logic, se depender de condição) |
X3_RELACAO (inicializador padrão) | Default Logic |
X3_WHEN | Read Only Logic (a lógica é invertida: diz quando não pode editar) |
X3_VALID, X3_VLDUSER | Callout ou validação na classe de modelo / event handler |
X3_CBOX | Referência List |
X3_F3 | Reference Key de uma referência Table ou Search |
X3_BROWSE | Show in Grid no campo |
X3_CONTEXT virtual | Coluna virtual (Column SQL) |
X3_FOLDER (pasta) | Field Group |
Código
| Protheus | iDempiere |
|---|---|
| ADVPL / TLPP | Java 17 |
| RPO, compilação e patch | Plugin OSGi (um JAR) instalado no servidor |
| Ponto de entrada | Event 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 menu | Process |
| TReport | Print Format ou relatório Jasper |
| Schedule / Job | Scheduler |
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
| Protheus | iDempiere |
|---|---|
| Empresa (SM0) | Client (tenant) |
| Filial | Organization |
Campo _FILIAL em toda tabela | AD_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 / exclusiva | Data 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 deSC5010eA1_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
- Módulo 00 · Ambiente de desenvolvimento
- Módulo 01 · Seu primeiro CRUD sem código. É aqui que o seu conhecimento de SX2 e SX3 rende mais rápido.