Puedes llamarme al telefono:
+34 684 70 27 62
Fisicamente me encuentro en:
32570 Maside, Ourense, Espana
Escribeme y te respondere:
joalweingartt@gmail.com
Puedes llamarme al telefono:
+34 684 70 27 62
Fisicamente me encuentro en:
32570 Maside, Ourense, Espana
Escribeme y te respondere:
joalweingartt@gmail.com

PRIMERO DE TODO: ¿QUÉ CARAJOS ERA STRISDB?
Hoy los juniors abren Chrome DevTools, ponen un breakpoint con un clic, inspeccionan variables en 4K, ven la pila de llamadas en colores pastel… y se creen dioses.
Nosotros teníamos STRISDB. El comando que prometía salvarte las nalgas y siempre te las rompía un poco más.
rpg
STRISDB PGMA (TUCODIGO/TUPRG) UPDPROD(*YES)
Y ahí empezaba el viacrucis:
> esperando comandos.EVAL CAMPO*NONE (que significa: «no tengo ni idea»).DBGVIEW(*LIST)).La mayoría abandonábamos a los 10 minutos. F3, F3, ENTER y a correr con DSPLY como los cavernícolas digitales que éramos.
No había console.log(«llegue hasta aqui»). Había:
rpg
C MOVEL 'HOLA MUNDO' CADENA 50
C DSPLY CADENA
Y en la parte de abajo de la pantalla, en la línea de comandos, aparecía:
text
HOLA MUNDO
¡Y TENÍAS QUE PRESIONAR ENTER PARA CONTINUAR!
Imagínate: 500 DSPLY en un loop de 10.000 registros. Tu programa se convertía en un juego de «presiona ENTER 10.000 veces si te atreves».
¿El resultado? Un dedo índice musculoso, un F3 desgastado, y una terapia psicológica pendiente.
Cuando STRISDB te fallaba (siempre) y DSPLY no era suficiente (nunca), tenías tres opciones:
rpg
C DSPLY CADENA
C DSPLY '*N'
El *N significaba «no esperes tecla». El programa seguía solo. Pero no veías el mensaje porque pasaba volando. Entonces… ¿para qué?
rpg
C CONT IFEQ 100
C DSPLY 'Llegue a 100'
C CONT END
Así solo te paraba cada 100 iteraciones. Tecnología avanzada para la época.
rpg
C EXCPTPRINT
C OCCUR PRINT
Y luego:
bash
WRKSPLF SELECT(*CURRENT)
Veías tu programa escribiendo en tiempo real como si fuera un ECG de paciente en paro.
Anécdota real (y si no lo fue, debería haberlo sido):
Un viernes a las 17:30, el programa de nóminas de una empresa con 3000 empleados dejó de pagar a la mitad del personal.
El error era reproducible solo en producción. En desarrollo, funcionaba perfecto.
¿Qué haces? No puedes usar STRISDB porque el programa está compilado sin debug en producción. No puedes recompilar porque es viernes y el cambio requiere aprobación.
Solución de viejo zorro:
DSPLY en lugares estratégicos.DBGVIEW(*SOURCE) pero sin cambiar firma.DSPLY te mostró: CLAVE-VACIA en el registro 2345.IF de una línea.Ese día, DSPLY fue más héroe que cualquier IDE moderno. Y tú te fuiste a casa con el pecho inflado y la botella de vino más cara del supermercado.
ErrorSolución con DSPLYNivel de sufrimientoCPF5029 – Índice no válidoDSPLY antes del SETLL y READE😭😭😭MCH3601 – Puntero no asignadoDSPLY del puntero (sí, se podía)🤯💀RNQ0103 – División por ceroDSPLY de los operandos antes de DIV😤😩CPF4103 – Archivo no abiertoDSPLY del *IN del archivo😒🔫
Y el peor de todos… cuando no sale ningún error pero EL RESULTADO ESTÁ MAL. Ahí metías DSPLY hasta en los sueños.
Claro que sí. Aunque ahora los desarrolladores de IBM i moderno usan más RDi (Rational Developer for i) con debug gráfico, o incluso VS Code con extensiones…
El viejo lobo sigue usando DSPLY.
Porque el DSPLY:
Así que la próxima vez que un junior te diga «no entiendo cómo depuraban ustedes», abrázalo, sonríe, y enséñale esto:
rpg
C DSPLY 'ASi se hacia, crio'
C DSPLY '*N'
Y si te pregunta qué significa *N, le dices: «Que no esperábamos a nadie. Seguíamos adelante. Como siempre.»
Porque todos tenemos una. Esa vez que STRISDB te tiró el sistema. O que se colgó después de 3 horas. O que nunca, nunca, nunca te mostró el error real.
Yo espero aquí, con el F9 listo para recuperar el comando.
Y si todavía usas DSPLY aunque tengas RDi… eres de los míos.