# 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`.*