iDempiere 2Pack (Pack In/Out)
Objetivo
Resolver cambios basados en 2Pack de forma repetible y segura:
- exportar (Pack Out) diccionario/datos,
- importar (Pack In) manual o automatico,
- diagnosticar fallas de handlers, SQL, referencias UUID/ID y orden de instalacion,
- reducir riesgos operativos (scripts ejecutables, DDL, locks, reintentos),
- desarrollar paquetes con fuentes versionadas y scripts de consolidacion.
Cuando usar esta skill
- Requerimientos de migracion funcional por 2Pack.
- Plugins que instalan
2Pack.zipo2Pack_*.zipal arrancar. - Ajustes de
AD_Package_Exp/AD_Package_Exp_Detail. - Errores en
AD_Package_Imp*, elementos unresolved/deferred o conflictos de tenant. - Automatizacion de packin desde carpetas (server startup o proceso).
- Desarrollo de nuevas versiones de 2Pack con el workflow COMIT SRL.
Limites y coordinacion
- Si el trabajo es mayormente DDL/diccionario SQL, coordinar con
$idempiere-db. - Si el trabajo es bundle OSGi/feature/update-site, coordinar con
$idempiere-plugin-development. - Esta skill cubre la capa funcional/runtime de 2Pack (flujo, handlers, activators, operacion).
Flujo recomendado
- Clasificar escenario:
manual packin,embedded plugin packin, oexternal folder packin. - Definir tipo(s) de detalle (
Data,DataSingle,SQL,SQM,SH,SCJ, etc.) y orden. - Verificar handler real y prerequisitos (tabla, referencias, tenant, UUID).
- Ejecutar/importar y validar estado (
Completed successfully,Completed - unresolved,Import Failed). - Revisar trazas en
AD_Package_Imp_Detail+ notificador y ajustar idempotencia/versionado. - Para automaticos: validar naming/version locks/retries y no-reproceso.
Workflow de desarrollo COMIT SRL
El equipo COMIT SRL mantiene un flujo estandarizado para desarrollar 2Pack en plugins.
Estructura de fuentes versionadas
<plugin>/
packages/
system-<version>/
dict/PackOut.xml # fuente versionada principal
doc/*Doc.xml # documentacion del paquete
sql/db_structure.sql # DDL consolidado instalable
incoming/ # bandeja de entrada (dev)
functional/ # exports intermedios
migration-scripts/ # scripts de migracion
translations/ # traducciones
.local/processed/ # historial local (no versionado)
META-INF/
2Pack_<version>.zip # artefacto runtime (derivado, no versionado)
utils_dev/
2pack/ # scripts de desarrollo
Scripts de desarrollo (utils_dev/2pack/)
| Script | Proposito |
|--------|-----------|
| init_2pack_version.sh | Crear estructura para nueva version |
| sync_sqlmandatory_from_sql.sh | Inyectar DDL al PackOut.xml |
| sync_2pack_from_packages.sh | Regenerar zips en META-INF/ |
| consolidate_incoming_packouts.sh | Absorber exports de incoming/functional/ o translations/ |
| consolidate_incoming_migration_scripts.sh | Absorber scripts de incoming/migration-scripts/ |
Para repos con multiples plugins (ej: comit-idempiere-lar), los scripts reciben el plugin como primer argumento (core, withholdings).
Criterio de transporte segun tipo de cambio
| Tipo de cambio | Artefacto principal | Justificacion |
|----------------|---------------------|---------------|
| Tabla/dominio nuevo del plugin | 2Pack funcional | Objetos nacen con el plugin, bajo riesgo de colision |
| Cambio puntual sobre objeto existente | Migration script | Mayor granularidad, evita arrastrar metadata colateral |
| SQL estructural (DDL) | sql/db_structure.sql + SQLMandatory | Trazabilidad clara del DDL + instalacion desde cero |
| Traducciones | 2Pack de traducciones consolidado | iDempiere no incorpora *_Trl suficientemente en migration scripts |
Secuencia de consolidacion recomendada
sync_sqlmandatory_from_sql.sh- inyectar DDLconsolidate_incoming_packouts.sh ... functional- metadata funcionalconsolidate_incoming_migration_scripts.sh- scripts como SQLStatementconsolidate_incoming_packouts.sh ... translations- traducciones- Revisar
PackOut.xmlmanualmente sync_2pack_from_packages.sh- regenerar zips runtime
Politica de SQLMandatory
SQLMandatoryse reserva para DDL indispensable de instalacion.- La fuente primaria del DDL es
sql/db_structure.sql, no el PackOut.xml. - Cualquier alta o modificacion de SQLMandatory requiere revision explicita.
- Para diccionario (tablas, columnas, ventanas), preferir elementos nativos de PIPO.
Referencias
- Mapa tecnico completo:
references/core-map.md. - Playbook operativo y troubleshooting:
references/operating-playbook.md. - Diferencias wiki vs core y caveats:
references/wiki-vs-core.md. - Workflow de desarrollo detallado:
references/2pack-dev-workflow.md. - Lecciones industriales (deadlocks, REST Views, elementos):
references/industrial-2pack-guide.md.
微信扫一扫