JCLS

Se proporciona el jcl ZTBGJXML:

//XXXXXXXX JOB (XXXX,XXX,,XX),ZTBXXML,MSGCLASS=X,CLASS=X,              
//             MSGLEVEL=X,NOTIFY=&SYSUID                               
//********************************************************************+
//* JCL PARA CONVERTIR UN FICHERO PLANO SEPA A XML Ó A LA INVERSA    *+
//********************************************************************+
//* 1.-DEBE APUNTAR (SET) LAS SIGUIENTES VARIABLES:                  *+
//*   1.1.SESION: L1+L2+R1+R2+AP: INDICAR UNA SESION DE EDITRAN/G    *+
//*   1.2.FUNCION: FU. ADMITE VALORES X=PLANO A XML, P=XML A PLANO   *+
//*   1.3.TIPO: TI. ADMITE VALORES:F=FICHERO (EL INDICADO EN &FI=XX) *+
//*       TI=F INDICA FICHERO. EN &FI VA EL DSNAME DEL FICHERO DE    *+
//*            APLICACION DE ENTRADA (XML O PLANO SEGUN &FU)         *+
//*       TI=L INDICA LISTA DE FICHEROS. EN &FI VA DSNAME DE UN FILE *+
//*            CREADO POR USUARIO, CUYO CONTENIDO SON LOS DSNAMES DE *+
//*            LOS FICHEROS DE ENTRADA (XML O PLANOS SEGUN &FU)      *+
//*            PARA VER FORMATO DE LA LISTA, REVISE DOCUMENTACION    *+
//*       TI=P INDICA PERFILES. EN ESTE CASO, EDITRAN TIRA DE PERFIL *+
//*            EDITRAN/G PARA COGER NOMBRES DE FICHEROS ENTRADA.     *+
//*   1.4.FICHERO: FI.  INDICAR EL DSNAME (DE 40 MAXIMO) &FI=XXXX    *+
//*       SI &TI=F ES EL DSNAME DEL FICHERO DE ENTRADA               *+
//*       SI &TI=L ES EL DSNAME DE LA LISTA, CUYO CONTENIDO SON LOS  *+
//*                DSNAMES DE LOS FICHEROS DE ENTRADA                *+
//*       SI &TI=P INDIQUE ESPACIOS. EL JOB COGE LOS FILES DEL PERFIL*+
//* 2.-DEBE EXISTIR EL FICHERO DD ZTBGFDAT, PUES EN SU CONTENIDO HAY *+
//*    TAMBIEN OTROS PARAMETROS NECESARIOS, IP-PORT, FICHERO SALIDA, *+
//*    SEGUNDOS ESPERA, ETC. (REVISE DOCUMENTACION DE PRODUCTO)      *+
//*    CON &FU=X, SI EN ZTBGFDAT NO SE ESPECIFICA DSNAME DE SALIDA,  *+
//*        EL PROGRAMA CREA UN FILE DE SALIDA LLAMADO DSNAME.XML     *+
//*    CON &FU=P, SI EN ZTBGFDAT NO SE ESPECIFICA DSNAME DE SALIDA,  *+
//*        EL PROGRAMA CREA UN FILE DE SALIDA LLAMADO:               *+
//*          DSNAME  (si el fich. entrada es DSNAME.XML)             *+
//*          DSNAME.PLN(si el fich. entrada es DSNAME)               *+
//* 3.-SACA UNA LISTA CON LOS FICHEROS PROCESADOS, DD ZTBGFCAR       *+
//********************************************************************+
//      SET L1=000099                                                  
//      SET L2=940                                                      
//      SET R1=000099                                                  
//      SET R2=990                                                     
//      SET AP=CARGAC                                                  
//      SET FU=X                                                       
//      SET TI=F                                                       
//      SET FI=KI.EIDA.FF06                                            
//********************************************************************+
//INBORR1  EXEC PGM=IEFBR14                                        
//LPASO00  DD DSN=KI.PMED.R&R1..R&R2..A&AP..LISTFICX,              
//         DISP=(OLD,DELETE,DELETE)                                
//*                                                                 
//PASO01 EXEC PGM=ZTBXBXML,                                        
//      PARM='&L1&L2&R1&R2&AP&FU&TI&FI/CBLQDA(ON)'                 
//STEPLIB  DD   DSN=KI.EIDC.ZTBG.LOAD,DISP=SHR                      
//SYSTCPD  DD   DSN=SW.TCPIP.SEZAPARM(TCPDATAB),DISP=SHR           
//ZTBGFPRI DD   SYSOUT=*,DCB=(BLKSIZE=105)                         
//ZTBGFPER DD   DSN=KI.EIDC.ZTBG.ZTBGFPER,DISP=SHR 
//ZTBGFLOG DD   DSN=KI.EIDC.ZTBG.ZTBGFLOG,DISP=SHR       
//ZTBGFDAT DD   DSN=KI.EIDC.ZTBG.ZTBGFDAT,DISP=SHR                 
//ZTBGFCAR DD  DSN=KI.PMED.R&R1..R&R2..A&AP..LISTFICX,             
//            DISP=(NEW,CATLG,DELETE),                             
//            SPACE=(TRK,(500,50),RLSE),                            
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PS)           
//ZTBXFSAL DD  DSN=KI.PMED.R&R1..R&R2..A&AP.. ZTBXFSAL,             
//            DISP=(NEW,CATLG,DELETE),                             
//            SPACE=(TRK,(500,50),RLSE),                           
//            DCB=(RECFM=FB,LRECL=252,BLKSIZE=0,DSORG=PS)           
//SYSOUT   DD   SYSOUT=*                                           
//SYSPRINT DD   SYSOUT=*                                           
//SYSDBOUT DD   SYSOUT=*  
//ABENDAID DD   SYSOUT=*  
//SYSCOUNT DD   DUMMY     
//SYSUDUMP DD   SYSOUT=*  
//SYSABOUT DD   SYSOUT=*  
 

Hemos indicado como ejemplo, origen (000099990) destino (000099940), aplicación (CARGAC), Función X (plano a XML), tipo F (fichero), DSNAME del fichero de entrada = KI.FICHERO.ENTRADA

En el fichero ZTBGFDAT habremos indicado un registro de tipo 1, sin el nombre de fichero de salida. Si no se indica nada, (ver el contenido de ZTBGFDAT), se creará el fichero KI.FICHERO.ENTRADA.XML.

A su vez, como ejemplo de Función P (XML a plano), si codificamos en PARM

000099990000099940PEPITAPFKI.FICHERO.ENTRADA.XML

Y en el fichero ZTBGFDAT hemos indicado un registro de tipo 2, sin nombre de fichero de salida, se creará el PLANO KI.FICHERO.ENTRADA

Procedimientos.

Previo a emisión.

Se proporciona el previo ZTBGP1CX. Actualmente, al previo a emisión estándar (ZTBGP1C), tiene lo siguiente:

(ZTBGFCAR puede que el usuario no lo use, ó lo haya llamado de otra forma)

El nuevo procedimiento proporcionado tiene con respecto al estándar:

  • Un paso previo a A1P (conversor de plano a XML)

  • Un SET a la variable LF

  • Nuevas variables

  • Un cambio en cuanto a la lista ZTBGFCAR (si es que el usuario ya la utilizaba)

Se proporciona el previo ZTBGP1X:

  • Se ha apuntado la variable LF=S (el paso a1p, coge una lista de ficheros creada en PASO01, con el nombre KI.PMED.R&R1..R&R2..A&AP..LISTFICX)

  • Se ha apuntado la variable FU=X (pasar PLANOS A XML)

  • Se ha apuntado la variable TI=P (el usuario quiere que los dsnames de ficheros de aplicación planos, los saquemos del perfil de la sesión). Nota. Si por ejemplo el usuario hubiera creado una lista de ficheros de aplicación a cargar, por ejemplo KI.PMED.R&R1..R&R2..A&AP..ZTBGFLFE, deberíamos apuntar la variable SET FI=KI.PMED.R&R1..R&R2..A&AP..ZTBGFLFE. El contenido de este fichero se describió en tabla-1.

  • Debe existir, creado por el usuario el fichero ZTBGFDAT. Ejemplo:

  • La aplicación, en un primer paso XML, pasará los ficheros indicados en PERFIL Editran/G (TI=P), a formato XML. Creará una nueva lista, KI KI.PMED.R&R1..R&R2..A&AP..LISTFICX cuyo contenido es una lista de ficheros con los nombres de los XML generados (que será DSNAME-FILE-APLICACIÓN.XML, por haber especificado %O.XML en ZTBGFDAT). A continuación, el paso A1P tirará de la nueva lista de ficheros KI.PMED.R&R1..R&R2..A&AP..LISTFICX (debido a que se apuntó la variable LF=S), y cargará los mismos

  • Si por ejemplo, hemos usado una lista de ficheros (TI=L), que se llama KI.EGDC.L00.R123.R456789.APEPITA.ZTBGFCAR y tiene como contenido:

El contenido del fichero KI.PMED.R&R1..R&R2..A&AP..LISTFICX será:

Posterior a recepción.

Se proporciona el posterior ZTBGP4CX. Actualmente, al posterior a recepción estándar (ZTBGP4C), tiene lo siguiente:

El nuevo procedimiento proporcionado tiene con respecto al estándar:

  • Un paso intermedio entre A4P-ZTBGLFE (que borra la lista de ficheros de entrada que va a sacar el paso ZTBGLFE

  • Un paso posterior a A4P-ZTBGLFE (conversor de xml a plano). El paso A4P descarga los XML. El paso ZTBGLFE saca una lista cuyo contenido son los dsnames de los ficheros descargados (ver tabla-2). El PASO02, tira de esa lista (al haber apuntado TI=L y FI=KI.PMED.R&R1..R&R2..A&AP..ZTBGFLFE ZTBGLFE) y convierte a plano (al haber apuntado FU=P. Este PASO02, saca además una lista KI.PMED.R&R1..R&R2..A&AP..ZTBGFLF2 cuyo contenido son los dsnames de los planos finales a tratar por la aplicación.

  • Debe existir, creado por el usuario el fichero ZTBGFDAT. Ejemplo:

  • Si por ejemplo, el contenido de KI.PMED.R&R1..R&R2..A&AP..ZTBGFLFE era:

El contenido del fichero KI.PMED.R&R1..R&R2..A&AP..ZTBGFLF2 será:

Última actualización