Bienvenidos a Iseries Venezuela

Las mejores prácticas, recursos, tips, enlaces, videos y artículos para informáticos relacionados con el Iseries y el As/400 lenguajes de programación RPG, ILE RPG y SQL.

The best practices, resources, tips, links, videoes and articles for computer related to the Iseries and the As/400 languages of programming RPG, ILE RPG and SQL.

Monday, January 25, 2010

Funcionalidades poco conocidas del "Debugger"














Escrito por Generico de WMInformática


martes, 30 de octubre de 2007

En este artículo, les mostramos algunas funcionalidades del "debugger" interactivo de ILE (STRDBG) que son muy útiles cuando estamos en nuestras faenas de encontrar un error.

%SUBSTR Built-In Function

Esta función es muy interesante, sobretodo si usted está trabajando con cadenas de caracteres muy largas.

- Se puede visualizar un segmento de una cadena como se muestra a continuación (suponiendo que StringFldA = 'abcdefghijklmnopqrstuvwxyz'):

Comando : EVAL %SUBSTR(StringFldA 12 5)


Resultado: %SUBSTR(StringFldA 12 5) = 'lmnop'

- Se puede usar la función %SUBSTR para fijar el valor de una parte específica de una cadena. Para mí, esta es la más útil de estas dos funciones.

Comando : EVAL %SUBSTR(StringFldA 12 5) = 'xxxxx'


Resultado: %SUBSTR(StringFldA 12 5) = 'xxxxx'

Comando : EVAL StringFldA


Resultado: StringFldA = 'abcdefghijkxxxxxqrstuvwxyz'

- También puede usar %SUBSTR para establecer un punto de parada condicional o una condición de inspección ("watch").

Por ejemplo, el siguiente código detendrá la ejecución sólo cuando las posiciones 12 a 16 de StringFldA sean "xxxxx":

Comando: BREAK 100 when %SUBSTR(StringFldA 12 5) = 'xxxxx'

- O usted puede buscar por cambio en las mismas posiciones mediante el uso de esta condición de inspección:

<!--[if !supportLineBreakNewLine]-->

<!--[endif]-->

Comando: WATCH %SUBSTR(StringFldA 12 5)

De este modo, en cualquier momento que el contenido de las posiciones 12 a 16 cambie, la ejecución del programa se detiene y se le informa.

%INDEX Built-In Function

La función %INDEX es muy práctica cuando se está utilizando estructuras de datos de múltiples ocurrencias.

También es útil en combinación con _QRNU_DSI_xxxx (donde xxxx = el nombre de una estructura de datos de múltiples ocurrencias).

- El comando EVAL _QRNU_DSI_xxxx devuelve el número de la actual ocurrencia de estructura de datos de múltiples ocurrencias.

- El uso de la función %INDEX cambiará la ocurrencia actual.

Tomemos el siguiente ejemplo:

d WorkDS1 ds occurs(3)
d StringA 10a
d StringB 25a

Comando: EVAL _QRNU_DSI_WorkDS1


Resultado: 1 (o cual sea la actual ocurrencia de WorkDS1)

Comando : WorkDS1 = %INDEX(3)


Resultado: WorkDS1 = %INDEX(3) = 3

(Los subcampos de WorkDS1 visualizados serán los de la tercera ocurrencia.)

Modificado el ( martes, 13 de noviembre de 2007 )


Publicado por: Ing. Liliana Suárez

Si te pareció interesante el artículo reenvíalo a un amigo, haciendo
click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.

2 comments:

Unknown said...

Caramba, es de agradecerse la iniciativa tomada por usted continúe no desmaye, desde que comencé a programar en RPG II en S/34 IBM se soñaba con este tipo de acceso al conocimiento, ahora esta generación debería aprovechar lo que usted hace.

Gracias,

Luis Cardenas

Unknown said...

Gracias Luis por tus palabras de ánimo, y por leer el blog, un abrazo desde Venezuela.
Liliana