
NUESTRO i CAFÉ — En el release V4R4 se agregó a ILE RPG/400 la palabra clave *START (no existe en
RPG/400). Esta palabra clave ofrece una forma de desplazarse al inicio de un archivo.
También existe la correspondiente palabra clave *END para desplazarse al final de
un archivo.
Antes de la introducción de *START y *END, muchos programadores utilizaba *LOVAL y *HIVAL, que no funcionan en todos los casos. Por ejemplo, si se usa *LOVAL en un archivo por clave ordenado de forma descendente, en vez de desplazarse al principio del archivo en realidad se desplazará al final de éste. Si tiene un archivo con una clave compuesta (una clave formada por más de un campo) en que algunos campos están ordenados de forma ascendente y otros de forma descendente, el uso de *HIVAL y *LOVAL pueden ser enormemente confuso. Pero *START y *END siempre van al inicio y al final del archivo, respectivamente, por lo que son mucho más fáciles de entender.
La palabra clave *START (y *END) pertenecen al Factor 1. En formato fijo, el Factor 1 va antes que el código de operación, de esta forma:
C *START SETLL NOMBREARCHIVO
En formato libre, el Factor 1 va después del código de operación:
setll *START NOMBREARCHIVO;
Una advertencia: en casi todos los casos, SETLL funcionará tanto con un nombre de archivo como con un nombre de formato de registro. Sin embargo, *START y *END son la excepción a esta regla. Estas palabras clave requieren que siempre use el nombre de archivo, nunca el de formato de registro.
Por desgracia, esta excepción no está documentada claramente en el Information
Center. Si intenta usar *START o *END con un nombre de formato de registro, el
compilador le mostrará el error RNF5319, que indica vagamente que "El operando
del Factor 2 tiene un tipo de datos no permitido para esta operación". Cuando me topé
con este error tuve que pedir ayuda a IBM y descubrí que *START y *END necesitan
un nombre de archivo. Desde que empecé a usar el nombre de archivo, me ha funcionado
la mar de bien.
Revista ServerNEWS — Autor: Scott Klement