altamira

149

Upload: darnarus-infferno

Post on 22-Oct-2014

1.380 views

Category:

Documents


18 download

TRANSCRIPT

Page 1: Altamira

������������� ���������� ������������ ��������������������������

� � �����������

Page 2: Altamira

������������� ������������ ��� � � � ����������

�����2

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

Page 3: Altamira

������������� ������������ ��� � � � ����������

�����3

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

Page 4: Altamira

������������� ������������ ��� � � � ����������

�����4

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.

Page 5: Altamira

������������� ������������ ��� � � � ����������

�����5

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 on-line. 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 de entrada a la aplicación consta de los siguientes segmentos:

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 de características del mensaje de entrada a la aplicación.

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 de salida de la aplicación consta de los siguientes segmentos:

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.

Page 6: Altamira

������������� ������������ ��� � � � ����������

�����6

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: Código del terminal contable que realiza la operación.

-FECHA-CONT: Fecha contable asociada a la operación en formato AAAAMMDD.

-FECHA-CONT2: Fecha contable asociada a la operación en formato AAAA-MM-DD.

-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 del terminal en red físico que realiza la operación.

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

-USERID: Usuario identificado en CICS.

Page 7: Altamira

������������� ������������ ��� � � � ����������

�����7

-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': on-line 'A': autorización 'T': teledisco 'F': 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': Activa 'D': Desactiva 'C': En cambio de sesión 'R': 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.

Page 8: Altamira

������������� ������������ ��� � � � ����������

�����8

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.

Page 9: Altamira

������������� ������������ ��� � � � ����������

�����9

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 de error identificativo del motivo de la autorización.

-SITUACION-AUT: Situación por la que se está autorizando la operación.

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: Importe total de la operación pendiente de autorización.

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

Page 10: Altamira

������������� ������������ ��� � � � ����������

�����10

2.3.2 DATOS CONVERSACION ENTRADA/SALIDA.

Información utilizada en los programas conversacionales. Sirve para controlar el flujo de la conversación. Consta de los campos:

-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 la

transacción estando en el terminal la pantalla propia de dicha transacción, por lo tanto son válidos los datos de entrada tecleados desde el terminal como entrada a la transacción. Dichos datos entran en formato BMS en la dirección de memoria indicada en el campo PTR-COPYIN.

'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 que contiene la commarea entre programas de aplicación.

Page 11: Altamira

������������� ������������ ��� � � � ����������

�����11

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.

Page 12: Altamira

������������� ������������ ��� � � � ����������

�����12

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' ¦ <--------------+<--------------+<--------------+<--------------+ ¦MENU¦ ¦TRN2¦ ¦TRN3¦ ¦TRN4¦ --------->+-------------->+-------------->+-------------->+----+ 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.

Page 13: Altamira

������������� ������������ ��� � � � ����������

�����13

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.

Page 14: Altamira

������������� ������������ ��� � � � ����������

�����14

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 III.6.Mantenimiento de errores y avisos).

-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 multi-idioma. 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.

Page 15: Altamira

������������� ������������ ��� � � � ����������

�����15

-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 tipos de salidas: la salida estándar, y la salida no estándar. 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

Page 16: Altamira

������������� ������������ ��� � � � ����������

�����16

-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 del impreso a introducir en la impresora financiera. -IDIOMA: Código del idioma en el que se van a imprimir los datos de la salida no estándar.

Page 17: Altamira

������������� ������������ ��� � � � ����������

�����17

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 TIPO-SALIDA 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'.

Page 18: Altamira

������������� ������������ ��� � � � ����������

�����18

-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).

Page 19: Altamira

������������� ������������ ��� � � � ����������

�����19

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': Alta 'B': Baja 'M': Modificación 'C': Consulta 'E': Edición 'P': Petición al batch 'O': 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.

Page 20: Altamira

������������� ������������ ��� � � � ����������

�����20

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: Objeto DB2 (Tabla, índice.) donde se produjo el error.

-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. Es el contenido de la variable EIBRSRCE del grupo DFHEIBLK.

-EIBRCODE: Código de respuesta de CICS. Es el contenido de la variable EIBRCODE del grupo DFHEIBLK.

-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.

Page 21: Altamira

������������� ������������ ��� � � � ����������

�����21

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.

Page 22: Altamira

������������� ������������ ��� � � � ����������

�����22

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.

Page 23: Altamira

������������� ������������ ��� � � � ����������

�����23

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 planes DB2 de las aplicaciones, deben figurar los siguientes DBRM's:

- QC2CSQ1

Page 24: Altamira

������������� ������������ ��� � � � ����������

�����24

- QC2CSQ2 - QC2CFTO - QC2CATL (Si se utilizan literales de error/aviso multi-idioma) - QC2CHLP (En conversaciones que utilicen la ayuda de

transacción) - QC2CHLC (En conversaciones que utilicen la ayuda activa) (*) - QC2CREA (En conversaciones, para suspender una conversación) - QC2CAUT (En conversaciones, cuando se pide autorización por

Arquitectura Extendida) - QC2CAUS (En conversaciones, cuando se pide autorización por

Arquitectura Estándar) - QC2CSQ3 (Si alguna transacción del plan es de tipo Estándar) - QG2CTLD (Si se utiliza el teledisco) - QC2CLIS (Si utiliza listados dinámicos de tablas) - QC2CIMP (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.

Page 25: Altamira

������������� ������������ ��� � � � ����������

�����25

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 ARQUITEC. PLATAFORMA TP01 16/05/96 0100 CICSUSER MANTENIMIENTO DE APLICACIONES QMAM 07:54:09 NEW COPY Codigo Aplicacion .. = FO Descripcion en 20 .. = FORMACION Descripcion en 30 .. = FORMACION ESTADO (A/D/C) ..... = A Activada Cambio Sesion Autom. = N (S/N) Multidivisa .........= S (S/N) Aplicacion Altamira. = FO Idioma ............ = E CASTELLANO Origen aplic.(P/O) ..= P 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 _____________________________________________________________________

Page 26: Altamira

������������� ������������ ��� � � � ����������

�����26

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 :

Page 27: Altamira

������������� ������������ ��� � � � ����������

�����27

01 FORMTMA. 02 FILLER PIC X(12). 02 TRANIDL COMP PIC S9(4). 02 TRANIDF PICTURE X. 02 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 ..... = : NEW COPY Idioma........... = Aplicacion ...... = ________ESTADO_________ Programa ........ = (A/D) Plan DB2 ........ = __________ALTAMIRA___________ Formato/Mapa ent. = / Tipo Altamira.... = (N/E/M) Codigo de ayuda.. = Entrada.......... = Longitud Commarea = Camb.Ses/Recuper. = / (S/N):(S/N) ______INFORM.ADICIONAL_____ Tipo (Trans/Conv) = (T/C) Transac. local .. = Contable / Cajero = :(S/N):(A/B/ ) Documentos ...... = Tipos operacion.. = (A-B-M-C-E-P-O) Diario Elec. .... = (S/N) Inicio desde TERM = (S/N) APB 4700 ........ = (S/N) Inicio por Arquit.= (S/N)_______________STAMPS__________________ PFs standard = (S/N) Cambio estado = Actualizar tecleo = (S/N) Alta ........ = Pintar fast-path = (S/N) Ult.mod. .... = Pfs por Arquitec.= (S/N) Primer Uso .. =

Page 28: Altamira

������������� ������������ ��� � � � ����������

�����28

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 <- 1 Descarga de tablas de desarrollo en secuenciales. 2 Comparacion de tablas de desarrollo/produccion. 3 Generacion copys COBOL desde la tabla de formatos. 4 Generacion copys PLI desde la tabla de formatos. 5 Generacion de formatos a partir de BMS ensamblado. 6 Generacion automatica de tablas APB del 4700. 7 Carga automatica de la tabla de literales 4700. 8 Listado informativo de transacciones. CLASE ===> D Clase de salida asignada al proyecto: A - Z . TABLA ===> Iniciales de la tabla (necesario para opcion 2 ). Valores posibles tabla: CCT,PFM,FDF,ERR,HLP. PARAMETRO ===> FORMTMA Clave deseada (Neces.para opcion 3,4,5,8 ). LIBRERIA ===> MBVD.FOA.MAPCPY (Neces.para opcion 3,4,5 ). Pulse PF3 para salir de las utilidades de arquitectura.

Page 29: Altamira

������������� ������������ ��� � � � ����������

�����29

Este formato se crea como provisional, y antes de ser usado deberá ser puesto como Definitivo. 0001 AL14 ARQUITEC. PLATAFORMA TP01 16/05/96 0100 CICSUSER MANTENIMIENTO DE FORMATOS QMFM 23:58:35 Formato ........... = FORMTMA : MATENIMIENTO FORMACION NEW COPY Tipo (E/S/A) ...... = A Entrada/Salida Delimit. automatico = S (S/N) ________ESTADO________ (P/D) = P Definitiva Num. campos .............. = 45 Longitud copy ............ = 392 Relacion campos / Ver.PS/2 = No / No Rutinas Verific./ V.Listos = No / No Idioma ............. = E CASTELLANO Formato modelo: FORMTMA __________ SALIDA ________ Preformato de Pantalla ... = / / (STD / 4700 / 5935) Preformato de Documento .. = / / (STD / Doc. / NLin) Mapa para LOCAL .......... = / (PS/2 / 4700) Conexion Preform. = ______ALTA_______ _____ULTIMA MODIF______ __P.USO_ ___ULT.USO___ QG4CCHK 13/05/96 CICSUSER 13/05/96 22:43 13/05/96 13/05/96 FOTM F2 Modificar F3 Alta F4 Limpiar F5 Campos F6 Baja F7 Prefm BORRA Salir

Page 30: Altamira

������������� ������������ ��� � � � ����������

�����30

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.

Page 31: Altamira

������������� ������������ ��� � � � ����������

�����31

01 FORMTMA. 02 FILLER PIC X(12). 02 TMA-TRANIDL COMP PIC S9(4). 02 TMA-TRANIDF PICTURE X. 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).

Page 32: Altamira

������������� ������������ ��� � � � ����������

�����32

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 ARQUITEC. PLATAFORMA TP01 19/05/96 0100 CICSUSER MANTENIMIENTO DE TRANSACCIONES QMTM 22:32:34 Transaccion ..... = FO : MENU DE FORMACION NEW COPY Idioma .......... = E CASTELLANO Aplicacion ...... = FO FORMACION ________ESTADO_________ Programa ........ = FO1CMNU (A/D) A Activada Plan DB2 ........ = BNQMD __________ALTAMIRA___________ Formato/Mapa ent. = FORMMNU / FORMMNU Tipo Altamira.... = N (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.. = O (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.= N (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. .... = 13/05/96 21:18 CICSUSER Pfs por Arquitec.= S (S/N) Primer Uso .. = Tiene ayuda activa= N (S/N) Ultimo Uso .. = F2 Modif F3 Alta F4 Limpia F5 Frmto. F6 Baja F8 Pfs.10 Altam.CL Borra

Page 33: Altamira

������������� ������������ ��� � � � ����������

�����33

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 TP01 19/05/96 0100 CICSUSER LISTADO DE TECLAS DE FUNCION QMLF 23:05:49 QCA0001 FIN DE DATOS P SALTO LISTADO DE PFS DE LA TRANSACCION PE11 L 1: 9 C 1: 90 _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 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 ARQUITEC. PLATAFORMA TP01 19/05/96 0100 CICSUSER MANTTO. DE TECLAS DE FUNCION QMMF 23:14:01 Transaccion .... = PE11 : MANTENIMIENTO DE DATOS BASICOS NEW COPY PF......... = F2 Literal.... = MODIFI Descripcion = MODIFI Idioma .... = 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 F6 Baja BORRA Salir

Page 34: Altamira

������������� ������������ ��� � � � ����������

�����34

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 ARQUITEC. PLATAFORMA TP01 19/05/96 0100 CICSUSER LISTADO DE ERRORES/AVISOS QMEL 23:34:54 P SALTO 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 ARQUITEC. PLATAFORMA TP01 19/05/96 0100 CICSUSER MANTENIMIENTO DE ERRORES/AVISOS QMEM 23:38:57 Codigo de Mensaje .. = BGA0018 AVISO / CUENTAS PERSONALES Idioma ............. = E CASTELLANO Variable 1 - Col/Lng = / Utilizar caracter @ en mensaje asociado Variable 2 - Col/Lng = / para indicar parte variable. __________________________MENSAJE ASOCIADO____________________________ BORRADA INFORMACION TABLA DE COND.TIPOS.INTERES. ACTUALIZADA TABLA AUX. ________________________INFORMACION ADICIONAL_________________________ _______ALTA_______ _______ULTIMA MODIF______ CORITE1 23/04/91 CORITE1 08/10/93 16:59 F2 Modificar F3 Alta F4 Limpiar F6 Baja BORRA Salir

Page 35: Altamira

������������� ������������ ��� � � � ����������

�����35

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.

Page 36: Altamira

������������� ������������ ��� � � � ����������

�����36

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.

Page 37: Altamira

������������� ������������ ��� � � � ����������

�����37

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 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTENIMIENTO DE TRANSACCIONES 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 F8 Pfs.10 Altam. CL Borra

Page 38: Altamira

������������� ������������ ��� � � � ����������

�����38

Formatos 0001 OM12 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTENIMIENTO DE FORMATOS QMFM 09:22:42 Formato ........ = FORMMNU : MENU DE FORMACION NEW COPY 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 / 4700 / 5935) Preformato de Documento .. = / / (STD / Doc. / NLin) Mapa para LOCAL .......... = / (PS/2 / 4700) Conexion Preform. = ______ALTA_______ ____ULTIMA MODIF______ __P.USO_ ___ULT.USO___ QG4CCHK 02/05/96 CICSUSER 20/05/96 09:00 03/05/96 21/05/96 FO F2 Modificar F3 Alta F4 Limp F5 Campos F6 Baja F7 Preform BORRA Salir Campos 0001 OM12 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER LISTADO DE CAMPOS QMCL 09:23:39 QCA0001 FIN DE DATOS P SALTO FORMATO: FORMMNU MENU DE FORMACION 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

Page 39: Altamira

������������� ������������ ��� � � � ����������

�����39

Teclas de Función 0001 OM12 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER LISTADO DE TECLAS DE FUNCION QMLF 09:24:39 QCA0001 FIN DE DATOS P SALTO LISTADO DE PFS DE LA TRANSACCION FO L 1: 3 C 1: 90 _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

Page 40: Altamira

������������� ������������ ��� � � � ����������

�����40

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), X INITIAL='4' DFHMDF POS=(05,27),LENGTH=11,ATTRB=(NORM,PROT), X INITIAL='Preformatos' DFHMDF POS=(05,68),LENGTH=4,ATTRB=(NORM,PROT), X INITIAL='(01)'

Page 41: Altamira

������������� ������������ ��� � � � ����������

�����41

* DFHMDF POS=(06,14),LENGTH=1,ATTRB=(NORM,PROT), X INITIAL='5' DFHMDF POS=(06,27),LENGTH=16,ATTRB=(NORM,PROT), X INITIAL='Errores y Avisos' DFHMDF POS=(06,68),LENGTH=4,ATTRB=(NORM,PROT), X INITIAL='(01)' * DFHMDF POS=(07,14),LENGTH=1,ATTRB=(NORM,PROT), X INITIAL='6' DFHMDF POS=(07,27),LENGTH=17,ATTRB=(NORM,PROT), X INITIAL='Totales contables' DFHMDF POS=(07,68),LENGTH=4,ATTRB=(NORM,PROT), X INITIAL='(01)' * DFHMDF POS=(08,14),LENGTH=1,ATTRB=(NORM,PROT), X INITIAL='7' DFHMDF POS=(08,27),LENGTH=23,ATTRB=(NORM,PROT), X INITIAL='Ayudas de Transacciones' DFHMDF POS=(08,68),LENGTH=4,ATTRB=(NORM,PROT), X INITIAL='(01)' * DFHMDF POS=(09,14),LENGTH=1,ATTRB=(NORM,PROT), X INITIAL='8' DFHMDF POS=(09,27),LENGTH=10,ATTRB=(NORM,PROT), X INITIAL='Terminales' DFHMDF POS=(09,68),LENGTH=4,ATTRB=(NORM,PROT), X INITIAL='(01)' * DFHMDF POS=(10,14),LENGTH=1,ATTRB=(NORM,PROT), X INITIAL='9' DFHMDF POS=(10,27),LENGTH=27,ATTRB=(NORM,PROT), X INITIAL='Control del Sistema ' * DFHMDF POS=(11,13),LENGTH=2,ATTRB=(NORM,PROT), X INITIAL='10' DFHMDF POS=(11,27),LENGTH=27,ATTRB=(NORM,PROT), X INITIAL='Distribucion Teledisco ' DFHMDF POS=(11,68),LENGTH=4,ATTRB=(NORM,PROT), X INITIAL='(01)' * DFHMDF POS=(12,13),LENGTH=2,ATTRB=(NORM,PROT), X INITIAL='11' DFHMDF POS=(12,27),LENGTH=17,ATTRB=(NORM,PROT), X INITIAL='Menu de Seguridad' * DFHMDF POS=(13,13),LENGTH=2,ATTRB=(NORM,PROT), X INITIAL='12' DFHMDF POS=(13,27),LENGTH=27,ATTRB=(NORM,PROT), X INITIAL='Tabla de listados de tablas' * DFHMDF POS=(14,13),LENGTH=2,ATTRB=(NORM,PROT), X INITIAL='13' DFHMDF POS=(14,27),LENGTH=27,ATTRB=(NORM,PROT), X INITIAL='Tabla de Cambio de Sesion ' * DFHMDF POS=(15,13),LENGTH=2,ATTRB=(NORM,PROT), X INITIAL='14' DFHMDF POS=(15,27),LENGTH=14,ATTRB=(NORM,PROT), X INITIAL='Otros Procesos'

Page 42: Altamira

������������� ������������ ��� � � � ����������

�����42

* DFHMDF POS=(17,27),LENGTH=09,ATTRB=(NORM,PROT), X INITIAL='OPCION =' * OPCION DFHMDF POS=(17,37),LENGTH=2,ATTRB=(BRT,UNPROT,NUM,IC), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(17,40),LENGTH=1,ATTRB=ASKIP * DFHMDF POS=(18,24),LENGTH=12,ATTRB=(NORM,PROT), X INITIAL='01 Codigo =' * CODIGO DFHMDF POS=(18,37),LENGTH=9,ATTRB=(NORM,UNPROT) X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(18,47),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(18,50),LENGTH=28,ATTRB=(NORM,PROT), X INITIAL='("*" indica que empiece por)' * DFHMDF POS=(19,24),LENGTH=12,ATTRB=(NORM,PROT), X INITIAL='02 Idioma =' * IDIOMA DFHMDF POS=(19,37),LENGTH=1,ATTRB=(NORM,UNPROT) X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(19,39),LENGTH=1,ATTRB=ASKIP * 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.

Page 43: Altamira

������������� ������������ ��� � � � ����������

�����43

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).

Page 44: Altamira

������������� ������������ ��� � � � ����������

�����44

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. 10 CMA-MNU-IDIOMA PIC X(1). ****************************************************************** * * LONGITUD TOTAL DEL REGISTRO EN BYTES : 12 * ******************************************************************

Page 45: Altamira

������������� ������������ ��� � � � ����������

�����45

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. *

Page 46: Altamira

������������� ������������ ��� � � � ����������

�����46

****************************************************************** * 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 * * * ****************************************************************** *

Page 47: Altamira

������������� ������������ ��� � � � ����������

�����47

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. *

Page 48: Altamira

������������� ������������ ��� � � � ����������

�����48

****************************************************************** * * * 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.

Page 49: Altamira

������������� ������������ ��� � � � ����������

�����49

****************************************************************** * * * 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

Page 50: Altamira

������������� ������������ ��� � � � ����������

�����50

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

Page 51: Altamira

������������� ������������ ��� � � � ����������

�����51

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. *

Page 52: Altamira

������������� ������������ ��� � � � ����������

�����52

****************************************************************** * * * 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.

Page 53: Altamira

������������� ������������ ��� � � � ����������

�����53

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 TP01 21/05/96 0100 CICSUSER MANTENIMIENTO DE TRANSACCIONES 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

Page 54: Altamira

������������� ������������ ��� � � � ����������

�����54

Formato 0001 OM12 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTENIMIENTO DE FORMATOS QMFM 09:26:26 Formato ........... = QCRMGTS : MAPA DE LISTADOS NEW COPY Tipo (E/S/A) ...... = A Entrada/Salida Delimit. automatico = N (S/N) ________ESTADO________ (P/D) = D Definitiva Num. campos .............. = 53 Longitud copy ............ = 1632 Relacion campos / Ver.PS/2 = No / No Rutinas Verific./ V.Listos = No / No Idioma ............. = E CASTELLANO Formato modelo: QCRMGTS __________ SALIDA ________ Preformato de Pantalla ... = / / (STD / 4700 / 5935) Preformato de Documento .. = / / (STD / Doc. / NLin) Mapa para LOCAL .......... = @GTS / (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 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER LISTADO DE CAMPOS QMCL 09:27:15 P SALTO FORMATO: QCRMGTS MAPA DE LISTADOS L 1: 53 CAMPO____LITERAL_________DELIM_ATT__LNG__TIP_RUTINA__VRUT_LIT4700_AYU 01 SALTO SALTO 04 A 2 O N N 02 CONTEN CONTENIDO 77 A 50 O N N 03 LINEA LINEA 64 A 9 O N N 04 COLUMNA COLUMNA 05 A 11 O N N 05 TITULO TITULO 8E A 77 O N N 06 OPCION1 OPCION1 01 A 1 O N N 07 DATOS1 DATOS1 46 A 77 O N N 08 OPCION2 OPCION2 02 A 1 O N N 09 DATOS2 DATOS2 51 A 77 O N N 10 OPCION3 OPCION3 03 A 1 O N N 11 DATOS3 DATOS3 06 A 77 O N N 12 OPCION4 OPCION4 07 A 1 O N N 13 DATOS4 DATOS4 76 A 77 O N N 14 OPCION5 OPCION5 08 A 1 O N N 15 DATOS5 DATOS5 8C A 77 O N N 16 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

Page 55: Altamira

������������� ������������ ��� � � � ����������

�����55

Teclas de Función 0001 OM12 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER LISTADO DE TECLAS DE FUNCION QMLF 09:28:08 QCA0001 FIN DE DATOS P SALTO LISTADO DE PFS DE LA TRANSACCION FOTL L 1: 0 C 1: 90 _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

Page 56: Altamira

������������� ������������ ��� � � � � � � � � � ����������

�����56

4.3.2 Estados Inicio / Continuación

MNUC

MNUI

LSTI

LSTC

MTOI

MTOX

MTOC

MAPAMNU

LISTADO

MAPAMTO

MAPAMTO

MAPAMTO

MAPAMNU

LISTADO

MAPAMTO

MAPAMNU

CODTRAN-SIG = CODTRANESTADO = CONTINACCION = TERMINAL

CODTRAN-SIG = CODTRANESTADO = CONTINACCION = TERMINAL

CODTRAN-SIG = CODTRANESTADO = CONTIN

ACCION = TERMINALTIPO-SALIDA = PAGINACIÓN

CODTRAN-SIG = SAMEESTADO = CONTINACCION = TERMINAL

CODTRAN-SIG = SAMEESTADO = CONTIN

ACCION = TERMINAL

CODTRAN-SIG = SAMEESTADO = CONTIN

ACCION = TERMINAL

CODTRAN-SIG = 'MTO'ESTADO = INICIOACCION = PROGRAMA

CODTRAN-SIG = 'MTO'ESTADO = INICIOACCION = PROGRAMA

CODTRAN-SIG = 'LST'ESTADO = INICIO

ACCION = PROGRAMA

CODTRAN-SIG = ULTIESTADO = CONTIN

ACCION = TERMINAL

CODTRAN-SIG = ULTIESTADO = CONTIN

ACCION = TERMINAL

CODTRAN-SIG = SAMEESTADO = CONFIR

ACCION = TERMINAL

CODTRAN-SIG = SAMEESTADO = CONTIN

ACCION = TERMINAL

CODTRAN-SIG = ULTIESTADO = CONTIN

ACCION = TERMINAL

ARQUITECTURA / APLICACIÓN

Page 57: Altamira

������������� ������������ ��� � � � ����������

�����57

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

Page 58: Altamira

������������� ������������ ��� � � � ����������

�����58

(*) 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 ATRIBUTO DE OPCION ATRIB. DE LA LÍNEA ' ' Desprot.+ Normal Protegido+ Normal 'B' Desprot.+ Normal Protegido+ Brillante 'A' Desprot.+ Normal Protegido+ Normal 'R' Desprot.+ Normal Desprot. + Brillante 'V' Desprot.+ Normal Desprot. + Normal '*' Proteg. + Normal Desprot. + Normal '+' Proteg. + Brill. Protegid.+ Brillante '-' Proteg. + Normal Protegid.+ 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.

Page 59: Altamira

������������� ������������ ��� � � � ����������

�����59

* 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' caracteres (según el campo SALTO del panel de listado). * 'P' página completa (''). * 'H' media página (''). * 'M' 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' caracteres * 'P' página completa * 'H' media página * 'M' máximo a izda., derecha, etc.

Page 60: Altamira

������������� ������������ ��� � � � ����������

�����60

- 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.

Page 61: Altamira

������������� ������������ ��� � � � ����������

�����61

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 *

Page 62: Altamira

������������� ������������ ��� � � � ����������

�����62

* 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

Page 63: Altamira

������������� ������������ ��� � � � ����������

�����63

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 PIC X(20) VALUE 'ERROR EN CICS IGNORE'. 05 C-ERROR-DELETEQ PIC X(20) VALUE 'ERROR CICS DELETEQ '. 05 C-ERROR-READQ PIC X(20) VALUE 'ERROR EN CICS READQ'. 05 C-ERROR-WRITEQ PIC X(20) VALUE 'ERROR CICS WRITEQ '. 05 C-ERROR-LINK PIC X(20) VALUE 'ERROR EN CICS LINK '. 05 C-CABECERA1 PIC X(35) VALUE ' ARQUITECTURA DE APLICACIONES '. 05 C-CABECERA2 PIC X(35) VALUE ' LISTADO DE TRANSACCIONES '. 05 C-CABECERA-GTS. 10 FILLER 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:*****'.

Page 64: Altamira

������������� ������������ ��� � � � ����������

�����64

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.

Page 65: Altamira

������������� ������������ ��� � � � ����������

�����65

10 FILLER PIC X(6) VALUE SPACES. 10 W-GTS-LONG-COMMAREA PIC X(4) VALUE SPACES. 10 FILLER PIC X(4) VALUE SPACES. 05 W-FECULT. 10 FILLER PIC X(2) VALUE SPACES. 10 W-FECULTAA PIC X(2) VALUE SPACES. 10 FILLER PIC X(1) VALUE '/'. 10 W-FECULTMM PIC X(2) VALUE SPACES. 10 FILLER PIC X(1) VALUE '/'. 10 W-FECULTDD PIC X(2) VALUE SPACES. 05 W-CODIGO. 10 W-TRANID. 15 W-TRANID-O OCCURS 4 TIMES. 20 W-TRANID-BYTE PIC X. 10 W-TRANID-SEL PIC X(4) VALUE SPACES. 05 W-PF-NUM PIC 9(2). 88 PF-03 VALUE 03. 88 PF-02-03 VALUE 02 03. 88 PF-BORRA VALUE 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

Page 66: Altamira

������������� ������������ ��� � � � ����������

�����66

END-IF * INITIALIZE W-VARIABLES MOVE CAA-TERMINAL 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.

Page 67: Altamira

������������� ������������ ��� � � � ����������

�����67

****************************************************************** * * * 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.

Page 68: Altamira

������������� ������������ ��� � � � ����������

�����68

****************************************************************** * * * 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 ,

Page 69: Altamira

������������� ������������ ��� � � � ����������

�����69

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 ,

Page 70: Altamira

������������� ������������ ��� � � � ����������

�����70

: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 END-EXEC * 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

Page 71: Altamira

������������� ������������ ��� � � � ����������

�����71

MOVE W-FECULTMM TO W-GTS-ANIOMM MOVE W-FECULTAA TO W-GTS-ANIOAA EVALUATE TRUE WHEN CCT-88-IND-CONTABLE-SI MOVE 'SI' TO W-GTS-IND-CONT WHEN CCT-88-IND-CONTABLE-NO MOVE 'NO' TO W-GTS-IND-CONT END-EVALUATE EVALUATE TRUE WHEN CCT-88-IND-4700-SI MOVE 'SI' TO W-GTS-IND-APB WHEN CCT-88-IND-4700-NO MOVE 'NO' TO W-GTS-IND-APB END-EVALUATE EVALUATE TRUE WHEN CCT-88-IND-INICIO-SI MOVE 'SI' TO W-GTS-INITERM WHEN CCT-88-IND-INICIO-NO MOVE 'NO' TO W-GTS-INITERM END-EVALUATE EVALUATE TRUE WHEN CCT-88-IND-TRNCONV-TRN MOVE 'TRAN' TO W-GTS-TRANCON WHEN CCT-88-IND-TRNCONV-CONV MOVE 'CONV' TO W-GTS-TRANCON END-EVALUATE MOVE CCT-TIPO-ENTSAL TO W-GTS-TIPOPERO MOVE CCT-TIPO-ALTA TO W-GTS-TIPOPERA MOVE CCT-TIPO-BAJA TO W-GTS-TIPOPERB MOVE CCT-TIPO-MODIF TO W-GTS-TIPOPERM MOVE CCT-TIPO-CONSULTA TO W-GTS-TIPOPERC MOVE CCT-TIPO-EDICION TO W-GTS-TIPOPERE MOVE CCT-TIPO-PETICION TO 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 EQUAL 'S' MOVE 'SI' TO W-GTS-RECUPERACION ELSE MOVE 'NO' TO W-GTS-RECUPERACION END-IF * 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 EQUAL 'S' MOVE 'SI' TO W-GTS-PFS-STAND ELSE MOVE 'NO' TO W-GTS-PFS-STAND END-IF * IF CCT-PIN-FASTP EQUAL 'S' MOVE 'SI' TO W-GTS-PIN-FASTP ELSE MOVE 'NO' TO W-GTS-PIN-FASTP END-IF

Page 72: Altamira

������������� ������������ ��� � � � ����������

�����72

* 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.

Page 73: Altamira

������������� ������������ ��� � � � ����������

�����73

****************************************************************** * * * 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.

Page 74: Altamira

������������� ������������ ��� � � � ����������

�����74

****************************************************************** * * * 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 *

Page 75: Altamira

������������� ������������ ��� � � � ����������

�����75

* * * 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.

Page 76: Altamira

������������� ������������ ��� � � � ����������

�����76

****************************************************************** * * * 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

Page 77: Altamira

������������� ������������ ��� � � � ����������

�����77

SET CAA-88-ACCION-PROGRAMA TO TRUE MOVE 'FOTM' TO CAA-CODTRAN-SIG END-IF * 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

Page 78: Altamira

������������� ������������ ��� � � � ����������

�����78

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

Page 79: Altamira

������������� ������������ ��� � � � ����������

�����79

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 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTENIMIENTO DE TRANSACCIONES 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

Page 80: Altamira

������������� ������������ ��� � � � ����������

�����80

Formatos 0001 OM1 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTENIMIENTO DE FORMATOS QMFM 09:30:30 Formato ....... = FORMTMA : MATENIMIENTO FORMACION NEW COPY Tipo (E/S/A) ...... = A Entrada/Salida Delimit. automatico = S (S/N) ________ESTADO________ (P/D) = D Definitiva Num. campos .............. = 45 Longitud copy ............ = 392 Relacion campos / Ver.PS/2 = No / No Rutinas Verific./ V.Listos = No / No Idioma ............. = E CASTELLANO Formato modelo: FORMTMA __________ SALIDA ________ Preformato de Pantalla ... = / / (STD / 4700 / 5935) Preformato de Documento .. = / / (STD / Doc. / NLin) Mapa para LOCAL .......... = / (PS/2 / 4700) Conexion Preform. = ______ALTA____ _____ULTIMA MODIF______ __P.USO_ ___ULT.USO___ QG4CCHK 13/05/96 CICSUSER 13/05/96 22:43 13/05/96 21/05/96 FOTM F2 Modificar F3 Alta F4 Limpiar F5 Campos F6 Baja F7 Preform BORRA

Page 81: Altamira

������������� ������������ ��� � � � ����������

�����81

Campos 0001 OM12 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER LISTADO DE CAMPOS QMCL 09:31:03 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 Mantto F3 Alta F4 AyAct F6 Relac 10 Mover F7 Re.Pag F8 Av.Pag Cl Teclas de Función 0001 OM12 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER LISTADO DE TECLAS DE FUNCION QMLF 09:32:27 QCA0001 FIN DE DATOS P SALTO LISTADO DE PFS DE LA TRANSACCION OTM L 1: 5 C 1: 90 _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 F4 Izqda. F5 Drcha. F7 Re.Pag F8 Av.Pag Cl

Page 82: Altamira

������������� ������������ ��� � � � ����������

�����82

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 DFHMDF POS=(03,23),LENGTH=2,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) * DESCAPL DFHMDF POS=(03,26),LENGTH=20,ATTRB=(NORM,PROT,ASKIP), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(03,57),LENGTH=23,ATTRB=(BRT,PROT), X INITIAL='________ESTADO_________'

Page 83: Altamira

������������� ������������ ��� � � � ����������

�����83

DFHMDF POS=(04,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Programa ........ =' * PGMID DFHMDF POS=(04,23),LENGTH=8,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(04,32),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(04,57),LENGTH=5,ATTRB=(NORM,PROT), X INITIAL='(A/D)' * ACTIVA DFHMDF POS=(04,64),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(04,66),LENGTH=1,ATTRB=ASKIP * DESCACT DFHMDF POS=(04,68),LENGTH=11,ATTRB=(NORM,PROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(05,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Plan DB2 ........ =' * PLAN DFHMDF POS=(05,23),LENGTH=8,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(05,32),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(05,50),LENGTH=29,ATTRB=(BRT,PROT), X INITIAL='__________ALTAMIRA___________' DFHMDF POS=(06,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Formato/Mapa ent. =' * COPYIN DFHMDF POS=(06,23),LENGTH=8,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(06,32),LENGTH=1,ATTRB=(NORM,PROT,ASKIP), X INITIAL='/' * PANELIN DFHMDF POS=(06,34),LENGTH=8,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(06,43),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(06,50),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Tipo Altamira.... =' * TIPALTM DFHMDF POS=(06,70),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(06,72),LENGTH=7,ATTRB=(NORM,PROT,ASKIP), X INITIAL='(N/E/M)' DFHMDF POS=(07,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Codigo de ayuda.. =' * CODHELP DFHMDF POS=(07,23),LENGTH=4,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(07,28),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(07,50),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Entrada.......... =' * ENTRADA DFHMDF POS=(07,70),LENGTH=8,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(07,79),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(08,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Longitud Commarea =' * LONCMM DFHMDF POS=(08,23),LENGTH=4,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(08,28),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(09,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Camb.Ses/Recuper. ='

Page 84: Altamira

������������� ������������ ��� � � � ����������

�����84

* CAMBSES DFHMDF POS=(09,23),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(09,25),LENGTH=1,ATTRB=(NORM,PROT,ASKIP), X INITIAL='/' * RECUPER DFHMDF POS=(09,27),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(09,29),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(09,31),LENGTH=13,ATTRB=(NORM,PROT), X INITIAL='(S/N) : (S/N)' DFHMDF POS=(09,51),LENGTH=27,ATTRB=(BRT,PROT), X INITIAL='______INFORM.ADICIONAL_____' DFHMDF POS=(10,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Tipo (Trans/Conv) =' * TRNCONV DFHMDF POS=(10,23),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(10,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(10,31),LENGTH=5,ATTRB=(NORM,PROT), X INITIAL='(T/C)' DFHMDF POS=(10,51),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Transac. local .. =' * TRANIDL DFHMDF POS=(10,71),LENGTH=4,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(10,76),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(11,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Contable / Cajero =' * CONTABL DFHMDF POS=(11,23),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(11,25),LENGTH=1,ATTRB=(NORM,PROT,ASKIP), X INITIAL=':' * CAJERO DFHMDF POS=(11,27),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(11,29),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(11,31),LENGTH=15,ATTRB=(NORM,PROT), X INITIAL='(S/N) : (A/B/ )' DFHMDF POS=(11,51),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Documentos ...... =' * DOCUM1 DFHMDF POS=(11,71),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) * DOCUM2 DFHMDF POS=(11,73),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(11,75),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(12,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Tipos operacion.. =' * TIPOPER DFHMDF POS=(12,23),LENGTH=7,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(12,31),LENGTH=15,ATTRB=(NORM,PROT,ASKIP), X INITIAL='(A-B-M-C-E-P-O)' DFHMDF POS=(12,51),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Diario Elec. .... =' *

Page 85: Altamira

������������� ������������ ��� � � � ����������

�����85

DIARIOE DFHMDF POS=(12,71),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(12,73),LENGTH=5,ATTRB=(NORM,PROT,ASKIP), X INITIAL='(S/N)' DFHMDF POS=(13,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Inicio desde TERM =' * INICIO DFHMDF POS=(13,23),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(13,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(13,31),LENGTH=5,ATTRB=(NORM,PROT), X INITIAL='(S/N)' DFHMDF POS=(13,51),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='APB 4700 ........ =' * APB4700 DFHMDF POS=(13,71),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(13,73),LENGTH=5,ATTRB=(NORM,PROT,ASKIP), X INITIAL='(S/N)' DFHMDF POS=(14,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Inicio por Arquit.=' * INIARQ DFHMDF POS=(14,23),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(14,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(14,31),LENGTH=5,ATTRB=(NORM,PROT), X INITIAL='(S/N)' DFHMDF POS=(14,39),LENGTH=41,ATTRB=(BRT,PROT), X INITIAL='_________________STAMPS__________________' DFHMDF POS=(15,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='PFs standard =' PFSTAN DFHMDF POS=(15,23),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(15,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(15,31),LENGTH=5,ATTRB=(NORM,PROT), X INITIAL='(S/N)' DFHMDF POS=(15,39),LENGTH=15,ATTRB=(NORM,PROT), X INITIAL='Cambio estado =' * STAMACT DFHMDF POS=(15,55),LENGTH=8,ATTRB=(NORM,PROT), X JUSTIFY=(LEFT,BLANK) * TIMEACT DFHMDF POS=(15,65),LENGTH=5,ATTRB=(NORM,PROT), X JUSTIFY=(LEFT,BLANK) * USERACT DFHMDF POS=(15,71),LENGTH=8,ATTRB=(NORM,PROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(16,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Actualizar tecleo =' * ACTTCL DFHMDF POS=(16,23),LENGTH=1,ATTRB=(NORM,PROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(16,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(16,31),LENGTH=5,ATTRB=(NORM,PROT), X INITIAL='(S/N)' DFHMDF POS=(16,39),LENGTH=15,ATTRB=(NORM,PROT), X INITIAL='Alta ........ =' * STAMALT DFHMDF POS=(16,55),LENGTH=8,ATTRB=(NORM,PROT), X JUSTIFY=(LEFT,BLANK)

Page 86: Altamira

������������� ������������ ��� � � � ����������

�����86

* USERALT DFHMDF POS=(16,71),LENGTH=8,ATTRB=(NORM,PROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(17,03),LENGTH=19,ATTRB=(NORM,PROT), X INITIAL='Pintar fast-path =' PINFSP DFHMDF POS=(17,23),LENGTH=1,ATTRB=(NORM,UNPROT), X JUSTIFY=(LEFT,BLANK) DFHMDF POS=(17,25),LENGTH=1,ATTRB=ASKIP DFHMDF POS=(17,31),LENGTH=5,ATTRB=(NORM,PROT), X INITIAL='(S/N)' DFHMDF POS=(17,39),LENGTH=15,ATTRB=(NORM,PROT), X INITIAL='Ult.mod. .... =' * STAMMOD DFHMDF POS=(17,55),LENGTH=8,ATTRB=(NORM,PROT), X JUSTIFY=(LEFT,BLANK) * TIMEMOD DFHMDF POS=(17,65),LENGTH=5,ATTRB=(NORM,PROT), X JUSTIFY=(LEFT,BLANK) * 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 FILLER PIC X(12). 02 TMA-TRANIDL COMP PIC S9(4). 02 TMA-TRANIDF PICTURE X.

Page 87: Altamira

������������� ������������ ��� � � � ����������

�����87

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).

Page 88: Altamira
Page 89: Altamira

������������� ������������ ��� � � � ����������

�����89

********** 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. *

Page 90: Altamira

������������� ������������ ��� � � � ����������

�����90

****************************************************************** * * * 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.

Page 91: Altamira

������������� ������������ ��� � � � ����������

�����91

10 W-MM-AAAAMMDD PIC X(2). 10 FILLER PIC X. 10 W-DD-AAAAMMDD PIC X(2). 10 FILLER PIC X. 10 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.

Page 92: Altamira

������������� ������������ ��� � � � ����������

�����92

****************************************************************** * * * 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

Page 93: Altamira

������������� ������������ ��� � � � ����������

�����93

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

Page 94: Altamira

������������� ������������ ��� � � � ����������

�����94

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,

Page 95: Altamira

������������� ������������ ��� � � � ����������

�����95

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

Page 96: Altamira

������������� ������������ ��� � � � ����������

�����96

* 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 *

Page 97: Altamira

������������� ������������ ��� � � � ����������

�����97

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

Page 98: Altamira

������������� ������������ ��� � � � ����������

�����98

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

Page 99: Altamira

������������� ������������ ��� � � � ����������

�����99

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.

Page 100: Altamira

������������� ������������ ��� � � � ����������

�����100

****************************************************************** * * * 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

Page 101: Altamira

������������� ������������ ��� � � � ����������

�����101

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)

Page 102: Altamira

������������� ������������ ��� � � � ����������

�����102

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

Page 103: Altamira

������������� ������������ ��� � � � ����������

�����103

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

Page 104: Altamira

������������� ������������ ��� � � � ����������

�����104

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

Page 105: Altamira

������������� ������������ ��� � � � ����������

�����105

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. * * *

Page 106: Altamira

������������� ������������ ��� � � � ����������

�����106

****************************************************************** 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,

Page 107: Altamira

������������� ������������ ��� � � � ����������

�����107

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' TO CAA-COD-AVISO1 MOVE CAA-FECHA-TRANS2 TO CCT-FECHA-ALT CCT-FECHA-MOD, W-DATE-TIMESTAMP MOVE CAA-HORA-TRANSED 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 *

Page 108: Altamira

������������� ������������ ��� � � � ����������

�����108

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

Page 109: Altamira

������������� ������������ ��� � � � ����������

�����109

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

Page 110: Altamira

������������� ������������ ��� � � � ����������

�����110

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

Page 111: Altamira

������������� ������������ ��� � � � ����������

�����111

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. * ****************************************************************** * *

Page 112: Altamira

������������� ������������ ��� � � � ����������

�����112

* 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

Page 113: Altamira

������������� ������������ ��� � � � ����������

�����113

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.

Page 114: Altamira

������������� ������������ ��� � � � ����������

�����114

****************************************************************** * * * 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.

Page 115: Altamira

������������� ������������ ��� � � � ����������

�����115

****************************************************************** * * * 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.

Page 116: Altamira

������������� ������������ ��� � � � ����������

�����116

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 FORMACION TP01 21/05/96 0100 CICSUSER CONSULTA TRANSACCION FORMACION FOTC 13:49:33 TRANSACCION (01 ) = * LIBRE (02 ) = 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

Page 117: Altamira

������������� ������������ ��� � � � ����������

�����117

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 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTENIMIENTO DE PREFORMATOS QMPM 09:43:11 NEW COPY Preformato ........... = FOCTR1 : LINEA CABECERA FORMACION Idioma ............... = E CASTELLANO Margen izquierdo ..... = 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 Modelo.........= FOCTR1 ____________________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 CONSULTA TRANSACCION FORMACION F2 Modificar F3 Alta F4 Limpiar F5 Lineas F6 Baja BORRA Salir La nomenclatura del formato es : FORMXXX del preformato : FOXXX

Page 118: Altamira

������������� ������������ ��� � � � ����������

�����118

Preformato FOCTR1 ( F5 Lineas) Pantalla 1 0001 OM12 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTTO. DE LINEAS DE PREFORMATOS QMPT 09:43:37 QCA0001 FIN DE DATOS P SALTO FOCTR1 LINEA CABECERA FORMACION 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 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTENIMIENTO DE PREFORMATOS QMPM 09:45:50 NEW COPY Preformato ........... = FOCTR2 : LINEA DETALLE FORMACION Idioma ............... = E CASTELLANO Margen izquierdo ..... = 0 ____VARIABLES USADAS____ Del sistema ........ 0 Campos de LOCAL .... 0 Maximo ancho columna . = 49 Campos de HOST ..... 3 Numero de lineas ..... = 1 --- Num. caracteres aprox. = 49 Total 3 Modelo.........= FOCTR2 ____________________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 F6 Baja BORRA Salir

Page 119: Altamira

������������� ������������ ��� � � � ����������

�����119

Page 120: Altamira

������������� ������������ ��� � � � ����������

�����120

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 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTENIMIENTO DE FORMATOS QMFM 22:16:31 Formato ........... = FOMCTR1 : FORMATO CABECERA FORMACION NEW COPY Tipo (E/S/A) ...... = S Salida Delimit. automatico = S (S/N) ____ESTADO________ (P/D) = D Definitiva Num. campos .............. = 0 Longitud copy ............ = 0 Relacion campos / Ver.PS/2 = No / No Rutinas Verific./ V.Listos = No / No Idioma ............. = E CASTELLANO Formato modelo: FOMCTR1 __________ SALIDA ________ Preformato de Pantalla ... = FOCTR1 / / (STD / 4700 / 5935) Preformato de Documento .. = / / (STD / Doc. / NLin) Mapa para LOCAL .......... = / (PS/2 / 4700) Conexion Preform. = ______ALTA_______ _____ULTIMA MODIF______ __P.USO_ ___ULT.USO___ CICSUSER 21/05/96 CICSUSER 21/05/96 03:35 21/05/96 21/05/96 FOTC F2 Modificar F3 Alta F4 Limpiar F5 Campos F6 Baja F7 Preform BORRA

Page 121: Altamira

������������� ������������ ��� � � � ����������

�����121

Formato Salida FOMCTR2 0001 OM08 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTENIMIENTO DE FORMATOS QMFM 22:17:53 Formato .......... = FOMCTR2 : FORMATO DETALLE FORMACION NEW COPY Tipo (E/S/A) ...... = S Salida Delimit. automatico = S (S/N) ___ESTADO________ (P/D) = D Definitiva Num. campos .............. = 3 Longitud copy ............ = 60 Relacion campos / Ver.PS/2 = No / No Rutinas Verific./ V.Listos = No / No Idioma ............. = E CASTELLANO Formato modelo: FOMCTR2 __________ SALIDA ________ Preformato de Pantalla ... = FOCTR2 / / (STD / 4700 / 5935) Preformato de Documento .. = / / (STD / Doc. / NLin) Mapa para LOCAL .......... = / (PS/2 / 4700) Conexion Preform. = ______ALTA_______ _____ULTIMA MODIF______ __P.USO_ ___ULT.USO___ CICSUSER 21/05/96 CICSUSER 21/05/96 03:37 21/05/96 21/05/96 FOTC F2 Modificar F3 Alta 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

Page 122: Altamira

������������� ������������ ��� � � � ����������

�����122

Formato de entrada FOMCTR 0001 OM12 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTENIMIENTO DE FORMATOS QMFM 09:34:17 Formato .......... = FOMCTR : INGRESO CONSULTA TRANSACCIONES NEW COPY Tipo (E/S/A) ...... = E Entrada Delimit. automatico = N (S/N) ___ESTADO________ (P/D) = D Definitiva Num. campos .............. = 2 Longitud copy ............ = 42 Relacion campos / Ver.PS/2 = No / No Rutinas Verific./ V.Listos = No / No Idioma ............. = E CASTELLANO Formato modelo: FOMCTR __________ SALIDA ________ Preformato de Pantalla ... = / / (STD / 4700 / 5935) Preformato de Documento .. = / / (STD / Doc. / NLin) Mapa para LOCAL .......... = / (PS/2 / 4700) Conexion Preform. = ______ALTA_______ _____ULTIMA MODIF_____ __P.USO_ ___ULT.USO___ CICSUSER 20/05/96 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 TP01 21/05/96 0100 CICSUSER LISTADO DE CAMPOS QMCL 09:34:55 QCA0001 FIN DE DATOS P SALTO FORMATO: FOMCTR 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

Page 123: Altamira

������������� ������������ ��� � � � ����������

�����123

Transacción FOTC 0001 OM12 ARQUITEC. PLATAFORMA TP01 21/05/96 0100 CICSUSER MANTENIMIENTO DE TRANSACCIONES QMTM 09:33:50 Transaccion ..... = FOTC : CONSULTA TRANSACCION FORMACION NEW COPY Idioma .......... = E CASTELLANO Aplicacion ...... = FO FORMACION __ESTADO_________ Programa ........ = FO2CCTR (A/D) A Activada Plan DB2 ........ = BNQMD __________ALTAMIRA___________ Formato/Mapa ent. = FOMCTR / 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) = T (T/C) Transac. local .. = FOTC 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 ........ = S (S/N) Inicio por Arquit.= N (S/N) ______________STAMPS__________________ PFs standard = S (S/N) Cambio estado = 20/05/96 12:21 CICSUSE Actualizar tecleo = S (S/N) Alta ........ = 20/05/96 CICSUSE Pintar fast-path = N (S/N) Ult.mod. .... = 20/05/96 12:21 CICSUSE Pfs por Arquitec.= N (S/N) Primer Uso .. = 21/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 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 : 42

Page 124: Altamira

������������� ������������ ��� � � � ����������

�����124

***************************************************************** * 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 * * ******************************************************************

Page 125: Altamira

������������� ������������ ��� � � � ����������

�����125

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.

Page 126: Altamira

������������� ������������ ��� � � � ����������

�����126

****************************************************************** * * * 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'. *

Page 127: Altamira

������������� ������������ ��� � � � ����������

�����127

****************************************************************** * * 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) ***'. /

Page 128: Altamira

������������� ������������ ��� � � � ����������

�����128

****************************************************************** * * * 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 TO CAA-CODTRAN-SIG SET CAA-88-ACCION-TERMINAL TO TRUE.

Page 129: Altamira

������������� ������������ ��� � � � ����������

�����129

****************************************************************** * * * 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.

Page 130: Altamira

������������� ������������ ��� � � � ����������

�����130

/ ****************************************************************** * * * 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. ******************************************************************

Page 131: Altamira

������������� ������������ ��� � � � ����������

�����131

* * * 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.

Page 132: Altamira

������������� ������������ ��� � � � ����������

�����132

****************************************************************** * * * 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.

Page 133: Altamira

������������� ������������ ��� � � � ����������

�����133

****************************************************************** * * * 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.

Page 134: Altamira

������������� ������������ ��� � � � ����������

�����134

/ ****************************************************************** * * * 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.

Page 135: Altamira

������������� ������������ ��� � � � ����������

�����135

* / ****************************************************************** * * * 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.

Page 136: Altamira

������������� ������������ ��� � � � ����������

�����136

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 decir, campo TERMINAL de la commarea de la Arquitectura -CAA-)

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: En formato numérico empaquetado de 7 caracteres de longitud.

* 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 DD-MM-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).

Page 137: Altamira

������������� ������������ ��� � � � ����������

�����137

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".

Page 138: Altamira

������������� ������������ ��� � � � ����������

�����138

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).

Page 139: Altamira

������������� ������������ ��� � � � ����������

�����139

- 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 FASE ORDEN CODIGO PR/TR ACTIVO CICS 0000 1 01 QC2CCSS P S 2103 1 02 BG2CCSS P S 2103 1 03 GC2CCSS P N 2058 1 04 XG2CCSS P S 0000 2 01 QC2CCSS P S 2103 2 02 BG2CCSS P N 2103 2 03 MG74 T S CC3A 2103 2 04 IRCS T N 2103 2 05 XGCS T S 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 error, se realizará un ROLLBACK para deshacer los posibles cambios que algún programa anterior hubiera hecho. En el caso de que los procesos sean programas, se les pasará la commarea QGECCSS, que contiene los campos:

Page 140: Altamira

������������� ������������ ��� � � � ����������

�����140

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.

Page 141: Altamira

������������� ������������ ��� � � � ����������

�����141

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).

Page 142: Altamira

������������� ������������ ��� � � � ����������

�����142

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

. flip-flop de las tablas de tecleos, autorizaciones, journal y totales.

. actualización del estado de las aplicaciones sobre la tabla QGDTAPL y las colas TS asociadas.

. 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 QC2CCSS P N S 201 QC2CCSS P N S 202 QG2CCSA P N S 203 QC2CTRM P N S ______ ______ _______ PRG/TR START 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 de cambio de sesión contable implica su preformateo. Los grupos de tablas que se encuentran en esta situación son las de Autorizaciones (A y B), Tecleos (A y B), totales (A,B y C) y Journal (A,B y C). 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 Miércoles FECHA CONTABLE SIG: 13/07/95 Jueves ACTIVA AYER VACIA TECLEOS B A TOTALES B A C JOURNAL C B A AUTORIZACIONES B A Ejecutamos la transacción QGCS y se efectúa el FLIP/FLOP (intercambio) de tablas:

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

Page 143: Altamira

������������� ������������ ��� � � � ����������

�����143

ACTIVA AYER VACIA TECLEOS A A TOTALES C B A JOURNAL A C B AUTORIZACIONES A 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.

Page 144: Altamira

������������� ������������ ��� � � � ����������

�����144

7. Preguntas y Respuestas 8. Ejercicios 1. Menú. Inicio Conversación. 2. Listado. Selección Múltiple en Conversación. 3. Mantenimiento. Selección Simple. 4. Transaccional.

Page 145: Altamira

������������� ������������ ��� � � � ����������

�����145

8. Anexos

Page 146: Altamira
Page 147: Altamira

������������� ������������ ��� � � � ����������

�����147

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

CONVERSACIONAL TRANSACCIONAL

FUENTEBMS

COMPILACIÓN

COPY (COBOL) LOAD (CICS)

TSO QM

FORMATO

Opcion: 5Clase: DParametro: CopyLibrería : ...MAPCPY

Delimitador Automatico: SEstado: DTipo: A

PREFIJAR COPYCOBOL

CREACIÓN DELPREFORMATO

CON/SIN LINEAS

FORMATO

TSO QM

COPY COBOL

Opcion: 3Clase: DParametro: FormatoLibrería : ...COPYS

QMOpcion: 4

QMOpcion: 3

Si es Formato de Salida

Page 148: Altamira
Page 149: Altamira

������������� ������������ ��� � � � ����������

�����149

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

CODTRAN-SIG SAME SAME SAMEESTADO CONTINUACION CONTINUACIÓN CONTINUACIONACCION TERMINAL TERMINAL TERMINALCADENA

PANTALLATERMINAL

PROGRAMAAPLICATIVO

ARQUITEC.

VARIABLES

MENUFO

INICIO

LST MNT

MNUC

LSTI

LSTC

MTOI

MNTC

MNTX

Arq Arq Arq ArqGP Arq Arq Arq Arq Arq

MNUI

MNT

CODTRAN-SIG CODTRAN 'LST' CODTRAN 'MTO' CODTRAN SAMEESTADO CONTINUACION INICIO CONTIN INICIO CONTINUACION CONFIRMACIONACCION TERMINAL PROGRAMA TERMINAL PROGRAMA TERMINAL TERMINALCADENA INICIO AÑADIRTIPO-SALIDA PAGINACION

CODTRAN-SIG 'MTO'ESTADO INICIOACCION PROGRAMACADENA AÑADIR

CODTRAN-SIG SAMEESTADO CONTINUACIONACCION TERMINALCADENA

MENU MENU LST LST MNT MNT

Arq