Detalle del proceso de macroficheros
Generalidades.
Ya se ha comentado anteriormente que un macrofichero contiene datos que pueden ser cargados en diferentes sesiones de presentación en función de un identificador, presente en todos los registros, por el que se determina a que sesión concreta se asocian.
Para definir este identificador se ha añadido el campo "Parámetros" a los perfiles de Aplicación y de Sesión de Presentación. Este campo, con un máximo de 60 caracteres, consta de los siguientes datos:
Valor de separador: 1 carácter.
Inicio del campo identificador: 1 a 6 dígitos.
Separador: 1 carácter.
Longitud del campo identificador: 1 a 2 dígitos.
Separador: 1 carácter.
Valor del campo identificador: 0 a 48 caracteres.
Separador: 1 carácter.
Inicio del campo de datos a cargar: 1 a 6 dígitos.
Separador: 1 carácter.
Longitud del campo de datos a cargar: 1 a 6 dígitos.
Separador: 1 Carácter.
Se puede observar que, si se emplean en todos los datos sus longitudes máximas, éstos no cabrían en los 60 caracteres de "Parámetros", no obstante, se entiende que es altamente improbable que esto ocurra en la práctica.
Un ejemplo puede ilustrar convenientemente estos conceptos:
Según este valor, se seleccionarían para cargarse en la sesión de presentación en cuyo perfil está especificado, las posiciones 54 a 215 (162) de los registros que tengan XXX/FACTURAS en las posiciones 7 a 18 (12). El campo identificador puede estar embebido en el campo de datos a cargar.
El proceso de macroficheros lo realiza el procedimiento ZTBGPMCR en instalación, que invoca al programa ZTBGBMCR, y que contiene todas las DDs de los procedimientos habituales de Editran más las de ZTBGFMAC, macrofichero a procesar, ZTBGFSES, lista de sesiones a cargar y ZTBGFERR, lista de sesiones no cargadas o en error. Puede recibir un PARM con Xnn....... siendo nn=01 o 51 sólo para carga y 03 o 53 para emisión que normalmente llevaría la carga asociada. Con 01 y 03 el fichero de aplicación se borrará tras la carga, mientras que con 51 o 53 se conservará.
Se puede realizar la carga y/o la emisión de una o de varias sesiones de presentación como se verá más adelante. En cualquier caso, para una sesión en concreto, se seleccionan del macrofichero los registros que le corresponden según el campo "Parámetros" y se graban en el fichero de aplicación de emisión especificado en el perfil de la sesión que debe ser único. A partir de aquí, el proceso de macroficheros invoca al estándar previo a emisión de Editran.
El fichero secuencial de aplicación de emisión se reserva automáticamente antes de realizar la selección de los registros del macrofichero y, si se seleccionó opción 01 o 03, se borra después de que se ha efectuado la carga, o lo que es lo mismo, después que ha terminado el proceso estándar previo a emisión de Editran y se ha devuelto el control al proceso de macrofichero.
El proceso de macrofichero se puede utilizar cualquier modalidad de funcionamiento de Editran. No se permite con cargas acumulativas.
Proceso de sólo una sesión de presentación.
Se puede realizar de las siguientes formas:
Desde Editran, para lo cual se deberá especificar el procedimiento ZTBGPMCR como previo a emisión en el perfil de la sesión de transmisión.
Desde el operador de Editran, interactivo o batch, para lo cual se deberá especificar el procedimiento ZTBGPMCR en el perfil de la sesión de presentación y solicitar una carga (01) o una emisión (03).
Desde el JCL ZTBGJMCR que invoca al procedimiento ZTBGPMCR poniendo el PARM "Annlllllllllrrrrrrrrraaaaaa" siendo nn=01 o 51(carga) o 03 o 53(emisión) y lllllllllrrrrrrrrraaaaaa la sesión de presentación. En este caso no se emplea el fichero ZTBGFSES de lista de sesiones.
El proceso se realiza de la siguiente manera:
Por medio de la sesión de transmisión o de presentación, según los casos, se accede al perfil de ésta última se toman y validan los campos "Parámetros" y "Fichero de aplicación de emisión" que deberá ser único.
Se realiza el proceso de una sesión de presentación
Si la sesión se encuentra en un estado compatible para la carga, es decir, está finalizada o no cargada, se rastrea el macrofichero hasta encontrar un registro que cumpla con el identificador contenido en "Parámetros" y cuya parte de datos a cargar se graba en el fichero de aplicación de emisión. Se hará lo mismo con los subsiguientes registros hasta encontrar alguno que no lo cumpla. Si no se encuentra ningún registro, se genera un fichero vacío.
Si la sesión no pudo ser cargada por encontrarse en estado no compatible (p.ej, está emitiendo) se notificará con el código de resultado correspondiente.
Si se pidió emisión o bien se pidió carga y ésta pudo ser realizada, se invoca al programa principal previo a emisión de Editran que hace el proceso convencional de carga y/o emisión. A su finalización se devuelve control al proceso de macrofichero que borra o cataloga el fichero de aplicación de emisión según la opción elegida.
Si se pidió carga y ésta no se realizó, no se invoca al programa previo.
Si se produjo error, el JCL acabará con el código correspondiente. Si no hay error, pero la sesión no fue cargada, finalizará con código 04.
Proceso de varias sesiones de presentación.
Sólo se puede realizar desde el JCL ZTBGJMCR que invoca al procedimiento ZTBGPMCR poniendo el PARM "Ann " siendo nn=01 o 51(carga) o 03 o 53(emisión) seguido de 24 blancos.
Las sesiones a cargar y/o emitir se toman del fichero ZTBGFSES, de longitud de registro 80 por lo que se puede crear con un editor, que contiene en las 24 primeras posiciones de cada registro una sesión de presentación a procesar. La lista de sesiones de presentación debe estar en el mismo orden que en el que se encuentran las diferentes porciones de datos asociadas en el macrofichero. Los datos de una sesión deben formar un único grupo de registros contiguos. Si los datos se encontrasen en un orden distinto al de las sesiones no se garantiza que todos las sesiones sean cargadas, ya que el macrofichero se rastrea secuencialmente y según el orden de la lista. Si para alguna sesión se tiene constancia de que no existen datos en el macrofichero se recomienda quitarla de la lista de sesiones para evitar la lectura completa de todo el fichero.
El proceso se realiza de la siguiente manera:
Se toma una sesión de presentación del fichero ZTBGFSES y se accede al perfil de la misma y se toman y validan los campos "Parámetros" y "Fichero de aplicación de emisión" que deberá ser único.
Se realiza el proceso de una sesión de presentación descrito anteriormente. Si la sesión no pudo ser cargada o se produjo un error durante su proceso, además de notificarlo, se incluirá en la lista de sesiones en error ZTBGFERR.
Se toma una nueva sesión de presentación de ZTBGFSES y se repite el tratamiento hasta que se acaba la lista de sesiones. Nótese que el macrofichero no se rastrea desde el principio para cada sesión buscando registros que le correspondan, sino que es objeto de una sola lectura en secuencia, de ahí la importancia de que los registros asociados a cada sesión estén dispuestos, en el macrofichero, en el mismo orden de las sesiones de ZTBGFSES como ya se ha comentado.
El proceso del macrofichero no se interrumpe si se produce error durante el tratamiento de alguna sesión. Si se produce más de un error prevalece el primero encontrado y el JCL finaliza con dicho código. Si no se produce ningún error, pero alguna sesión no fue cargada, se finaliza con código 04. El fichero ZTBGFERR contendrá las sesiones con error o no cargadas.
Última actualización