¿ Quieres imprimir esta página ? Volver a la página principal de Recursos iSeries AS400 ¿ Necesitas ayuda ? En pruebas
System i5 iSeries AS400 Recursos. Compartiendo generamos conocimiento
Novedades en Recursos iSeries AS400
Noticias tecnológicas

Utilidades
Utilidad BTTSPC

Cuando trabajamos con API's uno de los problema más engorrosos con que nos encontramos es que la documentación de IBM no siempre se corresponde con la realidad. Sobretodo me he encontrado con problemas en las cabeceras de un espacio de usuario que casi nunca son de la longitud especificada en el manual, o que en ellos podemos ver que son de longitud variable sin más.

Esto provoca que a menudo perdamos mucho tiempo intentando averiguar a partir de que posición comienzan los datos formateados, y en que posición comienzan los datos de cabecera que nos interesa.

Con esta sencilla utilidad podremos visualizar el contenido de un espacio de usuario, tanto en modo *CHAR como en modo *HEX.

En el fichero BTTSPC encontrarás los fuentes de esta utilidad

Instalación
Extraemos los siguientes documentos a las carpetas compartidas, y con un CPYFRMPCD los subimos al archivo fuente donde situamos las utilidades generalemente.

Asignamos los siguientes tipos y nombres a los ficheros:

Bttspc1f._ BTTSPC1F PF Fichero que recibe el contenido de un espacio de usuario

Bttspc1c._ BTTSPC1C CLLE Gestiona la visualización de un espacio de usuario

Bttspc1r._ BTTSPC1R RPGLE Vuelca el contenido de un espacio de usuario a un fichero

Bttusrsp.c_ BTTUSRSPC CMD Visualizar un espacio de usuario.

Compilaremos con un 15 los módulos CLLE y RPGLE.

Haremos CRTPGM PGM(QGPL/BTTUSRSPCC) MODULE(BTTSPC1C BTTSPC1R)

Y compilaremos el mandato para que apunte al programa BTTUSRSPCC

Funcionamiento
El funcionamiento de esta utilidad es el siguiente:

El mandato envía al CL el nombre del espacio de usuario de manera cualificada.

Creamos el fichero de trabajo en la QTEMP

Llamamos al RPG para que vuelque el contenido del *USRSPC al fichero de la siguiente manera:

Recuperamos el puntero de memoria de donde comienza el espacio de usuario, y lo pasamos a una estructura de datos que contiene una array de 320 elementos de 100 posiciones cada uno, la misma longitud de registro del fichero de trabajo, para así poder contar de una manera más fácil las posiciones.
Utilizamos la API QUSRPTRUS, que nos recupera dicho puntero, y la estructura de datos está basada en ese puntero.

Si hay algún error al recuperar el puntero, lo pasamos a la array.

Procedemos al volcado del espacio de usuario al fichero de trabajo.
Para facilitar el control de errores de puntero, hemos creado un prototipo que se encarga únicamente de retornar el valor de la posición de la array concreta al campo del fichero. Normalmente el error más común es el de desbordamiento de posiciones al intentar acceder a una posición que ya no está ocupada por el *USRSPC, y que nos denuncia el final del *USRSPC.

Mostramos el fichero de trabajo con un DSPPFM para así de esta manera poder
obtener la representación *HEX de una manera cómoda.

En fin, espero que esta utilidad os ayude a entender los datos que nos devuelven las API's y evitar hacer los miles de debug's necesarios para 'cuadrar' las posiciones que indican los manuales de IBM, con la realidad que nos devuelven las API's.


Que la fuerza os acompañe.

Àlex Corretge

Comentarios de usuarios

Nombre:
Mail:
Comentario:
 

 

NUESTRA COMUNIDAD EN
ÚNETE Y.... ¡¡ PARTICIPA !!
Dossiers técnicos iSeries y AS400
- Seguridad
- Alta disponibilidad.
Nuestros links favoritos
- Tendencias tecnologías de la información
Expertos en tecnologías de la información, nos dan su punto de vista sobre las tendencias actuales y futuras
- Los últimos anuncios sobre hardware-software para iSeries AS400 realizados por IBM
- Freeware y shareware para el iSeries AS400
- Utilidades para el iSeries AS400 realizadas por profesionales
- Documentos. Trucos e ideas para resolver tus problemas
- Los manuales y links más interesantes del iSeries AS400

  Links patrocinados
  •  
  •  

[ Soy nuevo |   Profesionales |   AS qué |   Empresas |    Foros |   Recomiéndanos |    Productos ]
 
Recursos iSeries AS400. Es una web de: PUBLICACIONES HELP400, S.L. CIF:B-60-202827 Gran Vía de les Corts Catalanes, núm. 715, Entresuelo – 3ª - Barcelona - Tel.+34.932.310.049