Borrar un fichero desde el JCL

Utilitarios artesanales que desarrollamos para nosotros y deseamos compartir (en REXX)
elpantanero
Colaborador
Colaborador
Mensajes: 78
Registrado: 25 Oct 2007, 06:31
País: España
Ciudad: Madrid
Ocupación: Técnico en Sistemas

Borrar un fichero desde el JCL

Mensajepor elpantanero » 19 Nov 2007, 05:54

HOLA:
A todos nos da de vez en cuando un JCL error por DUPLICATE NAME
Para solucionarlo, rapido
Hacemos un SJ en la salida del JCL error
en la linea de comando colocamos DF (delete fichero) y el cursor en el fichero que queremos borrar y damos intro,
Nos sale el mensage de si de verdad lo queremos borrar, le contestamos que si y el fichero está borrado
Un saludo
La rexx es:

Código: Seleccionar todo

* REXX */                                                             
/*BORRADO DE FICHERO en la POSICION DEL CURSOR DSN=*/             
"ISREDIT MACRO"                                                         
"ISREDIT (LIN COL) = CURSOR "                                           
"ISREDIT (LINEA) = LINE " LIN                                           
X=BFILE() /* BUSCA NOMBRE */                                           
X=VFILE() /* VALIDA FILE */                                             
RETURN 0                                                               
VFILE:                                                                 
      IF SYSDSN(FILE)¬='OK' THEN                                     
  "ISREDIT LINE_AFTER "LIN" = MSGLINE <1>" 
      ELSE DO                                                           
        SAY ' SE BORRA EL FICHERO :' FILE                               
        SAY ' ESTA DE ACUERDO?? (SI o NO)'                             
        PULL RES                                                       
       IF RES='SI' THEN  "DELETE" FILE                                 
           END                                                         
RETURN 0                                                               
BFILE: /* BUSCA NOMBRE FICHERO EN LA LINEA */                           
F = INDEX(LINEA,'DSN=')                                                 
IF F = 0 THEN  DO                                                       
   FILE=STRIP(SUBWORD(SUBSTR(LINEA,COL),1,1),T,',')                     
   FILE=STRIP(FILE,,"'")                                               
   F=INDEX(FILE,"')")                                                   
   IF F¬=0 THEN  DO                                                     
      FILE=SUBSTR(FILE,1,F-1)                                           
   END                                                                 
   END                                                                 
 ELSE DO                                                               
   FILE=SUBWORD(SUBSTR(LINEA,F+4),1,1)                                 
   F=INDEX(FILE,',')                                                   
   IF F¬=0 THEN                                                         
      FILE = SUBSTR(FILE,1,F-1)                                         
   END                                                                 
 FILE=STRIP(FILE,,' ')                                                 
 RETURN 0
El Pantanero (el mas viejo de los dinosaurios del pantano)

Avatar de Usuario
acevedo
Colaborador Senior
Colaborador Senior
Mensajes: 375
Registrado: 01 Abr 2005, 14:36
País: España
Ciudad: Malaga
Ocupación: Analista de desarrollo

Mensajepor acevedo » 21 Nov 2007, 19:18

lo de poner el código entre los tags CODE...como que ayuda a leer el post.
.
Por otra parte échale un vistazo al programa VCURSOR de Doug Nadel ( http://sillysot.com/ftp/vcursor.txt )...hace tiempo (5 años?) partiendo de ese programa hice utilidades para, partiendo de la posición del cursor, detectar el nombre del fichero y proponer opciones para borrarlo, editarlo...

1-echale un vistazo a como 'aisla' el nombre del fichero partiendo de las variables zscreeni y zscreenc ( a mi me pareció genial).
2-echale un vistazo a la creación dinámica del panel (0j0- no es lo mismo que un panel dinámico)..

espero que también te sirva para aprovechar algunas ideas.

marebore
Usuario
Usuario
Mensajes: 6
Registrado: 25 Sep 2013, 09:27
País: España
Ciudad: Madrid
Ocupación: Programador

Re: Borrar un fichero desde el JCL

Mensajepor marebore » 12 Sep 2017, 11:44

Y no es mas fácil añadir siempre un paso en el JCL para borrar el fichero si existe?

//PAS00001 EXEC PGM=IEFBR14
//DD1 DD DSN=NOMBRE.DE.FICHERO,
// DISP=(MOD,DELETE,DELETE)

Si el fichero existe lo borra y si no sigue adelante


Volver a “... en REXX”