En Control Language (CL) para IBM i, las variables no solo se declaran, también necesitan ser modificadas en tiempo de ejecución. Para ello se utiliza principalmente el comando CHGVAR (Change Variable), que permite asignar nuevos valores, realizar cálculos y manipular cadenas.
1. El comando CHGVAR (Change Variable)
El comando CHGVAR es la herramienta principal para modificar valores de variables en un programa CL.
Ejemplo básico:
CHGVAR VAR(&COUNTER) VALUE(&COUNTER + 1)
En este ejemplo, el valor de &COUNTER se incrementa en 1.
Parámetros principales:
- VAR: Nombre de la variable que se desea modificar.
- VALUE: Nuevo valor a asignar, que puede ser una constante, otra variable o una expresión.
2. Uso de Expresiones en CHGVAR
El parámetro VALUE acepta operaciones aritméticas y concatenaciones de cadenas.
Ejemplos:
CHGVAR VAR(&TOTAL) VALUE(&PRICE * &QTY)
CHGVAR VAR(&FULLNAME) VALUE(&FIRSTNAME *CAT ' ' *CAT &LASTNAME)
*CATconcatena cadenas.- Se pueden usar operadores matemáticos como
+,-,*,/.
3. Funciones en CHGVAR
El comando CHGVAR también soporta funciones integradas que facilitan la manipulación de datos.
Ejemplo:
CHGVAR VAR(&LENGTH) VALUE(%LEN(&TEXT))
Funciones comunes:
| Función | Descripción |
|---|---|
| %LEN | Longitud de una cadena o variable |
| %SST | Subcadena |
| %BINARY | Conversión a valor binario |
| %DEC | Conversión a decimal |
4. Modificación Indirecta de Variables
Además de CHGVAR, otros comandos en CL pueden modificar variables de manera indirecta:
- RCVF: Asigna valores a variables al leer registros de un archivo.
- RTVJOBA: Recupera información del trabajo y la almacena en variables.
- RTVSYSVAL: Recupera valores de sistema y los asigna a variables.
Ejemplo:
RTVSYSVAL SYSVAL(QDATE) RTNVAR(&CURDATE)
Aquí, &CURDATE recibe la fecha del sistema.
5. Buenas Prácticas al Modificar Variables
- Usa nombres descriptivos para mejorar la legibilidad.
- Inicializa siempre tus variables antes de modificarlas.
- Aprovecha las funciones integradas para evitar cálculos manuales.
- Evita expresiones demasiado complejas dentro de CHGVAR, separa en pasos.
Conclusión
Modificar variables en CL es fundamental para que los programas sean dinámicos y útiles. Con CHGVAR puedes actualizar valores, realizar operaciones y manejar cadenas con flexibilidad. Además, otros comandos como RCVF, RTVJOBA y RTVSYSVAL amplían las posibilidades.
El dominio de estas técnicas permite crear programas CL más sólidos y adaptables, mejorando tanto la eficiencia como la claridad del código.