|
El objetivo es realizar la eliminación de los
archivos lógicos que pertenecen a un archivo fisco.
Para generar el archivo con nombre de archivo lógicos,
es necesario un DSPDBR y crearlo con el nombre LÓGICOS,
en la librería QTEMP.
Código del comando DLTLGLF
**************************************************
CMD PROMPT('Eliminar Archivos Logicos')
PARM KWD(OBJETO) TYPE(QUAL1) MIN(1) PROMPT('Objeto')
QUAL1: QUAL TYPE(*NAME) LEN(10) MIN(1) EXPR(*YES)
QUAL TYPE(*CHAR) LEN(10) EXPR(*YES) +
PROMPT('Biblioteca')
*****************************************************
Código del programa, que ejecuta el comando.
/*----------------------------------------------------------------*/
/* OBJETIVO: ELIMINAR ARCHIVOS LOGICOS QUE PERTENECE A UN FISICO */
/* JORGE GUERRERO V. QUITO-ECUADOR */
/*----------------------------------------------------------------*/
/* INICIA PROGRAMA */
PGM PARM(&PARAMETROS)
/* DECLARACION DE VARIABLES */
DCL VAR(&LIBORI) TYPE(*CHAR) LEN(10)
DCL VAR(&ARCORI) TYPE(*CHAR) LEN(10)
DCL VAR(&PARAMETROS) TYPE(*CHAR) LEN(20)
/* DECLARACION ARCHIVO TEMPORAL */
DCLF FILE(QTEMP/LOGICOS)
/*CAMBIO DE VALORES EN VARIABLES */
CHGVAR VAR(&ARCORI) VALUE(%SST(&PARAMETROS 1 10))
CHGVAR VAR(&LIBORI) VALUE(%SST(&PARAMETROS 11 10))
/*VERIFICO QUE EXISTA LIBRERIA */
CHKOBJ OBJ(QSYS/&LIBORI) OBJTYPE(*LIB)
MONMSG MSGID(CPF9801) EXEC(DO)
SNDPGMMSG MSGID(CPF9801) MSGF(QCPFMSG) MSGDTA(&LIBORI)
GOTO CMDLBL(FIN)
ENDDO
/*VERIFICO QUE EXISTA ARCHIVO */
CHKOBJ OBJ(&LIBORI/&ARCORI) OBJTYPE(*FILE)
MONMSG MSGID(CPF9801) EXEC(DO)
SNDPGMMSG MSGID(CPF9801) MSGF(QCPFMSG) MSGDTA(&ARCORI)
GOTO CMDLBL(FIN)
ENDDO
/* GENERO ARCHIVO DE TEMPORAL CON ARCHIVOS LOGICOS */
DSPDBR FILE(&LIBORI/&ARCORI) OUTPUT(*OUTFILE) +
OUTFILE(QTEMP/LOGICOS)
MONMSG MSGID(CPF6891) EXEC(DO)
SNDPGMMSG MSGID(CPF6891) MSGF(QCPFMSG) MSGDTA(&LIBORI)
SNDPGMMSG MSGID(CPF6891) MSGF(QCPFMSG) MSGDTA(&ARCORI)
ENDDO
/* VERIFICO QUE SE CREA ARCHIVO TEMPORAL */
CHKOBJ OBJ(QTEMP/LOGICOS) OBJTYPE(*LIB)
MONMSG MSGID(CPF9801) EXEC(DO)
SNDPGMMSG MSGID(CPF9801) MSGF(QCPFMSG) MSGDTA(QTEMP)
GOTO CMDLBL(FIN)
ENDDO
/* LEO ARCHIVO TEMPORAL CON NOMBRE DE LOS ARCHIVOS LOGICOS */
/* HASTA FIN DE ARCHIVO */
LEER: RCVF RCDFMT(QWHDRDBR)
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(FIN))
/* ELIMINO ARCHIVOS LOGICOS */
DLTF FILE(&WHRELI/&WHREFI)
MONMSG MSGID(CPC2191) EXEC(SNDPGMMSG MSGID(CPF2191) +
MSGF(QCPFMSG) MSGDTA(&WHREFI))
GOTO CMDLBL(LEER)
FIN:
ENDPGM
Puedes ver el código del programa aquí
Ejemplo enviado por Jorge Guerrero Vargas
22-01-2003

|