|
WRTSRC - Escribir en un miembro fuente
Esta utilidad se proporciona "tal cual",
el autor no se hace responsable de posibles perjuicios
debidos a fallos no detectados. Es por ello que se recomienda
probar de forma exahustiva esta utilidad, para eso se
entrega junto con los fuentes.
El mandato "Escribir en miembro fuente" permite
añadir una sentencia fuente en un miembro de
archivo fuente. El registro entero puede ser insertado
o actualizado. Se puede también especificar posiciones
para facilitar el trabajo con lenguajes en formato fijo
(como RPG o DDS).
Este puede ser útil cuando se necesite crear
o modificar una cantidad pequeña de código
fuente desde un programa CL. Los tipos de fuente habituales
para ser modificados serían las DDS o las especificaciones
de reformateo.
Por ejemplo, se quiere crear dinámicamente un
fichero usando el mismo formato que el producido por
el mandato DSPFD OUTPUT(*OUTFILE) pero especificando
como clave al campo "número de registros"
(MBNRCD) en orden descendente. El fichero modelo en
la biblioteca QSYS es QAFDMBR con nombre de formato
QWHFDMBR. Para conseguirlo se necesita primero un archivo
fuente con un miembro. Luego se puede usar el mandato
WRTSRC para crear la DDS que se necesita. Una codificación
CL típica podría ser la que sigue:
CRTSRCPF FILE(QTEMP/SOURCE)
ADDPFM FILE(QTEMP/SOURCE) MBR(MBRFIL)
WRTSRC SRCFILE(QTEMP/SOURCE) MBR(MBRFIL) ACTION(*ADD)
STMT('-
A R QWHFDMBR FORMAT(QSYS/QAFDMBR)')
WRTSRC SRCFILE(QTEMP/SOURCE) MBR(MBRFIL) ACTION(*ADD)
STMT('-
A K MBNRCD DESCEND')
WRTSRC SRCFILE(QTEMP/SOURCE) MBR(MBRFIL) ACTION(*END)
CRTPF FILE(QTEMP/MBRFIL) SRCFILE(QTEMP/SOURCE)
DSPFD FILE(xxx) TYPE(*MBR) OUTPUT(*NONE) FILEATR(*PHY)
+
OUTFILE(QTEMP/MBRFIL)
Se ha creado un archivo fuente y se ha añadido
un miembro. Los dos primeros mandatos WRTSRC escriben
las especificaciones DDS en el fichero anterior con
el formato y la clave del registro. El mandato WRTSRC
asume que se quiere realizar más de una operación
con él, asi en la tercera aparición se
especifica ACTION(*END) con lo que se cierra el archivo
y miembro utilizado. Posteriormente el mandato CRTPF
crea
el fichero y la salida producida por DSPFD se pone en
el fichero creado antes.
La DDS que ha sido creado se parecería a:
A R QWHFDMBR FORMAT(QSYS/QAFDMBR)
A K MBNRCD
En el ejemplo anterior el parámetro STMT de
WRTSRC se usó para escribir una sentencia completa
con el número exacto de espacios en blanco requeridos
para el formato fijo de cada entrada de DDS. Otra alternativa
es usar las palabras clave POSn y TXTn. Las dos primeras
sentecias del ejemplo anterior podrían haberse
escrito también así:
WRTSRC SRCFILE(QTEMP/SOURCE) MBR(MBRFIL) ACTION(*ADD)
+
POS1(6) TXT1('A') +
POS2(17) TXT2('R QWHFDMBR') +
POS3(45) TXT3('FORMAT(QSYS/QAFDMBR)')
WRTSRC FILE(QTEMP/SOURCE) MBR(MBRFIL) ACTION(*ADD) +
POS1(6) TXT1('A') +
POS2(17) TXT2('K MBNRCD')
POS3(45) TXT3('DESCEND')
Cuando son usados los parámetros POSn y TXTn,
la sentencia es construida en un área de trabajo
y posteriormente escrita en el fichero fuente. Se pueden
especificar hasta cuatro valores POSn y TXTn. Cada campo
TXTn puede tener haste 25 bytes de longitud y es truncado
al último carácter introducido. La palabra
clave STMT puede también
usarse. El valor de STMT será el registro base
de la sentencia y los valores TXTn se solaparán
sobre éste.
Para obtener un mejor conocimiento sobre esta utilidad
se puede leer la información de la QUSRTOOL (ver
README de este paquete) o estudiar los fuentes con más
detenimiento.
Referencias
===========
Autor
-----
QUSRTOOL en V3R0M5
ATTINFO/WRTSRC
Javier Mora García jmora@dialsur.es
Traducción al castellano del mandato y mensajes
de error.
Se han cambiado de nombre a los programas responsables
de ejecutar el mandato.
Mantenedor del paquete
----------------------
jmora@dialsur.es
Se está interesado en corregir los posibles
fallos que pudiera tener esta utilidad. Para ello dirigirse
al e-mail anterior poniendo en el asunto:
Comentarios mandato WRTSRC
Fuentes
=======
Miembro Tipo Atributo Texto
---------- ------- -------- ---------------------------------------
WRTSRC *CMD CMD Escribir en miembro fuente.
WRTSRCC *PGM CLP CPP WRTSRC Escribir en miembro fuente.
WRTSRCR *PGM RPG WRTSRC Escribir en miembro fuente.
Requisitos y dependencias
=========================
NINGUNO.
Instalación
===========
Subir cada uno de los fuentes al iSeries y ejecutar
el programa de instalación INSWRTSRC.
Si se requiere una instalación más personalizada,
en las cabeceras de cada uno de los programas y mandatos
se recomiendan las opciones de compilación.
Tienes los fuentes de la utilidad aquí
(11Kb) 
Enviada por Javier Mora
Febrero 2004
|