Altamira

May 27, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Altamira...

Description

Temario 1. Introducción 1.1 Concepto de Arquitectura 2. Commarea con Arquitectura 2.1 Concepto de Commarea 2.2 Información de Entrada 2.2.1 Datos Generales 2.2.2 Datos del Mensaje 2.3 Información de Entrada/Salida 2.3.1 Autorizaciones 2.3.2 Datos de Conversación 2.4 Información de Salida 2.4.1 Datos de siguiente transacción 2.4.2 Datos del mensaje de salida 2.4.3 Datos para gestión de paginación 2.4.4 Datos de analítica y estadísticas 2.4.5 Datos de error inesperado 3. Parametrizacion de la Arquitectura 3.1 Requisitos del CICS 3.2 Parámetros del Menu de Arquitectura 3.2.1 Parametrización de la aplicación 3.2.2 Aplicaciones 3.2.3 Formatos 3.2.4 Transacciones 3.2.5 Teclas (Ayuda de transacción) 3.2.6 Errores y Avisos 4. Desarrollo del ejemplo Diálogo Conversacional. 4.1 Conceptos para el desarrollo de ejemplo 4.2 Transaccion FO Programa FO2CMNU Menu de Formación 4.2.1 Parametrizacion de la Transacción 4.2.2 Análisis del Mapa BMS 4.2.3 Análisis de la CMA 4.2.4 Análisis del programa fuente, estandares y comentarios 4.3 Transacción FOTL Programa FO2CTLI Listado de la Aplicacion Formación. 4.3.1 Parametrización de la Transacción 4.3.2 Estado Inicio / Continuación 4.3.3 Análisis de la Paginación 4.3.4 Análisis del programa fuente, estandares y comentarios 4.4 Transacción FOTM Programa FO2CTMA Mantenimiento de la Aplicación 4.4.1 Parametrización de la Transacción 4.4.2 Análisis del Mapa BMS 4.4.3 Estado confirmación 4.4.4 Análisis del programa fuentes, estandares y comentarios

5. Desarrollo del ejemplo Transaccional 5.1 Conceptos para el desarrollo del ejemplo 5.2 Transacción FOTC Programa FO2CCTR

2

5.2.1 Parametrización de la Transacción 5.2.2 Análisis del fuente 5.2.3 Gestión de Journal y Totales 6. Cambio de sesión 6.1 Cambio de sesión 6.2 Cambio de sesión de la Arquitectura 7. Preguntas y Respuestas 8. Ejercicios

3

1. Introducción al concepto de Arquitectura 1.1 Concepto La arquitectura de aplicaciones es un sistema netamente on-line, cuya misión es básicamente centralizar la actividad del teleproceso de la entidad,cubriendo funciones tales como : - Simplificar diseños y desarrollo de otras aplicaciones online. - Independizar a las aplicaciones del tipo de terminal con el que se esta interactuando. Tratamiento de mensajes específicos (formatos) de cada tipo de terminal. - Gestionar los preformatos de pantallas y documento con destino terminal no inteligente o con software no actualizado. - Mantener un log del sistema y gestionar el tratamiento de errores producidos en los programas de aplicación. - Centralizar la gestión de la información de : . Journal contable de Divisas . Tecleos del sistema . Totales de Oficina . Fechas contables actual y próxima . Entornos de trabajo parametrizados de la entidad - Posibilitar el desarrollo de la conversación - Tratamiento y control de telediscos - Gestión de la autorización de operaciones - Información en pantalla o documento en distintos idiomas Adicionalmente a estas funcionalidades cubiertas por la Arquitectura central, existen una serie de utilidades batch cuya misión es facilitar el desarrollo de las aplicaciones.

4

2. COMMAREA DE LA ARQUITECTURA (CAA) 2.1 Concepto El área de comunicación con la Arquitectura (CAA) es utilizada para el diálogo entre los programas de aplicación y la Arquitectura. Mediante esta commarea, la Arquitectura informa a las aplicaciones de los parámetros del sistema necesarios para el desarrollo de sus procesos online. Los programas de aplicación, por su parte, utilizan la commarea para realizar peticiones de salida de mensajes (tanto a pantalla como a documento), e informan del resultado de los procesos realizados. El contenido de la CAA se divide en información de entrada, de salida y de entrada/salida de la aplicación. La información segmentos:

de

entrada

a

la

aplicación

consta

de

los

siguientes

DATOS GENERALES: Es el conjunto de información general del sistema que la Arquitectura proporciona como entrada al programa de aplicación. DATOS DEL MENSAJE: Contenido y conjunto mensaje de entrada a la aplicación.

de

características

del

La información de entrada/salida consta de: AUTORIZACIONES: Información sobre el proceso de autorizaciones. DATOS DE CONVERSACION: Utilizados para el desarrollo de una conversación. En la entrada contienen la información de la transacción en curso, y en la salida deberán contener la información de la siguiente transacción. La información segmentos:

de

salida

de

la

aplicación

consta

de

los

siguientes

DATOS DE SIGUIENTE TRANSACCION: Donde la aplicación indica cuál es la siguiente transacción que debe entrar en la conversación. DATOS DEL MENSAJE: Información y contenido de los distintos mensajes de salida. DATOS PARA GESTION DE PAGINACION: Información para la gestión de paginación (sólo para transacciones de listado). DATOS PARA ANALITICA Y ESTADISTICAS: Información sobre las características del proceso, que servirán como entrada para alguna aplicacióon de contabilidad analítica o para actualización de las estadísticas gestionadas por la misma Arquitectura. DATOS ERROR INESPERADO: Información sobre un posible error CICS o DB2 inesperado. A continuación se explicará con detalle el contenido de cada campo de la CAA.

5

2.2 INFORMACION DE ENTRADA. 2.2.1 DATOS GENERALES Los programas de aplicación podrán utilizar los campos de este segmento para recoger cualquier información general del sistema y en ningún caso podrán modificar su contenido. Los campos de que consta son: -ENTIDAD: Código de la entidad contable y del terminal que realiza la operación. -CENTRO-CONT: Código de oficina contable del terminal que realiza la operación. -NETNAME-CONT: El Netname es un código único para una red, mientras que el código de terminal puede, para un mismo terminal físico, ser diferente para cada CICS en el que trabaje (MRO). -TERMINAL-CONT: operación. -FECHA-CONT: AAAAMMDD. -FECHA-CONT2: AAAA-MM-DD.

Código

Fecha

del

contable

Fecha

contable

terminal asociada asociada

contable

que

realiza

la

a

la

operación

en

formato

a

la

operación

en

formato

-FECHA-CONTED: Fecha contable asociada a la operación en el formato DD/MM/AAAA. -FECHA-OPER: Fecha de operación. Será la fecha de operación del proceso, a menos que el terminal tenga asociada una fecha de operación distinta, en cuyo caso será ésta la que figure. El formato es AAAAMMDD. -FECHA-OPER2: Fecha de operación en formato AAAA-MM-DD. -FECHA-OPERED: Fecha de operación en formato DD/MM/AAAA. -FECHA-TRANS: Fecha de transmisión. Es la fecha natural en que se realiza el proceso, en formato AAAAMMDD. -FECHA-TRANS2: Fecha de transmisión en formato AAAA-MM-DD. -FECHA-TRANSED: Fecha de transmisión en formato DD/MM/AAAA. -HORA-TRANS: Hora de transmisión. Es la hora en que se realiza el proceso en formato HHMMSS. -HORA-TRANSED: Hora de transmisión anterior en formato HH:MM:SS. -NETNAME: Código operación.

del

terminal

en

red

físico

que

realiza

la

-TERMINAL: Código del terminal que realiza la operación. Coincide con el EIBTRMID de CICS. -USERID: Usuario identificado en CICS.

6

-SESION: Indicador de sesión de mañana ('M') o tarde ('T'). -TIPO-TERM: Tipo de terminal que realiza la operación. Los tipos de terminal válidos son: '11': tipo 4700 '12': tipo 5935 '13': tipo PS/2 Estándar '14': tipo PS/2 Tajo '15': tipo PS/2 ICO '16': tipo VIDEOTEX '17': tipo PS/2 BCT '18': tipo PS/2 CEC '19': tipo PS/2 FFS (Foundation) '20': pantalla 3270 '28': PS/2 en emulación (tipo 3270) '29': 4700 en emulación (tipo 3270) '51': impresoras y otros numerosos (a partir del tipo '40' para la aplicación de Centro Autorizador (CECA, SEMP, 4B, ATM´s y TPV´s). -CICS: Identificador de la sesión CICS (SYSID). -CODTRAN: Código de transacción que se ejecuta según la Arquitectura. No tiene por qué coincidir con la EIBTRNID de CICS, pues en una misma tarea CICS, la Arquitectura puede ejecutar dos programas asociados a distintas transacciones: para el CICS se estaría ejecutando siempre la misma transacción, y sin embargo para la Arquitectura se estaría ejecutando en cada momento la transacción asociada a cada uno de los programas (dos distintas). -TIPO-PROCESO: Tipo de proceso que se está ejecutando. Puede ser: 'O': 'A': 'T': 'F':

on-line autorización teledisco off-line

-ESTADO-APLIC: Estado en que se encuentra la aplicación a que pertenece la transacción para la Entidad del terminal. Puede ser: 'A': 'D': 'C': 'R':

Activa Desactiva En cambio de sesión En recuperación (no utilizado en la actualidad).

-IDIOMA-TERM: Código del idioma de trabajo del terminal. Toda la información de salida de pantallas y documentos se gestiona a través de idioma asignado a cada terminal.

7

2.2.2 DATOS DEL MENSAJE. Contiene toda la información necesaria sobre el mensaje de entrada en los campos: -TECLA: Código de la tecla pulsada. Este código es: '00': Intro '01',...,'10','11','12': PF1,...,PF10,PF11,PF12 '11',...,'20','21','22': ShftF1,....,ShftF10 '21',...,'30': CtrlF1,....,CtrlF10 '99': Borra (CLEAR) o cualquier otra tecla que no sea una de las anteriores Existen varias teclas con significado estándar para la Arquitectura y todas las aplicaciones que la utilicen: * PF1: Tecla de ayuda en conversaciones. Si la transacción que se está ejecutando en la conversación tiene ayuda asociada, al pulsar PF1 se mostrará la ayuda por pantalla. * Borra: Ir a la pantalla anterior en una conversación. * PF9:

Ir al menú inicial en conversaciones.

* PF11 o Shft-PF1:

Suspender la conversación en curso.

* PF12 o Shft-PF2:

Autorización en una conversación.

-CAJERO: Código de cajero pulsado, que será: 'A': si se ha pulsado la tecla de cajero A en un terminal 4700 o en 5935, o bien Intro o PF8 en otro tipo de terminal. 'B': si se ha pulsado la tecla de cajero B en un terminal 4700 o en 5935, o bien PF5 en otro tipo de terminal. -MOD-TAG: Indicador de si se han modificado datos en la pantalla ('S') o se ha pulsado una tecla de función sin modificar datos ('N'). Este concepto es, por tanto, relevante para procesos conversacionales. -PTR-COPYIN: Dirección de memoria donde se encuentra el mensaje de entrada en formato BMS. Este área se utiliza tanto como pantalla de entrada como de salida, es decir, los programas de aplicación encontrarán en este área la información de la pantalla de entrada, y deberán modificar los campos pertinentes para construir la nueva pantalla de salida.

8

2.3 INFORMACION DE ENTRADA/SALIDA 2.3.1 AUTORIZACIONES En este segmento se recoge la información sobre el proceso de autorizaciones. Los programas de aplicación reconocen en este segmento las operaciones que ya han sido autorizadas por el terminalista para no volver a producir una solicitud de autorización por el mismo motivo (Ver documento II.7.Funcionamiento de las Autorizaciones). Asimismo, en este segmento se recogen los campos que debe informar un programa de aplicación cuando necesita una autorización. Este bloque consta en primer lugar de 10 ocurrencias (una por cada uno de los "motivos" por los que se necesita autorizar). Estos campos vendrán sin informar la primera vez que se realice la operación, y tendrán que ser informados con los valores correspondientes de código de error y situación cuando se pida la autorización. Cuando el terminalista realice la autorización, estos campos llegarán al programa de aplicación con los valores que se informaron cuando se pidió dicha autorización. Estos campos son: -CODERR-AUT: Código autorización. -SITUACION-AUT: operación.

de

Situación

error por

identificativo la

que

se

del

está

motivo

de

la

autorizando

la

Los siguientes campos de este segmento deben ser informados por el programa de aplicación cuando se produce la necesidad de autorizar una operación (Ver documento II.7.Funcionamiento de las Autorizaciones): -IND-AUTO: Indicador de pendiente de autorización: 'S': operación pendiente de autorizar 'N', ' ': operación no pendiente de autorizar -IMPORTE-AUTO: autorización.

Importe

total

de

la

operación

pendiente

-REFER-AUTO: Referencia de la operación según la aplicación.

9

de

2.3.2 DATOS CONVERSACION ENTRADA/SALIDA. Información utilizada en los programas conversacionales. controlar el flujo de la conversación. Consta de los campos:

Sirve

para

-ESTADO: Indicador del estado en que se encuentra la transacción en curso. Puede tomar los siguientes valores: 'I': Estado INICIO. Indica que se entra a ejecutar la transacción por primera vez, estando en el terminal una pantalla distinta a la correspondiente a dicha transacción. En consecuencia, la única información de entrada al programa válida en estado inicio es la de la commarea entre los programas aplicación (no hay pantalla de entrada a "leer"). 'C': Estado CONTINUACION. Indica que se entra a ejecutar transacción estando en el terminal la pantalla propia dicha transacción, por lo tanto son válidos los datos entrada tecleados desde el terminal como entrada a transacción. Dichos datos entran en formato BMS en dirección de memoria indicada en el campo PTR-COPYIN.

la de de la la

'X': Estado CONFIRMACION. Estado especial dentro de una continuación para permitir la confirmación de una operación en curso. Se puede considerar un caso especial del estado continuación, donde se espera, en primer lugar que no se modifique ningún dato de la pantalla, y en segundo lugar que se pulse una tecla determinada que signifique la confirmación de la operación. -CASO: Indicador utilizado cuando un programa de aplicación espera diferentes tipos de entrada dependiendo de los diferentes programas o estados que puedan cederle el control. Por ejemplo, un programa que consulte una cuenta de un cliente, puede que deba consultar la cuenta por su código si le ha cedido el control un programa de consulta de cuenta por pantalla, o por el código de cliente si le ha cedido el control un programa de la aplicación de clientes. -DATOS: Campo que pueden utilizar los programas de aplicación para pasar datos entre ellos. Es una commarea entre programas de aplicación de 30 caracteres de longitud. Si la commarea entre programas de aplicación es mayor de 30 caracteres, o no se desea utilizar este campo, se pueden guardar dichos datos en la dirección de memoria indicada en el campo PTRDATA. -LONDATA: Este campo es gestionado por la Arquitectura. No se debe modificar. -PTRDATA: Dirección de memoria programas de aplicación.

10

que

contiene

la

commarea

entre

2.4 INFORMACION DE SALIDA 2.4.1 DATOS DE SIGUIENTE TRANSACCION Este es el primero de los segmentos de salida de la commarea CAA, que debe ser rellenado por los programas de aplicación. En éste se encuentra la información sobre la siguiente transacción que debe ejecutarse. Consta de los campos: -CODTRAN-SIG: Código de la siguiente transacción que se debe ejecutar. Cuando se rellena a espacios querrá decir que no debe entrar ninguna transacción a continuación (este es el caso de un programa transaccional, o de la salida de una conversación). Existen varios valores que no son códigos de transacción y que la Arquitectura interpreta de manera especial: - 'SAME': Cuando debe entrar a continuación la transacción que mandó la pantalla que se encuentra en el terminal. Será necesario informar este valor cuando se produce un error en un programa conversacional en estado inicio: por estar en estado inicio, la pantalla que se encuentra en el terminal es la que envió la última transacción, que no se corresponde con la de la transacción en curso, y al darse un error, no debería aparecer la nueva pantalla, sino la que figura en el terminal enviando el mensaje de error correspondiente, por lo que la siguiente transacción que se debe ejecutar es la que mandó la pantalla al terminal. - 'ULTI': Cuando debe entrar a continuación la última transacción que se añadió en la cadena (ver campo CADENA). - 'MENU': Cuando debe entrar a continuación la primera transacción de la cadena, que en general será el menú principal (ver campo CADENA). -AUTOMATICA: Indica (S/N) si la siguiente transacción debe ejecutarse automáticamente (valor 'S') sin esperar que el terminalista introduzca datos por pantalla o no (valor 'N' o ' '). Lo habitual en una conversación es que este indicador se encuentre con valor 'N' (o ' '), para permitir que se puedan introducir datos por pantalla como entrada de la siguiente transacción. El valor 'S' de este indicador es utilizado por la Arquitectura para realizar el "switch de transacción" para terminales PS con GAT (terminal Ronda). -ACCION: Indica si la Arquitectura debe ceder el control directamente a otro programa de aplicación sin enviar ningún tipo de mensaje de salida al terminal (acción programa: 'PRG'), o si debe enviar algún mensaje de salida al terminal (acción terminal: 'TER'). -CADENA: La Arquitectura mantiene una relación de las transacciones sucesivas que van tomando control en una conversación, empezando por la que inicia la conversación (que normalmente será el menú principal), y que constituyen la cadena de transacciones.

11

De esta manera, en cualquier punto de la conversación, el terminalista puede realizar la petición de volver a la transacción inmediatamente anterior (con la tecla Borra en nuestro caso), o bien de volver a la transacción inicial que realizó (con la tecla PF9 en nuestro caso).

Gráfico que indica la manera de construir la cadena: ACCION='PRG'; CODTRAN-SIG='MENU' +------------------------------------------------+ ¦ ¦ ¦ ¦ ACCION='PRG'¦ ACCION='PRG' ACCION='PRG' ACCION='PRG' ¦ CODTRAN-SIG=¦ CODTRAN-SIG= CODTRAN-SIG= CODTRAN-SIG= ¦ 'ULTI' \|/ 'ULTI' 'ULTI' 'ULTI' ¦ +----+ CADENA='I' CADENA='A' CADENA='A' ACCION='PRG' ACCION='PRG' ACCION='PRG' CODTRAN-SIG= CODTRAN-SIG= CODTRAN-SIG= 'TRN2' 'TRN3' 'TRN4' Los programas de aplicación deben controlar la construcción de la cadena haciendo peticiones a la Arquitectura, bien de iniciarla, bien de añadirse a ella, o bien de volver a alguno de los pasos anteriores. El momento en que un programa de aplicación debe realizar alguna petición de modificar la cadena es cuando va a ceder control a otra transacción distinta a ella (es decir, cuando CODTRAN-SIG lo informa con un código de transacción distinto al suyo y distinto de 'ULTI' o 'MENU', y ACCION con el valor 'PRG'). Este es el momento de realizar la petición de añadirse a sí mismo en la cadena. Esta petición se realiza informando el campo CADENA con el valor 'A' (de Añadir). Si el programa que quiere añadirse en cadena es el que inicia la conversación (por ejemplo, el menú), la cadena todavía no se ha comenzado a construir, y se debe pedir a la Arquitectura que inicie la cadena, informando el campo CADENA con el valor 'I' (de Iniciar). Con este valor en el campo CADENA, la Arquitectura entiende que se va a iniciar una nueva cadena (por lo que borrar la antigua si existiera), y pondrá a la transacción que realiza esta petición como primera de la cadena. Si el terminalista realiza la petición de volver a la transacción inmediatamente anterior, el programa de aplicación no tendría más que indicar a la Arquitectura que la siguiente transacción a ejecutarse es la última en cadena informando el valor 'ULTI' en el campo CODTRAN-SIG, y la Arquitectura cedería el control a la última transacción almacenada en la cadena.

12

Asimismo, si el terminalista realiza la petición de volver a la transacción inicial de la cadena, el programa de aplicación debería informar el campo CODTRAN-SIG con el valor 'MENU', con lo que la Arquitectura cedería el control a la primera transacción almacenada en la cadena. -CASO-CAD: En la cadena de transacciones, la Arquitectura guarda, junto al código de transacción, dos campos asociados a cada miembro de la cadena: el CASO-CAD y el DATOS-CAD, que son el caso y los datos que se le pasarán a la transacción cuando se vuelva a ella por retroceder en la cadena (y que le llegarán en los campos CASO Y DATOS respectivamente). Se deben informar (si es necesario) cuando se realiza una petición de añadirse o de iniciar la cadena (es decir, cuando se informa el campo CADENA). -DATOS-CAD: Datos propios de entrada al retroceder en cadena.

13

2.4.2 DATOS DEL MENSAJE DE SALIDA. En este segmento, los programas de aplicación proporcionan a la Arquitectura toda la información sobre las distintas salidas al terminal. Solamente se tendrán en cuenta cuando la acción sea terminal (ACCION='TER'). Consta de los campos: -COD-ERROR: Código del error producido. (Ver errores y avisos).

III.6.Mantenimiento de

-COD-AVISO1: Código del primer aviso. Hay posibilidad de mandar hasta dos avisos al terminal, que saldrán en la línea 3 de la pantalla. Si se mandan dos, se trunca su contenido a 40 caracteres, saliendo el primero de ellos a partir de la columna 1, y el segundo a partir de la columna 41. -COD-AVISO2: Código del segundo aviso. -VAR1-ERROR: Variable primera del mensaje de error. Se puede informar con una variable válida como literal de error multiidioma. Esto es válido para todos los campos variables de los errores y avisos. -VAR2-ERROR: Variable segunda del mensaje de error. -VAR1-AVISO1: Variable primera del primer aviso. -VAR2-AVISO1: Variable segunda del primer aviso. -VAR1-AVISO2: Variable primera del segundo aviso. -VAR2-AVISO2: Variable segunda del segundo aviso. -IMPORTE-DISP: Importe que debe proporcionar el dispensador. -DIARIO-LOCAL: Campo a actualizar en el diario electrónico local. -TIPO-SALIDA: Indicativo de la pantalla a enviar al terminal. Sus valores pueden ser: -'E': la misma pantalla de entrada -'S': una pantalla distinta de la de entrada -'P': debe entrar la paginación de Arquitectura. Este valor se utiliza en los programas de listado. -' ': Ninguna pantalla de salida. Solamente es necesario informar este campo cuando el programa de aplicación se trate de un listado, en cuyo caso dicho programa debe poner este campo con valor 'P' (paginación). En otro caso, la Arquitectura gestiona este valor con sus valores por defecto (Valor 'S' en Estado Inicio y valor 'E' en estado Continuación o Confirmación). -COPY-OUT: Nombre del formato de salida cuando el campo anterior TIPO-SALIDA tenga valor 'S' y exista formato de salida. Lo informa la Arquitectura, por lo que el programa de aplicación no debe modificarlo.

14

-PANEL-OUT: Nombre del panel de salida cuando el campo anterior TIPO-SALIDA tenga valor 'S' y exista panel de salida. Lo informa la Arquitectura, por lo que el programa de aplicación no debe informarlo. -DESTINOS: (Ver documento II.5.Salidas no estándar). Las transacciones pueden tener dos estándar, y la salida no estándar.

tipos

de

salidas:

la

salida

La salida estándar siempre va dirigida a pantalla y está constituida por el contenido de la dirección de memoria indicada en el campo PTR-COPYIN (es decir, el contenido de la pantalla estándar de salida en formato BMS) y por los mensajes de error / aviso. La salida no estándar está constituida por cualquier otro tipo de salida, y puede estar dirigida a pantalla o a documento. Los programas de aplicación deben pasar el contenido de estas salidas no estándares en una serie de colas TS que pueden ser: - Colas TS '+PFnXXXX', donde n es 1, 2, 3, 4 ó 5 (se pueden utilizar cinco colas TS de tipo +PF para las cinco salidas no estándares) y XXXX es el código del terminal (campo TERMINAL). Se utilizan estas colas cuando la salida está en modo "preformato", es decir, no tiene ningún formato asociado dado de alta en las tablas de la Arquitectura, y su contenido es justamente el mensaje que debe enviarse. - Colas TS '+DCnXXXX', donde n es 1, 2, 3, 4 ó 5 (se pueden utilizar hasta cinco colas TS de tipo +DC para las cinco salidas no estándares) y XXXX es el código del terminal (campo TERMINAL). Se utilizan cuando la salida tiene un formato asociado en las tablas de la Arquitectura. Su contenido está constituido en primer lugar, por el nombre del formato de salida asociado al mensaje de salida no estándar y después el contenido del mensaje en forma BMS. La Arquitectura permite hasta cinco salidas diferentes no estándares. Cada una de ellas va indicada en una de las cinco ocurrencias de este grupo, que contiene los campos: -DESTINO: Prefijo del TS que contiene la salida (+PF1,+DC1,...). -IND-PANDOC: Indicador de si la salida va a pantalla ('P') o a documento ('D'). -NUM-DOCUM: Número de documento si la salida es a documento y éste tiene uno asociado. Puede tomar los valores: * * * * * * * * * *

'1': DIN A-4 Impresión normal. '2': DIN A-4 Impresión comprimida. '3': Cuartilla '5','6','7','8': Libretas '9': DIN A-4 en Impresora LASER. 'C': Cheque 'B': Banda 'I': Importe 'J': Diario magnético 'R': Documento preimpreso

15

-PRILIN-DOCUM: Posición de la primera línea que se debe escribir en el documento (si la salida es a documento). -IMPRESO: Código financiera.

del

impreso

a

introducir

en

la

impresora

-IDIOMA: Código del idioma en el que se van a imprimir los datos de la salida no estándar.

16

2.4.3 DATOS PARA GESTION DE PAGINACION. Este segmento es utilizado por los programas de listado para permitir la gestión de paginación por la Arquitectura. Los campos de este segmento deben ser rellenados cuando el programa de listado informe el campo TIPOSALIDA con valor 'P'. (Ver documento II.4.Funcionamiento de la paginación). Los campos son: -CONTENID: Contenido genérico del listado, que puede indicar el tipo de selección por el que se ha accedido al programa de listado. -SELEC-PERMIT: Contiene 10 ocurrencias de 1 carácter de longitud que contienen los caracteres permitidos para seleccionar las líneas del listado. -IND-VARSEL: Indicador de si se permite marcar como seleccionadas mas de una línea ('S') o solamente una ('N') con los caracteres indicados en las ocurrencias de SELEC-PERMIT. -MARGEN-FIJO: Margen que se debe fijar a la izquierda del listado cuando se hace "scroll" a derecha e izquierda. -FKEY: Grupo de 8 ocurrencias, donde se indica al programa de gestión de listados hasta 8 teclas válidas que se pueden teclear, aparte de las propias del listado (PF4: izquierda, PF5: derecha, PF7: arriba, PF8: abajo). El programa de gestión de paginación de la Arquitectura devolverá el control al programa de aplicación de listado cuando se haya pulsado una de estas teclas, y las selecciones efectuadas sean válidas. Cada una de las ocurrencias consta de: * FKEY-NUM: Código de tecla permitido. * FKEY-LIT: Literal asociado a la tecla que debe aparecer por pantalla. * FKEY-SEL: Se le indica al programa de gestión de listados si con la tecla pulsada debe haber una selección ('S'), no se permite ninguna selección ('N') o es indiferente que se haya seleccionado alguna línea del listado o no (' '). -IND-AVPAG: Indicador (valores S/N) para el programa de gestión de listados, que indica si se desea que se devuelva control al programa de aplicación cuando se teclee la tecla PF8 (Scroll abajo) y no existan mas líneas en la cola TS del listado para mostrar por pantalla. En caso de haber informado el programa de listado el valor 'S' y llegar a fin de datos con la tecla PF8, el programa de gestión de paginación de la Arquitectura le devolverá control al programa de listado en estado "continuación". En ese caso el programa de listado deberá llenar la cola TS del listado con un grupo mas de líneas. Este proceso se continuará hasta que el programa de listado no tenga mas líneas que recuperar, en cuyo caso informará este indicador con el valor 'N'.

17

-IND-MOD-DATO: Indicador (valores S/N) para el programa de gestión de listados, con el que un programa de aplicación puede pedirle que refresque el contenido de la cola TS que contiene las líneas de listado cada vez que tome el control dicho programa de gestión de listados. En realidad solamente tiene sentido cuando las líneas de listado están desprotegidas, para permitir teclear su contenido desde el terminal, y en ese caso se debe actualizar la información de dichas líneas de listado en la cola TS cada vez que se cambien por pantalla. -LÍNEA-PANT: Este campo lo utiliza exclusivamente el programa de gestión de listados, y los programas de aplicación no deben modificarlo. -COLUM-PANT: Este campo lo utiliza exclusivamente el programa de gestión de listados, y los programas de aplicación no deben modificarlo. -NUM-LIN-CAB: Número de líneas fijas para la cabecera del listado. Si no se informa este campo, se considerará siempre al menos 1 línea por defecto. Las líneas de cabecera permanecerán brillantes y protegidas, y no se moverán de la pantalla al realizar scroll arriba y abajo. -IND-SCROLL-LAT: Indicador de scroll lateral (valores S/N). Indica a la Arquitectura si debe gestionar el scroll lateral a pesar de que las líneas escritas en la cola TS del listado tengan su anchura mayor que la de una pantalla. Si no se informa, se toma el valor 'S' por defecto (es decir, la paginación de la Arquitectura gestionará el scroll lateral siempre que la anchura de la cola TS sea mayor que la que puede aparecer en una pantalla). -NUM-ITEM-SELEC: Número de item seleccionado (en el caso de selección única). En el caso selección múltiple, el primer seleccionado. -IDTABLA: Nombre de la tabla para el listado dinámico de tablas. También puede contener los 10 primeros caracteres del item seleccionado en un listado dinámico de tablas (ver II.15.Listado dinámico de tablas).

18

2.4.4 DATOS PARA ANALITICA Y ESTADISTICAS. En este segmento los programas de aplicación proporcionan a la Arquitectura información para ser explotada por alguna aplicación de contabilidad analítica y para recoger estadísticas gestionadas por la propia Arquitectura. Consta de los campos: -ENTIDAD-ANA: Entidad destino para analítica. -CENTRO-ANA: Centro destino para analítica. -PRODUCTO-ANA: Clave del producto asociado para analítica. -CLIENTE-ANA: Cliente para analítica. -IMPORTE-ANA: Importe para analítica. -SUBPROD-ANA: Subproducto para analítica. -FINALID-ANA: Finalidad para analítica. -GARANTIA-ANA: Garantía para analítica. -SUB-CLASIF: Subclasificación de la transacción para analítica. -TIOPER: Tipo de operación realizada. Puede tomar los valores: 'A': 'B': 'M': 'C': 'E': 'P': 'O': ' ':

Alta Baja Modificación Consulta Edición Petición al batch Operación de entrada / salida Ninguna de las anteriores

-CONTABLE: Indicador de si la operación realizada es contable ('S') o no ('N'). (Ver documento II.6.Actualización de Journal y Totales). -DATOS-APLIC: Datos de libre uso para la aplicación.

19

2.4.5 DATOS DE ERROR INESPERADO. Información sobre un posible error CICS o DB2 inesperado. Contiene dos grupos de campos, que se deben informar bien cuando se produzca un error DB2, bien cuando se produzca un error CICS. Cuando el error sea de tipo DB2, los campos a informar son: -OBJETO-ERROR: error.

Objeto

DB2

(Tabla,

índice.)

donde

se

produjo

el

-SQLCODE: Sqlcode devuelto por el DB2. Es el contenido del campo SQLCODE del grupo SQLCA. -SQLERRM: Sqlerrm devuelto por el DB2. Es el contenido del campo SQLERRM del grupo SQLCA. Cuando el error sea de tipo CICS, los campos a informar son: -EIBFN: Ultima función CICS. Es el contenido de la variable EIBFN del grupo DFHEIBLK. -EIBRSRCE: Ultimo recurso CICS. EIBRSRCE del grupo DFHEIBLK.

Es

el

contenido

-EIBRCODE: Código de respuesta de CICS. variable EIBRCODE del grupo DFHEIBLK.

Es

el

de

la

variable

contenido

de

la

-EIBRESP1: Condición producida por la función CICS que produjo el error. Es el contenido de la variable EIBRESP del grupo DFHEIBLK. -EIBRESP2: Información adicional a EIBRESP1. Es el contenido de la variable EIBRESP2 del grupo DFHEIBLK.

20

3. Parametrización de la Arquitectura 3.1 Requisitos del CICS Se deben definir en CICS los siguientes elementos: -

Mapa BMS (si es un conversacional). Transacción remota en TOR. Transacción local en AOR asociada siempre al programa QC1CENT. Entrada en la RCT (Resource Control Table) para definir la relación entre transacción y el plan DB2. - Programa.

21

3.2 Parámetros del Menu de Arquitectura 3.2.1 Parametrización de la aplicación. A continuación se relacionan los pasos necesarios para parametrizar una aplicación que se desea integrar en la Arquitectura. Si se contempla una gestión multidivisa es imprescindible indicarlo a la hora de su definición puesto que existen nuevos tratamientos diferenciados. Las tablas de la Arquitectura que se deben actualizar para dar de alta una nueva aplicación son: - QGDTAPL: Tabla de aplicaciones. - QGDTCCT: Tabla de transacciones. - QGDTFDF: Tabla de formatos de transacciones. - QGDTPFK: Tabla de teclas de función admitidas para cada transacción. - QGDTPFM: Tabla de preformatos de transacciones (implícitamente también se actualizará la tabla QGDTPFL de líneas de preformatos). - QGDTERR: Tabla de códigos de errores/avisos. -

QGDTDTA:Tabla de descripciones multi-idioma. Se actualizará automáticamente con cualquier cambio en las tablas anteriores realizando las altas y modificaciones a través de las conversaciones de mantenimiento de la Arquitectura.

Opcionalmente, será necesario informar también las siguientes tablas: - QGDTRTO: Tabla de referencia de totales. - QGDTHLP: Tabla de ayudas on-line. - QGDTHLC: Tabla de ayudas activas. - QGDTTDD: Tabla de distribución de telediscos. - QGDTTLI: Tabla de literales de error multi-idioma.

22

Los pasos a dar son los siguientes, por este orden: 1.-

Dar de alta la aplicación en la tabla de aplicaciones. Cambiar la descripción para cada idioma de la instalación.

2.-

Dar de alta los preformatos en la tabla de preformatos (si existen). Cambiar las descripciones de los literales para cada idioma de la instalación.

3.-

Dar de alta los formatos en la tabla de formatos (si existen). No se permite dar de alta un formato sin su correspondiente preformato en el caso de que exista. Para el caso de transacciones conversacionales, previamente se debera haber creado el mapa BMS que se asociara a la transaccion y haberlo compilado.

4.-

Dar de alta las ayudas de campos para aquellos que se desee.

5.-

Dar de alta las pantallas de ayuda on-line para la transacción, si esta fuera conversacional y se deseara utilizar una ayuda. Cambiar las descripciones de los literales para cada idioma de la instalación.

6.-

Dar de alta las transacciones en la tabla de transacciones. No se permite dar de alta una transacción sin su correspondiente formato de entrada (si lo tiene) dado de alta en la tabla de formatos, ni su correspondiente código de ayuda (si tuviera ayuda on-line asociada). Cambiar las descripciones de los literales para cada idioma de la instalación.

7.-

Definir las teclas de función asociadas a cada transacción, si se desea un control de las mismas por parte de la Arquitectura. Cambiar las descripciones de los literales para cada idioma de la instalación.

8.-

Dar de alta los códigos de error/aviso manejados en los programas de aplicación en la tabla de errores/avisos. Cambiar las descripciones de los literales para cada idioma de la instalación.

9.-

Si la aplicación necesita que la Arquitectura actualice totales contables, se deben dar de alta los tipos de totales que utiliza la aplicación en la tabla de referencia de totales. Cambiar las descripciones de los literales para cada idioma de la instalación.

10.- Dar de alta los códigos de literales de error/aviso en los diferentes idiomas de la instalación. Si además la aplicación utiliza la utilidad del teledisco, se deberá: 11.- Dar de alta en la tabla de distribución de telediscos los procesos batch que utilizan teledisco, con el teledisco asociado. Por otra parte, en todos los figurar los siguientes DBRM's:

planes

- QC2CSQ1

23

DB2

de

las

aplicaciones,

deben

-

QC2CSQ2 QC2CFTO QC2CATL QC2CHLP

- QC2CHLC - QC2CREA - QC2CAUT - QC2CAUS -

QC2CSQ3 QG2CTLD QC2CLIS QC2CIMP

(Si se utilizan literales de error/aviso multi-idioma) (En conversaciones que utilicen la ayuda de transacción) (En conversaciones que utilicen la ayuda activa) (*) (En conversaciones, para suspender una conversación) (En conversaciones, cuando se pide autorización por Arquitectura Extendida) (En conversaciones, cuando se pide autorización por Arquitectura Estándar) (Si alguna transacción del plan es de tipo Estándar) (Si se utiliza el teledisco) (Si utiliza listados dinámicos de tablas) (Si se requiere la utilidad de impresión desde 3270)

(*) Las tablas DB2 donde se encuentren los valores del campo al que se le ha asignado ayuda activa, deben tener hecho GRANT TO PUBLIC para SELECT.

24

3.2.2 Parametrizacion de las Aplicaciones Las aplicaciones nuevas deberán ser dadas de alta en la Arquitectura ejecutando la transacción QM, ingresando la opcion 1 (Aplicaciones). Se deberán ingresar los datos que solicite el mapa del Menu de Mantenimiento de Aplicaciones ______________________________________________________________________ 0001 OM27 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTENIMIENTO DE APLICACIONES

Codigo Aplicacion .. = Descripcion en 20 .. = Descripcion en 30 .. =

FO FORMACION FORMACION

ESTADO (A/D/C) ..... = Cambio Sesion Autom. = Multidivisa .........=

A Activada N (S/N) S (S/N)

Aplicacion Altamira. = Idioma ............ = Origen aplic.(P/O) ..=

FO E P

TP01 16/05/96 QMAM 07:54:09 NEW COPY

CASTELLANO Plataforma

____________________STAMPS_______________________ Cambio de estado ... = 12/05/96 23:53 A1143 Pase a produccion .. = 01/07/90 Alta ............... = 12/05/96 A1143 Ultima modific. .... = 13/05/96 CICSUSER F2 Modif. F3 Alta F4 Limpia F6 Baja CL Borra _____________________________________________________________________

25

3.2.3 Parametrizacion de los Formatos Los formatos de las transacciones seran dadas de alta en la arquitectura siguiendo los sgtes pasos . Creacion del Mapa BMS asociado a la transacción Ejemplo de Mapa BMS : ______________________________________________________________________ TITLE 'MAPSET DE MANTTO. DE TRANSACCIONES' PRINT NOGEN * **************************************************************** * * FOMATMA: MAPASET DE MANTTO. DE TRANSACCIONES 00002003 * * FOMACION USUARIOS ARQUITECTURA. 00002003 * **************************************************************** * * * * * DATE LAST UPDATED: 17MAY90 MAP GENERATION DATE: 18MAY90 * * * TIME LAST UPDATED: 22:27:41 MAP GENERATION TIME: 12:25:24 * * * * * * * * **************************************************************** FORMTMA DFHMSD TYPE=MAP,LANG=COBOL,TIOAPFX=YES,MODE=INOUT, X STORAGE=AUTO,CTRL=(FREEKB,FRSET),TERM=ALL FORMTMA DFHMDI SIZE=(19,80),EXTATT=NO,LINE=4 * DFHMDF POS=(01,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Transaccion ..... =' * TRANID DFHMDF POS=(01,23),LENGTH=4,ATTRB=(BRT,UNPROT,IC), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(01,28),LENGTH=1,ATTRB=(NORM,PROT,ASKIP), X INITIAL=':' * DESCRIP DFHMDF POS=(01,30),LENGTH=35,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(01,66),LENGTH=1,ATTRB=ASKIP * * * STAMULT DFHMDF POS=(19,55),LENGTH=8,ATTRB=(NORM,PROT), X JUSTIFY=(LEFT,BLANK) DFHMSD TYPE=FINAL END ______________________________________________________________________

Se compilara el mapa BMS. Después de la compilación se obtendra como resultado dos archivos, uno que será el mapa compilado para el Cics y el otro una Copy Cobol de un BMS :

26

01

FORMTMA. 02 02 02 02

FILLER PIC X(12). TRANIDL COMP PIC S9(4). TRANIDF PICTURE X. FILLER REDEFINES TRANIDF. 03 TRANIDA PICTURE X. 02 TRANIDI PIC X(4). 02 DESCRIPL COMP PIC S9(4). 02 DESCRIPF PICTURE X. 02 FILLER REDEFINES DESCRIPF. 03 DESCRIPA PICTURE X. 02 DESCRIPI PIC X(35). 02 NEWCOPYL COMP PIC S9(4). 02 NEWCOPYF PICTURE X. 02 FILLER REDEFINES NEWCOPYF. 03 NEWCOPYA PICTURE X. 02 NEWCOPYI PIC X(1). 02 IDIOMAL COMP PIC S9(4). 02 IDIOMAF PICTURE X. 02 FILLER REDEFINES IDIOMAF. 03 IDIOMAA PICTURE X.

el mapa generado por este BMS es el siguiente : Transaccion ..... = Idioma........... = Aplicacion ...... = Programa ........ = Plan DB2 ........ = Formato/Mapa ent. = Codigo de ayuda.. = Longitud Commarea = Camb.Ses/Recuper. = Tipo (Trans/Conv) = Contable / Cajero = Tipos operacion.. = Inicio desde TERM = Inicio por Arquit.= PFs standard = Actualizar tecleo = Pintar fast-path = Pfs por Arquitec.=

:

NEW COPY ________ESTADO_________ (A/D) __________ALTAMIRA___________ Tipo Altamira.... = (N/E/M) Entrada.......... =

/

/ (S/N):(S/N) ______INFORM.ADICIONAL_____ (T/C) Transac. local .. = :(S/N):(A/B/ ) Documentos ...... = (A-B-M-C-E-P-O) Diario Elec. .... = (S/N) (S/N) APB 4700 ........ = (S/N) (S/N)_______________STAMPS__________________ (S/N) Cambio estado = (S/N) Alta ........ = (S/N) Ult.mod. .... = (S/N) Primer Uso .. =

27

A continuacion se procedera a incluir este formato (FORMTMA) en la tabla de formatos (QGDTFDF) por medio de la utilidad QM en el ambiente TSO (Opcion 5), como se muestra a continuación :

---------------------- UTILIDADES DE LA ARQUITECTURA ----------------COMANDO ===> USUARIO - C5230 HORA - 23:44 FECHA - 96/05/16 UTILIDAD ===>5 D Clase de salida asignada al proyecto: A - Z .

TABLA

===>

PARAMETRO

===> FORMTMA Clave deseada (Neces.para opcion 3,4,5,8 ).

LIBRERIA

===> MBVD.FOA.MAPCPY

Iniciales de la tabla (necesario para opcion 2 ). Valores posibles tabla: CCT,PFM,FDF,ERR,HLP.

(Neces.para opcion 3,4,5 ).

Pulse PF3 para salir de las utilidades de arquitectura.

28

Este formato se crea como provisional, y antes de ser usado deberá ser puesto como Definitivo. 0001 AL14 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTENIMIENTO DE FORMATOS

TP01 16/05/96 QMFM 23:58:35

Formato ........... =

FORMTMA : MATENIMIENTO FORMACION

Tipo (E/S/A) ...... = Delimit. automatico =

A Entrada/Salida S (S/N)

Num. campos .............. Longitud copy ............ Relacion campos / Ver.PS/2 Rutinas Verific./ V.Listos Idioma ............. = E __________ SALIDA ________ Preformato de Pantalla ... = Preformato de Documento .. = Mapa para LOCAL .......... = ______ALTA_______ QG4CCHK 13/05/96

= = = =

45 392 No / No No / No CASTELLANO / / /

/ /

_____ULTIMA MODIF______ CICSUSER 13/05/96 22:43

NEW COPY

________ESTADO________ (P/D) = P Definitiva

Formato modelo: FORMTMA (STD (STD (PS/2 Conexion __P.USO_ 13/05/96

/ 4700 / 5935) / Doc. / NLin) / 4700) Preform. = ___ULT.USO___ 13/05/96 FOTM

F2 Modificar F3 Alta F4 Limpiar F5 Campos F6 Baja F7 Prefm BORRA Salir

29

La lista de campos de este formato es la sgte : ______________________________________________________________________ 0001 AL14 ARQUITEC. PLATAFORMA TP01 17/05/96 0100 CICSUSER LISTADO DE CAMPOS QMCL 03:40:14 P

SALTO

FORMATO: FORMTMA

MATENIMIENTO FORMACION

L

1:

45

CAMPO____LITERAL__________DELIM_ATT__LNG__TIP_RUTINA__VRUT_LIT4700_AYU 01 TRANID TRANID 01 A 4 O N N 02 DESCRIP DESCRIP 02 A 35 O N N 03 NEWCOPY NEWCOPY 03 A 1 O N N 04 IDIOMA IDIOMA 04 A 1 O N N 05 DESIDIO DESIDIO 05 A 20 O N N 06 APLICAC APLICAC 06 A 2 O N N 07 DESCAPL DESCAPL 07 A 20 O N N 08 PGMID PGMID 08 A 8 O N N 09 ACTIVA ACTIVA 09 A 1 O N N 10 DESCACT DESCACT 0A A 11 O N N 11 PLAN PLAN 0B A 8 O N N 12 COPYIN COPYIN 0C A 8 O N N 13 PANELIN PANELIN 0D A 8 O N N 14 TIPALTM TIPALTM 0E A 1 O N N 15 CODHELP CODHELP 0F A 4 O N N 16 ENTRADA ENTRADA 10 A 8 O N N F2 Mantt F3 Alta F4 AyAct F6 Relac F10 Mover F7 RePag F8 AvPag ClSalir ______________________________________________________________________ A partir de aqui se mantienen campos seleccionando F2, y con F4 y selección de mantienen ayudas de campos. Hasta aqui se ha logrado informar a la Arquitectura, el FORMATO y sus campos. A continuación de procedera a prefijar los campos de Copy Cobol generada durante la compilación para que pueda ser incluida en el programa de aplicación mediante una sentencia COPY, la copy ya prefijada se detalla a continuación.

30

01

FORMTMA. 02 02 02 02

FILLER PIC X(12). TMA-TRANIDL COMP PIC S9(4). TMA-TRANIDF PICTURE X. FILLER REDEFINES TMA-TRANIDF. 03 TMA-TRANIDA PICTURE X. 02 TMA-TRANIDI PIC X(4). 02 TMA-DESCRIPL COMP PIC S9(4). 02 TMA-DESCRIPF PICTURE X. 02 FILLER REDEFINES TMA-DESCRIPF. 03 TMA-DESCRIPA PICTURE X. 02 TMA-DESCRIPI PIC X(35). 02 TMA-NEWCOPYL COMP PIC S9(4). 02 TMA-NEWCOPYF PICTURE X. 02 FILLER REDEFINES TMA-NEWCOPYF. 03 TMA-NEWCOPYA PICTURE X. 02 TMA-NEWCOPYI PIC X(1). 02 TMA-IDIOMAL COMP PIC S9(4).

31

3.2.4 Parametrizacion de las Transacciones Las transacciones se daran de alta en la Arquitectura mediante la transacción QM, Mantenimiento de Arquitectura, Opción 2, 0001 OM28 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTENIMIENTO DE TRANSACCIONES

Transaccion ..... = Idioma .......... = Aplicacion ...... = Programa ........ = Plan DB2 ........ = Formato/Mapa ent. = Codigo de ayuda.. = Longitud Commarea = Camb.Ses/Recuper. = Tipo (Trans/Conv) = Contable / Cajero = Tipos operacion.. = Inicio desde TERM = Inicio por Arquit.= PFs standard = Actualizar tecleo = Pintar fast-path = Pfs por Arquitec.= Tiene ayuda activa= F2 Modif F3 Alta

TP01 19/05/96 QMTM 22:32:34

FO : MENU DE FORMACION NEW COPY E CASTELLANO FO FORMACION ________ESTADO_________ FO1CMNU (A/D) A Activada BNQMD __________ALTAMIRA___________ FORMMNU / FORMMNU Tipo Altamira.... = N (N/E/M) Entrada.......... = MEN-HA 1000 N / N (S/N) : (S/N) ______INFORM.ADICIONAL_____ C (T/C) Transac. local .. = FO N : (S/N) (A/B/ ) Documentos ...... = O (A-B-M-C-E-P-O) Diario Elec. .... = N (S/N) S (S/N) APB 4700 ........ = N (S/N) N (S/N) _______________STAMPS__________________ S (S/N) Cambio estado = 13/05/96 03:05 CICSUSER S (S/N) Alta ........ = 13/05/96 CICSUSER N (S/N) Ult.mod. .... = 13/05/96 21:18 CICSUSER S (S/N) Primer Uso .. = (S/N) Ultimo Uso .. = N

F4 Limpia F5 Frmto. F6 Baja F8 Pfs.10 Altam.CL Borra

32

3.2.4 Parametrizacion de las Teclas de Función. Se accede a este menú a traves del menu de mantenimiento de transacciones presionando la tecla PF8, ejemplo : 0001 OM28 ARQUITEC. PLATAFORMA 0100 CICSUSER LISTADO DE TECLAS DE FUNCION QCA0001 FIN DE DATOS P SALTO LISTADO DE PFS DE LA TRANSACCION

TP01 19/05/96 QMLF 23:05:49 PE11

_TECLA____LITERAL________ACTIVA___VIS.__PF.FIC__PROGRAMA_ INT INTRO S N PE2C0600 F1 LIMPIA S S PE2C0600 F2 MODIFI S S F7 PE2C0600 F3 ALTA S S F5 PE2C0600 F9 M.APLI S S PE2C0600 F13 SGTE S S F3 PE2C0600 F14 PARTIC S S F4 PE2C0600 F15 COMPLE S S F8 PE2C0600 CL INTRO S N F10 PE2C0600

F2 Mantto F3 Alta

L C

1: 1:

9 90

F4 Izqda. F5 Drcha. F7 Re.Pag F8 Av.Pag Cl Salir

Se dará de alta a las teclas de funcion asociadas a la transacción mediante el sgte menu : 0001 OM28 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTTO. DE TECLAS DE FUNCION

Transaccion .... = PE11 : MANTENIMIENTO DE DATOS BASICOS PF......... Literal.... Descripcion Idioma ....

= = = =

TP01 19/05/96 QMMF 23:14:01 NEW COPY

F2 MODIFI MODIFI E CASTELLANO

Activa..... = S (S/N) Visualizar. = S (S/N) PF Ficticia = F7 Programa... = PE2C0600 _________________STAMPS________________ Alta ........ = 20/07/92 ACOEPD Ult.mod. .... = 11/04/96 07:53 CICSUSER F2 Modificar

F3 Alta

F4 Limpiar

33

F6 Baja

BORRA Salir

3.2.5 Parametrización de los Errores y Avisos Los errores y avisos se daran de alta en la Arquitectura mediante la transacción QM (Mantenimiento de Arquitectura) Opción 5, 0001 OM28 0100 CICSUSER P

ARQUITEC. PLATAFORMA LISTADO DE ERRORES/AVISOS

SALTO

TP01 19/05/96 QMEL 23:34:54

SELECCION ==> BG

L 17:1243 C 1: 368 CODIGO____MENSAJE ASOCIADO_______________________________________________ BGA0016 CUENTAS HIJAS DE LA CLAVE CONSIDERADA, PERDERAN TAL CONDICION. BGA0017 CONFIRME PF7 BAJA DE CONDICIONES DE LIQUIDACION VAR EN TABLA BGA0018 BORRADA INFOR TABLA DE COND.TIPOS.INTERES. ACTUALIZADA LA BGA0019 ACTUALIZACION CON DATOS MADRE. BORRADOS DATOS TABLA C.T.I DE BGA0020 PF7 BORRA DATOS EN TABLA PARA LA CUENTA. ACTUALIZAN DATOS AD BGA0021 MODIFICACION CORRECTA REALIZADA CON LOS DATOS DE LA CTA. BGA0022 DESEA DAR DE ALTA MAS ESTANDARES ? (F7 = SI F8 = NO ) BGA0023 PULSE CUALQUIER TECLA DE FUNCION PARA CONTINUAR EL PROCESO... BGA0024 DESEA DAR DE ALTA MAS MOVIMIENTOS ?(F7 = SI F8 = NO ) BGA0025 OK. OPERACION EFECTUADA. BGA0026 NO SE HA INTRODUCIDO NINGUN DATO DISTINTO A LOS EXISTENTES BGA0027 CARTA SIN DATOS DE CLIENTE BGA0028 OK. INDICADOR DE '@@@@@@@@@@@@@@@@@@@@' HA SIDO MODIFICADO BGA0029 OK. NUEVA CUENTA RECEPTORA/TRASPASO ES @@@@@@@@@@@@@@@@@@@@. F2 Mantto F3 Alta

F4 Izqda. F5 Drcha. F7 Re.Pag F8 Av.Pag Cl Salir

El mantenimiento se efectuará mediante el sigte menú : 0001 OM28 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTENIMIENTO DE ERRORES/AVISOS

TP01 19/05/96 QMEM 23:38:57

Codigo de Mensaje .. = BGA0018 AVISO / CUENTAS PERSONALES Idioma ............. = E CASTELLANO Variable 1 - Col/Lng = Variable 2 - Col/Lng =

/ /

Utilizar caracter @ en mensaje asociado para indicar parte variable.

__________________________MENSAJE ASOCIADO____________________________ BORRADA INFORMACION TABLA DE COND.TIPOS.INTERES. ACTUALIZADA TABLA AUX. ________________________INFORMACION ADICIONAL_________________________

_______ALTA_______ CORITE1 23/04/91 F2 Modificar

F3 Alta

_______ULTIMA MODIF______ CORITE1 08/10/93 16:59 F4 Limpiar

F6 Baja

34

BORRA Salir

4. Desarrollo del ejemplo diálogo Conversacional 4.1 Conceptos para el desarrollo del ejemplo. Para el ejemplo del diálogo conversacional se han considerado tres programas: 1. FO1CMNU Menú de Formación. Este programa contendrá varias opciones, la única que estará habilitada para el ejemplo es la opción 2 (Mantenimiento de Transacciones), el Menu solicitará el codigo de transaccion para efectuar el mantenimiento, y el idioma asociado a éste. Si se digitara una transacción específica se dará control al programa FO2CTMA (Mantenimiento de Transacciones de Formación), en caso contrario se dará control al programa FO2CTLI (Listado de transacciones), con el propósito de ubicar la transacción y seleccionarla. Transacción asociada : FO Mapa asociado : FORMMNU Copy de MapaBMS : FORMMNU Descripción de Programa : Se ingresa al programa en estado continuación (el inicio lo efectua la Arquitectura). Verifica que la tecla digitada haya sido la correcta, luego evalua que la opcion también sea conforme, informa a la CAA los datos para la sgte transacción, FOTL si es listado y FOTM si es mantenimiento. 2. FO2CTLI Listado de Transacciones Formación. Cuando del menu de formación no se indique una transacción específica, el programa FO1CMNU le dará control a este programa. El objetivo de este programa es visualizar las transacciones a través de un ‘browse’ para facilitar la identificación de estas con el propósito de consultar, añadir, dar de baja, o insertar transacciones en las tablas de Arquitectura. Transacción asociada : FOTL Mapa asociado : QCRMGTS (Mapa de Arquitectura) Descripción del programa : Este programa se divide en dos partes dependiendo del estado en el que se encuentra. Un primer estado de inicio, con el cual generará a partir de la clave informada en la CMA (Area común entre los programas de aplicación) un cola TS (Temporary Storage) de datos de nombre +GTSXXXX (XXXX es el codigo de terminal) con los datos a listar e informará el area CAA-PAGINAR de la commarea para que la sgte vez sea el programa de gestión de TS el que tome el control. En el sgte estado, (continuación), el programa recibirá control cuando el programa de gestión de TS detecte que se ha pulsado una tecla de salida, entendiendose como tal las informadas por nuestro programa en CAA-PAGINACION, que serán F2, para Mantenimiento y F3 para Alta). En éstos dos casos, informa la CAA para sgte transacción: FOTM.

35

3. FO2CTMA Mantenimiento de Formación. Este programa controla el alta, baja, modificación y consulta de transacciones. Transacción asociada : FOTM Mapa asociado : FORMTMA Descripción del programa : Este programa tiene tres estados : Inicio, Continuación y Confirmación. En el estado Inicio valida que la transacción dada en el menú exista o no, según sea consulta o alta el tipo de operación seleccionada. Para ello se accede a la tabla de transacciones de formación (FODTCTT), en caso de que exista y la operación sea alta enviará a la pantalla de entrada un mensaje de error. Si existe y la operación es modificación, la pantalla se completará y devolvera el control en estado continuación. En estado continuación se recibe el mapa y se comprueba la tecla que ha pulsado. Si la tecla ha sido ‘INTRO’ se accede a la tabla FODTCCT para comprobar que los datos existen. Si es asi, se informa la pantalla con los datos leídos de la tabla; en caso contrario, se mantienen los datos que hubiera en la pantalla y se envia un mensaje de error. Cuando se pulse la tecla F2 (Modificación), se valida la información de la pantalla. Si no se ha modificado ningún campo se mantienen los datos de la pantalla y se envia un mensaje de error, en caso contrario, se actualiza la tabla con las modificaciones introducidas. Si se presiona la tecla F3 (Alta), se comprueba que la transacción no exista, sobre los campos se hacen las sgtes validaciones : transacción y programa (1:2) y que la new copy sea blanco. Si por el contrario, se produce algún error se muestra el mismo panel con el mensaje de error correspondiente. Cuando estando en estado continuación se pulse F6 (Baja), se valida que la transacción exista, luego se procede a realizar la baja una vez que se ha pedido confirmación F7. Se debe tomar en cuenta que los formatos asociados a las transacciones deben ser informados a la Arquitectura siguiendo los pasos del punto 3.2.3.

36

4.2 Transacción FO programa FO1CMNU Menú de Formación. 4.2.1 Parametrización de la Transacción. Los parámetros definidos para la transaccion FO son los sgtes : Aplicación 0001 OM12 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTENIMIENTO DE TRANSACCIONES

TP01 21/05/96 QMTM 09:18:16

Transaccion ..... = FO MENU DE FORMACION NEW COPY Idioma .......... = E CASTELLANO Aplicacion ...... = FO FORMACION ________ESTADO_________ Programa ........ = FO1CMNU (A/D) A Activada Plan DB2 ........ = BVDAOPO ________ALTAMIRA___________ Formato/Mapa ent. = FORMMNU / FORMMNU Tipo Altamira.... = N /E/M) Codigo de ayuda.. = Entrada.......... = MEN-HA Longitud Commarea = 1000 Camb.Ses/Recuper. = N / N (S/N) : (S/N) _____INFORM.ADICIONAL_____ Tipo (Trans/Conv) = C (T/C) Transac. local .. = FO Contable / Cajero = N : (S/N) : (A/B/ ) Documentos ...... = Tipos operacion.. = C (A-B-M-C-E-P-O) Diario Elec. .... = N (S/N) Inicio desde TERM = S (S/N) APB 4700 ........ = N (S/N) Inicio por Arquit.= S S/N) ________________STAMPS__________________ PFs standard = S (S/N) Cambio estado = 13/05/96 03:05 CICSUSER Actualizar tecleo = S (S/N) Alta ........ = 13/05/96 CICSUSER Pintar fast-path = N (S/N) Ult.mod. .... = 20/05/96 08:55 CICSUSER Pfs por Arquitec.= S (S/N) Primer Uso .. = 19/05/96 Tiene ayuda activa= S (S/N) Ultimo Uso .. = 21/05/96 F2 Modif F3 Alta F4 Limpia F5 Frmto F6 Baja

37

F8 Pfs.10 Altam. CL Borra

Formatos 0001 OM12 0100 CICSUSER Formato ........ =

ARQUITEC. PLATAFORMA MANTENIMIENTO DE FORMATOS

TP01 21/05/96 QMFM 09:22:42

FORMMNU : MENU DE FORMACION

Tipo (E/S/A) ...... = A Entrada/Salida Delimit. automatico = S (S/N) _______ESTADO________ (P/D) = D Definitiva Num. campos .............. = 3 Longitud copy ............ = 33 Relacion campos / Ver.PS/2 = No / No Rutinas Verific./ V.Listos = No / No Idioma ............. = E CASTELLANO Formato modelo: FORMMNU __________ SALIDA ________ Preformato de Pantalla ... = / / (STD Preformato de Documento .. = / / (STD Mapa para LOCAL .......... = / (PS/2 Conexion Preform. ______ALTA_______ QG4CCHK 02/05/96

____ULTIMA MODIF______ CICSUSER 20/05/96 09:00

__P.USO_ 03/05/96

NEW COPY

/ 4700 / 5935) / Doc. / NLin) / 4700) = ___ULT.USO___ 21/05/96 FO

F2 Modificar F3 Alta F4 Limp F5 Campos F6 Baja F7 Preform BORRA Salir Campos 0001 OM12 ARQUITEC. PLATAFORMA 0100 CICSUSER LISTADO DE CAMPOS QCA0001 FIN DE DATOS P SALTO FORMATO: FORMMNU MENU DE FORMACION

TP01 21/05/96 QMCL 09:23:39 L

1:

3

CAMPO____LITERAL__________DELIM_ATT__LNG__TIP_RUTINA__VRUT_LIT4700_AYU 01 OPCION OPCION 01 A 2 O N N 02 CODIGO CODIGO 02 A 9 O N N 03 IDIOMA IDIOMA 03 A 1 O N N

F2 Mantto F3 Alta F4 AyAct F6 Rela 10 Mover F7 RePag F8 AvPag Cl Salir

38

Teclas de Función 0001 OM12 ARQUITEC. PLATAFORMA 0100 CICSUSER LISTADO DE TECLAS DE FUNCION QCA0001 FIN DE DATOS P SALTO LISTADO DE PFS DE LA TRANSACCION

TP01 21/05/96 QMLF 09:24:39 FO

L C

1: 1:

_TECLA____LITERAL________ACTIVA___VIS.__PF.FIC__PROGRAMA_ INT INTRO S S F2 MODIF. S S F3 ALTA S S

F2 Mantto F3 Alta

F4 Izqda. F5 Drcha. F7 Re.Pag F8 Av.Pag Cl

39

3 90

4.2.2 Análisis del Mapa BMS El mapa asociado a la transaccion FO Menu de Formación de Arquitectura es el FORMMNU el cual se detalla a continuación : ______________________________________________________________________ PRINT NOGEN * **************************************************************** * * FORMMNU: MAPASET DE MENU DE FORMACION DE USUARIOS * * * DE ARQUITECTURA. * * **************************************************************** * * * * * MAPSET NAME: MMAMNUS MAP NAME: MMAMNUM * * * * * * * * * DATE LAST UPDATED: 17MAY90 MAP GENERATION DATE: 18MAY90 * * * TIME LAST UPDATED: 22:28:05 MAP GENERATION TIME: 12:16:28 * * * * * * * * **************************************************************** FORMMNU DFHMSD TYPE=MAP,LANG=COBOL,TIOAPFX=YES,MODE=INOUT, X STORAGE=AUTO,CTRL=(FREEKB,FRSET),TERM=ALL FORMMNU DFHMDI SIZE=(19,80),EXTATT=NO,LINE=4 * DFHMDF POS=(01,12),LENGTH=6,ATTRB=(BRT,PROT), X INITIAL='OPCION' DFHMDF POS=(01,27),LENGTH=27,ATTRB=(BRT,PROT), X INITIAL='_______ DESCRIPCION _______' DFHMDF POS=(01,62),LENGTH=16,ATTRB=(BRT,PROT), X INITIAL='CAMPO A INFORMAR' * DFHMDF POS=(02,14),LENGTH=1,ATTRB=(NORM,PROT), X INITIAL='1' DFHMDF POS=(02,27),LENGTH=12,ATTRB=(NORM,PROT), X INITIAL='Aplicaciones' DFHMDF POS=(02,68),LENGTH=4,ATTRB=(NORM,PROT), X INITIAL='(01)' * DFHMDF POS=(03,14),LENGTH=1,ATTRB=(NORM,PROT), X INITIAL='2' DFHMDF POS=(03,27),LENGTH=13,ATTRB=(NORM,PROT), X INITIAL='Transacciones' DFHMDF POS=(03,68),LENGTH=4,ATTRB=(NORM,PROT), X INITIAL='(01)' * DFHMDF POS=(04,14),LENGTH=1,ATTRB=(NORM,PROT), X INITIAL='3' DFHMDF POS=(04,27),LENGTH=8,ATTRB=(NORM,PROT), X INITIAL='Formatos' DFHMDF POS=(04,68),LENGTH=4,ATTRB=(NORM,PROT), X INITIAL='(01)' * DFHMDF POS=(05,14),LENGTH=1,ATTRB=(NORM,PROT), INITIAL='4' DFHMDF POS=(05,27),LENGTH=11,ATTRB=(NORM,PROT), INITIAL='Preformatos' DFHMDF POS=(05,68),LENGTH=4,ATTRB=(NORM,PROT), INITIAL='(01)'

40

X X X

* DFHMDF POS=(06,14),LENGTH=1,ATTRB=(NORM,PROT), INITIAL='5' DFHMDF POS=(06,27),LENGTH=16,ATTRB=(NORM,PROT), INITIAL='Errores y Avisos' DFHMDF POS=(06,68),LENGTH=4,ATTRB=(NORM,PROT), INITIAL='(01)'

X

DFHMDF POS=(07,14),LENGTH=1,ATTRB=(NORM,PROT), INITIAL='6' DFHMDF POS=(07,27),LENGTH=17,ATTRB=(NORM,PROT), INITIAL='Totales contables' DFHMDF POS=(07,68),LENGTH=4,ATTRB=(NORM,PROT), INITIAL='(01)' DFHMDF POS=(08,14),LENGTH=1,ATTRB=(NORM,PROT), INITIAL='7' DFHMDF POS=(08,27),LENGTH=23,ATTRB=(NORM,PROT), INITIAL='Ayudas de Transacciones' DFHMDF POS=(08,68),LENGTH=4,ATTRB=(NORM,PROT), INITIAL='(01)'

X

DFHMDF POS=(09,14),LENGTH=1,ATTRB=(NORM,PROT), INITIAL='8' DFHMDF POS=(09,27),LENGTH=10,ATTRB=(NORM,PROT), INITIAL='Terminales' DFHMDF POS=(09,68),LENGTH=4,ATTRB=(NORM,PROT), INITIAL='(01)'

X

DFHMDF POS=(10,14),LENGTH=1,ATTRB=(NORM,PROT), INITIAL='9' DFHMDF POS=(10,27),LENGTH=27,ATTRB=(NORM,PROT), INITIAL='Control del Sistema '

X

DFHMDF POS=(11,13),LENGTH=2,ATTRB=(NORM,PROT), INITIAL='10' DFHMDF POS=(11,27),LENGTH=27,ATTRB=(NORM,PROT), INITIAL='Distribucion Teledisco ' DFHMDF POS=(11,68),LENGTH=4,ATTRB=(NORM,PROT), INITIAL='(01)'

X

DFHMDF POS=(12,13),LENGTH=2,ATTRB=(NORM,PROT), INITIAL='11' DFHMDF POS=(12,27),LENGTH=17,ATTRB=(NORM,PROT), INITIAL='Menu de Seguridad'

X

DFHMDF POS=(13,13),LENGTH=2,ATTRB=(NORM,PROT), INITIAL='12' DFHMDF POS=(13,27),LENGTH=27,ATTRB=(NORM,PROT), INITIAL='Tabla de listados de tablas'

X

DFHMDF POS=(14,13),LENGTH=2,ATTRB=(NORM,PROT), INITIAL='13' DFHMDF POS=(14,27),LENGTH=27,ATTRB=(NORM,PROT), INITIAL='Tabla de Cambio de Sesion '

X

DFHMDF POS=(15,13),LENGTH=2,ATTRB=(NORM,PROT), INITIAL='14' DFHMDF POS=(15,27),LENGTH=14,ATTRB=(NORM,PROT), INITIAL='Otros Procesos'

X

X X

*

*

X X X X X

* X X

* X

* X X

* X

* X

* X

*

41

X

* * OPCION * * CODIGO

DFHMDF POS=(17,27),LENGTH=09,ATTRB=(NORM,PROT), INITIAL='OPCION ='

X

DFHMDF POS=(17,37),LENGTH=2,ATTRB=(BRT,UNPROT,NUM,IC), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(17,40),LENGTH=1,ATTRB=ASKIP

X

DFHMDF POS=(18,24),LENGTH=12,ATTRB=(NORM,PROT), INITIAL='01 Codigo ='

X

DFHMDF POS=(18,37),LENGTH=9,ATTRB=(NORM,UNPROT) JUSTIFY=(LEFT,BLANK) DFHMDF POS=(18,47),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(18,50),LENGTH=28,ATTRB=(NORM,PROT), INITIAL='("*" indica que empiece por)'

X

DFHMDF POS=(19,24),LENGTH=12,ATTRB=(NORM,PROT), INITIAL='02 Idioma ='

X

DFHMDF POS=(19,37),LENGTH=1,ATTRB=(NORM,UNPROT) JUSTIFY=(LEFT,BLANK) DFHMDF POS=(19,39),LENGTH=1,ATTRB=ASKIP

X

X

* * IDIOMA * DFHMSD TYPE=FINAL END ______________________________________________________________________ Despues de haber efectuado el proceso de dar de alta al formato FORMMNU en Arquitectura segun lo indicado en la opción 3.2.3, se tienen el formato del punto 4.2.1 Formato y 4.2.1 Campos. Durante la compilación de este mapa se habrá generado la sgte estructura, la cual debe ser incluida dentro del programa de aplicación con la instrucción COPY, El nombre de archivo es FORMMNU.

42

01

FOMMNUEI. 02 FILLER PIC X(12). 02 MNU-OPCIONL COMP PIC S9(4). 02 MNU-OPCIONF PICTURE X. 02 FILLER REDEFINES MNU-OPCIONF. 03 MNU-OPCIONA PICTURE X. 02 MNU-OPCIONI PIC X(2). 02 MNU-CODIGOL COMP PIC S9(4). 02 MNU-CODIGOF PICTURE X. 02 FILLER REDEFINES MNU-CODIGOF. 03 MNU-CODIGOA PICTURE X. 02 MNU-CODIGOI PIC X(9). 02 MNU-IDIOMAL COMP PIC S9(4). 02 MNU-IDIOMAF PICTURE X. 02 FILLER REDEFINES MNU-IDIOMAF. 03 MNU-IDIOMAA PICTURE X. 02 MNU-IDIOMAI PIC X(1). 01 FOMMNUEO REDEFINES FOMMNUEI. 02 FILLER PIC X(12). 02 FILLER PICTURE X(3). 02 MNU-OPCIONO PIC X(2). 02 FILLER PICTURE X(3). 02 MNU-CODIGOO PIC X(9). 02 FILLER PICTURE X(3). 02 MNU-IDIOMAO PIC X(1).

43

4.2.3 Análisis de la CMA La CMA es el area que utiliza la aplicación para el traslado de datos entre sus programas el nombre del archivo de nuestra CMA es FOBCCMA. **************************************************************** * NOMBRE DEL OBJETO FOECCMA * * DESCRIPCION: COMMAREA DE MANTENIMIENTO ARQUITECTURA * ----------------FORMACION USUARIOS ARQUITECTURA--------* * *********************************************************** 01 FOECCMA. **---------------------------------------** **--CAMPOS DE ENTRADA DESDE MENU ---** **---------------------------------------** 05 CMA-CLAVE. 10 CMA-TRANSAC PIC X(04). 05 CMA-CAMPOS. 10 CMA-IDIOMA PIC X(1). 10 CMA-TIPO-OPER PIC X(01). 05 CMA-INDICADORES. 10 CMA-IND-ALTA PIC X(01). 88 CMA-88-IND-ALTA-SI VALUE 'S'. **---------------------------------------** **--CAMPOS DE SALIDA DE LISTADO ---** **--OBTENIDOS DE ENTRADA DE MENU ---** **--PARA SABER SELECCION CUANDO ---** **--VUELVE DE MANTENIMIENTO ---** **---------------------------------------** 05 CMA-MNU-CLAVE. 10 CMA-MNU-TRANSAC PIC X(04). 05 CMA-MNU-CAMPOS. PIC X(1). 10 CMA-MNU-IDIOMA ****************************************************************** * * LONGITUD TOTAL DEL REGISTRO EN BYTES : 12 * ******************************************************************

44

4.2.4 Análisis del Programa fuente, estandares y comentarios A continuación se incluye el fuente del Menu de Formación. ****************************************************************** * FO1CMNU: MENU MANTENIMIENTO TABLAS ARQUITECTURA.FORMACION ****************************************************************** * IDENTIFICATION DIVISION * ****************************************************************** * IDENTIFICATION DIVISION. PROGRAM-ID. FO1CMNU. AUTHOR. BC-FORMACION. DATE-WRITTEN. 20/05/96. * ****************************************************************** * * * FO1CMNU * * ------* * * * M E N U M O D E L O P A R A F O R M A C I O N * * * * EN ESTE CASO SOLO ESTA ACTIVADA LA OPCION 2 DE TRANSACCIONES* * DE ESTA FORMA SE PROCEDERA A DAR CONTROL AL LISTADO EN PAN- * * TALLA DE LA MISMA, SI LA CLAVE SELECCIONADA TIENE AL MENOS * * UNA LETRA SEGUIDA DE '*' , O SE DARA CONTROL AL MANTENIMIEN-* * TO SI LA CLAVE ESTA COMPLETA. * * * * DESCRIPCION DE LA LINKAGE : * * * * NOMBRE DESCRIPCION * * -------------------* * * * QGECCAA COMMAREA DE APLICACIONES * * * * FOECCMA DATOS PROPIOS DE LA APLICACION DE FORMACION. * * * * FOECMNU COPY DE PANTALLA BMS (FORMMNU) * * * ****************************************************************** * L O G D E M O D I F I C A C I O N E S * ****************************************************************** * AUTOR FECHA DESCRIPCION * * ------- ------- ---------------------------------------------- * * ....... DDMMMAA ................. * * @M001 * * * ****************************************************************** ****************************************************************** * ENVIRIONMENT DIVISION * ****************************************************************** ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. DECIMAL-POINT IS COMMA. *

45

****************************************************************** * DATA DIVISION * ****************************************************************** * DATA DIVISION. * ****************************************************************** * WORKING-STORAGE SECTION * ****************************************************************** * WORKING-STORAGE SECTION. * ********** IDENTIFICADOR DE INICIO DE WORKING STORAGE ********** * 01 LT-INICIO-WS. 05 LT-INICIO-W PIC X(40) VALUE '*** INICIO WORKING STORAGE (FO1CMNU) ***'. * ********** COPY PARA EL PROGRAMA DE ABEND *********************** * 01 QGECABC-01. COPY QGECABC. * ********** COPYS A NIVEL 01 ************************************* ****************************************************************** * * * SWITCHES * * * * SW-TECLA * * - '00' TECLA ENTER * * - '03' TECLA F3 * * * * SW-OPCION * * - '2 ' ACTIVADA * * * * - '1 ' '3 ' '4 ' '5 ' '6 ' '7 ' '8 ' '9 ' '10' '11' '12' '13'* * '14 DESACTIVADA * ****************************************************************** * 01 SWITCHES. 05 SW-TECLA PIC X(2) VALUE ' '. 88 PF-ENTER VALUE '00'. 88 PF3 VALUE '03'. 05 SW-OPCION PIC X(2) VALUE ' '. 88 ACTIVADA VALUE '2 '. 88 DESACTIVADA VALUE '1 ' '3 ' '4 ' '5 ' '6 ' '7 ' '8 ' '9 ' '10' '11' '12' '13' '14'. * ************* OTRAS AREAS DE LA WORKING STORAGE **************** * * * W-OPCION OPCION DEL MENU, VALIDA SI ES UNA O DOS POSICIONES * * W-CONTADOR CONTADOR DE ASTERISCOS * * W-CODIGO RECEPCIONA EL CODIGO DEL MENU * * W-IND TABULA LA LONGITUD DEL CAMPO DIGITADO * * * ****************************************************************** *

46

01 W-VARIABLES. * 05 W-OPCION. 10 W-OPCION1 PIC X(1). 10 W-OPCION2 PIC X(1). 05 W-CONTADOR PIC 9 VALUE ZEROS. 05 W-CODIGO. 10 W-CODIGO-OCCURS OCCURS 9 TIMES. 15 W-COD-BYTE PIC X VALUE SPACES. 05 W-IND PIC S9(9) COMP VALUE 0. * ********** IDENTIFICADOR DE FINAL DE WORKING STORAGE *********** * 01 LT-FINAL-WS. 05 LT-FINAL-W PIC X(40) VALUE '*** FINAL WORKING STORAGE (FO1CMNU) ***'. * ****************************************************************** * * * LINKAGE SECTION * * * * * * DESCRIPCION DE LA LINKAGE : * * * * NOMBRE DESCRIPCION * * -------------------* * * * QGECCAA COMMAREA DE APLICACIONES * * * * FOECCMA DATOS PROPIOS DE LA APLICACION DE FORMACION. * * * * FOECMNU COPY DE PANTALLA BMS (FORMMNU) * * * * * ****************************************************************** LINKAGE SECTION. * 01 DFHCOMMAREA. * COPY QGECCAA. * COPY FOECCMA. * COPY FOECMNU. * ****************************************************************** * PROCEDURE DIVISION * ****************************************************************** * PROCEDURE DIVISION. * PERFORM 100000-INICIO-PROGRAMA * PERFORM 200000-PROCESO-PROGRAMA * PERFORM 300000-FIN-PROGRAMA. *

47

****************************************************************** * * * 100000-INICIO-PROGRAMA * * * * LOS PASOS A DAR EN ESTE PARRAFO SON LOS SIGUIENTES: * * * * 1.- DIRECCIONAR LOS DATOS DE LA PANTALLA MEDIANTE EL * * PUNTERO QUE NOS GANA LA ARQUITECTURA * * DIRECCIONAR COMMAREA DE MANTENIMIENTO * * * * 2.- MOVER SIEMPRE OPERACION NO CONTABLE Y OPERACION REALIZADA * * NINGUNA * * * ****************************************************************** * 100000-INICIO-PROGRAMA. * INITIALIZE QGECABC * EXEC CICS IGNORE CONDITION ERROR END-EXEC IF EIBRESP NOT EQUAL DFHRESP(NORMAL) MOVE 'ERROR CICS FO1CMNU' TO ABC-REFERENCIA MOVE 'FO1CMNU' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-CICS END-IF * SET ADDRESS OF FORMMNUI TO CAA-PTR-COPYIN SET ADDRESS OF FOECCMA TO CAA-PTRDATA INITIALIZE FOECCMA * SET CAA-88-CONTABLE-NO TO TRUE SET CAA-88-TIOPER-NADA TO TRUE. ****************************************************************** * * * 200000-PROCESO-PROGRAMA * * * * LOS PASOS A DAR EN ESTE PARRAFO SON LOS SIGUIENTES: * * * * DECIDIR ENTRE LOS DOS ESTADOS POSIBLES * * * * - INICIO * * - EN CUALQUIER OTRO CASO CONTINUACION * * * ****************************************************************** * 200000-PROCESO-PROGRAMA. * EVALUATE TRUE WHEN CAA-88-ESTADO-INICIO PERFORM 210000-ESTADO-INICIO WHEN OTHER PERFORM 220000-ESTADO-CONTINUACION END-EVALUATE.

48

****************************************************************** * * * 210000-ESTADO-INICIO * * * * CORRESPONDERA A LA PRIMERA VEZ QUE ENTRAMOS EN EL PROGRAMA * * POR TANTO LIMPIAREMOS LOS DATOS DE LA PANTALLA QUE SERIAN * * DATOS DE UNA PANTALLA ANTERIOR Y MOVEMOS NUESTROS DATOS DE * * CABECERA. * * AL SER EL PRIMER PROGRAMA DE LA APLICACION DE MANTENIMIENTO * * DE ARQUITECTURA. * * DESPUES DAREMOS CONTROL A LA ARQUITECTURA PARA VOLVER A * * ENTRAR NOSOTROS MISMOS EN CONTINUACION. * * * ****************************************************************** * 210000-ESTADO-INICIO. * MOVE LOW-VALUES TO FORMMNUO. ****************************************************************** * * * 220000-ESTADO-CONTINUACION * * * * EQUIVALENTE A 'RECIBIR MAPA' * * * * -PONE ESPACIOS A LAS VARIABLES DEL MAPA * * -VER TECLA PULSADA INTRO O PF3 SON VALIDAS * * -EN CUALQUIER OTRO CASO DAREMOS ERROR DE TECLA INCORRECTA * * -MOVER IDIOMA A CMA-IDIOMA, SI ES INFORMADO POR PANTALLA * * * ****************************************************************** * 220000-ESTADO-CONTINUACION. * INSPECT MNU-OPCIONI REPLACING ALL LOW-VALUES BY SPACES INSPECT MNU-CODIGOI REPLACING ALL LOW-VALUES BY SPACES INSPECT MNU-IDIOMAI REPLACING ALL LOW-VALUES BY SPACES * MOVE CAA-TECLA TO SW-TECLA EVALUATE TRUE WHEN PF-ENTER OR PF3 PERFORM 221000-TECLA-CORRECTA WHEN OTHER MOVE 'QME0001' TO CAA-COD-ERROR MOVE -1 TO MNU-OPCIONL PERFORM 300000-FIN-PROGRAMA END-EVALUATE. ****************************************************************** * * * 221000-TECLA-CORRECTA * * * * SON TECLAS CORRECTAS INTRO Y PF3, CON PF3 INFORMAREMOS * * EL INDICADOR DE COMMAREA DE MANTENIMIENTO PARA ALTAS. * * * ****************************************************************** 221000-TECLA-CORRECTA. * IF PF3 SET CMA-88-IND-ALTA-SI TO TRUE ELSE MOVE 'N' TO CMA-IND-ALTA END-IF * MOVE MNU-OPCIONI TO W-OPCION IF W-OPCION1 EQUAL SPACE OR W-OPCION1 EQUAL ZERO MOVE W-OPCION2 TO W-OPCION1 MOVE SPACE TO W-OPCION2 END-IF * MOVE W-OPCION TO SW-OPCION EVALUATE TRUE WHEN ACTIVADA PERFORM 221200-CALCULO-LONGITUD IF W-IND GREATER +4 MOVE '@QM000007' TO CAA-VAR1-ERROR MOVE '4 ' TO CAA-VAR2-ERROR MOVE 'QME0045' TO CAA-COD-ERROR PERFORM 300000-FIN-PROGRAMA ELSE MOVE ZEROS TO W-CONTADOR

49

*

INSPECT MNU-CODIGOI TALLYING W-CONTADOR FOR ALL '*' IF NOT CMA-88-IND-ALTA-SI IF MNU-CODIGOI EQUAL SPACES OR W-IND < +2 SET CAA-88-CODTRAN-SIG-SAME TO TRUE MOVE -1 TO MNU-CODIGOL MOVE 'FOE0002' TO CAA-COD-ERROR PERFORM 300000-FIN-PROGRAMA END-IF END-IF MOVE MNU-CODIGOI TO CMA-TRANSAC END-IF WHEN DESACTIVADA MOVE -1 TO MNU-OPCIONL MOVE 'FOE0001' TO CAA-COD-ERROR PERFORM 300000-FIN-PROGRAMA WHEN OTHER MOVE -1 TO MNU-OPCIONL MOVE 'FOE0003' TO CAA-COD-ERROR PERFORM 300000-FIN-PROGRAMA END-EVALUATE

IF MNU-IDIOMAI NOT EQUAL TO SPACES MOVE MNU-IDIOMAI TO CMA-IDIOMA ELSE MOVE -1 TO MNU-IDIOMAL MOVE 'QME0371' TO CAA-COD-ERROR PERFORM 300000-FIN-PROGRAMA END-IF. ****************************************************************** * * * 221200-CALCULO-LONGITUD * * * ****************************************************************** 221200-CALCULO-LONGITUD. * MOVE MNU-CODIGOO TO W-CODIGO MOVE +9 TO W-IND PERFORM UNTIL W-IND EQUAL ZEROS OR W-COD-BYTE(W-IND) NOT EQUAL SPACES SUBTRACT +1 FROM W-IND END-PERFORM. ****************************************************************** * * * 300000-FIN-PROGRAMA * * * * -DEVOLVER CONTROL A LA ARQUITECTURA * * * ****************************************************************** 300000-FIN-PROGRAMA. * PERFORM 300100-POSICIONAR-CURSOR * EVALUATE TRUE WHEN CAA-88-ESTADO-INICIO PERFORM 310000-INFORMAR-CAA-INICIO WHEN OTHER PERFORM 320000-INFORMAR-CAA-CONTIN END-EVALUATE * PERFORM 999-INFORMAR-ANALITICA * EXEC CICS RETURN END-EXEC. ****************************************************************** * * * 300100-POSICIONAR-CURSOR * * * * -AL SALIR DEL PGM, POSICIONA EL CURSOR EN EL 1ER CAMPO DEL MAPA* * * ****************************************************************** 300100-POSICIONAR-CURSOR. * IF MNU-OPCIONL = -1 OR MNU-CODIGOL = -1 OR MNU-IDIOMAL = -1 CONTINUE ELSE MOVE -1 TO MNU-OPCIONL

50

END-IF. ****************************************************************** * * * 310000-INFORMAR-CAA-INICIO * * * * -SETEAR VARIABLES DE LA CAA, COMO QUEDAN EN ESTADO INICIO * * * ****************************************************************** 310000-INFORMAR-CAA-INICIO. * SET CAA-88-ACCION-TERMINAL TO TRUE SET CAA-88-ESTADO-CONTIN TO TRUE MOVE CAA-CODTRAN TO CAA-CODTRAN-SIG. *

51

****************************************************************** * * * 320000-INFORMAR-CAA-CONTIN * * * * -SETEAR VARIABLES DE LA CAA, COMO QUEDAN EN ESTADO CONTINUACION* * * ****************************************************************** 320000-INFORMAR-CAA-CONTIN. * IF CAA-88-COD-ERROR-VACIO SET CAA-88-ACCION-PROGRAMA TO TRUE SET CAA-88-CADENA-INICIO TO TRUE SET CAA-88-ESTADO-INICIO TO TRUE IF W-CONTADOR GREATER ZEROS MOVE 'FOTL' TO CAA-CODTRAN-SIG ELSE MOVE 'FOTM' TO CAA-CODTRAN-SIG END-IF IF PF3 MOVE 'FOTM' TO CAA-CODTRAN-SIG SET CMA-88-IND-ALTA-SI TO TRUE END-IF ELSE SET CAA-88-ACCION-TERMINAL TO TRUE SET CAA-88-ESTADO-CONTIN TO TRUE SET CAA-88-CODTRAN-SIG-SAME TO TRUE END-IF. ****************************************************************** * * * 999999-ABEND-CICS * * * * SE ABENDA LA TAREA CUANDO SE PRODUCE UN ERROR CICS NO * * DESEABLE * * * ****************************************************************** 999999-ABEND-CICS. * MOVE 'S' TO ABC-ABEND MOVE 'FO1CMNU' TO ABC-PROGRAMA MOVE EIBFN TO ABC-EIBFN MOVE EIBRSRCE TO ABC-EIBRSRCE MOVE EIBRCODE TO ABC-EIBRCODE MOVE EIBRESP TO ABC-EIBRESP1 MOVE EIBRESP2 TO ABC-EIBRESP2 * EXEC CICS LINK PROGRAM ('QG1CABC') COMMAREA (QGECABC) END-EXEC. ****************************************************************** * * * 999-INFORMAR-ANALITICA * * * * SE INFORMAN LOS CAMPOS DEL SEGMENTO CAA-ANALITICA DE LA * * COMMAREA QGECCAA, CON LOS DATOS DE LA OPERACION QUE SERVIRAN * * A ANALITICA. * * * ****************************************************************** 999-INFORMAR-ANALITICA. * MOVE CAA-ENTIDAD TO CAA-ENTIDAD-ANA MOVE CAA-CENTRO-CONT TO CAA-CENTRO-ANA SET CAA-88-TIOPER-NADA TO TRUE.

52

4.3 Transacción FOTL programa FO2CTLI Listado de la Aplicación. 4.3.1 Parametrización de la Transacción. Los parámetros definidos para la transaccion FOTL son los sgtes : Aplicación 0001 OM12 ARQUITEC. PLATAFORMA 0100 CICSUSER MANTENIMIENTO DE TRANSACCIONES

TP01 21/05/96 QMTM 09:25:23

Transaccion ..... = FOTL : LISTADO DE FORMACION NEW COPY Idioma .......... = E CASTELLANO Aplicacion ...... = FO FORMACION ________ESTADO_________ Programa ........ = FO2CTLI (A/D) A Activada Plan DB2 ........ = BNQMD __________ALTAMIRA___________ Formato/Mapa ent. = QCRMGTS / QCRMGTS Tipo Altamira.... = N (N/E/M) Codigo de ayuda.. = Entrada.......... = MEN-HA Longitud Commarea = 0000 Camb.Ses/Recuper. = N / N (S/N):(S/N) ______INFORM.ADICIONAL_____ Tipo (Trans/Conv) = C (T/C) Transac. local .. = FO Contable / Cajero = N : (S/N) : (A/B/ ) Documentos ...... = Tipos operacion.. = C (A-B-M-C-E-P-O) Diario Elec. .... = N (S/N) Inicio desde TERM = N (S/N) APB 4700 ........ = N (S/N) Inicio por Arquit.= N (S/N) _____________STAMPS__________________ PFs standard = S (S/N) Cambio estado =13/05/96 03:06 CICSUSER Actualizar tecleo = S (S/N) Alta .......=13/05/96 CICSUSER Pintar fast-path = N (S/N) Ult.mod. ...=20/05/96 08:48 CICSUSER Pfs por Arquitec.= N (S/N) Primer Uso .=20/05/96 Tiene ayuda activa= N (S/N) Ultimo Uso .=21/05/96 F2 Modif. F3 Alta

F4 Limpia F5 Frmto. F6 Baja F8 Pfs 10 Altam. CL

53

Formato 0001 OM12 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTENIMIENTO DE FORMATOS

TP01 21/05/96 QMFM 09:26:26

Formato ........... =

QCRMGTS : MAPA DE LISTADOS

Tipo (E/S/A) ...... = Delimit. automatico =

A Entrada/Salida N (S/N)

Num. campos .............. Longitud copy ............ Relacion campos / Ver.PS/2 Rutinas Verific./ V.Listos Idioma ............. = E

= = = =

NEW COPY

________ESTADO________ (P/D) = D Definitiva

53 1632 No / No No / No CASTELLANO Formato modelo: QCRMGTS

__________ SALIDA ________ Preformato de Pantalla ... = Preformato de Documento .. = Mapa para LOCAL .......... =

/ / @GTS

/ / /

(STD / 4700 / 5935) (STD / Doc. / NLin) (PS/2 / 4700) Conexion Preform. =

______ALTA_______ _____ULTIMA MODIF____ __P.USO_ ___ULT.USO___ 13/06/90 CICSBVT 04/01/96 17:54 13/06/90 21/05/96 QMOL F2 Modificar F3 Alta F4 Limpiar F5 Campos F6 Baja F7 Preform BORRA Campos 0001 OM12 0100 CICSUSER FORMATO:

ARQUITEC. PLATAFORMA LISTADO DE CAMPOS QCRMGTS

MAPA DE LISTADOS

TP01 21/05/96 QMCL 09:27:15

P

SALTO

L

1:

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

CAMPO____LITERAL_________DELIM_ATT__LNG__TIP_RUTINA__VRUT_LIT4700_AYU SALTO SALTO 04 A 2 O N N CONTEN CONTENIDO 77 A 50 O N N LINEA LINEA 64 A 9 O N N COLUMNA COLUMNA 05 A 11 O N N TITULO TITULO 8E A 77 O N N OPCION1 OPCION1 01 A 1 O N N DATOS1 DATOS1 46 A 77 O N N OPCION2 OPCION2 02 A 1 O N N DATOS2 DATOS2 51 A 77 O N N OPCION3 OPCION3 03 A 1 O N N DATOS3 DATOS3 06 A 77 O N N OPCION4 OPCION4 07 A 1 O N N DATOS4 DATOS4 76 A 77 O N N OPCION5 OPCION5 08 A 1 O N N DATOS5 DATOS5 8C A 77 O N N OPCION6 OPCION6 0A A 1 O N N

F2 Mantto F3 Alta F4 AyAct F6 Relac 10 Mover F7 Re.Pag F8 Av.Pag Cl

54

53

Teclas de Función 0001 OM12 ARQUITEC. PLATAFORMA 0100 CICSUSER LISTADO DE TECLAS DE FUNCION QCA0001 FIN DE DATOS P SALTO LISTADO DE PFS DE LA TRANSACCION

TP01 21/05/96 QMLF 09:28:08 FOTL

L C

1: 1:

_TECLA____LITERAL________ACTIVA___VIS.__PF.FIC__PROGRAMA_

QME0038 NO EXISTEN DATOS A LISTAR F2 Mantto F3 Alta F4 Izqda. F5 Drcha. F7 Re.Pag F8 Av.Pag Cl Salir

55

0 90

4.3.2 Estados Inicio / Continuación CODTRAN-SIG = SAME ESTADO = CONTIN ACCION = TERMINAL

ARQUITECTURA / APLICACIÓN

MAPA MNU

CODTRAN-SIG = CODTRAN ESTADO = CONTIN ACCION = TERMINAL

MNU I

MAPA MNU

CODTRAN-SIG = 'MTO' ESTADO = INICIO ACCION = PROGRAMA

MNU C CODTRAN-SIG = ULTI ESTADO = CONTIN ACCION = TERMINAL

CODTRAN-SIG = 'LST' ESTADO = INICIO ACCION = PROGRAMA

CODTRAN-SIG = ULTI ESTADO = CONTIN ACCION = TERMINAL

MAPA MNU

MTO I

CODTRAN-SIG = 'MTO' ESTADO = INICIO ACCION = PROGRAMA

LST I

LST C

LISTADO

CODTRAN-SIG = ULTI ESTADO = CONTIN ACCION = TERMINAL

MAPA MTO

CODTRAN-SIG = CODTRAN ESTADO = CONTIN ACCION = TERMINAL TIPO-SALIDA = PAGINACIÓN

CODTRAN-SIG = CODTRAN ESTADO = CONTIN ACCION = TERMINAL

LISTADO

CODTRAN-SIG = SAME ESTADO = CONTIN ACCION = TERMINAL

MAPA MTO

MTO X

CODTRAN-SIG = SAME ESTADO = CONFIR ACCION = TERMINAL CODTRAN-SIG = SAME ESTADO = CONTIN ACCION = TERMINAL

MTO C

MAPA MTO

MAPA MTO CODTRAN-SIG = SAME ESTADO = CONTIN ACCION = TERMINAL

56

4.3.3 Análisis de la Paginación. El mapa asociado a cualquier transacción de listado es el QCRMGTS el cual es proporcionado por la Arquitectura, y es utilizado por el programa de gestión de paginación de la arquitectura, se explicará durante el análisis del programa FOC2TLI y en este punto. La Arquitectura proporciona a las aplicaciones, a través de un módulo al efecto, la posibilidad de gestionar paginación por pantalla de forma completamente transparente al usuario. Se entiende por paginación la posibilidad de mostrar información repetitiva por pantalla, de forma que el usuario pueda desplazarse dentro del conjunto de datos en cuatro direcciones: avanzar, retroceder, izquierda y derecha. Todos los programas que empleen este módulo, utilizarán un mapa común en el cual el cuerpo de datos está compuesto por un carácter de selección por cada una de las líneas del listado, llamado el campo OPCION y por los datos a paginar (tanto uno como otro podrán estar protegidos), así como una cabecera del listado que puede ser de 1 a 15 líneas. La cabecera de listado constará de tantas líneas como informe el programa de aplicación. Podrán ser un mínimo de 1 y un máximo de 15; estas líneas aparecerán brillantes y protegidas en primer lugar, y no se moverán al hacer scroll arriba o abajo. Las transacciones de listado, pues, llevarán en la tabla de transacciones de la Arquitectura (QM - 2) como formato y panel asociado el "QCRMGTS", que es el nombre del mapa común a todos los listados. Este proceso, que normalmente implica una notable complejidad de programación, es realizado completamente por el módulo de Arquitectura QC1CGTS. El funcionamiento sigue el siguiente esquema: - Se arranca la transacción asociada al programa de paginación, en adelante "de listado". - El programa de listado entra en estado inicio y borra la cola donde va a escribir las líneas de listado (llamada +GTSxxxx, donde xxxx es el contenido del campo CAA-TERMINAL de la commarea CAA) por si existiera de una tarea anterior. Para el borrado de esta cola TS, y en general para todas las sentencias CICS de accesos a colas TS, se utilizará el módulo QR1CMTS, que borra, lee, escribe o reescribe colas TS. - A continuación accede a sus tablas para capturar la información a listar, escribiéndola formateada (como si se tratara de un listado a papel) en una cola TS llamada +GTSxxxx (xxxx: contenido del campo CAA-TERMINAL de la commarea CAA). Cada línea del TS contendrá: |O|A|CONTENIDO DE LA LÍNEA ...| | | | --> Contenido de la línea | ---------> Atributo de la línea (*) ---> Opción

57

(*) Este atributo puede tomar los siguientes valores, y el programa de gestión de TS pondrá los atributos de los campos OPCION y CONTENIDO DE LA LÍNEA como se indica: VALOR DEL CAMPO ' ' 'B' 'A' 'R' 'V' '*' '+' '-'

ATRIBUTO DE OPCION ATRIB. DE LA LÍNEA Desprot.+ Desprot.+ Desprot.+ Desprot.+ Desprot.+ Proteg. + Proteg. + Proteg. +

Normal Normal Normal Normal Normal Normal Brill. Normal

Protegido+ Protegido+ Protegido+ Desprot. + Desprot. + Desprot. + Protegid.+ Protegid.+

Normal Brillante Normal Brillante Normal Normal Brillante Normal

- El programa de listado llama al módulo de Arquitectura informando en la commarea de la Arquitectura (CAA) los campos: - TIPO-SALIDA = 'P' (indica que debe entrar el proceso de Paginación). - Segmento completo de datos para gestión de paginación en la CAA (Ver II.1.Área de Comunicación con la Arquitectura (CAA)). En este segmento se encuentra la siguiente información: * Cabecera descriptiva de los datos a paginar. * Caracteres con los que se permite selección de una línea de listado, por ejemplo, 'X', 'S', etc., hasta 10 caracteres diferentes. * Si se permite al terminalista multiselección o no, es decir, que el módulo de Arquitectura permita que se seleccione más de una fila antes de devolver control al programa de listado. * Margen fijo a mantener en desplazamientos laterales, es decir, cuando se pida desplazamiento a derecha e izquierda, es el número de caracteres que se mantienen siempre visibles a la izquierda de la información de pantalla; normalmente será la información clave de cada uno de los datos paginables. * Teclas de función permitidas al terminalista para el programa en curso, excepto las estándar (avanzar: PF8, retroceder: PF7, izquierda: PF4, derecha: PF5). Si el programa de paginación QC1CGTS no gestiona el scroll lateral (bien porque la anchura de las líneas en la cola TS sea menor o igual que la anchura de la pantalla, o bien porque se le haya indicado al programa de paginación que no se desea utilizar dicho scroll expresamente), el programa QC1CGTS permitirá que las teclas PF4 y PF5 las pueda gestionar el programa de aplicación de listado. * Si el modulo QC1CGTS debe dar control al programa de listado cuando se pulse la tecla PF8 (Scroll abajo) y no existan más datos en la cola TS. * Si se debe refrescar el contenido de las líneas de listado que se han escrito en la cola TS cada vez que tome control en veces sucesivas el módulo QC1CGTS.

58

* Número de líneas de cabecera, que permanecerán fijas en el scroll arriba y abajo. * Si se desea que el programa de paginación gestione el scroll lateral o no, sea cual sea la anchura de las líneas del listado. * Número del primer item seleccionado, lo que permite acceder a dicho item con una única lectura de la cola TS. Este es un campo de salida del programa de paginación QC1CGTS al de listado, el cual deberá utilizarlo en estado Continuación, cuando le sea devuelto el control, después de que el terminalista pulse una tecla de función válida y realice en su caso una selección. El módulo de Arquitectura es en adelante el que realiza todo el proceso de listado cubriendo las siguientes funciones: - Desplazamiento en cuatro direcciones: * * * *

'n' 'P' 'H' 'M'

caracteres (según el campo SALTO del panel de listado). página completa (''). media página (''). Máximo a izda., derecha, etc. ( " ).

- Mantenimiento de un margen fijo. - Valida que las teclas de función pulsadas sean correctas. - Verifica que los caracteres de selección utilizados son válidos y que no se haya informado más que uno cuando no se permita multiselección. - Ilumina y/o protege las líneas que correspondan si procede. Una vez que el terminalista pulsa una tecla de función válida y no de paginación (PF4, PF5, PF7 o PF8), el módulo cede control al programa de aplicación (que entra en estado continuación), el cual, si espera alguna selección, leerá la cola TS +GTSxxxx para verificar qué‚ opción/es ha/n sido seleccionada/s, actuando en consecuencia. Normalmente este se limitará a llamar a un programa de consulta o mantenimiento mostrando la información completa del registro seleccionado. Los campos del panel general de listados (QCRMGTS) comunes a todos ellos son: * LÍNEAS DE SELECCION Y SALTO: Esta primera línea es común a todos los listados, y contiene los campos: - SALTO: Salto que se desea cuando se pulsa una de las teclas estándar del listado: PF4, PF5, PF7 y PF8. Es un campo modificable y sus valores pueden ser: * * * *

'n' 'P' 'H' 'M'

caracteres página completa media página máximo a izda., derecha, etc.

59

- SELECCION: Indica el criterio de selección por el que se ha accedido al listado, o bien un titulo especifico del listado. No es modificable por pantalla. En este campo aparecerá el contenido del campo CAA-CONTENID de la commarea CAA, que el programa de listado ha informado. - LÍNEA: Tiene la forma: L ZZ9:ZZ9 donde la L es indicativo de "Línea" y el primer número indica el número relativo de la primera línea del listado dentro del total de líneas, que es indicado en el segundo número. No es modificable por pantalla. Por ejemplo, si un listado de 87 líneas se encuentra en el principio, aparecerá: L 1: 87. En la segunda línea puede aparecer el campo siguiente: - COLUMNA: Aparece justo debajo de la línea, y solamente cuando se gestione el scroll lateral. Tiene la forma: C ZZ9:ZZ9 donde la C es indicativo de "Columna" y el primer número indica el número relativo de la columna primera del listado dentro del total de anchura de la línea, que es indicado en el segundo número. No es modificable por pantalla. * LÍNEAS DE CABECERA DEL LISTADO: Dependiendo de los valores informados por la aplicación para el número de líneas de cabecera, éstas apareceran en modo protegido brillante, sin campo de opción/selección. * LÍNEAS DE DETALLE DEL LISTADO: A continuación aparecen las líneas de detalle del listado, que variarán en contenido de un listado a otro. Para cada línea del listado existen dos campos: * El campo de la selección. * El campo de contenido de las líneas.

60

4.3.4 Análisis del programa fuente, estandares y comentarios * FO2CTLI: TRANSACCION - LISTADO. FORMACION USUARIOS ARQUITECTURA ****************************************************************** * * * IDENTIFICATION DIVISION * * * ****************************************************************** IDENTIFICATION DIVISION. * PROGRAM-ID. FO2CTLI. AUTHOR. ANDERSEN CONSULTING. DATE-WRITTEN. 03/05/96. ****************************************************************** * ------* * FO2CTLI * * ------* * * * DESCRIPCION * * ----------* * * * LISTADO DE TABLA DE TRANSACCIONES DE FORMACION. ESTE PGM * * CONSTA DE DOS PARTES DIFERENCIADAS, SEGUN EL ESTADO: * * * * -ESTADO INICIO: A PARTIR DE LA CLAVE INFORMADA EN CMA * * CREARA EL TS DE DATOS (+GTSXXXX, SIENDO * * XXXX EL EIBTRMID) CON LOS DATOS A LISTAR * * E INFORMARA EL AREA CAA-PAGINAR DE LA * * COMMAREA PARA QUE LA SIGUIENTE VEZ TOME * * CONTROL EL PROGRAMA DE GESTION DE TS. * * * * -ESTADO CONTINUACION: SOLO RECIBIRA CONTROL CUANDO EL * * PROGRAMA DE GESTION DE TS DETECTE QUE * * QUE SE HA PULSADO UNA TECLA DE LAS QUE * * EL PROGRAMA DE LISTADO HA DETECTADO COMO * * 'PROPIA' (PARA EL LISTADO DE TRANSACCIONES * * SERAN F2, PARA MANTENIMIENTO Y F3 * * PARA ALTA). EN ESTOS DOS CASOS, DARA * * CONTROL A LA ARQUITECTURA INDICANDO QUE * * LA SIGUIENTE TRANSACCION ES LA DE MANTENI- * * MIENTO DE TRANSACCIONES. * * * * LAS AREAS QUE UTILIZA ESTE PROGRAMA SON: * * * * - CAA : COMMAREA DE ARQUITECTURA DE APLICACIONES * * - CMA : COMMAREA DE MANTENIMIENTO DE LA ARQUITECTURA * * - CCT : TABLA DE TRANSACCIONES * * - GTS : COLA TS DE DATOS A GRABAR * * - GTS1 : AREA DE PANTALLA * * * * TABLAS DB2 * * * * QGDTCAA COMMAREA DE ARQUITECTURA DE APLICACIONES * * FODTCCT TABLA DE TRANSACCIONES *

61

* FICHEROS: * * * * NOMBRE E/S DESCRIPCION * * ------------ ----------------------------------* * ****************************************************************** * L O G D E M O D I F I C A C I O N E S * ****************************************************************** * AUTOR FECHA DESCRIPCION * * ------- ------- ---------------------------------------------- * * USERID DDMMMAA ---------------------------------------------- * ****************************************************************** ****************************************************************** * * * ENVIRIONMENT DIVISION * * * ****************************************************************** ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-3090. OBJECT-COMPUTER. IBM-3090. SPECIAL-NAMES. DECIMAL-POINT IS COMMA. ****************************************************************** * * * DATA DIVISION * * * ****************************************************************** DATA DIVISION. ****************************************************************** * * * WORKING-STORAGE SECTION * * * ****************************************************************** WORKING-STORAGE SECTION. ********** IDENTIFICADOR DE INICIO DE WORKING STORAGE ********** 01 LT-INICIO-WS. 05 LT-INICIO-W PIC X(40) VALUE '*** INICIO WORKING STORAGE (FO2CTLI) ***'. *************** COPYS COBOL ************************************ COPY DFHAID. 01 DFH-ABC. COPY QGECABC. ********** DECLARES DE TABLAS DB2 ****************************** EXEC SQL INCLUDE SQLCA END-EXEC. * EXEC SQL INCLUDE FOEDCCT END-EXEC. EXEC SQL INCLUDE FOEDDTA END-EXEC. EXEC SQL INCLUDE QGEDIDI END-EXEC. ********** COPYS COBOL DE TABLAS DB2 *************************** EXEC SQL INCLUDE FOECCCT END-EXEC. EXEC SQL INCLUDE FOECDTA

62

END-EXEC. EXEC SQL INCLUDE QGECIDI END-EXEC. ****************************************************************** * * * SWITCHES * * * ****************************************************************** 01 SW-SWITCHES. 05 SW-SELECCIONADA PIC X VALUE 'N'. 88 SI-SELECCIONADA VALUE 'S'. 88 NO-SELECCIONADA VALUE 'N'. 05 SW-HAY-DATOS PIC X VALUE 'N'. 88 SI-HAY-DATOS VALUE 'S'. 88 NO-HAY-DATOS VALUE 'N'. 05 SW-FIN-CURSOR PIC X VALUE 'N'. 88 FIN-CURSOR VALUE 'S'. ****************************************************************** * ACUMULADORES * * * ****************************************************************** 01 A-ACUMULADORES. 05 A-ITEM PIC S9(4) COMP VALUE ZEROS. 05 A-IND PIC S9(4) COMP VALUE ZEROS. 05 A-IND-CONT PIC S9(4) COMP VALUE ZEROS. ****************************************************************** * CONSTANTES * * * ****************************************************************** 01 C-CONSTANTES. 05 C-GUION PIC X(1) VALUE '_'. 05 C-SPACE PIC X(1) VALUE ' '. 05 C-ASTERISCO PIC X(1) VALUE '*'. 05 C-FODTCCT PIC X(07) VALUE 'FODTCCT'. 05 C-ERROR-IGNORE 05 C-ERROR-DELETEQ 05 C-ERROR-READQ 05 C-ERROR-WRITEQ 05 C-ERROR-LINK 05 C-CABECERA1 05 C-CABECERA2 05 C-CABECERA-GTS. 10 FILLER

' '

PIC X(20) VALUE 'ERROR EN CICS IGNORE'. PIC X(20) VALUE 'ERROR CICS DELETEQ '. PIC X(20) VALUE 'ERROR EN CICS READQ'. PIC X(20) VALUE 'ERROR CICS WRITEQ '. PIC X(20) VALUE 'ERROR EN CICS LINK '. PIC X(35) VALUE ARQUITECTURA DE APLICACIONES '. PIC X(35) VALUE LISTADO DE TRANSACCIONES '.

PIC X(21) VALUE ' TRN__A__DESCRIPCION'. 10 FILLER PIC X(24) VALUE ALL '_'. 10 FILLER PIC X(43) VALUE 'AP__PROGRAM__FOR/MAP__PL.DB2______ULT.USO__'. 10 FILLER PIC X(28) VALUE 'CONT_I.TERM_TRAN/CONV_T.OPER'. 10 FILLER PIC X(19) VALUE '__CAMB.SES__RECUPER'. 10 FILLER PIC X(52) VALUE '__INI.ARQ.__PF.ST.__A.TCL.__P.FAST.__APB__LONG.COMM.'.

05 C-SEL-TODO PIC X(50) VALUE 'A:** T:**** C:* T:* P:******** F:******** D:*****'.

63

05 C-CONTENID '

PIC X(50) VALUE TRANSACCIONES SELECCIONADAS

'. * ****************************************************************** * VARIABLES * * * ****************************************************************** 01 W-VARIABLES. 05 W-IDIOMA PIC X(1). 05 W-FILLER PIC X(30). 05 W-GTS. 10 FILLER PIC X(4) VALUE '+GTS'. 10 W-GTS-SUFI PIC X(4) VALUE SPACES. 05 W-GTS-DATOS. 10 W-GTS-OPCION PIC X(1) VALUE SPACES. 10 W-GTS-ATRIBUTO PIC X(1) VALUE SPACES. 10 W-GTS-TRANID PIC X(4) VALUE SPACES. 10 FILLER PIC X(1) VALUE SPACES. 10 W-GTS-IND-ACTIVA PIC X(1) VALUE SPACES. 10 FILLER PIC X(1) VALUE SPACES. 10 W-GTS-DESCRIP PIC X(35) VALUE SPACES. 10 FILLER PIC X(1) VALUE SPACES. 10 W-GTS-APLICACION PIC X(2) VALUE SPACES. 10 FILLER PIC X(2) VALUE SPACES. 10 W-GTS-PGMID PIC X(8) VALUE SPACES. 10 FILLER PIC X(1) VALUE SPACES. 10 W-GTS-COPY-IN PIC X(8) VALUE SPACES. 10 FILLER PIC X(1) VALUE SPACES. 10 W-GTS-PLAN PIC X(8) VALUE SPACES. 10 FILLER PIC X(4) VALUE SPACES. 10 W-GTS-ANIO. 15 W-GTS-ANIODD PIC X(2) VALUE SPACES. 15 FILLER PIC X(1) VALUE '/'. 15 W-GTS-ANIOMM PIC X(2) VALUE SPACES. 15 FILLER PIC X(1) VALUE '/'. 15 W-GTS-ANIOAA PIC X(2) VALUE SPACES. 10 FILLER PIC X(2) VALUE SPACES. 10 W-GTS-IND-CONT PIC X(2) VALUE SPACES. 10 FILLER PIC X(4) VALUE SPACES. 10 W-GTS-INITERM PIC X(2) VALUE SPACES. 10 FILLER PIC X(5) VALUE SPACES. 10 W-GTS-TRANCON PIC X(4) VALUE SPACES. 10 FILLER PIC X(3) VALUE SPACES. 10 W-GTS-TIPOPER. 15 W-GTS-TIPOPERO PIC X VALUE SPACES. 15 W-GTS-TIPOPERA PIC X VALUE SPACES. 15 W-GTS-TIPOPERB PIC X VALUE SPACES. 15 W-GTS-TIPOPERM PIC X VALUE SPACES. 15 W-GTS-TIPOPERC PIC X VALUE SPACES. 15 W-GTS-TIPOPERE PIC X VALUE SPACES. 15 W-GTS-TIPOPERP PIC X VALUE SPACES. 10 FILLER PIC X(5) VALUE SPACES. 10 W-GTS-CAMBIO-SESION PIC X(2) VALUE SPACES. 10 FILLER PIC X(8) VALUE SPACES. 10 W-GTS-RECUPERACION PIC X(2) VALUE SPACES. 10 FILLER PIC X(7) VALUE SPACES. 10 W-GTS-INICIO-ARQ PIC X(2) VALUE SPACES. 10 FILLER PIC X(7) VALUE SPACES. 10 W-GTS-PFS-STANd PIC X(2) VALUE SPACES. 10 FILLER PIC X(6) VALUE SPACES. 10 W-GTS-ACT-TECLEO PIC X(2) VALUE SPACES. 10 FILLER PIC X(7) VALUE SPACES. 10 W-GTS-PIN-FASTP PIC X(2) VALUE SPACES. 10 FILLER PIC X(5) VALUE SPACES. 10 W-GTS-IND-APB PIC X(2) VALUE SPACES.

64

10 FILLER 10 W-GTS-LONG-COMMAREA 10 FILLER 05 W-FECULT. 10 FILLER 10 W-FECULTAA 10 FILLER 10 W-FECULTMM 10 FILLER 10 W-FECULTDD 05 W-CODIGO. 10 W-TRANID. 15 W-TRANID-O 20 W-TRANID-BYTE 10 W-TRANID-SEL 05 W-PF-NUM 88 PF-03 88 PF-02-03 88 PF-BORRA

PIC X(6) PIC X(4) PIC X(4)

VALUE SPACES. VALUE SPACES. VALUE SPACES.

PIC PIC PIC PIC PIC PIC

VALUE VALUE VALUE VALUE VALUE VALUE

X(2) X(2) X(1) X(2) X(1) X(2)

OCCURS 4 TIMES. PIC X. PIC X(4) VALUE PIC 9(2). VALUE VALUE VALUE

SPACES. SPACES. '/'. SPACES. '/'. SPACES.

SPACES. 03. 02 03. 99.

* ********** IDENTIFICADOR DE FINAL DE WORKING STORAGE *********** 01 LT-FINAL-WS. 05 LT-FINAL-W PIC X(40) VALUE '*** FINAL WORKING STORAGE (FO2CTLI) ***'. * ****************************************************************** * * * LINKAGE SECTION * * * ****************************************************************** LINKAGE SECTION. 01 DFHCOMMAREA. COPY QGECCAA. COPY FOECCMA. COPY QCRMGTS. COPY QCRMGTS1. * ****************************************************************** * * * PROCEDURE DIVISION * * * ****************************************************************** PROCEDURE DIVISION. * PERFORM 1-INICIO PERFORM 2-PROCESO PERFORM 3-FINAL. ****************************************************************** * * * 1-INICIO * * * * INICIALIZACION DE VARIABLES, DIRECCIONAMIENTO DEL AREA * * DE PANTALLA Y DE LA COMMAREA CMA. * * * ****************************************************************** 1-INICIO. * INITIALIZE QGECABC * EXEC CICS IGNORE CONDITION ERROR END-EXEC IF EIBRESP NOT EQUAL DFHRESP(NORMAL) MOVE C-ERROR-IGNORE TO ABC-REFERENCIA PERFORM 999-ERROR-CICS

65

* *

END-IF INITIALIZE MOVE CAA-TERMINAL

W-VARIABLES TO W-GTS-SUFI

SET ADDRESS OF QCRMGTSI TO CAA-PTR-COPYIN SET ADDRESS OF FOECCMA TO CAA-PTRDATA. ****************************************************************** * * * 2-PROCESO * * * * DISTINGUE LOS PROCESOS SEGUN EL ESTADO SEA INICIO O * * CONTINUACION. * * * ****************************************************************** 2-PROCESO. *

EVALUATE TRUE WHEN CAA-88-ESTADO-INICIO PERFORM 21-INICIO WHEN CAA-88-ESTADO-CONTIN PERFORM 22-CONTINUACION END-EVALUATE.

66

****************************************************************** * * * 21-INICIO * * * * BORRA UNA POSIBLE COLA GTS QUE EXISTA, POR HABERSE * * PRODUCIDO UN FIN ANORMAL. * * TOMA LA CLAVE DE TRANSACCIONES A LISTAR, DEPENDIENDO DE * * DE SI EL CASO TIENE O NO UNA MARCA 'A'. SI NO LA TIENE, * * QUIERE DECIR QUE VIENE DE LISTADO Y , POR TANTO, LA CLAVE * * LA TOMARA DEL AREA CMA. SI LA TIENE, QUIERE DECIR QUE * * VIENE DE MANTENIMIENTO Y EN LA CMA SE ENCUENTRA LA APLICA- * * CION QUE NOS PASA MANTENIMIENTO. COMO QUEREMOS QUE SE LIS- * * TEN TODAS LAS TRANSACCIONES CON CLAVE LA DEL LISTADO, SE * * TOMARA ESTA CLAVE DE CAA-MNU- , QUE HABRA GRABADO ESTE * * PROGRAMA LA PRIMERA VEZ QUE VINO DEL MENU. * * GRABA LA CABECERA DEL TS QUE, NORMALMENTE,ES EL NOMBRE * * DE LAS COLUMNAS A LISTAR. * * TRAS ESTO, GRABARA LA COLA TS DE DATOS. EN EL CASO DE * * QUE EXISTAN LINEAS A LISTAR (SI-HAY-DATOS) DEVUELVE EL * * CONTROL CON ESTADO CONTINUACION, ACCION TERMINAL, TIPO * * DE ENTRADA PAGINACION, PARA QUE ENTRE LA SIGUIENTE VEZ EL * * PROGRAMA DE GESTION DE TS'S, Y CODIGO DE TRANSACCION EL DEL* * PROGRAMA DE LISTADO. EN EL CASO DE QUE NO EXISTAN LINEAS * * A LISTAR, SE MANDARA UN MENSAJE DE ERROR, ACCION TERMINAL, * * ESTADO CONTINUACION, TIPO DE SALIDA ENTRADA (PARA QUE SALGA * * EL PANEL DEL MANTENIMIENTO) Y CODIGO DE TRANSACCION * * SIGUIENTE SAME. * * * *NOTA:EN EL ESTADO INICIO SE VALIDA EL IDIOMA DE LA COMMAREA * * DE MANTENIMIENTO. * * * * SI EL IDIOMA ES CORRECTO CONTINUA EL PROCEDIMIENTO CON * * EL IDIOMA INDICADO. * * * * SI EL IDIOMA ES INCORRECTO SE DEVUELVE EL CONTROL AL * * MENU Y ALLI SE VISUALIZA EL MENSAJE DE ERROR. * * * ****************************************************************** 21-INICIO. * EVALUATE CAA-CASO WHEN 'A' MOVE CMA-MNU-TRANSAC TO W-TRANID MOVE CMA-MNU-IDIOMA TO W-IDIOMA WHEN OTHER MOVE CMA-TRANSAC TO W-TRANID CMA-MNU-TRANSAC MOVE CMA-IDIOMA TO W-IDIOMA CMA-MNU-IDIOMA END-EVALUATE * PERFORM 2101-VALIDAR-IDIOMA PERFORM 211-SELECCIONAR * SET NO-HAY-DATOS TO TRUE PERFORM 212-GRABAR-GTS * IF NO-HAY-DATOS MOVE 'QME0038' TO CAA-COD-ERROR MOVE -1 TO GTS1-SALTOL PERFORM 3-FINAL ELSE PERFORM 213-LLENAR-CAA-PAGINACION MOVE 'FOTL' TO CAA-CODTRAN-SIG END-IF.

67

****************************************************************** * * * 2101-VALIDAR-IDIOMA * * * * LEER TABLA DB2 QGDTIDI Y VALIDAR IDIOMA DE SESION-USUARIO. * * CLAVE DE ACCESO= CODIGO DE IDIOMA * * * ****************************************************************** 2101-VALIDAR-IDIOMA. EXEC SQL SELECT IDI_DESC_CORTA INTO :W-FILLER FROM QGDTIDI WHERE IDI_IDIOMA = :W-IDIOMA END-EXEC. * EVALUATE SQLCODE WHEN ZEROS CONTINUE WHEN +100 MOVE 'QME0371' TO CAA-COD-ERROR PERFORM 3-FINAL WHEN OTHER MOVE 'SELECT QGDTIDI' TO ABC-REFERENCIA MOVE 'QGDTIDI' TO ABC-OBJETO-ERROR PERFORM 998-ERROR-DB2 END-EVALUATE. ****************************************************************** * * * 211-SELECCIONAR * * * * DECLARE DEL CURSOR PARA SELECCIONAR TODAS LAS COLUMNAS * * INDICADAS EN W-TRANID. * * * ****************************************************************** 211-SELECCIONAR. * MOVE W-TRANID TO W-TRANID-SEL * INSPECT W-TRANID-SEL REPLACING ALL C-ASTERISCO BY C-SPACE INSPECT W-TRANID-SEL REPLACING ALL C-SPACE BY C-GUION * EXEC SQL DECLARE CURCCT CURSOR FOR SELECT CCT_TRANID , CCT_DESCRIP , CCT_APLICACION , CCT_PGMID , CCT_PLAN , CCT_COPY_IN , CCT_IND_ACTIVA , CCT_TIPO_ALTA , CCT_TIPO_BAJA , CCT_TIPO_MODIF , CCT_TIPO_CONSULTA , CCT_TIPO_EDICION , CCT_TIPO_PETICION , CCT_TIPO_ENTSAL , CCT_IND_CONTABLE , CCT_FECHA_ULTUSO , CCT_IND_INICIO , CCT_IND_TRNCONV , CCT_CAMBIO_SESION , CCT_IND_4700 ,

68

CCT_LONG_COMMAREA , CCT_INICIO_ARQ , CCT_PFS_STAND , CCT_ACT_TECLEO , CCT_PIN_FASTP , CCT_RECUPERACION FROM FODTCCT WHERE CCT_TRANID LIKE :W-TRANID-SEL ORDER BY CCT_TRANID END-EXEC CONTINUE. ****************************************************************** * * * 212-GRABAR-GTS * * * * PARRAFO EN EL QUE SE ABRE EL CURSOR, SE REALIZA EL BUCLE * * DE FETCH Y, SI LA TRANSACCION CUMPLE LA CONDICION DE LISTAR, * * SE GRABARA EN EL TS DE DATOS. * * * ****************************************************************** 212-GRABAR-GTS. * PERFORM 2120-ABRIR-CURSOR MOVE ZEROS TO A-ITEM MOVE 'N' TO SW-FIN-CURSOR * PERFORM 21210-FETCH * PERFORM UNTIL FIN-CURSOR PERFORM 21212-GRABAR-GTS PERFORM 21210-FETCH END-PERFORM * PERFORM 21213-CLOSE. ****************************************************************** * * * 2120-ABRIR-CURSOR * * * ****************************************************************** 2120-ABRIR-CURSOR. EXEC SQL OPEN CURCCT END-EXEC EVALUATE SQLCODE WHEN (ZERO) CONTINUE WHEN OTHER INITIALIZE QGECABC MOVE 'ABRIR CURSOR' TO ABC-REFERENCIA PERFORM 998-ERROR-DB2 END-EVALUATE. ****************************************************************** * * * 21210-FETCH * * * * FETCH DE LA TABLA. * * * ****************************************************************** 21210-FETCH. EXEC SQL FETCH CURCCT INTO :CCT-TRANID , :CCT-DESCRIP , :CCT-APLICACION , :CCT-PGMID ,

69

*

END-EXEC

:CCT-PLAN :CCT-COPY-IN :CCT-IND-ACTIVA :CCT-TIPO-ALTA :CCT-TIPO-BAJA :CCT-TIPO-MODIF :CCT-TIPO-CONSULTA :CCT-TIPO-EDICION :CCT-TIPO-PETICION :CCT-TIPO-ENTSAL :CCT-IND-CONTABLE :CCT-FECHA-ULTUSO :CCT-IND-INICIO :CCT-IND-TRNCONV :CCT-CAMBIO-SESION :CCT-IND-4700 :CCT-LONG-COMMAREA :CCT-INICIO-ARQ :CCT-PFS-STAND :CCT-ACT-TECLEO :CCT-PIN-FASTP :CCT-RECUPERACION

, , , , , , , , , , , , , , , , , , , , ,

EVALUATE SQLCODE WHEN (ZERO) CONTINUE WHEN (+100) SET FIN-CURSOR TO TRUE WHEN OTHER MOVE 'FETCH CURSOR' TO ABC-REFERENCIA PERFORM 998-ERROR-DB2 END-EVALUATE. ****************************************************************** * * * 21212-GRABAR-GTS * * * * FORMATEO DE LOS DATOS A GRABAR Y GRABACION DEL TS DE DATOS * * * * NOTA.- LA DESCRIPCION DE LA APLICACION, SE TOMARA DE LA TABLA * * DE DESCRIPCION DE TABLAS, TENIENDO EN CUENTA EL IDIOMA * * DEL USUARIO * * * ****************************************************************** 21212-GRABAR-GTS. * INITIALIZE W-GTS-DATOS MOVE CCT-TRANID TO W-GTS-TRANID MOVE CCT-IND-ACTIVA TO W-GTS-IND-ACTIVA IF CCT-88-IND-ACTIVA-NO MOVE 'B' TO W-GTS-ATRIBUTO MOVE CCT-IND-ACTIVA TO W-GTS-IND-ACTIVA ELSE MOVE SPACES TO W-GTS-ATRIBUTO W-GTS-IND-ACTIVA END-IF * PERFORM 2122-ACCESO-DTA * MOVE CCT-APLICACION TO W-GTS-APLICACION MOVE CCT-PGMID TO W-GTS-PGMID MOVE CCT-COPY-IN TO W-GTS-COPY-IN MOVE CCT-PLAN TO W-GTS-PLAN MOVE CCT-FECHA-ULTUSO TO W-FECULT MOVE W-FECULTDD TO W-GTS-ANIODD

70

*

*

* *

*

*

MOVE W-FECULTMM TO MOVE W-FECULTAA TO EVALUATE TRUE WHEN CCT-88-IND-CONTABLE-SI MOVE 'SI' TO WHEN CCT-88-IND-CONTABLE-NO MOVE 'NO' TO END-EVALUATE EVALUATE TRUE WHEN CCT-88-IND-4700-SI MOVE 'SI' TO WHEN CCT-88-IND-4700-NO MOVE 'NO' TO END-EVALUATE EVALUATE TRUE WHEN CCT-88-IND-INICIO-SI MOVE 'SI' TO WHEN CCT-88-IND-INICIO-NO MOVE 'NO' TO END-EVALUATE EVALUATE TRUE WHEN CCT-88-IND-TRNCONV-TRN MOVE 'TRAN' TO WHEN CCT-88-IND-TRNCONV-CONV MOVE 'CONV' TO END-EVALUATE MOVE CCT-TIPO-ENTSAL TO MOVE CCT-TIPO-ALTA TO MOVE CCT-TIPO-BAJA TO MOVE CCT-TIPO-MODIF TO MOVE CCT-TIPO-CONSULTA TO MOVE CCT-TIPO-EDICION TO MOVE CCT-TIPO-PETICION TO

W-GTS-ANIOMM W-GTS-ANIOAA W-GTS-IND-CONT W-GTS-IND-CONT

W-GTS-IND-APB W-GTS-IND-APB

W-GTS-INITERM W-GTS-INITERM

W-GTS-TRANCON W-GTS-TRANCON W-GTS-TIPOPERO W-GTS-TIPOPERA W-GTS-TIPOPERB W-GTS-TIPOPERM W-GTS-TIPOPERC W-GTS-TIPOPERE W-GTS-TIPOPERP

IF CCT-CAMBIO-SESION EQUAL 'S' MOVE 'SI' TO W-GTS-CAMBIO-SESION ELSE MOVE 'NO' TO W-GTS-CAMBIO-SESION END-IF IF CCT-RECUPERACION MOVE 'SI' ELSE MOVE 'NO' END-IF

EQUAL 'S'

TO W-GTS-RECUPERACION TO W-GTS-RECUPERACION

MOVE CCT-LONG-COMMAREA

TO W-GTS-LONG-COMMAREA

IF

CCT-INICIO-ARQ EQUAL 'S' MOVE 'SI' TO W-GTS-INICIO-ARQ ELSE MOVE 'NO' TO W-GTS-INICIO-ARQ END-IF IF

CCT-PFS-STAND MOVE 'SI' ELSE MOVE 'NO' END-IF

EQUAL 'S'

IF

EQUAL 'S'

CCT-PIN-FASTP MOVE 'SI' ELSE MOVE 'NO' END-IF

TO W-GTS-PFS-STAND TO W-GTS-PFS-STAND

TO W-GTS-PIN-FASTP TO W-GTS-PIN-FASTP

71

*

*

*

IF

CCT-ACT-TECLEO EQUAL 'S' MOVE 'SI' TO W-GTS-ACT-TECLEO ELSE MOVE 'NO' TO W-GTS-ACT-TECLEO END-IF IF A-ITEM EQUAL ZEROS PERFORM 212120-BORRAR-GTS PERFORM 212121-GRABAR-GTS-CABECERA END-IF

PERFORM 212122-WRITEQ-TS. ****************************************************************** * * * 212122-WRITEQ-TS * * * ****************************************************************** 212122-WRITEQ-TS. EXEC CICS WRITEQ TS QUEUE (W-GTS) FROM (W-GTS-DATOS) MAIN END-EXEC * IF EIBRESP = DFHRESP(NORMAL) SET SI-HAY-DATOS TO TRUE ADD +1 TO A-ITEM ELSE MOVE C-ERROR-WRITEQ TO ABC-REFERENCIA PERFORM 999-ERROR-CICS END-IF. ****************************************************************** * * * 21213-CLOSE * * * ****************************************************************** 21213-CLOSE. EXEC SQL CLOSE CURCCT END-EXEC EVALUATE SQLCODE WHEN (ZERO) CONTINUE WHEN OTHER MOVE 'CLOSE CURSOR' TO ABC-REFERENCIA PERFORM 998-ERROR-DB2 END-EVALUATE.

72

****************************************************************** * * * 212120-BORRAR-GTS * * * * DELETE DE LA COLA TS DE DATOS * * * ****************************************************************** 212120-BORRAR-GTS. * EXEC CICS DELETEQ TS QUEUE(W-GTS) END-EXEC * EVALUATE EIBRESP WHEN (DFHRESP(NORMAL)) CONTINUE WHEN (DFHRESP(QIDERR)) CONTINUE WHEN OTHER MOVE C-ERROR-DELETEQ TO ABC-REFERENCIA PERFORM 999-ERROR-CICS END-EVALUATE. ****************************************************************** * * * 212121-GRABAR-GTS-CABECERA * * * * WRITE DE LA CABECERA (NOMBRE DE LAS COLUMNAS DE LA * * TABLA A LISTAR) * * * ****************************************************************** 212121-GRABAR-GTS-CABECERA. * EXEC CICS WRITEQ TS QUEUE (W-GTS) FROM (C-CABECERA-GTS) MAIN END-EXEC * IF EIBRESP = DFHRESP(NORMAL) CONTINUE ELSE MOVE C-ERROR-WRITEQ TO ABC-REFERENCIA PERFORM 999-ERROR-CICS END-IF.

73

****************************************************************** * * * 2122-ACCESO-DTA * * * * ACCESO A LA TABLA DE DESCRIPCION DE TABLAS, CON EL IDIOMA * * SOLICITADO POR EL USUARIO O POR DEFECTO EL ASIGNADO AL * * TERMINAL, SE RECUPERA LA DESCRIPCION DE LA TRANSACCION * * * ****************************************************************** 2122-ACCESO-DTA. * EXEC SQL SELECT DTA_DESC_LARGA INTO :DTA-DESC-LARGA FROM FODTDTA WHERE DTA_TABLA = :C-FODTCCT AND DTA_CLAVE = :CCT-TRANID AND DTA_IDIOMA = :W-IDIOMA END-EXEC. * EVALUATE SQLCODE WHEN ZEROS MOVE DTA-DESC-LARGA TO W-GTS-DESCRIP WHEN +100 MOVE SPACES TO W-GTS-DESCRIP MOVE 'QME0372' TO CAA-COD-ERROR WHEN OTHER INITIALIZE QGECABC PERFORM 998-ERROR-DB2 END-EVALUATE. ****************************************************************** * * * 213-LLENAR-CAA-PAGINACION * * * * SE INFORMA EL AREA DE CAA PROPIO PARA LA PAGINACION. * * SE INFORMAN LAS CABECERAS A MOSTRAR, EL CONTENIDO (EL TERCER * * TITULO) Y LOS 10 POSIBLES CARACTERES DE SELECCION VALIDOS. * * EN ESTE CASO SE PERMITIRAN 'S' Y 'X'. * * SE INFORMA 'N' AL INDICE DE SELECCION PERMITIDA, PORQUE * * NO SE VAN A PERMITIR SELCCIONES MULTIPLES. EL MARGEN FIJO * * SERA CINCO (LAS 4 POSICIONES DEL CODIGO DE TRANSACCION Y * * UN BLANCO). INFORMA LAS TECLAS DE FUNCION PROPIAS DEL PRO* * GRAMA DE LISTADO. ESTAS SON F2 MANTENIMIENTO Y EXIGE SELEC- * * CION; Y F3 ALTA Y NO PERMITE SELECCION. * * TODAS ESTAS VALIDACIONES LAS HACE EL PROGRAMA DE GESTION * * DE TS, PERO EL DEL LISTADO DEBE INFORMARSELO AQUI. * * * ****************************************************************** 213-LLENAR-CAA-PAGINACION. * INITIALIZE CAA-PAGINAR MOVE C-CONTENID TO CAA-CONTENID MOVE 'X' TO CAA-SEL-PERMIT(1) MOVE 'S' TO CAA-SEL-PERMIT(2) SET CAA-88-IND-VARSEL-NO TO TRUE MOVE '05' TO CAA-MARGEN-FIJO MOVE '02' TO CAA-FKEY-NUM(1) MOVE 'Mantto' TO CAA-FKEY-LIT(1) MOVE 'S' TO CAA-FKEY-SEL(1) MOVE '03' TO CAA-FKEY-NUM(2) MOVE 'Alta ' TO CAA-FKEY-LIT(2) MOVE 'N' TO CAA-FKEY-SEL(2). ****************************************************************** * * * 22-CONTINUACION *

74

* * * ESTE PROGRAMA ENTRARA EN ESTADO CONTINUACION CUANDO EN EL * * PANEL DE LISTADO SE HAYA PULSADO BORRA O LAS TECLAS QUE ESTE * * PROGRAMA LE DIJO EN EL ESTADO INICIO AL PROGRAMA DE GESTION * * QUE ERAN PROPIAS. LAS VALIDACIONES DE ESTAS TECLAS YA LAS * * HA HECHO EL PROGRAMA DE GESTION DE TS. POR EJEMPLO, SI SE * * HA PULSADO F2 (MANNTO) AL DECIRLE ESTE PROGRAMA QUE EXIGE * * SELECCION Y ES UNICA, AHORA HABRA UNA SELECCIONADA Y SOLO * * UNA. * * SI SE PULSA LA TECLA BORRA SE BORRARA EL TS DE DATOS, Y * * SE DEVUELVE EL CONTROL CON ACCION PROGRAMA, ESTADO INICIO * * Y CODIGO SIGUIENTE TRANSACCION ULTI. * * * ****************************************************************** 22-CONTINUACION. MOVE CAA-TECLA TO W-PF-NUM EVALUATE TRUE WHEN PF-BORRA PERFORM 212120-BORRAR-GTS WHEN PF-02-03 PERFORM 221-ALTA-MANTENIMIENTO PERFORM 212120-BORRAR-GTS END-EVALUATE. ****************************************************************** * 221-ALTA-MANTENIMIENTO * * * * SI SE HA PULSADO LA TECLA DE ALTA, INFORMA CAA-IND-ALTA. * * EN CASO CONTRARIO (QUE TIENE QUE SER MANTTO. PORQUE EN * * OTRO CASO NO HUBIERA RECIBIDO EL CONTROL DEL DE GESTION * * DE TS) BUSCA LA LINEA SELECCIONADA PARA PASARSELA AL * * PROGRAMA DE MANTENIMIENTO. * * DEVUELVE EL CONTROL A¤ADIENDOSE EN CADENA, ESTADO INICIO * * ACCION PROGRAMA, TIPO SALIDA SALIDA, TRANSACCION LA DE * * MANTENIMIENTO Y PANEL Y COPY LAS DE MANTENIMIENTO. * * AQUI PONE LA MARCA 'A' EN EL CASO PARA QUE CUANDO VUELVA * * DE MANTENIMIENTO LO SEPA. * ****************************************************************** 221-ALTA-MANTENIMIENTO. INITIALIZE CMA-IND-ALTA PERFORM 2211-LLENAR-CMA.

75

****************************************************************** * * * 2211-LLENAR-CMA * * * * PARRAFO EN EL QUE SE INFORMA EL AREA CMA Y SE REALIZA EL * * TRATAMIENTO SEGUN SE HAYA PULSADO LAS TECLA F02 O F03. * * * ****************************************************************** 2211-LLENAR-CMA. * IF PF-03 SET CMA-88-IND-ALTA-SI TO TRUE MOVE SPACES TO CMA-TRANSAC ELSE MOVE CAA-NUM-ITEM-SELEC TO A-ITEM PERFORM 22110-LEER-SELECCIONADA MOVE W-GTS-TRANID TO CMA-TRANSAC END-IF * MOVE 'C' TO CMA-TIPO-OPER. ****************************************************************** * * * 22110-LEER-SELECCIONADA * * * * LECTURA DEL TS DE DATOS HASTA ENCONTRAR LA SELECCIONADA * * PARA PASARLE LA CLAVE AL PROGRAMA DE MANTENIMIENTO. * * * ****************************************************************** 22110-LEER-SELECCIONADA. * EXEC CICS READQ TS QUEUE(W-GTS) INTO(W-GTS-DATOS) ITEM(A-ITEM) END-EXEC * EVALUATE EIBRESP WHEN (DFHRESP(NORMAL)) CONTINUE WHEN OTHER MOVE C-ERROR-READQ TO ABC-REFERENCIA PERFORM 999-ERROR-CICS END-EVALUATE. ****************************************************************** * * * 3-FINAL * * * ****************************************************************** 3-FINAL. * IF CAA-88-ESTADO-INICIO IF CAA-88-COD-ERROR-VACIO SET CAA-88-ESTADO-CONTIN TO TRUE SET CAA-88-ACCION-TERMINAL TO TRUE SET CAA-88-TIPO-SALIDA-PAG TO TRUE ELSE SET CAA-88-ESTADO-CONTIN TO TRUE SET CAA-88-ACCION-TERMINAL TO TRUE SET CAA-88-TIPO-SALIDA-ENT TO TRUE SET CAA-88-CODTRAN-SIG-SAME TO TRUE END-IF ELSE SET CAA-88-CADENA-ANADIR TO TRUE MOVE 'A' TO CAA-CASO-CAD SET CAA-88-ESTADO-INICIO TO TRUE

76

* *

SET CAA-88-ACCION-PROGRAMA MOVE 'FOTM' END-IF

TO TRUE TO CAA-CODTRAN-SIG

PERFORM 999-INFORMAR-ANALITICA

EXEC CICS RETURN END-EXEC. ****************************************************************** * * * 998-ERROR-DB2 * * * * PARRAFO QUE SE EJECUTA CUANDO SE HA PRODUCIDO UN ERROR * * DB2 QUE NO CONTROLAMOS. LLAMA MEDIANTE LINK AL PROGRAMA * * QG1CABC. * * * ****************************************************************** 998-ERROR-DB2. * MOVE 'S' TO ABC-ABEND MOVE 'FO2CTLI ' TO ABC-PROGRAMA MOVE 'CCT ' TO ABC-OBJETO-ERROR MOVE SQLCODE TO ABC-SQLCODE MOVE SQLERRM TO ABC-SQLERRM * EXEC CICS LINK PROGRAM('QG1CABC') COMMAREA (QGECABC) END-EXEC. ****************************************************************** * * * 999-ERROR-CICS * * * * PARRAFO QUE SE EJECUTA CUANDO SE HA PRODUCIDO UN ERROR * * CICS QUE NO CONTROLAMOS. LLAMA MEDIANTE LINK AL PROGRAMA * * QG1CABC. * * * ****************************************************************** 999-ERROR-CICS. * MOVE 'S' TO ABC-ABEND MOVE 'FO2CTLI ' TO ABC-PROGRAMA MOVE EIBFN TO ABC-EIBFN MOVE EIBRSRCE TO ABC-EIBRSRCE MOVE EIBRCODE TO ABC-EIBRCODE MOVE EIBRESP TO ABC-EIBRESP1 MOVE EIBRESP2 TO ABC-EIBRESP2 * EXEC CICS LINK PROGRAM('QG1CABC') COMMAREA (QGECABC) END-EXEC. ****************************************************************** * * * 999-INFORMAR-ANALITICA * * * * SE INFORMAN LOS CAMPOS DEL SEGMENTO CAA-ANALITICA DE LA * * COMMAREA QGECCAA, CON LOS DATOS DE LA OPERACION QUE SERVIRAN * * A ANALITICA. * * * ****************************************************************** 999-INFORMAR-ANALITICA. * MOVE CAA-ENTIDAD TO CAA-ENTIDAD-ANA

77

MOVE CAA-CENTRO-CONT TO CAA-CENTRO-ANA SET CAA-88-TIOPER-CONSULTA TO TRUE SET CAA-88-CONTABLE-NO TO TRUE.

78

4.4 Transacción FOTM programa FO2CTMA Mantenimiento de la Aplicación Formación. 4.4.1 Parametrización de la Transacción. Los parámetros definidos para la transaccion FOTM son los sgtes : Aplicación 0001 OM12 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTENIMIENTO DE TRANSACCIONES

TP01 21/05/96 QMTM 09:29:57

Transaccion ..... = FOTM : MENU DE MANTENIMIENTO FORMACION NEW COPY Idioma .......... = E CASTELLANO Aplicacion ...... = FO FORMACION _______ESTADO_________ Programa ........ = FO2CTMA (A/D) A Activada Plan DB2 ........ = BNQMD _________ALTAMIRA___________ Formato/Mapa ent. = FORMTMA / FORMTMA Tipo Altamira.... = N(N/E/M) Codigo de ayuda.. = Entrada.......... = Longitud Commarea = 0000 Camb.Ses/Recuper. = N / N (S/N):(S/N) ______INFORM.ADICIONAL_____ Tipo (Trans/Conv) = C (T/C) Transac. local .. = FO Contable / Cajero = N : (S/N) : (A/B/ ) Documentos ...... = Tipos operacion.. = ABMC (A-B-M-C-E-P-O) Diario Elec. .... = N (S/N) Inicio desde TERM = N (S/N) APB 4700 ........ = N (S/N) Inicio por Arquit.= N (S/N) _____________STAMPS__________________ PFs standard = S (S/N) Cambio estado = 13/05/96 03:07 CICSUSE Actualizar tecleo = S (S/N) Alta ........ = 13/05/96 CICSUSER Pintar fast-path = N (S/N) Ult.mod. .... = 21/05/96 03:49 CICSUSER Pfs por Arquitec.= S (S/N) Primer Uso .. = 13/05/96 Tiene ayuda activa= N (S/N) Ultimo Uso .. = 21/05/96 F2 Modif. F3 Alta F4 Limpia F5 Frmto. F6 Baja F8 Pfs.10 Altam. CLBorra

79

Formatos 0001 OM1 0100 CICSUSER Formato ....... =

ARQUITEC. PLATAFORMA MANTENIMIENTO DE FORMATOS FORMTMA

Tipo (E/S/A) ...... = Delimit. automatico =

: MATENIMIENTO FORMACION

A Entrada/Salida S (S/N)

Num. campos .............. Longitud copy ............ Relacion campos / Ver.PS/2 Rutinas Verific./ V.Listos Idioma ............. = E

TP01 21/05/96 QMFM 09:30:30

= = = =

NEW COPY

________ESTADO________ (P/D) = D Definitiva

45 392 No / No No / No CASTELLANO Formato modelo: FORMTMA

__________ SALIDA ________ Preformato de Pantalla ... = Preformato de Documento .. = Mapa para LOCAL .......... =

/ / /

/ /

______ALTA____ _____ULTIMA MODIF______ QG4CCHK 13/05/96 CICSUSER 13/05/96 22:43

(STD / 4700 / 5935) (STD / Doc. / NLin) (PS/2 / 4700) Conexion Preform. = __P.USO_ 13/05/96

___ULT.USO___ 21/05/96 FOTM

F2 Modificar F3 Alta F4 Limpiar F5 Campos F6 Baja F7 Preform

80

BORRA

Campos 0001 OM12 0100 CICSUSER FORMATO:

ARQUITEC. PLATAFORMA LISTADO DE CAMPOS FORMTMA

TP01 21/05/96 QMCL 09:31:03

P

SALTO

MATENIMIENTO FORMACION

L

1:

45

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 f2

CAMPO____LITERAL__________DELIM_ATT__LNG__TIP_RUTINA__VRUT_LIT4700_AYU TRANID TRANID 01 A 4 O N N DESCRIP DESCRIP 02 A 35 O N N NEWCOPY NEWCOPY 03 A 1 O N N IDIOMA IDIOMA 04 A 1 O N N DESIDIO DESIDIO 05 A 20 O N N APLICAC APLICAC 06 A 2 O N N DESCAPL DESCAPL 07 A 20 O N N PGMID PGMID 08 A 8 O N N ACTIVA ACTIVA 09 A 1 O N N DESCACT DESCACT 0A A 11 O N N PLAN PLAN 0B A 8 O N N COPYIN COPYIN 0C A 8 O N N PANELIN PANELIN 0D A 8 O N N TIPALTM TIPALTM 0E A 1 O N N CODHELP CODHELP 0F A 4 O N N ENTRADA ENTRADA 10 A 8 O N N Mantto F3 Alta F4 AyAct F6 Relac 10 Mover F7 Re.Pag F8 Av.Pag Cl

Teclas de Función 0001 OM12 ARQUITEC. PLATAFORMA 0100 CICSUSER LISTADO DE TECLAS DE FUNCION QCA0001 FIN DE DATOS P SALTO LISTADO DE PFS DE LA TRANSACCION

TP01 21/05/96 QMLF 09:32:27

L C _TECLA____LITERAL________ACTIVA___VIS.__PF.FIC__PROGRAMA_ INT CONTIN S S F2 MODIF. S S F3 ALTA S S F6 BAJA S S F7 CONFIR S N

F2 Mantto F3 Alta

OTM

1: 1:

F4 Izqda. F5 Drcha. F7 Re.Pag F8 Av.Pag Cl

81

5 90

4.4.2 Análisis del Mapa BMS El mapa asociado a la transaccion FOTM Mantenimiento de Transacciones Formación es el FOMTMAE el cual se detalla a continuación : ______________________________________________________________________ TITLE 'MAPSET DE MANTTO. DE TRANSACCIONES' PRINT NOGEN * **************************************************************** * * FORMTMA: MAPASET DE MANTTO. DE TRANSACCIONES * * * FOMACION USUARIOS ARQUITECTURA. * * **************************************************************** * * * * * DATE LAST UPDATED: 17MAY90 MAP GENERATION DATE: 18MAY90 * * * TIME LAST UPDATED: 22:27:41 MAP GENERATION TIME: 12:25:24 * * * * * **************************************************************** FORMTMA DFHMSD TYPE=MAP,LANG=COBOL,TIOAPFX=YES,MODE=INOUT, X STORAGE=AUTO,CTRL=(FREEKB,FRSET),TERM=ALL FORMTMA DFHMDI SIZE=(19,80),EXTATT=NO,LINE=4 * DFHMDF POS=(01,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Transaccion ..... =' * TRANID DFHMDF POS=(01,23),LENGTH=4,ATTRB=(BRT,UNPROT,IC), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(01,28),LENGTH=1,ATTRB=(NORM,PROT,ASKIP), X INITIAL=':' * DESCRIP DFHMDF POS=(01,30),LENGTH=35,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(01,66),LENGTH=1,ATTRB=ASKIP * NEWCOPY DFHMDF POS=(01,69),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(01,71),LENGTH=8,ATTRB=(NORM,PROT,ASKIP), X INITIAL='NEW COPY' * DFHMDF POS=(02,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Idioma........... =' * IDIOMA DFHMDF POS=(02,23),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(02,25),LENGTH=1,ATTRB=ASKIP * DESIDIO DFHMDF POS=(02,27),LENGTH=20,ATTRB=(NORM,PROT,ASKIP), X JUSTIFY=(LEFT,BLANK) * DFHMDF POS=(03,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Aplicacion ...... =' * APLICAC * DESCAPL

DFHMDF POS=(03,23),LENGTH=2,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK)

X

DFHMDF POS=(03,26),LENGTH=20,ATTRB=(NORM,PROT,ASKIP), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(03,57),LENGTH=23,ATTRB=(BRT,PROT), INITIAL='________ESTADO_________'

X

82

X

* PGMID

* ACTIVA * DESCACT

DFHMDF POS=(04,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Programa ........ ='

X

DFHMDF POS=(04,23),LENGTH=8,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(04,32),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(04,57),LENGTH=5,ATTRB=(NORM,PROT), INITIAL='(A/D)'

X

DFHMDF POS=(04,64),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(04,66),LENGTH=1,ATTRB=ASKIP

X

DFHMDF POS=(04,68),LENGTH=11,ATTRB=(NORM,PROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(05,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Plan DB2 ........ ='

X

* PLAN

DFHMDF POS=(05,23),LENGTH=8,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(05,32),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(05,50),LENGTH=29,ATTRB=(BRT,PROT), INITIAL='__________ALTAMIRA___________' DFHMDF POS=(06,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Formato/Mapa ent. =' * COPYIN DFHMDF POS=(06,23),LENGTH=8,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(06,32),LENGTH=1,ATTRB=(NORM,PROT,ASKIP), INITIAL='/' * PANELIN DFHMDF POS=(06,34),LENGTH=8,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(06,43),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(06,50),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Tipo Altamira.... =' * TIPALTM DFHMDF POS=(06,70),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(06,72),LENGTH=7,ATTRB=(NORM,PROT,ASKIP), INITIAL='(N/E/M)' DFHMDF POS=(07,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Codigo de ayuda.. =' * CODHELP DFHMDF POS=(07,23),LENGTH=4,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(07,28),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(07,50),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Entrada.......... =' * ENTRADA DFHMDF POS=(07,70),LENGTH=8,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(07,79),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(08,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Longitud Commarea =' * LONCMM DFHMDF POS=(08,23),LENGTH=4,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(08,28),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(09,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Camb.Ses/Recuper. ='

83

X

X X X X X X X X X X X X X X X X X

* CAMBSES

* RECUPER

* TRNCONV

* TRANIDL

* CONTABL

* CAJERO

* DOCUM1 * DOCUM2

* TIPOPER

DFHMDF POS=(09,23),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(09,25),LENGTH=1,ATTRB=(NORM,PROT,ASKIP), INITIAL='/'

X

DFHMDF POS=(09,27),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(09,29),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(09,31),LENGTH=13,ATTRB=(NORM,PROT), INITIAL='(S/N) : (S/N)' DFHMDF POS=(09,51),LENGTH=27,ATTRB=(BRT,PROT), INITIAL='______INFORM.ADICIONAL_____' DFHMDF POS=(10,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Tipo (Trans/Conv) ='

X

DFHMDF POS=(10,23),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(10,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(10,31),LENGTH=5,ATTRB=(NORM,PROT), INITIAL='(T/C)' DFHMDF POS=(10,51),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Transac. local .. ='

X

DFHMDF POS=(10,71),LENGTH=4,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(10,76),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(11,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Contable / Cajero ='

X

DFHMDF POS=(11,23),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(11,25),LENGTH=1,ATTRB=(NORM,PROT,ASKIP), INITIAL=':'

X

DFHMDF POS=(11,27),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(11,29),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(11,31),LENGTH=15,ATTRB=(NORM,PROT), INITIAL='(S/N) : (A/B/ )'

X

DFHMDF POS=(11,51),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Documentos ...... ='

X

DFHMDF POS=(11,71),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK)

X

DFHMDF POS=(11,73),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(11,75),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(12,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Tipos operacion.. ='

X

DFHMDF POS=(12,23),LENGTH=7,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(12,31),LENGTH=15,ATTRB=(NORM,PROT,ASKIP), INITIAL='(A-B-M-C-E-P-O)' DFHMDF POS=(12,51),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Diario Elec. .... ='

X

*

84

X

X X X

X X

X

X

X

X

X X

DIARIOE

* INICIO

* APB4700

* INIARQ

PFSTAN

* STAMACT * TIMEACT * USERACT

* ACTTCL

* STAMALT

DFHMDF POS=(12,71),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(12,73),LENGTH=5,ATTRB=(NORM,PROT,ASKIP), INITIAL='(S/N)' DFHMDF POS=(13,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Inicio desde TERM ='

X

DFHMDF POS=(13,23),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(13,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(13,31),LENGTH=5,ATTRB=(NORM,PROT), INITIAL='(S/N)' DFHMDF POS=(13,51),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='APB 4700 ........ ='

X

DFHMDF POS=(13,71),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(13,73),LENGTH=5,ATTRB=(NORM,PROT,ASKIP), INITIAL='(S/N)' DFHMDF POS=(14,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Inicio por Arquit.='

X

DFHMDF POS=(14,23),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(14,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(14,31),LENGTH=5,ATTRB=(NORM,PROT), INITIAL='(S/N)' DFHMDF POS=(14,39),LENGTH=41,ATTRB=(BRT,PROT), INITIAL='_________________STAMPS__________________' DFHMDF POS=(15,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='PFs standard ='

X

DFHMDF POS=(15,23),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(15,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(15,31),LENGTH=5,ATTRB=(NORM,PROT), INITIAL='(S/N)' DFHMDF POS=(15,39),LENGTH=15,ATTRB=(NORM,PROT), INITIAL='Cambio estado ='

X

DFHMDF POS=(15,55),LENGTH=8,ATTRB=(NORM,PROT), JUSTIFY=(LEFT,BLANK)

X

DFHMDF POS=(15,65),LENGTH=5,ATTRB=(NORM,PROT), JUSTIFY=(LEFT,BLANK)

X

DFHMDF POS=(15,71),LENGTH=8,ATTRB=(NORM,PROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(16,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Actualizar tecleo ='

X

DFHMDF POS=(16,23),LENGTH=1,ATTRB=(NORM,PROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(16,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(16,31),LENGTH=5,ATTRB=(NORM,PROT), INITIAL='(S/N)' DFHMDF POS=(16,39),LENGTH=15,ATTRB=(NORM,PROT), INITIAL='Alta ........ ='

X

DFHMDF POS=(16,55),LENGTH=8,ATTRB=(NORM,PROT), JUSTIFY=(LEFT,BLANK)

X

85

X X

X X

X X

X X X

X X

X

X X

* USERALT

PINFSP

* STAMMOD * TIMEMOD

DFHMDF POS=(16,71),LENGTH=8,ATTRB=(NORM,PROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(17,03),LENGTH=19,ATTRB=(NORM,PROT), INITIAL='Pintar fast-path =' DFHMDF POS=(17,23),LENGTH=1,ATTRB=(NORM,UNPROT), JUSTIFY=(LEFT,BLANK) DFHMDF POS=(17,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(17,31),LENGTH=5,ATTRB=(NORM,PROT), INITIAL='(S/N)' DFHMDF POS=(17,39),LENGTH=15,ATTRB=(NORM,PROT), INITIAL='Ult.mod. .... ='

X

DFHMDF POS=(17,55),LENGTH=8,ATTRB=(NORM,PROT), JUSTIFY=(LEFT,BLANK)

X

DFHMDF POS=(17,65),LENGTH=5,ATTRB=(NORM,PROT), JUSTIFY=(LEFT,BLANK)

X

X X X X

* USERMOD

DFHMDF POS=(17,71),LENGTH=8,ATTRB=(NORM,PROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(18,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Pfs por Arquitec.= ' PFSARQ DFHMDF POS=(18,23),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(18,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(18,31),LENGTH=5,ATTRB=(NORM,PROT), X INITIAL='(S/N)' DFHMDF POS=(18,39),LENGTH=15,ATTRB=(NORM,PROT), X INITIAL='Primer Uso .. =' * STAMPRI DFHMDF POS=(18,55),LENGTH=8,ATTRB=(NORM,PROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(19,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Tiene ayuda activa=' AYUDAA DFHMDF POS=(19,23),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(19,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(19,31),LENGTH=5,ATTRB=(NORM,PROT), X INITIAL='(S/N)' DFHMDF POS=(19,39),LENGTH=15,ATTRB=(NORM,PROT), X INITIAL='Ultimo Uso .. =' * STAMULT DFHMDF POS=(19,55),LENGTH=8,ATTRB=(NORM,PROT), X JUSTIFY=(LEFT,BLANK) DFHMSD TYPE=FINAL END ______________________________________________________________________ Despues de haber efectuado el proceso de dar de alta al formato FORMTMA en Arquitectura segun lo indicado en la opción 3.2.3, se tienen el formato y campos. Durante la compilación de este mapa se habrá generado la sgte estructura, la cual debe ser incluida dentro del programa de aplicación con la instrucción COPY, El nombre de archivo es FORMTMA. 01

FORMTMAI. 02 02 02

FILLER PIC X(12). TMA-TRANIDL COMP PIC S9(4). TMA-TRANIDF PICTURE X.

86

02

FILLER REDEFINES TMA-TRANIDF. 03 TMA-TRANIDA PICTURE X. 02 TMA-TRANIDI PIC X(4). 02 TMA-DESCRIPL COMP PIC S9(4). 02 TMA-DESCRIPF PICTURE X. 02 FILLER REDEFINES TMA-DESCRIPF. 03 TMA-DESCRIPA PICTURE X. 02 TMA-DESCRIPI PIC X(35). 02 TMA-NEWCOPYL COMP PIC S9(4). 02 TMA-NEWCOPYF PICTURE X. 02

FILLER REDEFINES TMA-NEWCOPYF. 03 TMA-NEWCOPYA PICTURE X. 02 TMA-NEWCOPYI PIC X(1). 02 TMA-IDIOMAL COMP PIC S9(4). 02 TMA-IDIOMAF PICTURE X. 02 FILLER REDEFINES TMA-IDIOMAF. 03 TMA-IDIOMAA PICTURE X. ..... ..... ..... ..... ..... 02 FILLER PICTURE X(3). 02 TMA-STAMMODO PIC X(8). 02 FILLER PICTURE X(3). 02 TMA-TIMEMODO PIC X(5). 02 FILLER PICTURE X(3). 02 TMA-USERMODO PIC X(8). 02 FILLER PICTURE X(3). 02 TMA-PFSARQO PIC X(1). 02 FILLER PICTURE X(3). 02 TMA-STAMPRIO PIC X(8). 02 FILLER PICTURE X(3). 02 TMA-AYUDAAO PIC X(1). 02 FILLER PICTURE X(3). 02 TMA-STAMULTO PIC X(8).

87

********** IDENTIFICADOR DE INICIO DE WORKING STORAGE ********** * 01 LT-INICIO-WS. 05 LT-INICIO-W PIC X(40) VALUE '*** INICIO WORKING STORAGE (FO2CTMA) ***'. * ************* COPY DE LA TABLA DE TRANSACCIONES ***************** * EXEC SQL INCLUDE FOEDCCT END-EXEC. * ************* COPY COBOL DE LA TABLA DE TRANSACCIONES *********** * * EXEC SQL INCLUDE FOECCCT END-EXEC. * ************* COPY DE LA TABLA DE APLICACIONES ****************** * EXEC SQL INCLUDE QGEDAPL END-EXEC. * ************* COPY COBOL DE LA TABLA DE APLICACIONES ************ * * EXEC SQL INCLUDE QGECAPL END-EXEC. * ************* COPY COBOL DE LA TABLA DE IDIOMAS *************** EXEC SQL INCLUDE QGEDIDI END-EXEC. EXEC SQL INCLUDE QGECIDI END-EXEC. EXEC SQL INCLUDE FOEDDTA END-EXEC. EXEC SQL INCLUDE FOECDTA END-EXEC. ***************** COPY SQLCA ************************************* EXEC SQL INCLUDE SQLCA END-EXEC. ****************** COPY PARA EL PROGRAMA DE ABEND **************** 01 QGECABC-01. COPY QGECABC. ****************** COPY PARA EL PROGRAMA DE SEGURIDAD************* 01 QGECSEG-01. COPY QGECSEG. *

89

****************************************************************** * * * SWITCHES * * * ****************************************************************** * 01 SWITCHES. 05 SW-TECLA PIC X(2) VALUE ' '. 88 PFENTER VALUE '00'. 88 PF2 VALUE '02'. 88 PF3 VALUE '03'. 88 PF4 VALUE '04'. 88 PF6 VALUE '06'. 88 PF7 VALUE '07'. * 05 SW-FIN-CURSOR PIC X(1) VALUE 'N'. 88 FIN-CURSOR VALUE 'S'. 88 NO-FIN-CURSOR VALUE 'N'. ****************************************************************** * CONSTANTES * ****************************************************************** * 01 LT-LITERALES. 05 LT-RECURSO PIC X(6) VALUE 'QMSTDA'. 05 LT-TABLA-CCT PIC X(7) VALUE 'FODTCCT'. 01 C-CONSTANTES. 05 C-LONG-COMMAREA-MAX PIC 9(4) VALUE 3000. 05 C-VAR1-ERROR PIC X(09) VALUE '@QM000013'. 05 C-VAR2-ERROR PIC X(09) VALUE '@QM000014'. ****************************************************************** * VARIABLES * ****************************************************************** 01 W-VARIABLES. 05 W-IDIOMA PIC X. 05 W-ENTIDAD-CENTRO. 10 W-ENTIDAD PIC X(4). 10 W-CENTRO PIC X(4). 05 W-TRANID. 10 W1-TRANID PIC X. 10 W2-TRANID PIC X. 10 W3-TRANID PIC X. 10 W4-TRANID PIC X. 05 W-TIMESTAMP. 10 W-DATE-TIMESTAMP PIC X(10). 10 FILLER PIC X VALUE '.'. 10 W-TIME-TIMESTAMP PIC X(8). 05 W-PGMID. 10 W12-PGMID. 15 W1-PGMID PIC X. 15 W2-PGMID PIC X. 10 W3-PGMID PIC X. 10 W4-PGMID PIC X. 10 W5-PGMID PIC X. 10 W6-PGMID PIC X. 10 W7-PGMID PIC X. 05 W-HORA. 10 FILLER PIC X(2). 10 W3-HORA PIC X. 10 FILLER PIC X(2). 05 W-FECHA-AAAAMMDD. 10 FILLER PIC X(2). 10 W-AA-AAAAMMDD PIC X(2). 10 FILLER PIC X.

90

10 10 10 10 10

W-MM-AAAAMMDD PIC X(2). FILLER PIC X. W-DD-AAAAMMDD PIC X(2). FILLER PIC X. W-TIME. 15 FILLER PIC X(2). 15 W3-TIME PIC X. 15 FILLER PIC X(2). 05 W-FECHA-DDMMAA. 10 W-DD-DDMMAA PIC X(2). 10 FILLER PIC X VALUE '/'. 10 W-MM-DDMMAA PIC X(2). 10 FILLER PIC X VALUE '/'. 10 W-AA-DDMMAA PIC X(2). ********** IDENTIFICADOR DE FINAL DE WORKING STORAGE *********** * 01 LT-FINAL-WS. 05 LT-FINAL-W PIC X(40) VALUE '*** FINAL WORKING STORAGE (FO2CTMA) ***'. * ****************************************************************** * * * LINKAGE SECTION * * * * NOMBRE DESCRIPCION * * -------------------* * * * QGECCAA COMMAREA DE APLICACIONES * * * * FOECCMA DATOS PROPIOS DEL MANTENIMIENTO ARQUITECTURA * * * * FOECTMA COPY DE PANTALLA BMS (FORMTMA) * * * * * ****************************************************************** LINKAGE SECTION. * 01 DFHCOMMAREA. COPY QGECCAA. COPY FOECCMA. COPY FOECTMA. * ****************************************************************** * * * PROCEDURE DIVISION * * * * * ****************************************************************** PROCEDURE DIVISION. * PERFORM 100000-INICIO-PROGRAMA PERFORM 200000-PROCESO-PROGRAMA PERFORM 300000-FIN-PROGRAMA.

91

****************************************************************** * * * 100000-INICIO-PROGRAMA * * * * LOS PASOS A DAR EN ESTE PARRAFO SON LOS SIGUIENTES: * * * * 1.- DIRECCIONAR LOS DATOS DE LA PANTALLA MEDIANTE EL * * PUNTERO QUE NOS GANA LA ARQUITECTURA (2000 BYTES) ASI * * COMO DIRECCIONAR LA COMMAREA DE MANTENIMIENTO * * * * 2.- MOVER SIEMPRE OPERACION NO CONTABLE Y OPERACION REALIZADA * * CONSULTA. LA OPERACION REALIZADA SE PODRA MACHACAR A * * POSTERIORI SI SE DA UN ALTA, UNA BAJA, ETC. * * * ****************************************************************** 100000-INICIO-PROGRAMA. * INITIALIZE QGECABC EXEC CICS IGNORE CONDITION ERROR END-EXEC IF EIBRESP NOT EQUAL DFHRESP(NORMAL) MOVE 'ERROR EN CICS FO2CTMA' TO ABC-REFERENCIA MOVE 'FO2CTMA' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-CICS END-IF * SET ADDRESS OF FORMTMAI TO CAA-PTR-COPYIN SET ADDRESS OF FOECCMA TO CAA-PTRDATA * INITIALIZE FOECCCT PERFORM 110000-CAMBIAR-LOW-POR-BLANCOS * SET CAA-88-CONTABLE-NO TO TRUE SET CAA-88-TIOPER-CONSULTA TO TRUE MOVE CAA-TECLA TO SW-TECLA. ****************************************************************** * * * 110000-CAMBIAR-LOW-POR-BLANCOS * * * * CAMBIAR LOW POR BLANCOS EN LOS CAMPOS DE ENTRADA DEL MAPA * * * ****************************************************************** 110000-CAMBIAR-LOW-POR-BLANCOS. * INSPECT TMA-TRANIDI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-NEWCOPYI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-IDIOMAI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-APLICACI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-PGMIDI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-PLANI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-COPYINI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-PANELINI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-CODHELPI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-LONCMMI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-CAMBSESI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-RECUPERI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-TRNCONVI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-CONTABLI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-CAJEROI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-TIPOPERI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-INICIOI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-INIARQI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-PFSTANI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-ACTTCLI REPLACING ALL LOW-VALUES BY SPACES

92

INSPECT TMA-PINFSPI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-PFSARQI REPLACING ALL LOW-VALUES BY SPACES INSPECT TMA-AYUDAAI REPLACING ALL LOW-VALUES BY SPACES. ****************************************************************** * 200000-PROCESO-PROGRAMA * * * * LOS PASOS A DAR EN ESTE PARRAFO SON LOS SIGUIENTES: * * * * DECIDIR ENTRE LOS TRES ESTADOS POSIBLES * * * * - CONTINUACION * * - CONFIRMACION * * - EN CUALQUIER OTRO CASO INICIO * * * ****************************************************************** 200000-PROCESO-PROGRAMA. EVALUATE TRUE WHEN CAA-88-ESTADO-CONTIN PERFORM 220000-ESTADO-CONTINUACION WHEN CAA-88-ESTADO-CONFIR PERFORM 230000-ESTADO-CONFIRMACION WHEN OTHER PERFORM 210000-ESTADO-INICIO END-EVALUATE. ****************************************************************** * * * 210000-ESTADO-INICIO * * * * VALIDAR QUE LA TRANSACCION DADA EN EL MENU EXISTE O NO * * SEGUN SEA CONSULTA O ALTA EL TIPO DE OPERACION SELECCIONADA. * * PARA ELLO ACCEDEREMOS A TRANSACCIONES CON LA CLAVE, * * EN CASO DE SER CORRECTA PARA EL TIPO DE OPERACION * * SELECCIONADA SE PROCEDERA A COMPLETAR LA PANTALLA, CON DATOS * * SI ES CONSULTA O LIMPIA SI ES UN ALTA. * * EN CASO DE SER CONTRARIO EL PLANTEAMIENTO ANTERIOR DAREMOS * * EL ERROR CORRESPONDIENTE SOBRE LA PANTALLA QUE NOS LLAMO * * (SAME). * * * * NOTA : COMPRUEBA SI EN LA COMMAREA DE MANTENIMIENTO VIENE * * INFORMADO EL IDIOMA, SI NO TOMA EL QUE POR DEFECTO * * TENGA EL TERMINAL * * * ****************************************************************** 210000-ESTADO-INICIO. * IF CMA-IDIOMA NOT EQUAL SPACES MOVE CMA-IDIOMA TO W-IDIOMA ELSE MOVE CAA-IDIOMA-TERM TO W-IDIOMA END-IF * MOVE CMA-TRANSAC TO CCT-TRANID PERFORM 211000-ACCEDE-FODTCCT EVALUATE SQLCODE WHEN ZEROS IF CMA-88-IND-ALTA-SI MOVE 'QME0004' TO CAA-COD-ERROR MOVE '@QM000011' TO CAA-VAR1-ERROR PERFORM 300000-FIN-PROGRAMA ELSE PERFORM 212000-INICIALIZA-PANTALLA MOVE CCT-TRANID TO TMA-TRANIDO PERFORM 213000-COMPLETAR-PANTALLA PERFORM 214000-OBTENER-DESCRIP-APL END-IF

93

WHEN +100 IF CMA-88-IND-ALTA-SI PERFORM 212000-INICIALIZA-PANTALLA MOVE CCT-TRANID TO TMA-TRANIDO ELSE MOVE 'QME0005' TO CAA-COD-ERROR MOVE '@QM000011' TO CAA-VAR1-ERROR PERFORM 300000-FIN-PROGRAMA END-IF WHEN OTHER MOVE '1ER SELECT FODTCCT' TO ABC-REFERENCIA MOVE 'FODTCCT' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE. ****************************************************************** * * * 211000-ACCEDE-FODTCCT * * * * LEER TABLA DB2 FODTCCT * * * ****************************************************************** 211000-ACCEDE-FODTCCT. * EXEC SQL SELECT CCT_DESCRIP, CCT_APLICACION, CCT_PGMID, CCT_PLAN, CCT_COPY_IN, CCT_PANEL_IN, CCT_COD_HELP, CCT_TRANID_LOCAL, CCT_DOCUM_1, CCT_DOCUM_2, CCT_IND_DIARIO, CCT_IND_4700, CCT_ST_ALTAMIRA, CCT_IND_ACTIVA, CCT_IND_INICIO, CCT_IND_TRNCONV, CCT_IND_CONTABLE, CCT_IND_CAJERO, CCT_TIPO_ALTA, CCT_TIPO_BAJA, CCT_TIPO_MODIF, CCT_TIPO_CONSULTA, CCT_TIPO_EDICION, CCT_TIPO_PETICION, CCT_TIPO_ENTSAL, CCT_FECHA_ALT, CCT_USERID_ALT, CCT_FECHA_MOD, CCT_HORA_MOD, CCT_USERID_MOD, CCT_TIMEST_ACTV, CCT_USERID_ACTV, CCT_FECHA_PRIUSO, CCT_FECHA_ULTUSO, CCT_CAMBIO_SESION, CCT_INICIO_ARQ , CCT_ACT_TECLEO , CCT_PIN_FASTP , CCT_PFS_STAND , CCT_PFS_ARQ , CCT_AYUDA_ACT , CCT_LONG_COMMAREA, CCT_RECUPERACION , CCT_ENTRADA , CCT_ST_JOUR , CCT_ST_LIBR , CCT_ST_BANDA , CCT_ST_IMPR , CCT_ST_TERMINAL , CCT_NIVEL_USO , CCT_NIVEL_ALTA , CCT_NIVEL_BAJA , CCT_NIVEL_MODIFIC INTO CCT-DESCRIP, CCT-APLICACION, CCT-PGMID, CCT-PLAN, CCT-COPY-IN, CCT-PANEL-IN, CCT-COD-HELP, CCT-TRANID-LOCAL, CCT-DOCUM-1, CCT-DOCUM-2, CCT-IND-DIARIO, CCT-IND-4700, CCT-ST-ALTAMIRA, CCT-IND-ACTIVA, CCT-IND-INICIO, CCT-IND-TRNCONV, CCT-IND-CONTABLE, CCT-IND-CAJERO, CCT-TIPO-ALTA, CCT-TIPO-BAJA, CCT-TIPO-MODIF, CCT-TIPO-CONSULTA, CCT-TIPO-EDICION, CCT-TIPO-PETICION, CCT-TIPO-ENTSAL, CCT-FECHA-ALT, CCT-USERID-ALT, CCT-FECHA-MOD, CCT-HORA-MOD, CCT-USERID-MOD, CCT-TIMEST-ACTV, CCT-USERID-ACTV, CCT-FECHA-PRIUSO, CCT-FECHA-ULTUSO, CCT-CAMBIO-SESION,

94

CCT-INICIO-ARQ , CCT-ACT-TECLEO , CCT-PIN-FASTP , CCT-PFS-STAND , CCT-PFS-ARQ , CCT-AYUDA-ACT , CCT-LONG-COMMAREA, CCT-RECUPERACION , CCT-ENTRADA , CCT-ST-JOUR , CCT-ST-LIBR , CCT-ST-BANDA , CCT-ST-IMPR , CCT-ST-TERMINAL , CCT-NIVEL-USO , CCT-NIVEL-ALTA , CCT-NIVEL-BAJA , CCT-NIVEL-MODIFIC FROM FODTCCT WHERE CCT_TRANID = :CCT-TRANID END-EXEC. ****************************************************************** * * * 211100-ACCEDE-FODTDTA * * * * LEER TABLA DB2 FODTDTA * * * ****************************************************************** 211100-ACCEDE-FODTDTA. * EXEC SQL SELECT DTA_DESC_CORTA , DTA_DESC_LARGA INTO :DTA-DESC-CORTA , :DTA-DESC-LARGA FROM FODTDTA WHERE DTA_TABLA = :LT-TABLA-CCT AND DTA_CLAVE = :CCT-TRANID AND DTA_IDIOMA = :W-IDIOMA END-EXEC * EVALUATE SQLCODE WHEN ZEROS CONTINUE WHEN +100 MOVE 'QME0372' TO CAA-COD-ERROR PERFORM 300000-FIN-PROGRAMA WHEN OTHER INITIALIZE QGECABC MOVE '1ER SELECT FODTDTA' TO ABC-REFERENCIA MOVE 'FODTDTA' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE. ****************************************************************** * * * 211200-ACCEDE-QGDTIDI * * * * LEER TABLA DB2 QGDTIDI. SACAR LA DESCRIPCION DEL IDIOMA * * * ****************************************************************** 211200-ACCEDE-QGDTIDI. * EXEC SQL SELECT IDI_DESC_CORTA INTO :IDI-DESC-CORTA FROM QGDTIDI WHERE IDI_IDIOMA = :W-IDIOMA END-EXEC

95

*

EVALUATE SQLCODE WHEN ZEROS MOVE IDI-DESC-CORTA TO TMA-DESIDIOO WHEN +100 MOVE 'QME0371' TO CAA-COD-ERROR MOVE -1 TO TMA-IDIOMAL PERFORM 300000-FIN-PROGRAMA WHEN OTHER INITIALIZE QGECABC MOVE '1ER SELECT QGDTIDI' TO ABC-REFERENCIA MOVE 'QGDTIDI' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE. ****************************************************************** * * * 212000-INICIALIZA-PANTALLA * * * * LIMPIA LA ZONA DE DATOS POR SER DE UNA PANTALLA ANTERIOR * * MUEVE DATOS DE CABECERA * * * ****************************************************************** 212000-INICIALIZA-PANTALLA. * INITIALIZE TMA-DESCRIPO, TMA-APLICACO, TMA-DESCAPLO, TMA-PGMIDO, TMA-DESCACTO, TMA-ACTIVAO, TMA-PLANO, TMA-COPYINO, TMA-PANELINO, TMA-IDIOMAO, TMA-DESIDIOO, TMA-CODHELPO, TMA-TIPALTMO, TMA-INICIOO, TMA-TRNCONVO, TMA-CONTABLO, TMA-CAJEROO, TMA-TIPOPERO, TMA-CAMBSESO, TMA-RECUPERO, TMA-LONCMMO , TMA-STAMACTO, TMA-TIMEACTO, TMA-USERACTO, TMA-TRANIDLO, TMA-STAMALTO, TMA-USERALTO, TMA-DOCUM1O, TMA-DOCUM2O, TMA-STAMMODO, TMA-TIMEMODO, TMA-USERMODO, TMA-DIARIOEO, TMA-STAMPRIO, TMA-STAMULTO, TMA-TRANIDO, TMA-APB4700O, TMA-NEWCOPYO, TMA-INIARQO, TMA-ACTTCLO , TMA-PFSTANO , TMA-PINFSPO, TMA-PFSARQO, TMA-AYUDAAO. ****************************************************************** * * * 213000-COMPLETAR-PANTALLA * * * * LOS DATOS DE LA TABLA FODTCCT SON PASADOS A LOS CAMPOS DE * * PANTALLA, TRANSFORMANDO ALGUNO SI EL FORMATO DE PANTALLA * * ES DISTINTO AL DE TABLA * * * ****************************************************************** 213000-COMPLETAR-PANTALLA. * PERFORM 211200-ACCEDE-QGDTIDI PERFORM 211100-ACCEDE-FODTDTA * MOVE W-IDIOMA TO TMA-IDIOMAO MOVE IDI-DESC-CORTA TO TMA-DESIDIOO * MOVE DTA-DESC-LARGA TO TMA-DESCRIPO MOVE CCT-APLICACION TO TMA-APLICACO MOVE CCT-PGMID TO TMA-PGMIDO * MOVE SPACES TO TMA-NEWCOPYO MOVE CCT-APLICACION TO TMA-APLICACO *

96

*

IF CCT-IND-ACTIVA EQUAL 'S' MOVE 'Activada' TO TMA-DESCACTO MOVE 'A' TO TMA-ACTIVAO ELSE MOVE 'Desactivada' TO TMA-DESCACTO MOVE 'D' TO TMA-ACTIVAO END-IF MOVE CCT-PLAN TO TMA-PLANO MOVE CCT-COPY-IN TO TMA-COPYINO MOVE CCT-PANEL-IN TO TMA-PANELINO MOVE CCT-COD-HELP TO TMA-CODHELPO MOVE CCT-ST-ALTAMIRA TO TMA-TIPALTMO MOVE CCT-ENTRADA TO TMA-ENTRADAO MOVE CCT-IND-INICIO TO TMA-INICIOO MOVE CCT-IND-TRNCONV TO TMA-TRNCONVO MOVE CCT-IND-CONTABLE TO TMA-CONTABLO MOVE CCT-IND-CAJERO TO TMA-CAJEROO MOVE CCT-TIPOS-OPER TO TMA-TIPOPERO MOVE CCT-CAMBIO-SESION TO TMA-CAMBSESO MOVE CCT-RECUPERACION TO TMA-RECUPERO MOVE CCT-TIMEST-ACTV TO W-FECHA-AAAAMMDD MOVE W-AA-AAAAMMDD TO W-AA-DDMMAA MOVE W-MM-AAAAMMDD TO W-MM-DDMMAA MOVE W-DD-AAAAMMDD TO W-DD-DDMMAA MOVE W-FECHA-DDMMAA TO TMA-STAMACTO MOVE ':' TO W3-TIME MOVE W-TIME TO TMA-TIMEACTO MOVE CCT-USERID-ACTV TO TMA-USERACTO MOVE CCT-TRANID-LOCAL TO TMA-TRANIDLO MOVE CCT-FECHA-ALT TO W-FECHA-AAAAMMDD MOVE W-AA-AAAAMMDD TO W-AA-DDMMAA MOVE W-MM-AAAAMMDD TO W-MM-DDMMAA MOVE W-DD-AAAAMMDD TO W-DD-DDMMAA MOVE W-FECHA-DDMMAA TO TMA-STAMALTO MOVE CCT-USERID-ALT TO TMA-USERALTO MOVE CCT-DOCUM-1 TO TMA-DOCUM1O MOVE CCT-DOCUM-2 TO TMA-DOCUM2O MOVE CCT-FECHA-MOD TO W-FECHA-AAAAMMDD MOVE W-AA-AAAAMMDD TO W-AA-DDMMAA MOVE W-MM-AAAAMMDD TO W-MM-DDMMAA MOVE W-DD-AAAAMMDD TO W-DD-DDMMAA MOVE W-FECHA-DDMMAA TO TMA-STAMMODO MOVE CCT-HORA-MOD TO W-HORA MOVE ':' TO W3-HORA MOVE W-HORA TO TMA-TIMEMODO MOVE CCT-USERID-MOD TO TMA-USERMODO MOVE CCT-IND-DIARIO TO TMA-DIARIOEO IF CCT-FECHA-PRIUSO NOT EQUAL '0001-01-01' MOVE CCT-FECHA-PRIUSO TO W-FECHA-AAAAMMDD MOVE W-AA-AAAAMMDD TO W-AA-DDMMAA MOVE W-MM-AAAAMMDD TO W-MM-DDMMAA MOVE W-DD-AAAAMMDD TO W-DD-DDMMAA MOVE W-FECHA-DDMMAA TO TMA-STAMPRIO ELSE MOVE SPACES TO TMA-STAMPRIO END-IF MOVE CCT-IND-4700 TO TMA-APB4700O MOVE CCT-INICIO-ARQ TO TMA-INIARQO MOVE CCT-ACT-TECLEO TO TMA-ACTTCLO MOVE CCT-PFS-STAND TO TMA-PFSTANO MOVE CCT-PIN-FASTP TO TMA-PINFSPO MOVE CCT-LONG-COMMAREA TO TMA-LONCMMO IF CCT-FECHA-ULTUSO NOT EQUAL '0001-01-01' MOVE CCT-FECHA-ULTUSO TO W-FECHA-AAAAMMDD

97

MOVE W-AA-AAAAMMDD TO W-AA-DDMMAA MOVE W-MM-AAAAMMDD TO W-MM-DDMMAA MOVE W-DD-AAAAMMDD TO W-DD-DDMMAA MOVE W-FECHA-DDMMAA TO TMA-STAMULTO ELSE MOVE SPACES TO TMA-STAMULTO END-IF MOVE CCT-PFS-ARQ TO TMA-PFSARQO MOVE CCT-AYUDA-ACT TO TMA-AYUDAAO. ****************************************************************** * * * 214000-OBTENER-DESCRIP-APL * * * * ACCESO A LA TABLA DE APLICACIONES PARA OBTENER LA * * DESCRIPCION. * * * ****************************************************************** 214000-OBTENER-DESCRIP-APL. * EXEC SQL SELECT APL_DESCRIP_RED INTO APL-DESCRIP-RED FROM QGDTAPl WHERE APL_APLICAC = :CCT-APLICACION END-EXEC * EVALUATE SQLCODE WHEN ZEROS MOVE APL-DESCRIP-RED TO TMA-DESCAPLO WHEN +100 MOVE SPACES TO TMA-DESCAPLO WHEN OTHER MOVE '1ER SELECT QGDTAPL' TO ABC-REFERENCIA MOVE 'QGDTAPL' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE. ****************************************************************** * * * 220000-ESTADO-CONTINUACION * * * * EQUIVALENTE A 'RECIBIR MAPA' * * * * -MOVER HORA Y FECHA DE CABECERA POR SI HAN CAMBIADO * * -VER TECLA PULSADA * * -INTRO CONSULTA * * -PF2 MODIFICACION * * -PF3 ALTA * * -PF4 LIMPIAR * * -PF6 BAJA * * -EN CUALQUIER OTRO CASO DAREMOS ERROR DE TECLA INCORRECTA * * * ****************************************************************** 220000-ESTADO-CONTINUACION. * IF TMA-IDIOMAI NOT EQUAL SPACES MOVE TMA-IDIOMAI TO W-IDIOMA ELSE IF CMA-IDIOMA NOT EQUAL SPACES MOVE CMA-IDIOMA TO W-IDIOMA ELSE MOVE CAA-IDIOMA-TERM TO W-IDIOMA END-IF END-IF * EVALUATE TRUE

98

WHEN PFENTER PERFORM 221000-CONSULTA WHEN PF2 PERFORM 225000-SEGURIDAD PERFORM 222000-MODIFICACION WHEN PF3 PERFORM 225000-SEGURIDAD PERFORM 223000-ALTA WHEN PF4 PERFORM 212000-INICIALIZA-PANTALLA WHEN PF6 PERFORM 225000-SEGURIDAD PERFORM 224000-BAJA WHEN OTHER MOVE 'QME0001' TO CAA-COD-ERROR PERFORM 300000-FIN-PROGRAMA END-EVALUATE.

99

****************************************************************** * * * 221000-CONSULTA * * * * - VER SI LA TRANSACCION EXISTE * * -SI EXISTE FORMATEAREMOS LA PANTALLA * * -SI NO EXISTE DAREMOS ERROR Y MANTENDREMOS LOS DATOS QUE * * EXISTIESEN EN ELLA * * * * NOTA: COMPRUEBA SI POR PANTALLA SE INFORMO EL CAMPO IDIOMA * * DE NO ESTARLO COMPRUEBA SI SE HIZO EN LA COMMAREA DE * * MANTENIMIENTO, SI NO TOMA EL QUE POR DEFECTO TENGA EL * * TERMINAL. * * * * * ****************************************************************** * 221000-CONSULTA. * MOVE TMA-TRANIDI TO CCT-TRANID PERFORM 211000-ACCEDE-FODTCCT * EVALUATE SQLCODE WHEN ZEROS PERFORM 213000-COMPLETAR-PANTALLA PERFORM 214000-OBTENER-DESCRIP-APL WHEN +100 MOVE 'QME0005' TO CAA-COD-ERROR MOVE '@QM000011' TO CAA-VAR1-ERROR PERFORM 300000-FIN-PROGRAMA WHEN OTHER MOVE '3ER SELECT FODTCCT' TO ABC-REFERENCIA MOVE 'FODTCCT' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE. ****************************************************************** * * * 222000-MODIFICACION * * * * - VER SI LA TRANSACCION EXISTE * * -SI EXISTE VALIDAREMOS LOS CAMPOS, FORMATEAREMOS LA * * FILA Y LA REESCRIBIREMOS EN LA TABLA * * -SI HAY ALGUN ERROR Y MANTENDREMOS LOS DATOS QUE * * EXISTIENSEN EN LA PANTALLA Y AVISAREMOS DEL ERROR * * * * NOTA: COMPRUEBA SI POR PANTALLA SE INFORMO EL CAMPO IDIOMA * * DE NO ESTARLO COMPRUEBA SI SE HIZO EN LA COMMAREA DE * * MANTENIMIENTO, SI NO TOMA EL QUE POR DEFECTO TENGA EL * * TERMINAL. * * * ****************************************************************** 222000-MODIFICACION. * IF CAA-88-MOD-TAG-NO MOVE 'QME0109' TO CAA-COD-ERROR PERFORM 300000-FIN-PROGRAMA ELSE MOVE TMA-TRANIDI TO CCT-TRANID PERFORM 211000-ACCEDE-FODTCCT * EVALUATE SQLCODE WHEN ZEROS PERFORM 222100-VALIDAR-CAMPOS PERFORM 222200-FORMATEA-FILA PERFORM 222400-UPDATE

100

WHEN +100 MOVE 'QME0005' TO CAA-COD-ERROR MOVE '@QM000011' TO CAA-VAR1-ERROR PERFORM 300000-FIN-PROGRAMA WHEN OTHER MOVE 'SELECT UPDATE' TO ABC-REFERENCIA MOVE 'FODTCCT' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE END-IF. ****************************************************************** * * * 222100-VALIDAR-CAMPOS * * * * - VALIDAR CAMPOS * ****************************************************************** 222100-VALIDAR-CAMPOS. * PERFORM 222110-TRANSACCION-APLI PERFORM 222120-PROGRAMA PERFORM 222130-ESTADO-FORMATO * MOVE TMA-IDIOMAI TO W-IDIOMA PERFORM 211200-ACCEDE-QGDTIDI. ****************************************************************** * * * 222110-TRANSACCION-APLI * * * * - TRANSACCION Y APLICACION * * - LA TRANSACCION DEBE ESTAR INFORMADA * * - LA TRANSACCION NO PERMITE BLANCOS INTERCALADOS * * - LA DESCRIPCION DE LA TRANSACCION DEBE ESTAR INFORMADA * * - LAS DOS PRIMERAS POSICIONES DE LA TRANSACCION SON EL * * CODIGO DE APLICACION. * * * ****************************************************************** 222110-TRANSACCION-APLI. * IF TMA-TRANIDI EQUAL SPACES OR TMA-TRANIDI EQUAL LOW-VALUES MOVE 'QME0002' TO CAA-COD-ERROR MOVE '@QM000011' TO CAA-VAR1-ERROR PERFORM 300000-FIN-PROGRAMA ELSE MOVE TMA-TRANIDI TO W-TRANID INSPECT W-TRANID REPLACING ALL LOW-VALUES BY SPACES IF W1-TRANID EQUAL SPACES OR (W2-TRANID EQUAL SPACES AND (W3-TRANID NOT EQUAL SPACES OR W4-TRANID NOT EQUAL SPACES)) OR (W3-TRANID EQUAL SPACES AND W4-TRANID NOT EQUAL SPACES) MOVE 'QME0015' TO CAA-COD-ERROR MOVE -1 TO TMA-TRANIDL MOVE '@QM000011' TO CAA-VAR1-ERROR PERFORM 300000-FIN-PROGRAMA ELSE IF TMA-DESCRIPI EQUAL SPACES OR TMA-DESCRIPI EQUAL LOW-VALUES MOVE 'QME0002' TO CAA-COD-ERROR MOVE -1 TO TMA-DESCRIPL MOVE '@QM000002' TO CAA-VAR1-ERROR PERFORM 300000-FIN-PROGRAMA ELSE IF TMA-APLICACI NOT = TMA-TRANIDI(1:2)

101

MOVE 'QME0005' TO CAA-COD-ERROR MOVE -1 TO TMA-APLICACL MOVE '@QM000012' TO CAA-VAR1-ERROR PERFORM 300000-FIN-PROGRAMA END-IF END-IF END-IF END-IF. ****************************************************************** * * * 222120-PROGRAMA * * * * - PROGRAMA * * - LA PROGRAMA DEBE ESTAR INFORMADO * * - EL PROGRAMA NO PERMITE BLANCOS EN SUS PRIMERAS 7 * * POSICIONES * * * ****************************************************************** 222120-PROGRAMA. * IF TMA-PGMIDI EQUAL SPACES OR TMA-PGMIDI EQUAL LOW-VALUES MOVE 'QME0002' TO CAA-COD-ERROR MOVE -1 TO TMA-PGMIDL MOVE '@QM000046' TO CAA-VAR1-ERROR PERFORM 300000-FIN-PROGRAMA ELSE MOVE TMA-PGMIDI TO W-PGMID INSPECT W-PGMID REPLACING ALL LOW-VALUES BY SPACES IF W1-PGMID EQUAL SPACES OR W2-PGMID EQUAL SPACES OR W3-PGMID EQUAL SPACES OR W4-PGMID EQUAL SPACES OR W5-PGMID EQUAL SPACES OR W6-PGMID EQUAL SPACES OR W7-PGMID EQUAL SPACES MOVE 'QME0015' TO CAA-COD-ERROR MOVE -1 TO TMA-PGMIDL MOVE '@QM000046' TO CAA-VAR1-ERROR PERFORM 300000-FIN-PROGRAMA END-IF END-IF. ****************************************************************** * * * 222130-ESTADO-FORMATO * * * * - ESTADO Y FORMATO * * - SI EL ESTADO NO ESTA INFORMADO SE ASUME 'A' ACTIVADA * * - EL ESTADO SOLO PERMITE (A/D) ACTIVADA/DESACTIVADA * * POSICIONES * * * ****************************************************************** 222130-ESTADO-FORMATO. * IF TMA-ACTIVAI EQUAL SPACES OR TMA-ACTIVAI EQUAL LOW-VALUES OR TMA-ACTIVAI EQUAL 'A' MOVE 'A' TO TMA-ACTIVAO MOVE 'Activada' TO TMA-DESCACTO ELSE IF TMA-ACTIVAI EQUAL 'D' MOVE 'Desactivada' TO TMA-DESCACTO ELSE MOVE SPACES TO TMA-DESCACTO MOVE 'QME0017' TO CAA-COD-ERROR

102

MOVE -1 TO TMA-ACTIVAL MOVE '@QM000004' TO CAA-VAR1-ERROR PERFORM 300000-FIN-PROGRAMA END-IF END-IF. ****************************************************************** * * * 222200-FORMATEA-FILA * * * * - MOVER CAMPOS DE PANTALLA A TABLA, CONVIRTIENDO ALGUNO * * EN SU FORMATO SI FUESE NECESARIO * * * ****************************************************************** 222200-FORMATEA-FILA. * MOVE TMA-TRANIDI TO CCT-TRANID MOVE TMA-DESCRIPI TO CCT-DESCRIP MOVE TMA-APLICACI TO CCT-APLICACION MOVE TMA-PGMIDI TO CCT-PGMID * IF TMA-ACTIVAI EQUAL 'A' MOVE 'Activada' TO TMA-DESCACTO MOVE 'S' TO CCT-IND-ACTIVA ELSE MOVE 'Desactivada' TO TMA-DESCACTO MOVE 'N' TO CCT-IND-ACTIVA END-IF * MOVE TMA-PLANI TO CCT-PLAN MOVE TMA-COPYINI TO CCT-COPY-IN MOVE TMA-PANELINI TO CCT-PANEL-IN MOVE TMA-CODHELPI TO CCT-COD-HELP MOVE TMA-TIPALTMI TO CCT-ST-ALTAMIRA MOVE TMA-ENTRADAI TO CCT-ENTRADA MOVE TMA-INICIOI TO CCT-IND-INICIO MOVE TMA-TRNCONVI TO CCT-IND-TRNCONV MOVE TMA-CONTABLI TO CCT-IND-CONTABLE MOVE TMA-CAJEROI TO CCT-IND-CAJERO MOVE TMA-TIPOPERI TO CCT-TIPOS-OPER MOVE TMA-CAMBSESI TO CCT-CAMBIO-SESION MOVE TMA-RECUPERI TO CCT-RECUPERACION MOVE TMA-TRANIDLI TO CCT-TRANID-LOCAL MOVE TMA-DOCUM1I TO CCT-DOCUM-1 MOVE TMA-DOCUM2I TO CCT-DOCUM-2 MOVE TMA-DIARIOEI TO CCT-IND-DIARIO MOVE TMA-APB4700I TO CCT-IND-4700 MOVE TMA-LONCMMI TO CCT-LONG-COMMAREA MOVE 'N' TO CCT-IND-LIBRE3 MOVE 'N' TO CCT-IND-LIBRE4 MOVE TMA-INIARQI TO CCT-INICIO-ARQ MOVE TMA-PFSTANI TO CCT-PFS-STAND MOVE TMA-PINFSPI TO CCT-PIN-FASTP MOVE TMA-ACTTCLI TO CCT-ACT-TECLEO MOVE TMA-PFSARQI TO CCT-PFS-ARQ MOVE TMA-AYUDAAI TO CCT-AYUDA-ACT. ****************************************************************** * * * 222400-UPDATE * * * * - UPDATE ACTUALIZANDO EL STAMP DE CAMBIO DE ESTADO * * * ****************************************************************** 222400-UPDATE. * MOVE CAA-USERID TO CCT-USERID-ACTV

103

*

*

CCT-USERID-MOD EXEC SQL UPDATE FODTCCT SET CCT_DESCRIP = :CCT-DESCRIP, CCT_APLICACION = :CCT-APLICACION, CCT_PGMID = :CCT-PGMID, CCT_PLAN = :CCT-PLAN, CCT_COPY_IN = :CCT-COPY-IN, CCT_PANEL_IN = :CCT-PANEL-IN, CCT_COD_HELP = :CCT-COD-HELP, CCT_TRANID_LOCAL = :CCT-TRANID-LOCAL, CCT_DOCUM_1 = :CCT-DOCUM-1, CCT_DOCUM_2 = :CCT-DOCUM-2, CCT_IND_DIARIO = :CCT-IND-DIARIO, CCT_IND_4700 = :CCT-IND-4700, CCT_ST_ALTAMIRA = :CCT-ST-ALTAMIRA, CCT_ST_JOUR = :CCT-ST-JOUR, CCT_ST_LIBR = :CCT-ST-LIBR, CCT_ST_BANDA = :CCT-ST-BANDA, CCT_ST_IMPR = :CCT-ST-IMPR, CCT_ST_TERMINAL = :CCT-ST-TERMINAL, CCT_NIVEL_USO = :CCT-NIVEL-USO, CCT_NIVEL_ALTA = :CCT-NIVEL-ALTA, CCT_NIVEL_BAJA = :CCT-NIVEL-BAJA, CCT_NIVEL_MODIFIC = :CCT-NIVEL-MODIFIC, CCT_ENTRADA = :CCT-ENTRADA, CCT_IND_ACTIVA = :CCT-IND-ACTIVA, CCT_IND_INICIO = :CCT-IND-INICIO, CCT_IND_TRNCONV = :CCT-IND-TRNCONV, CCT_IND_CONTABLE = :CCT-IND-CONTABLE, CCT_IND_CAJERO = :CCT-IND-CAJERO, CCT_TIPO_ALTA = :CCT-TIPO-ALTA, CCT_TIPO_BAJA = :CCT-TIPO-BAJA, CCT_TIPO_MODIF = :CCT-TIPO-MODIF, CCT_TIPO_CONSULTA = :CCT-TIPO-CONSULTA, CCT_TIPO_EDICION = :CCT-TIPO-EDICION, CCT_TIPO_PETICION = :CCT-TIPO-PETICION, CCT_TIPO_ENTSAL = :CCT-TIPO-ENTSAL, CCT_FECHA_MOD = CURRENT DATE, CCT_HORA_MOD = CURRENT TIME, CCT_USERID_MOD = :CCT-USERID-MOD, CCT_TIMEST_ACTV = CURRENT TIMESTAMP, CCT_USERID_ACTV = :CCT-USERID-ACTV, CCT_CAMBIO_SESION = :CCT-CAMBIO-SESION, CCT_PFS_ARQ = :CCT-PFS-ARQ, CCT_AYUDA_ACT = :CCT-AYUDA-ACT, CCT_INICIO_ARQ = :CCT-INICIO-ARQ, CCT_PFS_STAND = :CCT-PFS-STAND , CCT_PIN_FASTP = :CCT-PIN-FASTP , CCT_ACT_TECLEO = :CCT-ACT-TECLEO, CCT_LONG_COMMAREA = :CCT-LONG-COMMAREA, CCT_RECUPERACION = :CCT-RECUPERACION WHERE CCT_TRANID = :CCT-TRANID END-EXEC EVALUATE SQLCODE WHEN ZEROS MOVE 'QMA0001' TO CAA-COD-AVISO1 SET CAA-88-TIOPER-MODIF TO TRUE PERFORM 222500-MODIFICAR-DESCRIP PERFORM 213000-COMPLETAR-PANTALLA WHEN OTHER MOVE 'UPDATE FODTCCT ' TO ABC-REFERENCIA MOVE 'FODTCCT' TO ABC-OBJETO-ERROR

104

PERFORM 999999-ABEND-DB2 END-EVALUATE. ****************************************************************** * * * 222500-MODIFICAR-DESCRIP * * * * EN EL CASO DE QUE SE HAYAN MODIFICADO LAS DESCRIPCIONES * * POR PANTALLA, SE MODIFICARAN TAMBIEN EN LA TABLA DE * * DESCRIPCION DE TABLAS. * * * ****************************************************************** 222500-MODIFICAR-DESCRIP. * IF TMA-DESCRIPI EQUAL DTA-DESC-LARGA CONTINUE ELSE MOVE TMA-DESCRIPI TO DTA-DESC-LARGA DTA-DESC-CORTA MOVE LT-TABLA-CCT TO DTA-TABLA MOVE CCT-TRANID TO DTA-CLAVE MOVE W-IDIOMA TO DTA-IDIOMA PERFORM 222600-MODIFICAR-FODTDTA END-IF. ****************************************************************** * * * 222600-MODIFICAR-FODTDTA * * * * MODIFICACION DE LA TABLA DE DESCRIPCION DE TABLAS, PARA * * ACTUALIZAR LAS DESCRIPCIONES. * * * ****************************************************************** 222600-MODIFICAR-FODTDTA. * MOVE DTA-DESC-LARGA TO DTA-DESC-CORTA EXEC SQL UPDATE FODTDTA SET DTA_DESC_LARGA = :DTA-DESC-LARGA, DTA_DESC_CORTA = :DTA-DESC-CORTA WHERE DTA_TABLA = :DTA-TABLA AND DTA_CLAVE = :DTA-CLAVE AND DTA_IDIOMA = :DTA-IDIOMA END-EXEC EVALUATE SQLCODE WHEN ZERO MOVE 'QMA0076' TO CAA-COD-AVISO2 WHEN OTHER MOVE '1ER UPDATE FODTDTA' TO ABC-REFERENCIA MOVE 'FODTDTA' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE. ****************************************************************** * * * 223000-ALTA * * * * - VER SI LA TRANSACCION EXISTE * * -SI NO EXISTE VALIDAREMOS LOS CAMPOS, FORMATEAREMOS LA * * FILA Y LA INSERTAREMOS EN LA TABLA * * -SI HAY ALGUN ERROR Y MANTENDREMOS LOS DATOS QUE * * EXISTIENSEN EN LA PANTALLA Y AVISAREMOS DEL ERROR * * * * NOTA: COMPRUEBA SI POR PANTALLA SE INFORMO EL CAMPO IDIOMA * * DE NO ESTARLO COMPRUEBA SI SE HIZO EN LA COMMAREA DE * * MANTENIMIENTO, SI NO TOMA EL QUE POR DEFECTO TENGA EL * * TERMINAL. * * *

105

****************************************************************** 223000-ALTA. * MOVE TMA-TRANIDI TO CCT-TRANID * IF TMA-IDIOMAI NOT EQUAL SPACES MOVE TMA-IDIOMAI TO W-IDIOMA ELSE IF CMA-IDIOMA NOT EQUAL SPACES MOVE CMA-IDIOMA TO W-IDIOMA ELSE MOVE CAA-IDIOMA-TERM TO W-IDIOMA END-IF END-IF * PERFORM 211000-ACCEDE-FODTCCT MOVE TMA-APLICACI TO CCT-APLICACION * EVALUATE SQLCODE WHEN ZEROS MOVE 'QME0004' TO CAA-COD-ERROR MOVE -1 TO TMA-TRANIDL MOVE '@QM000011' TO CAA-VAR1-ERROR PERFORM 300000-FIN-PROGRAMA WHEN +100 PERFORM 222100-VALIDAR-CAMPOS PERFORM 222200-FORMATEA-FILA PERFORM 223100-INSERT-FILA WHEN OTHER INITIALIZE QGECABC MOVE 'SELECT ALTA' TO ABC-REFERENCIA MOVE 'FODTCCT' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE. ****************************************************************** * * * 223100-INSERT-FILA * * * * - INSERTAR FILA A DAR DE ALTA * * * ****************************************************************** 223100-INSERT-FILA. * MOVE CAA-USERID TO CCT-USERID-ACTV CCT-USERID-ALT CCT-USERID-MOD MOVE '0001-01-01' TO CCT-FECHA-PRIUSO CCT-FECHA-ULTUSO * EXEC SQL INSERT INTO FODTCCT VALUES (CCT-TRANID, CCT-DESCRIP, CCT-APLICACION, CCT-ENTRADA, CCT-PGMID, CCT-PLAN, CCT-COPY-IN, CCT-PANEL-IN, CCT-COD-HELP, CCT-TRANID-LOCAL, CCT-DOCUM-1, CCT-DOCUM-2, CCT-IND-DIARIO, CCT-IND-4700, CCT-LONG-COMMAREA, CCT-ST-ALTAMIRA, CCT-ST-JOUR, CCT-ST-LIBR, CCT-ST-BANDA, CCT-ST-IMPR, CCT-ST-TERMINAL, CCT-NIVEL-USO, CCT-NIVEL-ALTA, CCT-NIVEL-BAJA, CCT-NIVEL-MODIFIC, CCT-IND-ACTIVA, CCT-IND-INICIO, CCT-IND-TRNCONV, CCT-IND-CONTABLE, CCT-IND-CAJERO, CCT-TIPO-ALTA, CCT-TIPO-BAJA, CCT-TIPO-MODIF, CCT-TIPO-CONSULTA, CCT-TIPO-EDICION, CCT-TIPO-PETICION, CCT-TIPO-ENTSAL,

106

*

CCT-CAMBIO-SESION, CCT-RECUPERACION, CCT-INICIO-ARQ , CCT-PFS-STAND , CCT-ACT-TECLEO , CCT-PIN-FASTP , CCT-PFS-ARQ , CCT-AYUDA-ACT , CCT-IND-LIBRE1 , CCT-IND-LIBRE2 , CCT-IND-LIBRE3 , CCT-IND-LIBRE4 , CCT-IND-LIBRE5 , CCT-CAMPO1, CCT-CAMPO2, CURRENT DATE, CCT-USERID-ALT, CURRENT DATE, CURRENT TIME, CCT-USERID-MOD, CURRENT TIMESTAMP, CCT-USERID-ACTV, CCT-FECHA-PRIUSO, CCT-FECHA-ULTUSO) END-EXEC EVALUATE SQLCODE WHEN ZEROS MOVE 'QMA0002' MOVE CAA-FECHA-TRANS2 CCT-FECHA-MOD, MOVE CAA-HORA-TRANSED

TO CAA-COD-AVISO1 TO CCT-FECHA-ALT W-DATE-TIMESTAMP TO CCT-HORA-MOD W-TIME-TIMESTAMP MOVE W-TIMESTAMP TO CCT-TIMEST-ACTV SET CAA-88-TIOPER-ALTA TO TRUE PERFORM 223200-INSERTAR-DTA PERFORM 213000-COMPLETAR-PANTALLA MOVE -1 TO TMA-TRANIDL WHEN OTHER INITIALIZE QGECABC MOVE '1ER INSERT FODTCCT' TO ABC-REFERENCIA MOVE 'FODTCCT' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE.

* ****************************************************************** * * * 223200-INSERTAR-DTA * * * * SE INSERTA UN FILA EN LA TABLA DE DESCRIPCION DE TABLAS * * * ****************************************************************** 223200-INSERTAR-DTA. * PERFORM 223210-DECLARE-OPEN-C-IDI SET NO-FIN-CURSOR TO TRUE PERFORM 223220-FETCH-C-IDI PERFORM UNTIL FIN-CURSOR PERFORM 223220-INSERT-QGDTDTA PERFORM 223220-FETCH-C-IDI END-PERFORM * PERFORM 223230-CLOSE-C-IDI. ****************************************************************** * * * 223210-DECLARE-OPEN-C-IDI * * * * DECLARACION CURSOR. * * APERTURA DEL CURSOR SOBRE LA TABLA DE IDIOMAS * * * ****************************************************************** 223210-DECLARE-OPEN-C-IDI. * EXEC SQL DECLARE C-IDI CURSOR FOR SELECT IDI_IDIOMA FROM QGDTIDI END-EXEC *

107

*

EXEC SQL OPEN C-IDI END-EXEC

EVALUATE SQLCODE WHEN ZERO CONTINUE WHEN OTHER INITIALIZE QGECABC MOVE 'OPEN C-IDI QGDTIDI' TO ABC-REFERENCIA MOVE 'QGDTIDI' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE. ****************************************************************** * * * 223220-FETCH-C-IDIIDI * * * * FETCH SOBRE EL CURSOR C-IDI * * * ****************************************************************** 223220-FETCH-C-IDI. * EXEC SQL FETCH C-IDI INTO :IDI-IDIOMA END-EXEC EVALUATE SQLCODE WHEN ZERO CONTINUE WHEN +100 SET FIN-CURSOR TO TRUE WHEN OTHER INITIALIZE QGECABC MOVE 'FETCH C-IDI QGDTIDI' TO ABC-REFERENCIA MOVE 'QGDTIDI' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE. ****************************************************************** * * * 223220-INSERT-QGDTDTA * * * * INSERCION DE TANTAS FILAS EN LA TABLA FODTDTA, COMO IDIOMAS * * HAYA EN LA TABLA QGDTIDI. * * * ****************************************************************** 223220-INSERT-QGDTDTA. * MOVE LT-TABLA-CCT TO DTA-TABLA MOVE CCT-TRANID TO DTA-CLAVE MOVE IDI-IDIOMA TO DTA-IDIOMA MOVE CCT-DESCRIP TO DTA-DESC-CORTA DTA-DESC-LARGA MOVE SPACES TO DTA-LIBRE DTA-IND-LIBRE1 DTA-IND-LIBRE2 DTA-IND-LIBRE3 DTA-USERID-MOD DTA-TERMIN-MOD DTA-CENTRO-MOD MOVE CAA-USERID TO DTA-USERID-ALT MOVE CAA-TERMINAL TO DTA-TERMIN-ALT MOVE CAA-ENTIDAD TO W-ENTIDAD MOVE CAA-CENTRO-CONT TO W-CENTRO MOVE W-ENTIDAD-CENTRO TO DTA-CENTRO-ALT * EXEC SQL

108

*

INSERT INTO FODTDTA ( DTA_TABLA , DTA_CLAVE , DTA_IDIOMA , DTA_DESC_CORTA, DTA_DESC_LARGA, DTA_LIBRE , DTA_IND_LIBRE1, DTA_IND_LIBRE2, DTA_IND_LIBRE3, DTA_TIMEST_ALT, DTA_USERID_ALT, DTA_CENTRO_ALT, DTA_TERMIN_ALT, DTA_TIMEST_MOD, DTA_USERID_MOD, DTA_CENTRO_MOD, DTA_TERMIN_MOD) VALUES (:DTA-TABLA , :DTA-CLAVE , :DTA-IDIOMA , :DTA-DESC-CORTA, :DTA-DESC-LARGA, :DTA-LIBRE , :DTA-IND-LIBRE1, :DTA-IND-LIBRE2, :DTA-IND-LIBRE3, CURRENT TIMESTAMP, :DTA-USERID-ALT, :DTA-CENTRO-ALT, :DTA-TERMIN-ALT, CURRENT TIMESTAMP, :DTA-USERID-MOD, :DTA-CENTRO-MOD, :DTA-TERMIN-MOD) END-EXEC

EVALUATE SQLCODE WHEN ZERO CONTINUE WHEN OTHER INITIALIZE QGECABC MOVE 'INSERT DTA' TO ABC-REFERENCIA MOVE 'FODTDTA' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE. ****************************************************************** * * * 223230-CLOSE-C-IDI * * * * CIERRE DEL CURSOR C-IDI * * * ****************************************************************** 223230-CLOSE-C-IDI. * EXEC SQL CLOSE C-IDI END-EXEC EVALUATE SQLCODE WHEN ZERO MOVE 'QMA0076' TO CAA-COD-AVISO2 WHEN OTHER INITIALIZE QGECABC MOVE 'CLOSE C-IDI QGDTIDI' TO ABC-REFERENCIA MOVE 'QGDTIDI' TO ABC-OBJETO-ERROR

109

PERFORM 999999-ABEND-DB2 END-EVALUATE. ****************************************************************** * * * 224000-BAJA * * * * - VALIDAR QUE EL REGISTRO PUEDE SER DADO DE BAJA * * - SI SE PUEDE DAR DE BAJA PEDIREMOS PREVIAMENTE CONFIRMA- * * CION. * * - SI NO INFORMAREMOS DEL ERROR * * * ****************************************************************** * 224000-BAJA. * MOVE TMA-TRANIDI TO CCT-TRANID MOVE TMA-APLICACI TO CCT-APLICACION MOVE -1 TO TMA-TRANIDL * MOVE TMA-IDIOMAI TO W-IDIOMA * PERFORM 211000-ACCEDE-FODTCCT EVALUATE SQLCODE WHEN ZEROS PERFORM 214000-OBTENER-DESCRIP-APL IF SQLCODE EQUAL ZEROS MOVE APL-DESCRIP-RED TO TMA-DESCAPLO ELSE MOVE SPACES TO TMA-DESCAPLO END-IF PERFORM 213000-COMPLETAR-PANTALLA MOVE 'QMA0004' TO CAA-COD-AVISO1 WHEN +100 MOVE 'QME0005' TO CAA-COD-ERROR MOVE '@QM000011' TO CAA-VAR1-ERROR PERFORM 300000-FIN-PROGRAMA WHEN OTHER INITIALIZE QGECABC MOVE '7MO. SELECT FODTCCT' TO ABC-REFERENCIA MOVE 'FODTCCT' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE. * ****************************************************************** * * * 225000-SEGURIDAD * * * * SE LLAMA AL MODULO QG1CSEG PARA VALIDAR LA AUTORIZACION DEL * * USUARIO * * * ****************************************************************** * 225000-SEGURIDAD. * INITIALIZE QGECSEG MOVE LT-RECURSO TO SEG-REC-FICTICIO * EXEC CICS LINK PROGRAM ('QG1CSEG') COMMAREA (QGECSEG) END-EXEC * IF SEG-IND-AUTORIZA EQUAL 'N' MOVE 'QME0110' TO CAA-COD-ERROR MOVE -1 TO TMA-TRANIDL

110

PERFORM 300000-FIN-PROGRAMA END-IF.

* ****************************************************************** * * * 230000-ESTADO-CONFIRMACION * * * * ES LA CONFIRMACION SOLO DE LA BAJA * * * * - VERIFICAR QUE TECLA DE FUNCION CORRECTA (CAA-TECLA) * * SI CORRECTA * * - VERIFICAR QUE NO HAN CAMBIADO LA PANTALLA, * * EVALUANDO CAA-MODTAG. * * - DELETE DE LA FILA * * CASO CONTRARIO * * - INFORMAR ERROR * * * ****************************************************************** * 230000-ESTADO-CONFIRMACION. * MOVE -1 TO TMA-TRANIDL MOVE CAA-TECLA TO SW-TECLA * EVALUATE TRUE WHEN PF7 IF CAA-88-MOD-TAG-NO MOVE TMA-TRANIDI TO CCT-TRANID PERFORM 231000-DELETE ELSE MOVE 'QME0024' TO CAA-COD-ERROR PERFORM 300000-FIN-PROGRAMA END-IF WHEN OTHER MOVE 'QMA0005' TO CAA-COD-AVISO1 END-EVALUATE. * ****************************************************************** * * * 231000-DELETE * * * * -BORRAR FILA * * * ****************************************************************** * 231000-DELETE. * EXEC SQL DELETE FROM FODTCCT WHERE CCT_TRANID = :CCT-TRANID END-EXEC * EVALUATE SQLCODE WHEN ZEROS MOVE 'QMA0003' TO CAA-COD-AVISO1 PERFORM 231050-DELETE-DTA WHEN OTHER INITIALIZE QGECABC MOVE 'DELETE FODTCCT' TO ABC-REFERENCIA MOVE 'FODTCCT' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE. * ****************************************************************** * *

111

* 231050-DELETE-DTA * * * * SE BORRA LA FILA DE LA FODTDTA REFERENTE A LA TABLA Y * * CLAVE QUE ESTAMOS TRATANDO * * * ****************************************************************** * 231050-DELETE-DTA. * EXEC SQL DELETE FROM FODTDTA WHERE DTA_TABLA = :LT-TABLA-CCT AND DTA_CLAVE = :CCT-TRANID END-EXEC EVALUATE SQLCODE WHEN ZERO CONTINUE WHEN OTHER INITIALIZE QGECABC MOVE '1ER. DELETE FODTDTA' TO ABC-REFERENCIA MOVE 'FODTDTA' TO ABC-OBJETO-ERROR PERFORM 999999-ABEND-DB2 END-EVALUATE. ****************************************************************** * * * 300000-FIN-PROGRAMA * * * * -DEVOLVER CONTROL * * * ****************************************************************** 300000-FIN-PROGRAMA. * PERFORM 300100-POSICIONAR-CURSOR * EVALUATE TRUE WHEN CAA-88-ESTADO-INICIO PERFORM 310000-INFORMAR-CAA-INICIO WHEN CAA-88-ESTADO-CONTIN PERFORM 320000-INFORMAR-CAA-CONTIN WHEN OTHER PERFORM 330000-INFORMAR-CAA-CONFIR END-EVALUATE * PERFORM 999-INFORMAR-ANALITICA * EXEC CICS RETURN END-EXEC. ****************************************************************** * * * 300100-POSICIONAR-CURSOR * * * * AL SALIR, POSICIONA EL CURSOR EN EL 1ER CAMPO DEL MAPA * * * ****************************************************************** * 300100-POSICIONAR-CURSOR. * IF TMA-TRANIDL = -1 OR TMA-DESCRIPL = -1 OR TMA-NEWCOPYL = -1 OR TMA-IDIOMAL = -1 OR TMA-DESIDIOL = -1 OR TMA-APLICACL = -1 OR TMA-DESCAPLL = -1 OR TMA-PGMIDL = -1 OR TMA-ACTIVAL = -1 OR TMA-DESCACTL = -1 OR TMA-PLANL = -1 OR TMA-COPYINL = -1 OR

112

TMA-PANELINL = -1 OR TMA-TIPALTML = -1 OR TMA-CODHELPL = -1 OR TMA-ENTRADAL = -1 OR TMA-LONCMML = -1 OR TMA-CAMBSESL = -1 OR TMA-RECUPERL = -1 OR TMA-TRNCONVL = -1 OR TMA-TRANIDLL = -1 OR TMA-CONTABLL = -1 OR TMA-CAJEROL = -1 OR TMA-DOCUM1L = -1 OR TMA-DOCUM2L = -1 OR TMA-TIPOPERL = -1 OR TMA-DIARIOEL = -1 OR TMA-INICIOL = -1 OR TMA-APB4700L = -1 OR TMA-INIARQL = -1 OR TMA-PFSTANL = -1 OR TMA-STAMACTL = -1 OR TMA-TIMEACTL = -1 OR TMA-USERACTL = -1 OR TMA-ACTTCLL = -1 OR TMA-STAMALTL = -1 OR TMA-USERALTL = -1 OR TMA-PINFSPL = -1 OR TMA-STAMMODL = -1 OR TMA-TIMEMODL = -1 OR TMA-USERMODL = -1 OR TMA-PFSARQL = -1 OR TMA-STAMPRIL = -1 OR TMA-AYUDAAL = -1 OR TMA-STAMULTL = -1 CONTINUE ELSE MOVE -1 TO TMA-TRANIDL END-IF. ****************************************************************** * * * 310000-INFORMAR-CAA-INICIO * * * * SETEA VARIABLES DE CAA, COMO QUEDAN EN ESTADO INICIO * * * ****************************************************************** 310000-INFORMAR-CAA-INICIO. * IF CAA-88-COD-ERROR-VACIO SET CAA-88-ACCION-TERMINAL TO TRUE SET CAA-88-ESTADO-CONTIN TO TRUE MOVE CAA-CODTRAN TO CAA-CODTRAN-SIG ELSE SET CAA-88-ACCION-PROGRAMA TO TRUE SET CAA-88-ESTADO-INICIO TO TRUE SET CAA-88-CODTRAN-SIG-ULTI TO TRUE END-IF.

113

****************************************************************** * * * 320000-INFORMAR-CAA-CONTIN * * * * SETEA VARIABLES DE CAA, COMO QUEDAN EN ESTADO CONTINUACION * * * ****************************************************************** 320000-INFORMAR-CAA-CONTIN. * SET CAA-88-ACCION-TERMINAL TO TRUE SET CAA-88-CODTRAN-SIG-SAME TO TRUE IF CAA-88-COD-ERROR-VACIO IF PF6 SET CAA-88-ESTADO-CONFIR TO TRUE ELSE SET CAA-88-ESTADO-CONTIN TO TRUE END-IF ELSE SET CAA-88-ESTADO-CONTIN TO TRUE END-IF. ****************************************************************** * * * 330000-INFORMAR-CAA-CONFIR * * * * SETEA VARIABLES DE CAA, COMO QUEDAN EN ESTADO CONFIRMACION * * * ****************************************************************** * 330000-INFORMAR-CAA-CONFIR. * SET CAA-88-ACCION-TERMINAL TO TRUE SET CAA-88-ESTADO-CONTIN TO TRUE SET CAA-88-CODTRAN-SIG-SAME TO TRUE IF CAA-88-COD-ERROR-VACIO SET CAA-88-TIOPER-BAJA TO TRUE END-IF. ****************************************************************** * * * 999-INFORMAR-ANALITICA * * * * SE INFORMAN LOS CAMPOS DEL SEGMENTO CAA-ANALITICA DE LA * * COMMAREA QGECCAA, CON LOS DATOS DE LA OPERACION QUE SERVIRAN * * A ANALITICA. * * * ****************************************************************** 999-INFORMAR-ANALITICA. * MOVE CAA-ENTIDAD TO CAA-ENTIDAD-ANA MOVE CAA-CENTRO-CONT TO CAA-CENTRO-ANA MOVE CCT-TRANID TO CAA-PRODUCTO-ANA.

114

****************************************************************** * * * 999999-ABEND-DB2 * * * * SE ABENDA LA TAREA CUANDO SE PRODUCE UN ERROR DB2 NO DESEADO * * * ****************************************************************** 999999-ABEND-DB2. * MOVE 'S' TO ABC-ABEND MOVE 'FO2CTMA' TO ABC-PROGRAMA MOVE SQLCODE TO ABC-SQLCODE MOVE SQLERRM TO ABC-SQLERRM * EXEC CICS LINK PROGRAM ('QG1CABC') COMMAREA (QGECABC) END-EXEC. ****************************************************************** * * * 999999-ABEND-CICS * * * * SE ABENDA LA TAREA CUANDO SE PRODUCE UN ERROR CICS NO * * DESEABLE * * * ****************************************************************** 999999-ABEND-CICS. * MOVE 'S' TO ABC-ABEND MOVE 'FO2CTMA' TO ABC-PROGRAMA MOVE EIBFN TO ABC-EIBFN MOVE EIBRSRCE TO ABC-EIBRSRCE MOVE EIBRCODE TO ABC-EIBRCODE MOVE EIBRESP TO ABC-EIBRESP1 MOVE EIBRESP2 TO ABC-EIBRESP2 * EXEC CICS LINK PROGRAM ('QG1CABC') COMMAREA (QGECABC) END-EXEC.

115

5. Desarrollo del ejemplo Transaccional 5.1 Conceptos para el desarrollo del ejemplo. Para el desarrollo de la transacción se debe considerar lo siguiente : El formato de entrada de la transacción será : 0001 OM12 0100 CICSUSER TRANSACCION * LIBRE

FORMACION CONSULTA TRANSACCION FORMACION (01 (02

TP01 21/05/96 FOTC 13:49:33

) = ) =

Para este formato de entrada no hay preformato. El operador digitará el codigo de la transacción que desea consultar, si la transacción existe, se mostrará en un formato de salida asociado a un preformato, de lo contario de mostrará el error. Si se digitara el prefijo de una transacción con un asterisco al final de esta, se generará un listado de transacciones que tengan el prefijo solicitado hasta un máximo de 18 lineas. La salida sera asi : 29/04/96

BANCO PROVINCIAL

CICSUSER

COD-TRAN__________DESCRIPCION___________________FORMATO_______________ BG MENU GENERAL BGAI ACTIVACION DE INMOVILIZADO BGAM ABONO MANUAL DE INTERESES BGAN MANTTO NUMERACION PRODUCTO BGAP MENU DE MANTENIMIENTO PREAP BGAU MANTENIMIENTO AUXILIAR DE C BGCA MTTO. COND.LIQ.STANDAR ADIC BGCC CANVI DE LIMIT

116

5.2 Transaccion FOTC Programa FO2CCTR (Transacción) 5.2.1 Parametrización de la Transacción. Se daran de alta : . Los preformatos (FOCTR1,FOCTR2) . Los formatos de salida, asociados a las lineas de preformatos FOMCTR1 con FOCTR1 y FOMCTR2 con FOCTR2 . Los formatos de entrada (FOMCTR) . La transacción en la tabla de transacciones (FOTC) Luego se utilizara la función TSO QM para generar las copys para la aplicaión : 1 del formato de entrada 1 por formato de salida Preformato FOCTR1 0001 OM12 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTENIMIENTO DE PREFORMATOS

TP01 21/05/96 QMPM 09:43:11

NEW COPY FOCTR1 : LINEA CABECERA FORMACION E CASTELLANO 0 ____VARIABLES USADAS____ Del sistema ........ 0 Campos de LOCAL .... 0 Maximo ancho columna . = 71 Campos de HOST ..... 0 Numero de lineas ..... = 0 --Num. caracteres aprox. = 0 Total 0

Preformato ........... = Idioma ............... = Margen izquierdo ..... =

Modelo.........= ____________________STAMPS____________________ Alta ........... = 20/05/96 CICSUSER Ult. Modific ... = 20/05/96 12:42 CICSUSER Primer Uso ..... = 21/05/96 Ultimo Uso ..... = 21/05/96 FORMCTR Transac. Ult.USO =

FOTC

FOCTR1

CONSULTA TRANSACCION FORMACION

F2 Modificar F3 Alta F4 Limpiar F5 Lineas F6 Baja La nomenclatura del formato es : FORMXXX del preformato : FOXXX

117

BORRA Salir

Preformato FOCTR1 ( F5 Lineas) Pantalla 1 0001 OM12 ARQUITEC. PLATAFORMA 0100 CICSUSER MANTTO. DE LINEAS DE PREFORMATOS QCA0001 FIN DE DATOS P

SALTO

FOCTR1 LINEA CABECERA FORMACION

TP01 21/05/96 QMPT 09:43:37

E CASTELLANO

L 1: 3 C 1: 243 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7---01 @@@@@@@@ BANCO PROVINCIAL @@@@@@@@ 02 03 COD-TRAN__________DESCRIPCION___________________FORMATO_______________

F2 Idioma F3 Salvar F4 Izqda. F5 Drcha. F7 Re.Pag F8 Av.Pag Cl Salir Preformatos FOCTR1 ( F5 Lineas) Pantalla 2 0001 OM12 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTTO. DE LINEAS DE PREFORMATOS QMPT 09:44:39 QCA0001 FIN DE DATOS P SALTO FOCTR1 LINEA CABECERA FORMACION CASTELLANO L 1: 3 C 78: 243 +----8----+----9----+---- CAMP-01 T ED CAMP-02 T ED CAMP-03 T ED 01 QGFHACO S QGUSUA S 02 03

F2 Idioma F3 Salvar F4 Izqda. F5 Drcha. F7 Re.Pag F8 Av.Pag Cl Salir

Preformato FOCTR2 0001 OM12 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTENIMIENTO DE PREFORMATOS

Preformato ........... = Idioma ............... = Margen izquierdo ..... = Maximo ancho columna . = Numero de lineas ..... = Num. caracteres aprox. =

TP01 21/05/96 QMPM 09:45:50 NEW COPY FORMACION

FOCTR2 : LINEA DETALLE E CASTELLANO 0 ____VARIABLES USADAS____ Del sistema ........ 0 Campos de LOCAL .... 0 49 Campos de HOST ..... 3 1 --49 Total 3

Modelo.........= ____________________STAMPS____________________ Alta ........... = 20/05/96 CICSUSER Ult. Modific ... = 21/05/96 06:01 CICSUSER Primer Uso ..... = 21/05/96 Ultimo Uso ..... = 21/05/96 FORMCTR Transac. Ult.USO = FOTC CONSULTA TRANSACCION FORMACION F2 Modificar

F3 Alta

F4 Limpiar

F5 Lineas

118

F6 Baja

FOCTR2

BORRA Salir

119

Preformato FOCTR2 ( F5 Lineas) Pantalla 1 0001 OM12 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTTO. DE LINEAS DE PREFORMATOS QMPT 09:46:15 QCA0001 FIN DE DATOS P SALTO FOCTR2 LINEA DETALLE FORMACION E CASTELLANO L 1: 1 C 1: 243 ----+----1----+----2----+----3----+----4----+----5----+----6----+-01 @@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@

F2 Idioma F3 Salvar F4 Izqda. F5 Drcha. F7 Re.Pag F8 Av.Pag Cl Salir

Preformato FOCTR2 ( F5 Lineas) Pantalla 2 0001 OM12 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTTO. DE LINEAS DE PREFORMATOS QMPT 09:46:34 QCA0001 FIN DE DATOS P SALTO FOCTR2 LINEA DETALLE FORMACION E CASTELLANO L 1: 1 C 78: 243 +----8----+----9----+---- CAMP-01 T ED CAMP-02 T ED CAMP-03 T ED 01 CODTRA H DESCRIP H FORMA H

F2 Idioma F3 Salvar F4 Izqda. F5 Drcha. F7 Re.Pag F8 Av.Pag Cl Salir Formato Salida FOMCTR1 0001 OM08 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTENIMIENTO DE FORMATOS

Formato ........... = Tipo (E/S/A) ...... = Delimit. automatico =

FOMCTR1

TP01 21/05/96 QMFM 22:16:31

: FORMATO CABECERA FORMACION

S Salida S (S/N)

Num. campos .............. Longitud copy ............ Relacion campos / Ver.PS/2 Rutinas Verific./ V.Listos Idioma ............. = E

= = = =

NEW COPY

____ESTADO________ (P/D) = D Definitiva

0 0 No / No No / No CASTELLANO Formato modelo: FOMCTR1

__________ SALIDA ________ Preformato de Pantalla ... = FOCTR1 / Preformato de Documento .. = / Mapa para LOCAL .......... = / ______ALTA_______ CICSUSER 21/05/96 F2 Modificar

/ /

_____ULTIMA MODIF______ CICSUSER 21/05/96 03:35

(STD / 4700 / 5935) (STD / Doc. / NLin) (PS/2 / 4700) Conexion Preform. = __P.USO_ ___ULT.USO___ 21/05/96 21/05/96 FOTC

F3 Alta F4 Limpiar F5 Campos F6 Baja F7 Preform BORRA

120

Formato Salida FOMCTR2 0001 OM08 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTENIMIENTO DE FORMATOS

Formato .......... =

FOMCTR2

Tipo (E/S/A) ...... = Delimit. automatico =

: FORMATO DETALLE

S Salida S (S/N)

Num. campos .............. Longitud copy ............ Relacion campos / Ver.PS/2 Rutinas Verific./ V.Listos Idioma ............. = E

TP01 21/05/96 QMFM 22:17:53

= = = =

FORMACION

NEW COPY

___ESTADO________ (P/D) = D Definitiva

3 60 No / No No / No CASTELLANO

Formato modelo: FOMCTR2 __________ SALIDA ________ Preformato de Pantalla ... = Preformato de Documento .. = Mapa para LOCAL .......... = ______ALTA_______ CICSUSER 21/05/96 F2 Modificar F3 Alta

FOCTR2 / / /

/ /

(STD / 4700 / 5935) (STD / Doc. / NLin) (PS/2 / 4700) Conexion Preform. = _____ULTIMA MODIF______ __P.USO_ ___ULT.USO___ CICSUSER 21/05/96 03:37 21/05/96 21/05/96 FOTC F4 Limpiar F5 Campos F6 Baja F7 Preform BORRA

Formato Salida FOMCTR2 Campos del Formato

0001 OM08 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER LISTADO DE CAMPOS QMCL 22:18:26 QCA0001 FIN DE DATOS P SALTO FORMATO: FOMCTR2 FORMATO DETALLE FORMACION L 1: 3 CAMPO____LITERAL__________DELIM_ATT__LNG__TIP_RUTINA__VRUT_LIT4700_AYU 01 CODTRA CODIGO TRANSACCION 01 A 4 S N N 02 DESCRIP DESCR. TRANSACCION 02 A 27 S N N 03 FORMA FORMATO ASOCIADO 03 A 8 S N N

F2 Mantto F3 Alta F4 AyAct F6 Relac 10 Mover F7 Re.Pag F8 Av.Pag Cl

121

Formato de entrada FOMCTR 0001 OM12 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTENIMIENTO DE FORMATOS

Formato .......... =

TP01 21/05/96 QMFM 09:34:17

FOMCTR : INGRESO CONSULTA TRANSACCIONES NEW COPY

Tipo (E/S/A) ...... = Delimit. automatico =

E Entrada N (S/N)

Num. campos .............. Longitud copy ............ Relacion campos / Ver.PS/2 Rutinas Verific./ V.Listos Idioma ............. = E

= = = =

___ESTADO________ (P/D) = D Definitiva

2 42 No / No No / No CASTELLANO Formato modelo: FOMCTR

__________ SALIDA ________ Preformato de Pantalla ... = Preformato de Documento .. = Mapa para LOCAL .......... = ______ALTA_______ CICSUSER 20/05/96

/ / /

/ /

(STD / 4700 / 5935) (STD / Doc. / NLin) (PS/2 / 4700) Conexion Preform. = _____ULTIMA MODIF_____ __P.USO_ ___ULT.USO___ CICSUSER 20/05/96 12:19 21/05/96 21/05/96 FOTC

F2 Modificar F3 Alta F4 Limpiar F5 Campos F6 Baja F7 Preform

BORRA

Formato de entrada FOMCTR Campos del Formato 0001 OM12 ARQUITEC. PLATAFORMA 0100 CICSUSER LISTADO DE CAMPOS QCA0001 FIN DE DATOS P

SALTO FORMATO:

FOMCTR

TP01 21/05/96 QMCL 09:34:55

INGRESO CONSULTA TRANSACCIONES L

1:

2

CAMPO____LITERAL__________DELIM_ATT__LNG__TIP_RUTINA__VRUT_LIT4700_AYU 01 TRANSAC TRANSACCION 01 A 4 R N N 02 LIBRE LIBRE 02 A 20 O N N

F2 Mantto F3 Alta F4 AyAct F6 Relac 10 Mover F7 Re.Pag F8 Av.Pag Cl

122

Transacción FOTC 0001 OM12 0100 CICSUSER

ARQUITEC. PLATAFORMA MANTENIMIENTO DE TRANSACCIONES

Transaccion ..... = Idioma .......... = Aplicacion ...... = Programa ........ = Plan DB2 ........ = Formato/Mapa ent. = Codigo de ayuda.. = Longitud Commarea = Camb.Ses/Recuper. = Tipo (Trans/Conv) = Contable / Cajero = Tipos operacion.. = Inicio desde TERM = Inicio por Arquit.= PFs standard = Actualizar tecleo = Pintar fast-path = Pfs por Arquitec.= Tiene ayuda activa= F2 Modif F3 Alta F4

TP01 21/05/96 QMTM 09:33:50

FOTC : CONSULTA TRANSACCION FORMACION NEW COPY E CASTELLANO FO FORMACION __ESTADO_________ FO2CCTR (A/D) A Activada BNQMD __________ALTAMIRA___________ FOMCTR / Tipo Altamira.... = N (N/E/M) Entrada.......... = 0000 N / N (S/N):(S/N) ______INFORM.ADICIONAL_____ T (T/C) Transac. local .. = FOTC N : (S/N) : (A/B/ ) Documentos ...... = C (A-B-M-C-E-P-O) Diario Elec. .... = N (S/N) S (S/N) APB 4700 ........ = S (S/N) N (S/N) ______________STAMPS__________________ S (S/N) Cambio estado = 20/05/96 12:21 CICSUSE S (S/N) Alta ........ = 20/05/96 CICSUSE N (S/N) Ult.mod. .... = 20/05/96 12:21 CICSUSE N (S/N) Primer Uso .. = 21/05/96 N (S/N) Ultimo Uso .. = 21/05/96 Limpia F5 Frmto F6 Baja F8 Pfs. 10 Altam. CL Borra

Se debe tomar en cuenta que para informar los formatos en una transacción de tipo no conversacional, como en nuestro ejemplo, el proceso de inscripción se efectua manualmente, es decir no se utiliza la facilidad TSO QM Opcion 5 como se indicó previamente, para informar los formatos ya que no hay mapas BMS involucrados. Después de haber dado de alta los formatos, tenemos que generar una COPY para incluir en nuestro programa de aplicación a traves del comando TSO QM Opcion 3 tenemos como resultado las sgtes estructuras : ****************************************************************** * FOMCTR :FORMATO DE ENTRADA.INGRESO CONSULTA TRANSACCIONES NC= 2 * TRANSAC TRANSACCION 16 * * LIBRE LIBRE 23 * ****************************************************************** 01 FONCCTR. 05 CTR-RELLENO PIC X(012). 05 CTR-TRANSACL PIC S9(4) COMP. 05 CTR-TRANSACA PIC X(001). 05 CTR-TRANSAC PIC X(004). 05 CTR-LIBREL PIC S9(4) COMP. 05 CTR-LIBREA PIC X(001). 05 CTR-LIBRE PIC X(020). *

LONGITUD TOTAL DEL REGISTRO EN BYTES :

123

42

***************************************************************** * FOMCTR2 :FORMATO DE SALIDA .FORMATO DETALLE FORMACION NC= 3 * CODTRA CODIGO TRANSACCION 16 * * DESCRIP DESCR. TRANSACCION 23 * * FORMA FORMATO ASOCIADO 53 * ****************************************************************** 01 FONCCTR2. 05 TR2-RELLENO PIC X(012). 05 TR2-CODTRAL PIC S9(4) COMP. 05 TR2-CODTRAA PIC X(001). 05 TR2-CODTRA PIC X(004). 05 TR2-DESCRIPL PIC S9(4) COMP. 05 TR2-DESCRIPA PIC X(001). 05 TR2-DESCRIP PIC X(027). 05 TR2-CODTRAL PIC S9(4) COMP. 05 TR2-CODTRAA PIC X(001). 05 TR2-CODTRA PIC X(004). 05 TR2-DESCRIPL PIC S9(4) COMP. 05 TR2-DESCRIPA PIC X(001). 05 TR2-DESCRIP PIC X(027). 05 TR2-FORMAL PIC S9(4) COMP. 05 TR2-FORMAA PIC X(001). 05 TR2-FORMA PIC X(008). ****************************************************************** * * LONGITUD TOTAL DEL REGISTRO EN BYTES : 60 * * ******************************************************************

124

5.2.2 Análisis del fuente A continuación se reproduce el fuente de la transacción: * FO2CCTR: CONSULTA DE DATOS DE UNA TRANSACCION. FORMACION. ****************************************************************** * * * IDENTIFICATION DIVISION * * * ****************************************************************** IDENTIFICATION DIVISION. * PROGRAM-ID. FO2CCTR. AUTHOR. GRUPO ARQUITECTURA BC. DATE-WRITTEN. 21/05/96. ****************************************************************** * FO2CCTR * * ------* * * * ESTE PROGRAMA OFRECE INFORMACION GENERAL ACERCA DE LA * * TRANSACCION QUE SE PIDE POR PANTALLA. * * * * TABLAS DB2: * * * * NOMBRE E/S DESCRIPCION * * ------------ -----------------------------------* * FODTCCT S TABLA DE TRANSACCIONES DE FORMACION * * FODTDTA S TABLA DE DESCRIPCIONES DE FORMACION * * * ****************************************************************** * L O G D E M O D I F I C A C I O N E S * ****************************************************************** * AUTOR FECHA DESCRIPCION * * ------- ------- ---------------------------------------------- * * USERID DDMMMAA * * * * * ****************************************************************** * ****************************************************************** * * * ENVIRONMENT DIVISION * * * ****************************************************************** ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-3090. OBJECT-COMPUTER. IBM-3090. SPECIAL-NAMES. DECIMAL-POINT IS COMMA.

125

****************************************************************** * * * DATA DIVISION * * * ****************************************************************** DATA DIVISION. ****************************************************************** * * * WORKING-STORAGE SECTION * * * ****************************************************************** WORKING-STORAGE SECTION. ********** IDENTIFICADOR DE INICIO DE WORKING STORAGE

**********

01 LT-INICIO-WS. 05 LT-INICIO-W PIC X(40) VALUE '*** INICIO WORKING STORAGE (FO2CCTR) ***'.

/ *********************

SQLCA

************************************

EXEC SQL INCLUDE SQLCA END-EXEC. ********** DECLARES DE TABLAS DB2

******************************

EXEC SQL INCLUDE FOEDCCT END-EXEC. ********** COPYS COBOL DE TABLAS DB2

***************************

EXEC SQL INCLUDE FOECCCT END-EXEC. *************** COPYS COBOL ************************************ * 01 QGECABC-01. * COPY QGECABC. ****************************************************************** * * CONSTANTES * ****************************************************************** 01 C-CONSTANTES. 05 C-ASTERISCO PIC X(01) VALUE '*'. 05 C-SUBRAYA PIC X(01) VALUE '_'. 05 C-SPACE PIC X(01) VALUE ' '. 05 C-NROTRA PIC 9(02) VALUE 18. 05 C-ERROR-WRITEQ PIC X(20) VALUE 'ERROR CICS WRITEQ '. 05 C-ERROR-IGNORE PIC X(20) VALUE 'ERROR CICS IGNORE '. 05 C-ERROR-DELETEQ PIC X(20) VALUE 'ERROR CICS DELETEQ '. 05 C-FECHA-INICIAL PIC X(10) VALUE '0001-01-01'. *

126

****************************************************************** * * W-VARIABLES * ****************************************************************** * W-TRANSAC CODIGO DE TRANSACCION * W-CONTADOR PARA VERIFICAR CUANTOS FECTH SE HICIERON * W-NAMETS. NOMBRE DE LA COLA TS CON LOS DATOS DE SALIDA * W-DATOS-TS REGISTRO DE LA COLA TS * W-NOM-FORMATO NOMBRE DEL FORMATO ASOCIADO AL REGISTRO * W-COPY-BMS DATOS DEL REGISTRO PARA EL FORMATO * W-CABECERA-TS REGISTRO PARA LA CABECERA DEL AL COLA TS * W-NOM-CAB NOMBRE DEL FORMATO DE CABECERA * W-LONG-DATOS-TS LONGITUD DE LOS DATOS DEL REGISTRO TS * >> DOCUMENTAR LA NUEVAS VARIABLES * ****************************************************************** * 01 W-VARIABLES. 05 W-TRANSAC PIC X(4) VALUE SPACES. 05 W-CONTADOR PIC 9(2) VALUE ZERO. 05 W-NAMETS. 10 FILLER PIC X(4) VALUE '+DC1'. 10 W-TERM-TS PIC X(4) VALUE SPACES. * 05 W-DATOS-TS. 10 W-NOM-FORMATO PIC X(8) VALUE SPACES. 10 W-COPY-BMS PIC X(999) VALUE SPACES. 05 W-CABECERA-TS. 10 W-NOM-CAB PIC X(8) VALUE SPACES. * 05 W-LONG-DATOS-TS PIC S9(4) COMP VALUE ZEROES. ****************************************************************** * * INDICADORES * ****************************************************************** 01 W-SWITCH. * 05 SW-FIN-CURSOR PIC X(01) VALUE 'N'. 88 SI-FIN-CURSOR VALUE 'S'. 88 NO-FIN-CURSOR VALUE 'N'. 05 SW-PIDEN-VARIOS PIC X(01) VALUE 'N'. 88 SI-PIDEN-VARIOS VALUE 'S'. 88 NO-PIDEN-VARIOS VALUE 'N'. 05 SW-RELLENAR-CABECERA PIC X(01) VALUE 'S'. 88 SI-RELLENAR-CABECERA VALUE 'S'. 88 NO-RELLENAR-CABECERA VALUE 'N'. ********** COPY DE LA COLA DE SALIDA *********** COPY FONCCTR2. ********** IDENTIFICADOR DE FINAL DE WORKING STORAGE *********** 01 LT-FINAL-WS.

/

05 LT-FINAL-W PIC X(40) VALUE '*** FINAL WORKING STORAGE (FO2CCTR) ***'.

127

****************************************************************** * * * LINKAGE SECTION * * * ****************************************************************** LINKAGE SECTION. 01 DFHCOMMAREA. COPY QGECCAA. COPY FONCCTR. / ****************************************************************** * * * PROCEDURE DIVISION * * * ****************************************************************** PROCEDURE DIVISION. PERFORM 10000-INICIO. PERFORM 20000-PROCESO. PERFORM 30000-FINAL. / ****************************************************************** * * * 10000-INICIO * * * * EN ESTE PARRAFO SE DIRECCIONA LA PANTALLA DE ENTRADA, Y * * SE INICIALIZAN LAS VARIABLES DE LA COMMAREA DE LA ARQUITEC- * * TURA (CAA) CON LOS VALORES POR DEFECTO. * * * ****************************************************************** 10000-INICIO. EXEC CICS IGNORE CONDITION ERROR END-EXEC

* *

IF EIBRESP EQUAL DFHRESP(NORMAL) CONTINUE ELSE MOVE C-ERROR-IGNORE TO ABC-REFERENCIA PERFORM 999-ERROR-CICS END-IF SET ADDRESS OF FONCCTR

TO CAA-PTR-COPYIN

INITIALIZE QGECABC MOVE EIBTRMID TO W-TERM-TS PERFORM 11000-BORRAR-TS MOVE SPACES SET CAA-88-ACCION-TERMINAL

TO CAA-CODTRAN-SIG TO TRUE.

128

****************************************************************** * * * 11000-BORRAR-TS * * * * SE BORRA EL +DC1 PARA NO SACAR INFORMACIONES ERRONEAS DE * * POSIBLES EJECUCIONES ANTERIORES. * * * ****************************************************************** 11000-BORRAR-TS. EXEC CICS DELETEQ TS QUEUE(W-NAMETS) END-EXEC * IF EIBRESP EQUAL DFHRESP(NORMAL) OR DFHRESP(QIDERR) CONTINUE ELSE MOVE C-ERROR-DELETEQ TO ABC-REFERENCIA PERFORM 999-ERROR-CICS END-IF. ****************************************************************** * * * 20000-PROCESO * * * * VALIDACION DE LOS DATOS DE ENTRADA. * * * * ACCESO A LA TABLA DE TRANSACCIONES DE FORMACION. * * ESCRITURA DEL +DC1 * * * ****************************************************************** 20000-PROCESO. PERFORM 21000-VALIDAR-ENTRADA * IF NO-PIDEN-VARIOS PERFORM 22000-ACCEDER-FODTCCT PERFORM 23000-RELLENAR-FORMATO PERFORM 24000-ESCRIBIR-TS ELSE PERFORM 25000-DECLARAR-ABRIR-CURCCT PERFORM 26000-LEER-CURCCT PERFORM UNTIL SI-FIN-CURSOR OR (W-CONTADOR GREATER C-NROTRA) PERFORM 23000-RELLENAR-FORMATO PERFORM 24000-ESCRIBIR-TS PERFORM 26000-LEER-CURCCT END-PERFORM PERFORM 27000-CERRAR-CURCCT END-IF.

129

/ ****************************************************************** * * 21000-VALIDAR-ENTRADA * * * * SE VERIFICA QUE NO VENGAN LOW-VALUES EN TRANSACCION * * * * SE DETERMINA SI VIENE UN ASTERISCO EN LA TRANSACCION,ESO * * SIGNIFICA QUE ESTA SOLICITANDO CONSULTA DE VARIOS TRANXS * ****************************************************************** 21000-VALIDAR-ENTRADA. INSPECT CTR-TRANSAC REPLACING ALL LOW-VALUES BY C-SPACE IF CTR-TRANSAC EQUAL SPACES MOVE 'QME0015' TO CAA-COD-ERROR MOVE '@QM000011' TO CAA-VAR1-ERROR PERFORM 30000-FINAL END-IF MOVE CTR-TRANSAC TO W-TRANSAC INSPECT W-TRANSAC TALLYING W-CONTADOR FOR ALL C-ASTERISCO IF W-CONTADOR GREATER THAN 0 SET SI-PIDEN-VARIOS TO TRUE INSPECT W-TRANSAC REPLACING ALL C-ASTERISCO BY C-SPACE INSPECT W-TRANSAC REPLACING ALL C-SPACE BY C-SUBRAYA END-IF MOVE

ZERO

TO W-CONTADOR.

****************************************************************** * * * 22000-ACCEDER-FODTCCT * * * * SE SELECCIONA EN LA TABLA DE TRANSACCIONES EL REGISTRO DEL * * LA TRANSACCION * * * * SI NO EXISTE, SE INFORMA EL CORRESPONDIENTE CODIGO DE ERROR. * * * ****************************************************************** 22000-ACCEDER-FODTCCT.

*

EXEC SQL SELECT CCT_TRANID , CCT_DESCRIP , CCT_ENTRADA INTO :CCT-TRANID , :CCT-DESCRIP , :CCT-ENTRADA FROM FODTCCT WHERE CCT_TRANID = :W-TRANSAC END-EXEC EVALUATE SQLCODE WHEN 0 CONTINUE WHEN +100 MOVE 'QGE0044' TO CAA-COD-ERROR MOVE CTR-TRANSAC TO CAA-VAR1-ERROR PERFORM 30000-FINAL WHEN OTHER MOVE 'FODTCCT' TO ABC-OBJETO-ERROR PERFORM 9999-ABEND-DB2 END-EVALUATE.

/ ****************************************************************** * * * 23000-RELLENAR-FORMATO * * * * SE LLENA EL FORMATO CON LOS DATOS OBTENIDOS EN EL SELECT * * DEL PARRAFO 22000 * * * ****************************************************************** 23000-RELLENAR-FORMATO. MOVE CCT-TRANID TO TR2-CODTRA MOVE CCT-DESCRIP TO TR2-DESCRIP MOVE CCT-ENTRADA TO TR2-FORMA. ******************************************************************

130

*

* * * 24000-ESCRIBIR-TS * * * * SE GRABA LA COLS +DC1 CON LOS DATOS DE RELLENAR FORMATO * * SE GRABA LA CABECERA LA PRIMERA VEZ * * * ****************************************************************** 24000-ESCRIBIR-TS. IF SI-RELLENAR-CABECERA PERFORM 24000-GRABAR-CABECERA SET NO-RELLENAR-CABECERA TO TRUE END-IF. MOVE ZEROS TO W-LONG-DATOS-TS MOVE 'FOMCTR2' TO W-NOM-FORMATO MOVE FONCCTR2 TO W-COPY-BMS MOVE LENGTH OF FONCCTR2 TO W-LONG-DATOS-TS ADD 8 TO W-LONG-DATOS-TS EXEC CICS WRITEQ TS QUEUE(W-NAMETS) FROM(W-DATOS-TS) LENGTH(W-LONG-DATOS-TS) MAIN END-EXEC IF EIBRESP EQUAL DFHRESP(NORMAL) CONTINUE ELSE MOVE C-ERROR-WRITEQ TO ABC-REFERENCIA PERFORM 999-ERROR-CICS END-IF.

131

****************************************************************** * * * 24000-GRABAR-CABECERA * * * ****************************************************************** 24000-GRABAR-CABECERA. MOVE ZEROS TO W-LONG-DATOS-TS MOVE 'FOMCTR1' TO W-NOM-CAB. ADD 8 TO W-LONG-DATOS-TS EXEC CICS WRITEQ TS QUEUE(W-NAMETS) FROM(W-CABECERA-TS) LENGTH(W-LONG-DATOS-TS) MAIN END-EXEC IF EIBRESP EQUAL DFHRESP(NORMAL) CONTINUE ELSE MOVE C-ERROR-WRITEQ TO ABC-REFERENCIA PERFORM 999-ERROR-CICS END-IF. / ****************************************************************** * * * 25000-DECLARAR-ABRIR-CURCCT * * * * DECLARA UN CURSOR PARA ACCEDER A LAS TRANSACCIONES SELECC. * * * ****************************************************************** 25000-DECLARAR-ABRIR-CURCCT. * EXEC SQL DECLARE CURCCT CURSOR FOR SELECT CCT_TRANID , CCT_DESCRIP , CCT_ENTRADA FROM FODTCCT WHERE CCT_TRANID LIKE :W-TRANSAC * ORDER BY CCT_TRANID END-EXEC. * EXEC SQL OPEN CURCCT END-EXEC. * EVALUATE SQLCODE WHEN 0 CONTINUE WHEN OTHER MOVE 'OPEN FODTCCT' TO ABC-OBJETO-ERROR PERFORM 9999-ABEND-DB2 END-EVALUATE.

132

****************************************************************** * * * 26000-LEER-CURCCT * * * * FETCH DEL CURSOR QUE SE DECLARO PARA ACCEDER A LOS * * TRANSACCIONES DE UNA ENTIDAD/CENTRO. * * * ****************************************************************** 26000-LEER-CURCCT. * EXEC SQL FETCH CURCCT INTO :CCT-TRANID , :CCT-DESCRIP , :CCT-ENTRADA END-EXEC EVALUATE SQLCODE WHEN ZERO CONTINUE WHEN (+100) SET SI-FIN-CURSOR TO TRUE WHEN OTHER MOVE 'FETCH FODTCCT' TO ABC-OBJETO-ERROR PERFORM 9999-ABEND-DB2 END-EVALUATE. ADD

1

TO W-CONTADOR.

****************************************************************** * * * 27000-CERRAR-CURCCT * * * * CIERRA EL CURSOR QUE HABIAMOS DECLARADO. * * * ****************************************************************** 27000-CERRAR-CURCCT. * EXEC SQL CLOSE CURCCT END-EXEC. * EVALUATE SQLCODE WHEN ZERO CONTINUE WHEN OTHER MOVE 'CLOSE FODTCCT' TO ABC-OBJETO-ERROR PERFORM 9999-ABEND-DB2 END-EVALUATE.

133

/ ****************************************************************** * * * 9999-ABEND-DB2 * * * * SE LLAMA AL PROGRAMA QG1CABC PARA QUE ESCRIBA EN LA * * IMPRESORA DE SEGUIMIENTO E INSERTE UNA LINEA EN LA TABLA * * DE LOG, SIN ABENDAR. * * * ****************************************************************** 9999-ABEND-DB2. * MOVE 'S' TO ABC-ABEND MOVE 'FO2CCTR' TO ABC-PROGRAMA MOVE SQLCODE TO ABC-SQLCODE MOVE SQLERRM TO ABC-SQLERRM * EXEC CICS LINK PROGRAM ('QG1CABC') COMMAREA (QGECABC) END-EXEC * IF EIBRESP EQUAL DFHRESP(NORMAL) CONTINUE ELSE MOVE 'LINK QG1CABC' TO ABC-OBJETO-ERROR PERFORM 999-ERROR-CICS END-IF. / ****************************************************************** * * * 999-ERROR-CICS * * * * ERROR CICS NO CONTROLADO, SE LLAMA AL PROGRAMA QG1CABC * * PARA QUE ABENDE DESPUES DE MANDAR UN MENSAJE A LA IMPRESORA * * DE SEGUIMIENTO E INSERTAR UNA FILA EN LA TABLA DE LOG. * * * ****************************************************************** * 999-ERROR-CICS. * MOVE 'S' TO ABC-ABEND MOVE 'FO2CCTR' TO ABC-PROGRAMA MOVE EIBFN TO ABC-EIBFN MOVE EIBRCODE TO ABC-EIBRCODE MOVE EIBRSRCE TO ABC-EIBRSRCE MOVE EIBRESP TO ABC-EIBRESP1 MOVE EIBRESP2 TO ABC-EIBRESP2 * EXEC CICS LINK PROGRAM ('QG1CABC') COMMAREA (QGECABC) END-EXEC.

134

* / ****************************************************************** * * * 30000-FINAL * * * * INFORMAR LOS CAMPOS NECESARIOS EN LA QGECCAA PARA QUE LA * * ARQUITECTURA GESTIONE EL MENSAJE DE SALIDA. * * RETURN CICS * * * ****************************************************************** 30000-FINAL. PERFORM 31000-INFORMAR-CAA PERFORM 999-INFORMAR-ANALITICA EXEC CICS RETURN END-EXEC. / ****************************************************************** * * * 31000-INFORMAR-CAA * * * * SI VIENE DEL PROGRAMA SIN ERRORES DE INFORMA EL TIPO * * DE SALIDA A LA ARQUITECTURA PARA QUE LA GESTIONE * ****************************************************************** 31000-INFORMAR-CAA. IF CAA-COD-ERROR EQUAL SPACES MOVE '+DC1' TO CAA-DESTINO(1) MOVE 'P' TO CAA-IND-PANDOC(1) END-IF. / ****************************************************************** * * * 999-INFORMAR-ANALITICA * * * * SE INFORMAN LOS CAMPOS DEL SEGMENTO CAA-ANALITICA DE LA * * COMMAREA QGECCAA, CON LOS DATOS DE LA OPERACION QUE SERVIRAN * * A ANALITICA. * * * ****************************************************************** 999-INFORMAR-ANALITICA. * MOVE CAA-ENTIDAD TO CAA-ENTIDAD-ANA MOVE CAA-CENTRO-CONT TO CAA-CENTRO-ANA SET CAA-88-TIOPER-CONSULTA TO TRUE SET CAA-88-CONTABLE-NO TO TRUE.

135

5.2.3 Gestión del Journal y Totales La Arquitectura mantiene dos tablas que registran los movimientos contables que se producen en el proceso on-line diario, tanto en la divisa que se establece por defecto para la entidad como en aquellas otras con las que se opere en una sesión. Estas tablas son: * Tabla de Journal (QGDTJOU) * Tabla de Totales Contables (QGDTTOT). Para que la Arquitectura grabe la correspondiente fila de Journal, el programa de aplicación debe escribir una cola TS llamada '+TOTxxxx' (xxxx: código de terminal, es TERMINAL de la commarea de la Arquitectura -CAA-)

decir,

campo

con el siguiente contenido por fila (esta plantilla queda recogida en el manual técnico de la Arquitectura con el nombre QGDTJUA {copy QGECJUA}): * ENTIDAD: Código de la entidad contable en 4 caracteres. * CENTRO:

Código del centro contable en 4 caracteres.

* NETNAME: Código del terminal contable en red en 8 caracteres. * APLICACION: Código de la aplicación en 2 caracteres. (*) * SECUENCIA: Número de secuencia para cada aplicación. (*) *

IMPORTE: longitud.

En

formato

numérico

empaquetado

de

7

caracteres

de

* INDICADOR DEBE O HABER: Indicador de si se debe acumular al debe o al haber del total. * INDICADOR CAJA O COMPENSACION: Indicador de si se debe acumular a caja o compensación del total. * INDICADOR DE ACUMULAR TOTALES: Con valor 'S' o 'N', si se quiere que se acumule en totales las cantidades ('S') o sólamente quiere que se escriba el journal ('N'). Tiene 1 carácter de longitud. * PRODUCTO: Clave de producto asociado en 20 caracteres. * REFERENCIA: Referencia de la operación en la aplicación, en 20 caracteres. * MAS INFORMACION: Más información adicional de la operación en 20 caracteres. Para uso posterior por parte de las aplicaciones. * SUBCLASIFICACION CONTABLE: En 3 caracteres. * FECHA CONTABLE: Fecha contable de la aplicación en formato DB2 DDMM-AAAA. La Arquitectura validará que la fecha contable aquí informada coincide con la que está tratando la Arquitectura. * DATOS PROPIOS DE LA APLICACION: Información propia para que le sea grabada en la tabla de Journal por la Arquitectura. Puede tener entre 0 y 750 caracteres de longitud. (*)

La aplicacion + un número de secuencia constituye la clave del total contable. Si una aplicación desea que se acumulen totales, debe tener esta clave (aplicación + secuencia) dada de alta en la tabla de totales de referencia (QGDTRTO).

136

Para las aplicaciones que se definan como MULTIDIVISA, se deberán informar los campos necesarios de la siguiente manera: * IMPORTE: Se informará con un valor 0. * DATOS PROPIOS DE LA APLICACION: Dentro de este área de información propia de la aplicación se deberán incluir los valores siguientes: *

DIVISA: Código de la divisa en la que se ha hecho la operación. Se debe informar siempre aunque se haya realizado en la moneda por defecto de la entidad. Es de 3 posiciones alfanuméricas. * IMPORTE-DIV: Valor numérico de la operación en la divisa indicada. Es un campo empaquetado que recoge un número de 15 enteros y 2 decimales con signo. * El resto de la longitud del campo de datos propios se utilizará para lo que requiera la aplicación. Con posterioridad, la Arquitectura se encargará de hacer las transformaciones necesarias para grabar en la tabla del journal sólo esta información dentro del campo de datos propios, puesto que los otros valores utilizados (divisa e importe) se grabarán en los campos disponibles a tal efecto. Se pueden escribir en la cola TS +TOTXXXX tantos registros como se desee, resultando grabadas en el journal tantas filas como registros haya en la cola TS. La Arquitectura, antes de grabar el contenido de la cola TS en el Journal, valida que la operación sea contable (es decir, el indicador CONTABLE de la CAA tenga valor 'S'). Además, si la aplicación está definida como NO multidivisa, tomará como divisa de la operación la que se haya establecido por defecto para cada entidad. Si además de grabar en el Journal, la aplicación desea mantener sumarizados los totales, deberá poner el indicador de "acumular totales" de la cola TS con el valor 'S', y la Arquitectura acumulará en el total correspondiente de la tabla de Totales los importes y el número de operaciones, en la divisa de la operación. Debido al número de totales que se deben generar para cada entidad y para evitar problemas de bloqueos en las actualizaciones en cada operación contable, la tabla diaria de totales se preformatea para cada terminal y tipo de total en la cadena batch de Arquitectura, dejando preparados aquellos totales considerados como de preformateo estático en la divisa que se toma como defecto para la entidad. Durante la sesión contable se crearán aquellos totales que estén definidos como de creación dinámica, junto con todos los necesarios en las divisas distintas de la tomada por defecto con las que se vayan realizando operaciones en cada terminal. Asimismo, si se produce el alta de un nuevo terminal o un nuevo tipo de referencia de totales, los totales contables se irán creando a medida que se necesiten, independientemente de la divisa de la operación a realizar. Por último indicar que, en diálogos conversacionales, la Arquitectura grabará Journal y Totales solamente cuando la acción que devuelve el programa de aplicación sea "Terminal".

137

6. Cambio de sesión 6.1 Cambio de sesión Se denomina cambio de sesión al proceso en el que se realiza el cambio de fecha contable en una Entidad. El cambio de sesión en la Arquitectura se realiza de manera centralizada para todas las aplicaciones, y se lleva a cabo mediante una transacción de cambio de sesión (de código QGCS). En esta transacción de cambio de sesión, se van llamando a todas las aplicaciones, para que se percaten de que se está realizando el cambio de fecha contable, y puedan llevar a cabo cualquier tipo de procesos que crean necesarios en dicha situación. Tiene como campo de entrada la entidad en la que se quiere realizar el cambio de sesión (que si no se informa se tomará la asociada al terminal desde el que se ejecuta). Para ello, la Arquitectura tiene una tabla llamada "de cambio de sesión" (QGDTCSE), que contiene la información de todos los programas o transacciones a los que se debe llamar durante la transacción QGCS. El cambio de sesión consta de dos fases: - FASE PRELIMINAR (1): En la cual se realiza cualquier tipo de verificación para poder continuar con el cambio de sesión. - FASE FINAL (2): En la cual se realiza el cambio de fecha, y todos los dem s cambios que puedan venir asociados con este cambio de fecha. Durante el cambio de sesión, la transacción QGCS irá llamando a los procesos asociados a la fase 1 (preliminar), en el orden marcado en la tabla de cambio de sesión. Una vez llamados a todos ellos, y si no ha habido ninguna incidencia, se procede a llamar a todos los procesos asociados a la fase 2 (final). Si todo ha terminado correctamente, se da por terminado el cambio de sesión. La información de los procesos a ser llamados en las distintas fases, se encuentra recogida en la tabla de cambio de sesión. Esta tabla contiene: -

ENTIDAD: Entidad asociada al proceso. En el cambio de sesión solamente se llamará a los procesos asociados a la entidad en que se está realizando el cambio. Si toma el valor '0000', querrá decir que el proceso debe ser llamado en cualquier entidad.

- FASE: Fase en que será llamado el proceso (valor 1/2). - ORDEN: Orden en que será llamado el proceso dentro de la fase. - CODIGO: Nombre del proceso. Puede ser: . Un programa, en cuyo caso será llamado mediante CICS LINK con una commarea que veremos a continuación. . Una transacción, en cuyo caso será arrancada por CICS START. - INDICADOR PROGRAMA/TRANSACCION: Indica si el código anterior es un programa o una transacción (valores P/T).

138

- INDICADOR ACTIVO: Indica si el proceso está activo o no (valores S/N). Si el proceso no se encuentra activo, no se le llamará en el cambio de sesión. - CICS: Nombre del Cics que se verificará que está activo antes de llamar al código correspondiente (transacción o programa). De esta manera, si el contenido de la tabla de cambio de sesión es el siguiente: ENTIDAD 0000 2103 2103 2058 0000 2103 2103 2103 2103

FASE 1 1 1 1 2 2 2 2 2

ORDEN 01 02 03 04 01 02 03 04 05

CODIGO PR/TR QC2CCSS BG2CCSS GC2CCSS XG2CCSS QC2CCSS BG2CCSS MG74 IRCS XGCS

P P P P P P T T T

ACTIVO CICS S S N S S N S N S

CC3A

Si se realiza el cambio de sesión de la entidad 2103, la transacción de cambio de sesión: a.-

Entrará en la fase 1 (preliminar), llamando a los procesos asociados a la fase 1, en el orden indicado, que se encuentren activos, para la entidad en la que se está cambiando la sesión: 1. Llamará mediante CICS LINK al programa QC2CCSS, ya que está activo y está asociado a la entidad '0000' (todas las entidades). Le pasará la commarea QGECCSS (que más adelante comentaremos). Si este programa no devuelve error: 2. Llamará mediante CICS LINK al programa BG2CCSS, ya que está asociado a la entidad 2103. Si este programa no devuelve error: 3. Dará por terminada la fase preliminar, ya que el proceso de orden 4 en la fase 1 no está activo, y el de orden 5 no está asociado a la entidad 2103.

b.-

Entrará en la fase 2 (final), llamando a los procesos asociados a la fase 2, en el orden indicado, que se encuentren activos, para la entidad en la que se está cambiando la sesión: 1. Llamará mediante CICS LINK al programa QC2CCSS, ya que está activo y está asociado a la entidad '0000'. Si no le devuelve error, y ya que el proceso siguiente (programa BG2CCSS) no esta activo: 2. Se verificará que el cics CC3A está activo, ya que así lo indica el registro del siguiente proceso. A continuación, se realizará un START de la transacción MG74. 3. Por último, se realizará un START de la transacción XGCS, con lo que se dará por terminado el cambio de sesión.

Siempre que algún programa de los llamados devuelva un realizará un ROLLBACK para deshacer los posibles cambios programa anterior hubiera hecho.

error, se que algún

En el caso de que los procesos sean programas, se les pasará la commarea QGECCSS, que contiene los campos:

139

FASE: Fase en la que se encuentra el cambio de sesión (puede se 1 ó 2). FECHA CONTABLE: Fecha contable actual (es decir, de antes del cambio de sesión). FECHA CONTABLE SIGUIENTE: Fecha contable que va a entrar como actual después del cambio de sesión. CODIGO DE ERROR: Código de error que devolverá el programa en caso de que haya ocurrido alguna incidencia. Si algún programa devuelve un código de error en este campo, se terminará el proceso de cambio de sesión, mostrando este error por pantalla. ENTIDAD ASOCIADA: Entidad en la que se está haciendo el cambio de sesión. TIMESTAMP DE INICIO: Timestamp del inicio del cambio de sesión. En el caso de que los procesos sean transacciones, se realizará un START de la transacción correspondiente, pasándole la siguiente información, que le llegará como pantalla de entrada. Por lo tanto, la transacción, si se ejecuta bajo la Arquitectura, deberá tener el formato de entrada asociado llamado QGRMDST. Los campos de esta pantalla son: FASE: Si se encuentra en la fase 1 ó 2 (preliminar o final). FECHA CONTABLE: Fecha contable actual (es decir, de antes del cambio de sesión). FECHA CONTABLE SIGUIENTE: Fecha contable que va a entrar como actual después del cambio de sesión. ENTIDAD ASOCIADA: Entidad en la que se está haciendo el cambio de sesión. Estos datos no contienen el código de error, puesto que una vez arrancada la transacción, ya no le volverá control al cambio de sesión. Por este motivo, es aconsejable que si se desea que se interrumpa el cambio de sesión por algún error que se pueda producir, se asocie un programa, y no una transacción.

140

6.2 Cambio de sesión de la Arquitectura La Arquitectura, como cualquier otra aplicación, realiza su propio cambio de sesión. Para ello, tiene un programa, llamado QC2CCSS, que es llamado tanto en fase preliminar como en fase final. Este proceso se debe llamar siempre como primero de la fase preliminar y como primero de la fase final, siendo los demás procesos a llamar dependientes de la instalación, y de las necesidades del cliente, pudiendo llegar incluso a no haber ningún otro. Los procesos que se llevan a cabo son: * Cambio de la fecha contable: Actualiza la fecha contable del dia y la del dia siguiente. * Cambio de las tablas Flip-Flop: Para las tablas que tienen varias versiones (Tecleos, Autorizaciones, Journal y Totales), cambia la versión que figura como vacía después de verificar que efectivamente las tablas están inicializadas. El cambio de sesión de Arquitectura consiste en lo siguiente: •

EN FASE PRELIMINAR se realizan las siguientes verificaciones:

La Arquitectura realiza las siguientes verificaciones para garantizar que se haga una y sólo una vez el cambio de sesión en el dia: . Si la fecha contable que figura en las tablas de la Arquitectura es inferior a la fecha de dia, no se ejecuta ninguna transacción: así se evita que no se realice el cambio de sesión un dia. Esto es válido sólo para el entorno de producción y se aplica a todas las transacciones excepto las propias de cambio de sesión (QGCS y QGCF) para poder ejecutar un cambio después de las 12 de la noche si con anterioridad no hubiera sido posible realizarlo. . Si la fecha contable es la misma que la del dia, y es antes de la hora puesta como mínima (HORACS) a la hora de definir los parámetros on-line del entorno de cada entidad, tampoco permite el cambio de sesión. . Si es después de esta hora mínima indicada, y el TIMESTAMP del último cambio es el dia de hoy, no permite realizar el cambio de sesión en el entorno de producción. Con estas dos últimas verificaciones, se impide que se cambie de sesión dos veces el mismo dia. Aparte de estas verificaciones, la Arquitectura comprobará, cuando actualice la tabla de Totales, que la fecha contable que figura en dicha tabla como la del día coincida con la de la tabla de control del sistema (QGDTSWA). Si no ocurre así, es que no se ha realizado el proceso de descarga de las tablas diarias del dia anterior después del cambio de sesión, y no se podrá ejecutar ninguna transacción que actualice la tabla de Totales hasta que no se realice esta operación (ejecución completa correcta de la cadena batch de Arquitectura del día anterior). •

EN FASE FINAL se realiza: . validaciones concretas que pudieron ser especificadas para esta fase (fase de ejecución).

141

. cambio de la fecha contable y de la fecha contable siguiente en la tabla de control de sesión (QGDTSWA). .

flip-flop totales.

de

las

tablas

de

tecleos,

.

actualización del estado de las QGDTAPL y las colas TS asociadas.

autorizaciones,

aplicaciones

sobre

journal la

y

tabla

. borrado de colas TS de terminales. . nueva copia a la cola TS de control del sistema en todos los CICS controlados por la Arquitectura. 101 201 202 203



QC2CCSS QC2CCSS QG2CCSA QC2CTRM

P P P P ______ PRG/TR

N N N N ______ START

S S S S _______ TERM-ACT

OPERACIONES CON LAS TABLAS DIARIAS DE ARQUITECTURA: La Arquitectura ofrece una serie de utilidades contables y de seguridad basándose en la información recogida en ciertas tablas. Estas tablas tienen una vigencia de un día, por lo que el proceso cambio de sesión contable implica su preformateo. Los grupos tablas que se encuentran en esta situación son las Autorizaciones (A y B), Tecleos (A y B), totales (A,B y C) Journal (A,B y C).

de de de y

En cada momento existirá una tabla por grupo activa (esta información está presente en la tabla de control del sistema QGDTSWA y es consultable por la opción 9 del menú). Esta tabla recibe el nombre de TABLA ACTIVA y todos los procesos que necesiten una tabla de su grupo actuarán contra ella durante todo el dia contable. La TABLA VACIA es una tabla preformateada, lista para pasar a ser la nueva tabla activa cuando se ejecute con éxito la transacción QGCS. Los grupos de tablas asociados al JOURNAL y a TOTALES tienen además otra tabla mas: la tabla de AYER, en la que aparecen los datos correspondientes a la fecha contable inmediatamente anterior. Supongamos que la situación actual es: FECHA CONTABLE: 12/07/95 FECHA CONTABLE SIG: 13/07/95 TECLEOS TOTALES JOURNAL AUTORIZACIONES

ACTIVA B B C B

Ejecutamos la transacción (intercambio) de tablas:

Miércoles Jueves AYER

VACIA A C A A

A B

QGCS

FECHA CONTABLE: 13/07/95 FECHA CONTABLE SIG: 14/07/95

142

y

se

Jueves Viernes

efectúa

el

FLIP/FLOP

TECLEOS TOTALES JOURNAL AUTORIZACIONES

ACTIVA A C A A

AYER B C

VACIA A A B B

Donde: . La tabla activa pasa a ser la de Ayer o la Vacía (dependiendo del número de tablas asociado al grupo). . La tabla vacía pasa a ser la tabla activa . La tabla de ayer pasa a ser la tabla vacía Nota: La tabla marcada como vacía seguirá teniendo datos hasta que pasen las cadenas de cambio de sesión, que son las que realmente efectúan el formateo.

143

7. Preguntas y Respuestas 8. Ejercicios 1. 2. 3. 4.

Menú. Inicio Conversación. Listado. Selección Múltiple en Conversación. Mantenimiento. Selección Simple. Transaccional.

144

8. Anexos

145

A.1. Generación de Formatos y Copys Altamira

CONVERSACIONAL

TRANSACCIONAL

Si es Formato de Salida

FUENTE BMS

CREACIÓN DEL PREFORMATO CON/SIN LINEAS

COMPILACIÓN FORMATO

COPY (COBOL)

LOAD (CICS) TSO QM

TSO QM

FORMATO

Opcion: 5 Clase: D Parametro: Copy Librería : ...MAPCPY

COPY COBOL

Delimitador Automatico: S Estado: D Tipo: A

PREFIJAR COPY COBOL

147

QM Opcion: 4

QM Opcion: 3

Opcion: 3 Clase: D Parametro: Formato Librería : ...COPYS

A.2. Estados Inicio / Continuación / Confirmación

PANTALLA TERMINAL

MENU

FO

PROGRAMA APLICATIVO

MNU I

ARQUITEC.

INICIO

Arq

MENU

MENU

MNU C

LST I

Arq

LST

Arq

Arq GP

LST

LST

LST C

MTO I

Arq

MNT

MNT

MNT

MNT C

Arq

Arq

MNT X

Arq

VARIABLES CODTRAN-SIG ESTADO ACCION CADENA TIPO-SALIDA

CODTRAN CONTINUACION TERMINAL

'LST' INICIO PROGRAMA INICIO

CODTRAN-SIG ESTADO ACCION CADENA

CODTRAN-SIG ESTADO ACCION CADENA

CODTRAN-SIG ESTADO ACCION CADENA

CODTRAN CONTIN TERMINAL PAGINACION

'MTO' INICIO PROGRAMA AÑADIR

CODTRAN CONTINUACION TERMINAL

SAME CONFIRMACION TERMINAL

'MTO' INICIO PROGRAMA AÑADIR

SAME CONTINUACION TERMINAL

SAME CONTINUACIÓN TERMINAL

SAME CONTINUACION TERMINAL

149

MNT

SAME CONTINUACION TERMINAL

Arq

Arq

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF