1. Qué es iDempiere
FINORA ERP es, por dentro, iDempiere 13: el mismo motor, la misma base de datos, el mismo Diccionario de Aplicación que usan cientos de instalaciones de iDempiere en el mundo. Lo que FINORA agrega es una imagen visual propia y los módulos FINORA LVE de localización venezolana (fiscal, contable, nómina), instalados como plugins — nunca modificando el código del core. Entender qué es iDempiere y de dónde viene es el primer paso para trabajar con FINORA sin sorpresas.
De Compiere a iDempiere
Sección titulada «De Compiere a iDempiere»iDempiere tiene una genealogía de tres generaciones, cada una resolviendo el problema de la anterior:
- Compiere (desde 1999-2001, Jörg Janke): un ERP/CRM de código abierto pensado para PyMEs, escrito en Java sobre Oracle. Su idea central — y la que sigue viva hoy en iDempiere — era el Diccionario de Aplicación: ventanas, tablas y procesos definidos como datos en la propia base de datos, no como código fuente fijo (ver Tutorial 3).
- ADempiere (fork en septiembre de 2006): cuando el patrocinador comercial de Compiere cambió el rumbo del licenciamiento, parte de la comunidad de desarrolladores se separó y creó ADempiere, comprometida a mantener el software enteramente libre bajo GPLv2. ADempiere migró de Oracle a PostgreSQL como base de datos soportada y siguió evolucionando el Diccionario de Aplicación.
- iDempiere (2012): un grupo de desarrolladores centrales de ADempiere lanzó iDempiere (“integration-Dempiere”) para modernizar la arquitectura de fondo: reemplazar el servidor de aplicaciones monolítico por OSGi (módulos que se instalan y actualizan en caliente), mover el cliente de escritorio Swing a un cliente web con ZK, y correr sobre Jetty en lugar de un servidor de aplicaciones J2EE completo.
La pila tecnológica
Sección titulada «La pila tecnológica»| Capa | Tecnología | Para qué |
|---|---|---|
| Lenguaje | Java (JavaSE-17 en la build que usa FINORA) | Todo el servidor y los plugins |
| Base de datos | PostgreSQL | Único motor soportado desde hace varias versiones (Oracle se dejó atrás en el camino desde ADempiere) |
| Modularidad | OSGi (Equinox) | El servidor entero — core incluido — es un conjunto de bundles OSGi que se resuelven por versión y dependencias (Tutorial 6) |
| Interfaz web | ZK (framework Ajax en Java, sin escribir JavaScript a mano) | La interfaz “de escritorio en el navegador” que ven las personas que usan el ERP (Tutorial 5) |
| Servidor de aplicaciones | Jetty embebido | Sirve tanto la interfaz ZK como la API REST |
| API | REST (plugin idempiere-rest) | Integraciones externas, portales, apps móviles (Tutorial 10) |
| Reportes | Diccionario (Print Format) + Jasper Reports | Facturas, libros legales, estados financieros (Tutorial 11) |
Licencia
Sección titulada «Licencia»iDempiere es software libre bajo GPL versión 2 (GPLv2), la misma familia de licencia que
ADempiere antes que él. Esto tiene una consecuencia directa para FINORA: el código que FINORA LVE
distribuye también es GPL-2.0-only, con la cabecera SPDX correspondiente en cada archivo fuente
(decisions/ADR.md, ADR-LVE-010 en el repositorio finora-lve). El core de iDempiere nunca se
modifica — todo lo que agrega FINORA vive en plugins, y eso es tanto una decisión de arquitectura
como una forma de mantener las actualizaciones del core simples (ver
Tutorial 12).
Multi-tenant desde el diseño
Sección titulada «Multi-tenant desde el diseño»Una misma instalación de iDempiere puede alojar varias empresas (Clientes, AD_Client) sin que
una vea los datos de otra, cada una con sus propias organizaciones, monedas, esquemas contables y
usuarios. Esto no es una capa añadida encima: está en el núcleo del modelo de datos desde Compiere —
prácticamente toda tabla de negocio tiene una columna AD_Client_ID. FINORA aprovecha esto para
instalarse una sola vez y dar servicio a varios clientes (empezando por DC GEEKS mismo como tenant
piloto, y luego terceros), cada uno con su propio perfil fiscal venezolano activado por separado. El
detalle de cómo funciona esto se ve en el Tutorial 4.
Qué significa esto para trabajar en FINORA
Sección titulada «Qué significa esto para trabajar en FINORA»- El código de FINORA LVE nunca importa clases del core para modificarlas; solo las usa o las
extiende por los mecanismos que el propio iDempiere expone (event handlers, fábricas, 2Pack). Es
una regla absoluta del proyecto (
finora-lve/AGENTS.md, regla 1). - Casi cualquier duda sobre “cómo hace esto iDempiere” tiene dos lugares donde buscar la respuesta:
el código fuente en GitHub (
idempiere/idempiere) y el wiki oficial. Ambos están enlazados abajo. - Cuando esta Academy dice “el core”, se refiere a los bundles
org.adempiere.*yorg.idempiere.*que vienen con iDempiere; “FINORA” o “LVE” se refiere a lo que DC GEEKS agrega encima.
Fuentes
Sección titulada «Fuentes»- iDempiere — Wikipedia
- ADempiere — Wikipedia
- Compiere — Wikipedia
- What is iDempiere? — iDempiere Developer
- Repositorio oficial idempiere/idempiere en GitHub
finora-lve/decisions/ADR.md, ADR-LVE-010 (licencia GPL-2.0-only de FINORA LVE)finora-lve/AGENTS.md, regla 1 (sin cambios de core)