Algunos códigos fuentes simples y útiles en RPGLE-FREE
Para ejecutar comandos:
En la hoja D,
declaramos:
d clpstm s 300
d@runsyscmd pr extpgm('QCMDEXC')
d cmd
200a options(*varsize) const
d cmdlen
15p 5 const
Monitoreamos
la sentencia para que el programa no falle estrepitosamente en caso de que haya
un error de ejecución del comando.
En
este ejemplo estamos haciendo un chkobj de un objeto. Si el objeto no existe, el
error que arroja el sistema operativo es CPF9801 con La sentencia monitor y la
operación on-error, enviamos el mensaje al
usuario sin que el programa deje de estar operativo.
monitor;
clpstm = 'chkobj obj(' +
%trim(libreria) +
'/' +
%trim(archivo) +
')
objtype(*file)';
@runsyscmd(clpstm
: %size(clpstm));
on-error;
Dsp_error
= 'Archivo solicitado no existe';
endmon;
Simplificando la Validando de
Fechas
En
la hoja D:
d Wrk_Fecha s D datfmt(*eur)
En
el Ejemplo trabajamos la fecha en formato *EUR (DD.MM.AAAA), por lo que a nivel
de programación esperamos que el usuario haya colocado la fecha en formato *Eur o que la fecha venga de un archivo
generado con ese formato. Sin embargo, cabe destacar que este ejemplo es
aplicable a cualquier formato con el que se desee trabajar.
Detectamos
que la fecha es inválida pero no especificamos la razón (si es por el día, el
mes o el año) cada programador puede refinar el código si así lo desea.
monitor;
Wrk_fecha = %date(Fecha:*EUR);
on-error;
dsp_error = 'Fecha Inválida';
Endmon;