Mejoras RPG v5r1
ver manual en pdf y español:
v5r1 spanish ILE RPG Guia del Programador
tiene una buena
"Tabla 1. Elementos del lenguaje modificados desde V4R4"
Las mejoras más importantes realizadas en RPG IV desde V4R4 son una mayor
facilidad de intercambio de información con Java, nuevas funciones incorporadas (BIF),
especificaciones de cálculo de formato libre, control de qué archivo está abierto,
nombres de subcampos calificados y manejo de errores mejorado.
La lista siguiente describe estas mejoras:
- Soporte mejorado para llamadas entre Java e ILE RPG utilizando la interfaz
nativa Java (JNI):
– Un nuevo tipo de datos de objeto.
– Una nueva palabra clave de especificación de definición: CLASS.
– La palabra clave de especificación de definición LIKE se ha extendido para
dar soporte a objetos.
– La palabra clave de especificación de definición EXTPROC se ha extendido
para dar soporte a procedimientos Java.
– Nuevos códigos de estado.
- Nuevas funciones incorporadas:
– Funciones para convertir un número en una duración que puede emplearse
en expresiones aritméticas: %MSECONDS, %SECONDS, %MINUTES,
%HOURS, %DAYS, %MONTHS y %YEARS.
– La función %DIFF, para restar un valor de fecha, hora o indicación de la hora
de otro.
– Funciones para convertir una serie de caracteres (o fecha o indicación de la
hora) en una fecha, hora o indicación de la hora: %DATE, %TIME y
%TIMESTAMP.
– La función %SUBDT, para extraer un subconjunto de una fecha, hora o
indicación de la hora.
– Funciones para asignar o reasignar almacenamiento: %ALLOC y %REALLOC.
– Funciones para buscar un elemento en una matriz: %LOOKUP,
%LOOKUPGT, %LOOKUPGE, %LOOKUPLT y %LOOKUPLE.
– Funciones para buscar un elemento en una tabla: %TLOOKUP,
%TLOOKUPGT, %TLOOKUPGE, %TLOOKUPLT y %TLOOKUPLE.
– Funciones para verificar que una serie contenga sólo los caracteres
especificados (o buscar la primera o última excepción a esta norma):
%CHECK y %CHECKR
– La función %XLATE, para convertir una serie a partir de una lista de
caracteres origen en caracteres destino.
– La función %OCCUR, para obtener o establecer la aparición actual de una
estructura de datos de apariciones múltiples.
– La función %SHTDN, para determinar si el operador ha solicitado la
conclusión.
– La función %SQRT, para calcular la raíz cuadrada de un número.
- Una nueva sintaxis de formato libre para las especificaciones de cálculo. Un
bloque de especificaciones de cálculo de formato libre se delimita mediante las
directivas de compilación /FREE y /END-FREE.
- Puede especificar las palabras clave EXTFILE y EXTMBR en la especificación de
archivo para controlar qué archivo externo se utiliza cuando se abre un archivo.
- Soporte para nombres calificados en estructuras de datos:
– Una nueva palabra clave de especificación de definición: QUALIFIED. Esta
palabra clave especifica que los nombres de subcampos se calificarán con el
nombre de la estructura de datos.
– Una nueva palabra clave de especificación de definición: LIKEDS. Esta
palabra clave especifica que los subcampos se replican a partir de otra
estructura de datos. Los nombres de subcampos se calificarán con el nombre
de la nueva estructura de datos. La palabra clave LIKEDS está permitida para
los parámetros de prototipos; permite que los subcampos del parámetro se
utilicen directamente en el procedimiento llamado.
– La palabra clave de especificación de definición INZ se ha extendido para
permitir que una estructura de datos se inicialice a partir de su estructura de
datos padre.
- Manejo de errores mejorado:
– Tres nuevos códigos de operación (MONITOR, ON-ERROR y ENDMON)
permiten definir un grupo de operaciones con manejo de errores condicional
en función del código de estado.
Asimismo se han efectuado otras mejoras en este release. Son las siguientes:
- Puede especificar paréntesis en una llamada de procedimiento que no tiene
parámetros.
- Puede especificar que un procedimiento utilice los convenios de llamada C de
ILE o CL de ILE, en la palabra clave de especificación de definición EXTPROC.
- Los siguientes nombres /DEFINE están predefinidos: *VnRnMn, *ILERPG,
*CRTBNDRPG y *CRTRPGMOD.
- La longitud de la serie de búsqueda en una operación %SCAN ahora puede ser
superior a la de la serie donde se busca. (La serie no se encontrará, pero no se
producirá una condición de error.)
- El parámetro para las palabras clave DIM, OCCURS y PERRCD ya no necesita
estar definido con anterioridad.
- La función incorporada %PADDR ahora puede tomar un nombre de prototipo o
un nombre de punto de entrada como argumento.
- Un nuevo código de operación, ELSEIF, combina los códigos de operación ELSE
e IF sin que sea necesario un código ENDIF adicional.
- El código de operación DUMP ahora proporciona soporte para el expansor A, lo
que significa que siempre se genera un vuelco, aunque se haya especificado
DEBUG(*NO).
- Una nueva directiva, /INCLUDE, equivale a /COPY con la excepción de que el
preprocesador SQL no expande /INCLUDE. Los archivos incluidos no pueden
contener variables del lenguaje principal ni SQL intercalado.
- La palabra clave de especificación de archivo OFLIND ahora puede tomar
cualquier indicador, incluido un indicador con nombre, como argumento.
- La palabra clave LICOPT (opciones de código interno bajo licencia) ahora está
disponible en los mandatos CRTRPGMOD y CRTBNDRPG.
- La palabra clave de descripción de archivo PREFIX ahora puede tomar un literal
de caracteres en mayúsculas como argumento. El literal puede terminar en un
punto, lo que permite que el archivo se utilice con subcampos calificados.
- La palabra clave de especificación de definición PREFIX también puede tomar
un literal de caracteres en mayúsculas como argumento. Este literal no puede
terminar en un punto.