> For the complete documentation index, see [llms.txt](https://docs.editran.onesait.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.editran.onesait.com/documentacion-editran/ibm-editran-v5.3-comun-z-os/interfaz-generica-de-aplicacion/anexo-b.-programas-y-exit-de-usuario/autooperador-batch.md).

# Autooperador batch

## Descripción general <a href="#toc149819083" id="toc149819083"></a>

Se ha creado un programa de usuario, que puede incluirse en perfiles o llamarse desde los propios programas de usuario, que permite entre otras cosas, enlazar con los planificadores de la entidad y lanzar JCLs o procedimientos. Con motivo de la incorporación de esta nueva funcionalidad, se ha modificado el área de paso al programa de usuario en el caso de A7I, de forma que se pasa la sesión de presentación en lugar de la sesión de transmisión.

Dicho programa es el ZTBGBUOP, el cual tira de un fichero que contiene la lista de peticiones, llamado Prefijo instalación-ZTBGFUSU, plano de 200.

## Elementos de entrada / salida <a href="#toc149819084" id="toc149819084"></a>

Área de comunicación: pasada por los programas de Editran invocantes. Su contenido se especificó en el programa de usuario.

Fichero empleado en el programa (ZTBGFUSU), creado por el propio usuario, cuyo formato se especifica a continuación:

```cobol
01  REG-FUSU.                                       
     03 REG-200-FUSU                   PIC X(200).   
     03 REG-CGO-A7I-FUSU REDEFINES REG-200-FUSU.     
        05 EMI-REC-FUSU               PIC X(3).      
        05 FILLER                     PIC X.         
        05 CGOS-FUSU OCCURS 36.                      
           10 CGO-A7I-FUSU            PIC X(3).      
           10 FILLER                  PIC X.         
        05 FILLER                     PIC X(52).     
     03 REG-PETICIONES-FUSU REDEFINES REG-200-FUSU.  
        05 PETICION-E-FUSU            PIC X(40).     
        05 FILLER REDEFINES PETICION-E-FUSU.         
           10 FUNCION-E-FUSU          PIC X(02).     
           10 SESION-PRES-E-FUSU.                    
              15 LOCAL-E-FUSU         PIC X(9).      
              15 REMOTO-E-FUSU        PIC X(9).      
              15 APLICACION-E-FUSU    PIC X(6).      
           10 REFERENCIA-A7I-E-FUSU.                  
              15 EMI-REC-A7I-E-FUSU   PIC X.
              15 CGO-A7I-E-FUSU       PIC X(03).
           10 FILLER                  PIC X(10).
        05 PETICION-S-FUSU            PIC X(160).
        05 FILLER REDEFINES PETICION-S-FUSU.    
           10 FUNCION-S-FUSU          PIC X(02).
           10 SESION-PRES-S-FUSU.               
              15 LOCAL-S-FUSU         PIC X(9). 
              15 REMOTO-S-FUSU        PIC X(9). 
              15 APLICACION-S-FUSU    PIC X(6). 
           10 HORA-INI-FUSU           PIC X(4). 
           10 HORA-FIN-FUSU           PIC X(4). 
           10 COD-RET-S-FUSU          PIC 9(4). 
           10 FILLER REDEFINES COD-RET-S-FUSU.           
              15 NRO-REINT-FUSU       PIC 9(4).          
           10 NFUNCION-S-FUSU         PIC X(02).         
           10 UBICACION-S-FUSU        PIC X(44).         
           10 FILLER REDEFINES UBICACION-S-FUSU.         
              15 TIEMPO-WAIT-FUSU     PIC 9(8).          
              15 FILLER               PIC X(36).         
           10 FILLER                  PIC X(76).
          
```

<table data-header-hidden><thead><tr><th width="62.08642578125" valign="top"></th><th width="176.92608642578125" valign="top"></th><th width="65.29638671875" valign="top"></th><th width="71.8642578125" valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top">Nivel</td><td valign="top">Nombre</td><td valign="top">Long.</td><td valign="top">Tipo</td><td valign="top">Descripción</td></tr><tr><td valign="top">1</td><td valign="top">Registro de códigos A7I tratables.</td><td valign="top">200</td><td valign="top">Alfn.</td><td valign="top"><p>Registro de códigos de referencia A7I que van a ser tratados por el programa.</p><p>Pueden establecerse varios registros de este tipo.</p></td></tr><tr><td valign="top">2</td><td valign="top">Tipo de A7I</td><td valign="top">3</td><td valign="top">Alfn.</td><td valign="top"><p>‘EMI’. Los códigos que vienen en el registro son de emisión</p><p>‘REC’ Los códigos que vienen en el registro son de recepción.</p></td></tr><tr><td valign="top">2</td><td valign="top">Filler</td><td valign="top">1</td><td valign="top">Alfn.</td><td valign="top">Espacio de separación</td></tr><tr><td valign="top">2</td><td valign="top">Tabla códigos A7I</td><td valign="top">144</td><td valign="top">Alfn.</td><td valign="top">Tabla de referencias A7I de emisión o recepción OCCURS 36 (se desprecian los 2 últimos octetos)</td></tr><tr><td valign="top">3</td><td valign="top">Referencia A7I</td><td valign="top">3</td><td valign="top">Núm.</td><td valign="top">Referencia del A7I</td></tr><tr><td valign="top">3</td><td valign="top">Filler</td><td valign="top">1</td><td valign="top">Alfn.</td><td valign="top">Espacio de separación</td></tr><tr><td valign="top">2</td><td valign="top">Filler</td><td valign="top">52</td><td valign="top">Alfn.</td><td valign="top">Área de reserva</td></tr><tr><td valign="top">1</td><td valign="top">Registro de acciones de entrada-acciones de salida</td><td valign="top">200</td><td valign="top">Alfn.</td><td valign="top">Registro donde se introduce la acción causante y la acción a tomar.</td></tr><tr><td valign="top">2</td><td valign="top">Acción causante</td><td valign="top">40</td><td valign="top">Alfn.</td><td valign="top">Parte de datos reservada a la acción causante</td></tr><tr><td valign="top">3</td><td valign="top">Función causante</td><td valign="top">2</td><td valign="top">Núm.</td><td valign="top"><p>Espacios: cualquier acción</p><p>01: Carga de emisión</p><p>02: Posterior a emisión</p><p>03: Emisión de la presentación</p><p>05: Excepción de emisión (interrumpir emisión)</p><p>06: Inicialización de la recepción</p><p>07: Posterior a la recepción</p><p>08: Recepción de la presentación</p><p>09: Excepción de recepción (interrumpir recep)</p></td></tr><tr><td valign="top">3</td><td valign="top"><p>Sesión presentación</p><p>Causante</p></td><td valign="top">24</td><td valign="top">Alfn.</td><td valign="top">Código de la sesión de presentación.</td></tr><tr><td valign="top">4</td><td valign="top"><p>Origen presentación</p><p>Causante</p></td><td valign="top">9</td><td valign="top">Alfn.</td><td valign="top"><p>Código origen de la sesión de presentación causante</p><p>Espacios: Cualquier código es válido</p></td></tr><tr><td valign="top">4</td><td valign="top">Destino presentación causante</td><td valign="top">9</td><td valign="top">Alfn.</td><td valign="top"><p>Código destino de la sesión de presentación causante</p><p>Espacios: Cualquier código es válido</p></td></tr><tr><td valign="top">4</td><td valign="top"><p>Aplicación presentación</p><p>Causante</p></td><td valign="top">6</td><td valign="top">Alfn.</td><td valign="top"><p>Aplicación de presentación causante</p><p>Espacios: Cualquier código es válido</p></td></tr><tr><td valign="top">3</td><td valign="top"><p>Referencia A7I</p><p>Causante</p></td><td valign="top">4</td><td valign="top">Alfn.</td><td valign="top"><p>Referencia A7I específica a tratar en la petición (en caso de función 05 y 09).</p><p>Espacios: Se busca en el registro de A7I.</p></td></tr><tr><td valign="top">4</td><td valign="top"><p>Tipo Ref. A7I</p><p>Causante</p></td><td valign="top">1</td><td valign="top">Alfn.</td><td valign="top">Tipo Referencia A7I (E:Emisión, R:Recepción).</td></tr><tr><td valign="top">4</td><td valign="top"><p>Código Ref. A7I</p><p>Causante</p></td><td valign="top">3</td><td valign="top">Núm.</td><td valign="top">Código Referencia A7I.</td></tr><tr><td valign="top">3</td><td valign="top">Filler</td><td valign="top">10</td><td valign="top">Alfn.</td><td valign="top">Área de reserva de la petición causante</td></tr><tr><td valign="top">2</td><td valign="top">Acción a tomar</td><td valign="top">160</td><td valign="top">Alfn.</td><td valign="top">Parte de datos reservada a la acción a tomar</td></tr><tr><td valign="top">3</td><td valign="top">Función de acción a tomar</td><td valign="top">2</td><td valign="top">Núm.</td><td valign="top"><p>01: Carga de emisión</p><p>02: Posterior a emisión</p><p>03: Emisión de la presentación</p><p>05: Excepción de emisión (interrumpir emisión)</p><p>06: Inicialización de la recepción</p><p>07: Posterior a la recepción</p><p>08: Recepción de la presentación</p><p>09: Excepción de recepción (interrumpir recep)</p><p>21: Devolver código de retorno</p><p>22: Submitir procedimento</p><p>23: Submitir JCL</p><p>24: Control de número de reintentos en A7I</p><p>25: Esperar un tiempo (WAIT), antes de continuar realizando lo especificado.</p></td></tr><tr><td valign="top">3</td><td valign="top">Sesión presentación de acción a tomar</td><td valign="top">24</td><td valign="top">Alfn.</td><td valign="top">Código de la sesión de presentación</td></tr><tr><td valign="top">4</td><td valign="top">Origen presentación de acción a tomar</td><td valign="top">9</td><td valign="top">Alfn.</td><td valign="top">Código origen de la sesión de presentación de la acción a tomar.</td></tr><tr><td valign="top">4</td><td valign="top">Destino presentación de acción a tomar</td><td valign="top">9</td><td valign="top">Alfn.</td><td valign="top">Destino de la sesión de presentación de la acción a tomar.</td></tr><tr><td valign="top">4</td><td valign="top">Aplicación presentación de acción a tomar</td><td valign="top">6</td><td valign="top">Alfn.</td><td valign="top">Aplicación de la sesión de presentación de la acción a tomar.</td></tr><tr><td valign="top">3</td><td valign="top">Hora inicio de acción a tomar</td><td valign="top">4</td><td valign="top">Núm.</td><td valign="top"><p>Espacios o ceros: No valida hora de inicio.</p><p>HHMM: Se validará que la acción a tomar sea posterior a la hora de inicio acción</p></td></tr><tr><td valign="top">3</td><td valign="top">Hora fin de acción a tomar</td><td valign="top">4</td><td valign="top">Núm.</td><td valign="top"><p>Espacios o ceros: No valida hora de fin</p><p>HHMM: Se validará que la acción a tomar sea anterior a la hora fin de acción</p></td></tr><tr><td valign="top">3</td><td valign="top">Código de retorno de acción a tomar</td><td valign="top">4</td><td valign="top">Núm.</td><td valign="top">Código de retorno que devolverá el programa. Sólo se utiliza en caso de que acción a tomar sea igual a 21</td></tr><tr><td valign="top">3</td><td valign="top">REDEFINICION</td><td valign="top"></td><td valign="top"></td><td valign="top"></td></tr><tr><td valign="top">4</td><td valign="top">Número reintentos</td><td valign="top">4</td><td valign="top">Núm.</td><td valign="top"><p>Número de reintentos (0001-9999).</p><p>Sólo se utiliza en caso de que acción a tomar sea igual a 24 y se trate de un A7I</p></td></tr><tr><td valign="top">3</td><td valign="top">Nueva función a tomar</td><td valign="top">2</td><td valign="top">Núm.</td><td valign="top"><p>Nueva acción a tomar (ver acción a tomar), en caso de que acción a tomar = 22.</p><p>Puede tomar el valor que quiera el usuario para su procedimiento</p></td></tr><tr><td valign="top">3</td><td valign="top">Ubicación del JCL de acción a tomar</td><td valign="top">44</td><td valign="top">Alfn.</td><td valign="top"><p>Campo con variables para ejecutar un JCL-procedimiento (tal y como se especifica en la tabla correspondiente). Sólo se utiliza en caso de que acción a tomar sea igual a 22 o 23.</p><p>En caso de que la acción sea 23, sólo se consignará el nombre del procedimiento, que podrá ser un nombre variable (de hasta 8 posiciones)</p></td></tr><tr><td valign="top">3</td><td valign="top">REDEFINICION</td><td valign="top"></td><td valign="top"></td><td valign="top"></td></tr><tr><td valign="top">4</td><td valign="top">Tiempo wait</td><td valign="top">8</td><td valign="top">Núm.</td><td valign="top"><p>Tiempo de espera o de WAIT antes de continuar (HHMMSSDC).</p><p>Sólo se utiliza en caso de que acción a tomar sea igual a 25 y se trate de un A7I</p></td></tr><tr><td valign="top">4</td><td valign="top">Filler</td><td valign="top">36</td><td valign="top"></td><td valign="top"></td></tr><tr><td valign="top">3</td><td valign="top">Filler</td><td valign="top">86</td><td valign="top">Alfn.</td><td valign="top">Área de reserva de la petición causante</td></tr></tbody></table>

Dentro de la ubicación, el nombre del job, será de 8 caracteres. Si no es así, se genera un carácter al final que será el dígito de la petición entrante.

Para dar la ubicación del procedimiento o del JCL se seguirán las normas de poner punteros variables utilizadas para escoger el nombre del fichero de aplicación de recepción, en concreto:

Variables % permitidas. Si la variable de estrada no contiene un valor válido se aplica el valor por defecto (como las variables permitidas son más, el ZTBGBUOP, deberá controlar que sólo están las especificadas a continuación):

<table data-header-hidden><thead><tr><th width="73.41973876953125" valign="top"></th><th valign="top"></th><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top">Var</td><td valign="top">Significado</td><td valign="top">Valor válido.</td><td valign="top">Valor por defecto.</td></tr><tr><td valign="top">%Y</td><td valign="top">Último dígito del año</td><td valign="top"></td><td valign="top"></td></tr><tr><td valign="top">%A</td><td valign="top">Dos últimos dígitos del año (aa)</td><td valign="top"></td><td valign="top"></td></tr><tr><td valign="top">%M</td><td valign="top">Mes en dos dígitos (mm)</td><td valign="top"></td><td valign="top"></td></tr><tr><td valign="top">%X</td><td valign="top">Mes en un carácter (1,2,3,4,5,6,7,8,9,O,N,D)</td><td valign="top"></td><td valign="top"></td></tr><tr><td valign="top">%D</td><td valign="top">Día del mes (dd)</td><td valign="top"></td><td valign="top"></td></tr><tr><td valign="top">%H</td><td valign="top">Hora (hhmmss)</td><td valign="top"></td><td valign="top"></td></tr><tr><td valign="top">%R</td><td valign="top">Los 7 últimos caracteres del código del extremo remoto</td><td valign="top">Distinto de espacios o x’00’</td><td valign="top">Ceros</td></tr><tr><td valign="top">%P</td><td valign="top">Código de aplicación</td><td valign="top">Distinto de espacios o x’00’</td><td valign="top">Ceros</td></tr></tbody></table>

## Condiciones de llamada <a href="#toc149819085" id="toc149819085"></a>

El programa se ejecuta al ser requerido por el programa principal del procedimiento o por el programa de usuario ya creado, una vez que ha terminado el tratamiento completo del proceso.

Las condiciones de entrada del programa varían en función del proceso:

* Previo a emisión: Se invoca después de la carga de los tampones de emisión, independientemente de si lo ha conseguido o no (código de resultado = 0 o # 0).
* Previo a recepción: Después de inicializar los tampones.
* Posterior a emisión: En la finalización del proceso de la última sesión de transmisión.
* Posterior a recepción: Después de la descarga de los datos que se desencadena al finalizar la última sesión de transmisión.
* Excepción: Se invoca el programa en cualquier caso.

Se adjunta un ejemplo a continuación en el que se especifica el contenido del fichero ZTBGFUSU:

```
EMI-010-020-021-022-023-024-150                                          
REC-030-040-050-060-070-080-090                                          
09000099980000099940PRUEBA    ----------08000099980000099940PRUEBA00002359
                          E230----------01000099980000099940PARAMI10301130
09         000099960PRUEBAR100----------21                                0029 
01000099980000099940PRUEBXR100----------22000099980000099940PARAMI            03J%R
01000099980000099940PRUEBAR100----------23000099980000099940PARAMI              KI.L%A(J%R)
```

El significado sería:

* Ficha 01: Códigos de referencia A7I de emisión, que serán tratados por programa.
* Ficha 02: Códigos de referencia A7I de recepción, que serán tratados por programa.
* Ficha 03: Cuando llegue un A7I de recepción de la sesión descrita, 000099980000099940PRUEBA, si el código A7I pertenece a los de la ficha 02, se solicita la recepción de la presentación (función 08) de dicha sesión.
* Ficha 04: Cuando llegue cualquier mensaje que tenga un A7I de emisión con código E230 (aunque no esté en la ficha 02), se lanzará un previo a emisión, siempre que la hora de sistema esté comprendida entre las 10:30 y las 11:30.
* Ficha 05: Cuando llegue una carga de emisión de la sesión A7I de recepción con referencia R100 del remoto-aplicación descritos, con cualquiera de los códigos multientorno de mi entidad, se finalizará el job que se está ejecutando con return code 29.
* Ficha 06: Cuando llegue una petición de carga de emisión de la sesión 000099980000099940PRUEBX, se generará un procedimiento llamado J0099940. Se le pasarán como PARM : ORIGEN=’A’, FUNCION=’03’, L0=’alias del subentorno local’, L01=’000098’, L2=’980’, R1=’000094’, R2=’980’, AP=’PARAMI’.
* Ficha 07: Cuando llegue una petición de carga de emisión de la sesión 000099980000099940PRUEBA, se generará un JCL que se encuentra en la librería KI.LPRUEBA, que se llamará J0099940.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.editran.onesait.com/documentacion-editran/ibm-editran-v5.3-comun-z-os/interfaz-generica-de-aplicacion/anexo-b.-programas-y-exit-de-usuario/autooperador-batch.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
