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.