Files
MBS/docs/ESTRUCTURA_PROYECTO_MBS.md
T

4.3 KiB

Estructura del proyecto MBSerp_new3 (Genero 6)

Cómo organizar grupos y librerías del proyecto GST limpio para la migración. Reemplaza el .4pw viejo (MBSVG240), que tenía nombres de librería duplicados y rutas muertas.


⚠️ Regla de oro

Cada librería debe tener un binaryName ÚNICO. El proyecto viejo tenía 4 librerías llamadas FORMULARIOS → colisión (GS-12528 / .42x conflicts) → no compilaba. Sufija siempre por módulo (FORMULARIOS_VE, FORMULARIOS_CG, …).


Nivel 1 — Grupo COMUNES (lo compartido; se compila una vez)

Librería (nombre único) Contenido
SCHEMA (o dabase) Esquema de BD: ../DATABASE/smarmotech.4db (+ los .4db que apliquen)
FUNCIONES Funciones comunes: autentificacion.4gl, seg000.4gl, msg.4gl, mensajes.4gl (mbox_msg/mbox_yn), combos (ano/mes/din), bancos, proveedores, zonas, paises, localidades, etc.
FUNCIONESREP Funciones/plantillas de reportes compartidas
FUNCIONESEMAIL Envío de correo (enviacorreo, enviaencuesta…)
STYLES Todos los .4st: mainmenu, mainmenu_A/B/C/D, formularios, mbsStyle
FORMULARIOSCOM Forms compartidos: mainmenuform, inicial, cambia, MainDisp
App MAINMENU otrodir/MainMenu.4gldeps: SCHEMA, FUNCIONES, STYLES, FORMULARIOSCOM

El MBSerp_new3 ya trae un CORE inicial (Database, FUNCIONES, STYLES, FORMULARIOS, MAINMENU). Solo hay que completarlo, renombrar con nombres únicos y agruparlo en COMUNES.


Nivel 2 — Un GRUPO por módulo (solo los que tienen programas activos)

Cada grupo de módulo lleva:

  • FORMULARIOS_<xx> → los forms del módulo (nombre único).
  • (opcional) FUNCIONES_<xx> → funciones propias del módulo, si tiene.
  • Applications → cada programa ejecutable del módulo = un App node con su .4gl.
    • deps de cada App: SCHEMA, FUNCIONES, STYLES, FORMULARIOS_<xx> (+ FUNCIONESREP si es reporte, + FUNCIONESEMAIL si manda correo).

Los .4gl que son funciones/combos (no ejecutables) van en una LIBRERÍA, no como App.

Módulos a crear (por reparto) — verifica el dir real de cada uno

Módulo Carpeta (dir) Librería de forms Responsable
Contabilidad General cgdir FORMULARIOS_CG Jhonny
Tesorería tedir FORMULARIOS_TE Jhonny
Activos acdir FORMULARIOS_AC Jhonny
Cheques (confirmar) FORMULARIOS_CH Jhonny
Informática sedir/otrodir FORMULARIOS_INF Jhonny
Repuestos irdir (PROYECTOS) FORMULARIOS_IR Jhonny
Cuentas por Pagar cpdir FORMULARIOS_CP Abel
Compras codir FORMULARIOS_CO Abel
Nómina nodir FORMULARIOS_NO Abel
Admin. Personal addir FORMULARIOS_AD Abel
Costos ctdir FORMULARIOS_CT Jeilyn
Liquidación Mercancías lqdir FORMULARIOS_LQ Jeilyn
Producción prdir FORMULARIOS_PR Jeilyn
Materia Prima indir (PROYECTOS) FORMULARIOS_IN Jeilyn
Productos Terminados ipdir (PROYECTOS) FORMULARIOS_IP Jeilyn
Rep. Entradas Productos (reportes inv.) FORMULARIOS_REP_IP Jeilyn
Cuentas por Cobrar ccdir FORMULARIOS_CC Luis Miguel
Ventas vedir FORMULARIOS_VE Luis Miguel
Servicios svdir FORMULARIOS_SV Luis Miguel

(Ajusta los dir que difieran — tú los conoces mejor. El nombre de la librería es lo que debe ser único.)


Qué NO incluir (para mantenerlo limpio)

  • WEBSERVICES y MOVIL401 → proyectos aparte (su propio .4pw y deploy). No van aquí.
  • menup, dashboard, ENCUESTAS, DOCUMENTACION, PRESUPUESTOG, PUNTOVENTAS, GERENCIALES → solo si tienen programas en el menú activo; si no, fuera (se agregan luego si hacen falta).

Cómo poblar (incremental)

  1. Crea el esqueleto: grupo COMUNES (completo) + los grupos de módulo con su FORMULARIOS_<xx> vacía.
  2. Compila y corre MAINMENU (debe levantar el menú).
  3. Por cada programa migrado (por ticket): Add Application en su grupo, agrega el .4gl + su form, pon las dependencias, Build. Si el linker dice "function X not found", agrega el .4gl que la define.
  4. git commit + git push.

Así el proyecto siempre compila y crece de forma ordenada, sin el caos del .4pw viejo.