Nosotros hace ya bastante tiempo preparamos un proceso para facilitar el conseguir las referencias a un objeto (Programa o Fichero) que resulta c�modo de utilizar.
Se trata b�sicamente de aplicar el mandato DSPPGMREF con salida a un fichero para todos los programas de las bibliotecas de la aplicaci�n. Esto lo realiza un CL a partir de los nombres de bibliotecas grabados en otro fichero.
Despu�s para el programa o fichero que nos interesa se buscan las referencias en ese fichero.
Los dos procesos los tenemos como �Opciones definidas por usuario�, de forma que al solicitar la opci�n en la l�nea del programa deseado se visualizan todos los programas que lo llaman, y si es un fichero todos los programas que lo utilizan.
Aunque como ver�s el proceso es sencillo, como los fuentes no son muy extensos los env�o por si te interesan:
DDS del fichero FICHREF
* BIBLIOTECAS DE APLICACION DONDE SE HAN DE BUSCAR
* PROGRAMAS Y OBJETOS PARA INFORMACION CON 'RF'
* ESTE FICHERO SE LLENA INICIALMENTE POR DFU CON TODOS LOS
* NOMBRES DE BIBLIOTECAS EN LAS QUE SE QUIERAN BUSCAR
* REFERENCIAS A OBJETOS
A R FMT0
A B00OBJ 10 COLHDG('BIBL. DE OBJETOS')
Programa CL CLREF
PGM
/* GRABA EN EL FICHERO REFPROG LAS REFERENCIAS DE PROGRAMAS */
/* DE TODOS LOS PROGRAMAS DE LAS BIBLIOTECAS INDICADAS EN */
/* EL FICHERO FICHREF */
DCL
VAR(&BIBLI) TYPE(*CHAR) LEN(10)
DCL
VAR(&BIBTRA) TYPE(*CHAR) LEN(10) VALUE('XXXX')
DCLF
FILE(FICHREF)
INICIO: RCVF
CHGVAR VAR(&BIBLI) VALUE(&B00OBJ)
DSPPGMREF PGM(&BIBLI/*ALL) OUTPUT(*OUTFILE)
+
OUTFILE(&BIBTRA/REFPROG)
MONMSG CPF0000
SEGUIR: RCVF
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(FIN))
CHGVAR VAR(&BIBLI)
VALUE(&B00OBJ)
DSPPGMREF
PGM(&BIBLI/*ALL) OUTPUT(*OUTFILE) +
OUTFILE(&BIBTRA/REFPROG) OUTMBR(*FIRST *ADD)
MONMSG CPF0000
GOTO SEGUIR
FIN: ENDPGM
Qmqry QRYREF
SELECT DISTINCT WHLIB, WHPNAM, WHFNAM, WHFUSG
FROM REFPROG
WHERE WHFNAM=&fichero
Opciones definidas por usuario en PDM (Mdto16)
PR SBMJOB CMD(CALL PGM(CLREF))
RF STRQMQRY QMQRY(QRYREF)
OUTPUT(*) SETVAR(('fichero' '''&N'''))
Hola,
Quiero modificar un programa estandard de una aplicaci�n para que este reciba un par�metro, pero no se c�mo localizar todos los programas que le hacen un call. Me suena que hay un mandato que te lista todos los programas que llaman a un programa concreto, es as�?
Gracias por avanzado!
Sergi Sitjes
Resp. Sistemes d'Informaci�
