Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md

This commit is contained in:
2026-08-18 20:59:52 -04:00
commit 454973e269
5978 changed files with 2664094 additions and 0 deletions
+88
View File
@@ -0,0 +1,88 @@
# Setup por PC — Compilar y probar MBS ERP (Genero 6)
Guía para dejar cada PC del equipo compilando y probando el ERP igual que la de referencia.
Sigue los pasos en orden. Al final hay una sección de **errores comunes y su solución**.
---
## 0. Software que debe estar instalado
- **Genero Studio 6.00.03** (Genero Studio603).
- **Runtime FGL 6.00.2** en `C:\Program Files\FourJs\fgl602` (trae el driver de SQL Server `dbmsnc`).
- **GDC** (cliente de escritorio) y/o navegador para GBC.
- **ODBC Driver 18 for SQL Server** (`msodbcsql18.dll`).
- **Git** (para clonar el repo).
> ⚠️ El runtime **6.00.01 que viene empaquetado dentro de GST NO sirve**: su carpeta `dbdrivers` está vacía (sin `dbmsnc`). **Hay que usar `fgl602`.**
---
## 1. Configurar Genero en GST → apuntar a `fgl602`
1. GST → **Tools → Genero Configurations** (gestor de configuraciones).
2. Crear/seleccionar una configuración cuyo **FGLDIR** sea:
```
C:\Program Files\FourJs\fgl602
```
3. Dejarla como **configuración activa** del proyecto.
## 2. Crear el DSN ODBC de Sistema a la BD de pruebas (.250)
> El runtime lanzado por GST **solo ve DSN de SISTEMA (no de usuario)**, y el DSN **debe fijar la base `marmotech`** (si no, cae en `master` y falla con "Invalid object name 'companias'").
1. Abrir **Administrador de orígenes de datos ODBC (64 bits)** → pestaña **DSN de sistema** → **Agregar**.
2. Driver: **ODBC Driver 18 for SQL Server**. Nombre del DSN: `marmotech250s`.
3. Server: `192.168.40.250` · **Database: `marmotech`**.
4. Cifrado: **Encrypt = No** (o **TrustServerCertificate = Yes**) para evitar el error de certificado.
5. Autenticación: **SQL Server** (no Windows). El usuario/clave lo pide el login del ERP en tiempo de ejecución.
## 3. Configurar la conexión en el `fglprofile` de `fgl602`
Editar `C:\Program Files\FourJs\fgl602\etc\fglprofile` y dejar:
```
dbi.database.smarmotech.source = "marmotech250s"
dbi.database.smarmotech.driver = "dbmsnc"
```
**Sin** `username`/`password` (los provee el login del menú: `CONNECT TO "smarmotech" USER usuario USING clave`).
## 4. Desplegar el linter `gslint` para el runtime 6.00.2 (una vez)
Si al compilar sale `ERROR (-4448) ... gslint.42m ... No such file or directory`, copiar la carpeta del linter para la versión 6.00.2:
```
Copiar: %APPDATA%\FourJs\Genero Studio 6.00.03-*\tools\FGL 6.00.01\gslint
Hacia: %APPDATA%\FourJs\Genero Studio 6.00.03-*\tools\FGL 6.00.02\gslint
```
(Alternativa: desactivar el linter en GST → Preferences → Genero.)
## 5. Tu usuario SQL en la BD de pruebas (.250)
- Cada quien usa **su propio login SQL** (el mismo de producción; se transfirieron a `.250` con la misma clave).
- Ese login debe tener **default_database = `marmotech`** (o el DSN ya fija la base, que es lo recomendado).
## 6. Clonar el repositorio (Git interno)
```bash
git clone http://192.168.40.251:3000/MBS/mbsERP.git
cd mbsERP
```
## 7. Abrir, compilar y probar en GST
1. Abrir el proyecto **`mbsERP.4pw`** en GST.
2. Confirmar que la configuración Genero activa es **fgl602** (paso 1).
3. Compilar tu(s) programa(s): clic derecho → **Build**.
4. Ejecutar el menú (**MAINMENU**) → login con **tu usuario SQL** → probar según el "Qué probar" del tablero de seguimiento (monday).
5. Al terminar cada programa: `git commit` + `git push`.
## 8. Flujo hacia el server de pruebas y producción
- Cada quien compila/prueba en su PC contra **`.250`**.
- `push` al repo (`.251`).
- En el **server de pruebas (`.251`)**: `git pull` + compilar/desplegar (con el GAS) → **pruebas definitivas**.
- Sólo después → **producción (`.40.4`)**.
---
## Errores comunes y solución (ya vividos)
| Error | Causa | Solución |
|---|---|---|
| `-6319 Unsupported SQL Server version` | Nivel de compatibilidad de la BD < 140 | `ALTER DATABASE marmotech SET COMPATIBILITY_LEVEL=140` (en .250 ya está) |
| `IM002 Data source name not found` (-6372) | DSN de **usuario** (no de sistema) | Crear el DSN como **de Sistema** (paso 2) |
| `Invalid object name 'companias'` (-206/-208) | Conexión cayó en `master`, no en `marmotech` | DSN con **Database=marmotech** (paso 2) |
| `-4448 ... gslint.42m` | Linter no desplegado para 6.00.2 | Copiar carpeta `gslint` (paso 4) |
| `Violation of PRIMARY KEY` en SQL con columnas `usuario`/`clave` | Colisión nombre columna vs variable global | **Calificar columnas** en el WHERE: `tabla.usuario`, `a.clave` |
| Compila todo el proyecto / errores de otros módulos | Nombres de librería duplicados en el `.4pw` viejo | Usar el proyecto limpio `mbsERP.4pw` |
---
*Documento vivo — si encuentras un paso o error nuevo, agrégalo y haz `push`.*