Tratamientos de ficheros aplicación previos-posteriores a carga-descarga

Se ha implementado la posibilidad de que una vez descargado el fichero de presentación correctamente, se pueda adaptar a otro formato, se le pueda realizar una traducción, se le pueda realizar una conversión y se le puedan eliminar saltos de carro de un entorno que los utiliza. Esta posibilidad se extiende a los ficheros de aplicación de emisión, antes de cargarlos (adaptarlos, traducirlos y convertirlos por fuera de Editran). Dicho proceso se realiza a través del JCL ZTBGJFF4. Este consta de lo siguiente:

  1. PARM. Se le pasan 3 parámetros distintos, separados por comas:

  • Separadores en hexadecimal a eliminar. Normalmente los UNIX envían 2 caracteres x0A-x0D al final de cada línea. Se pueden dar 3 casos:

    • No hay separadores. Se indican 4 octetos a espacios

    • Hay un separador x’YZ’. En el octeto 1 se indica Y, en el octeto 2 se indica Z, y en los 2 últimos octetos se indican espacios.

    • Hay dos separadores x’AB’ x’CD’. En el octeto 1 se indica A, en el octeto 2 se indica B, en el octeto 3 se indica C y en el octeto 4 se indica D.

  • Traducción. Admite los valores: E (traducir de ASCII a EBCDIC), A (traducir de EBCDIC a ASCII) y N(no traducir).

  • Tabla de conversión. Nombre de la tabla del fichero de tablas de conversión. Si no se quiere convertir se indicarán espacios.

  1. Entrada. Es el nombre del fichero de aplicación, tal y como lo dejó Editran al pasar el posterior a recepción.

  2. Salida. Es el nombre del fichero de aplicación de salida una vez realizados los cambios. El formato del mismo, dependerá de cómo se defina.

  3. ZTBGFTCO. Es el nombre del fichero de tablas de conversión.

  4. PASO002. Optativo. Borraría el fichero de aplicación origen si la adaptación del mismo es correcta.

//KI0F6AEA JOB (EGDC,KIT,,99),'EDITRAN-V40',MSGCLASS=H,CLASS=A, 
//            NOTIFY=&SYSUID              
//*********************************************************************
//*  ADAPTACION DE FICHEROS EDITRAN. TRADUCCION Y CONVERSION INCLUIDOS.
//*  NOTA PARA FICHEROS FIJOS DE SALIDA: SI LRECL ES MAYOR QUE REGISTRO
//*       A GRABAR, SE RELLENA A SPACES POR LA DERECHA.
//*  NOTA PARA FIJOS DE ENTRADA Y VBLES DE SALIDA. PROBABLEMENTE, EL
//*       VBLE DEBE SER DEFINIDO 4 OCTETOS MAYOR QUE LRECL DE FIJO.
//*********************************************************************
//*  VALORES DE PARM:(XXXX,Y,ZZZZZZZZ) SEPARADOS POR COMAS:                                  
//*    XX = CARACTERES HEXADECIMALES A ELIMINAR (SALTO DE CARRO):
//*         - CUATRO OCTETOS A SPACES: NO HAY CARACTERES A ELIMINAR
//*         - DOS OCTETOS INDICANDO UN CARACTER HEXADECIMAL Y OTROS DOS
//*           A SPACES. ELIMINA EL CARACTER DETERMINADO EN HEXA
//*         - CUATRO OCTETOS INDICANDO DOS CARACTERES HEXADECIMALES.
//*           POR EJEMPLO 0D0A): ELIMINA LOS DOS HEXADECIMALES X0D-X0A                                                
//*    Y  = 1 OCTETO INDICANDO SI SE VA A TRADUCIR ALFABETO DE FICHERO
//*         ORIGEN. VALORES POSIBLES: 
//*         A(ASCII), E(EBCDIC), N(NO TRADUCIR)                       
//*    ZZ = 9 OCTETOS INDICANDO NOMBRE DE LA TABLA DE CONVERSION (QUE 
//*         SE APLICA TRAS TRADUCIR).CON SPACES NO HAY TABLA CONVERSION
//*         SI OCTETO 9 ES ‘A’ SE CONVIERTE A ASCII.
//*         SI OCTETO 9 ES ‘E’ SE CONVIERTE A EBCDIC.
//*********************************************************************         
//PASO001  EXEC PGM=ZTBGBGFF4,PARM='0D0A,E,TABCVXNCE'    
//STEPLIB  DD DSN=KI.EIDC.ZTBG.LOAD,DISP=SHR 
//ZTBGFTCO DD DSN=KI.PMED.CZTB.ZTBGFTCO,DISP=SHR
//ENTRADA  DD DSN=PUNTERO.FICHERO.ORIGEN,DISP=SHR
//SALIDA   DD DSN=PUNTERO.FICHERO.FIJO244.DESTINO,
//         DCB=(RECFM=FB,LRECL=256,BLKSIZE=0,DSORG=PS),
//*        DCB=(RECFM=VB,LRECL=260,BLKSIZE=0,DSORG=PS)
//*        DCB=(RECFM=VS,LRECL=260,BLKSIZE=0,DSORG=PS)
//         DISP=(NEW,CATLG,DELETE),
//         SPACE=(TRK,(500,50),RLSE)
//SYSOUT   DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSDBOUT DD SYSOUT=*
//ABENDAID DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSABOUT DD SYSOUT=*
//*
//PASO002  EXEC PGM=IDCAMS,COND=(0,NE,PASO001)
//SYSPRINT DD SYSOUT=*               
//SYSIN    DD   *                      
     DELETE (PUNTERO.FICHERO.ORIGEN) PURGE
//*
// 

Última actualización