PROYECTO FINAL DE CARRERA DESARROLLO DE UN PROYECTO EN ENTORNO HOST Desarrollado en: Director del proyecto: Robert Rallo Moya Dídac Jiménez Monedero Ingeniería Técnica Informática de Sistemas Enero de 2006 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas INDEX 1. LA EMPRESA................................................................................ 4 1.1. Introducción.......................................................................... 4 1.2. Servicios de GETRÒNICS IBERIA.............................................. 6 1.3. Soluciones especializadas de GETRÒNICS IBERIA....................... 8 1.4. Estructura............................................................................ 10 1.5. Localización.......................................................................... 11 1.6. Clientes................................................................................ 12 2. UBICACIÓN EN LA EMPRESA........................................................ 14 2.1. Introducción......................................................................... 14 2.2. Aplicación............................................................................. 14 2.3. Organización......................................................................... 15 2.4. Privacidad de la Información................................................... 17 2.5. El Cliente.............................................................................. 17 3. ENTORNO DE DESARROLLO......................................................... 18 3.1 Introducción al entorno........................................................... 18 3.2 El Sistema Operativo............................................................... 18 3.3 La Programación..................................................................... 20 3.4 La herramienta Case............................................................... 22 3.5 BATCH.................................................................................. 22 3.6 ON-LINE................................................................................ 22 3.7 Bases de Datos...................................................................... 26 4. CICLO DE VIDA DE UN PROYECTO............................................... 27 4.1 Valoración del proyecto........................................................... 27 4.2 Propuesta de Solución............................................................. 27 4.3 Diseño del proyecto................................................................ 28 4.3.1 Diseño de los programas.................................................. 28 4.3.2 Cadenas........................................................................ 30 4.4 Construcción del proyecto........................................................ 31 4.4.1 Includes........................................................................ 31 4.4.2 Programas..................................................................... 31 4.4.3 Cadenas........................................................................ 31 4.5 Pruebas Generales.................................................................. 32 4.6 Implantación de la solución...................................................... 32 2 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 4.7 Control calidad....................................................................... 33 4.8 Período Garantía..................................................................... 33 5. PROYECTO................................................................................... 34 5.1 Introducción a Línea Abierta..................................................... 35 5.2 Definición del Problema............................................................ 36 5.3 Requisitos generales….............................................................. 38 5.3.1 Flujo de Pantallas............................................................ 40 5.4 Propuesta de solución.............................................................. 41 5.4.1 Lista de Solicitudes.......................................................... 41 5.4.2 Consulta de Solicitud........................................................ 42 5.4.3 Consulta de Cláusulas 1.................................................... 43 5.4.4 Consulta de Cláusulas 2.................................................... 43 5.4.5 Consulta de Firmas.......................................................... 44 5.4.5 Firmar Solicitud............................................................... 44 5.4.5 Consulta de Acciones....................................................... 45 5.4.5 Anulación de Solicitud...................................................... 45 5.5 Funciones de Negocio Desarrolladas.......................................... 46 5.5.1 Creación de pantallas, estructuras de datos......................... 46 5.5.2 CONSULTA DE CLÁUSULAS (1) DE UNA SOLICITUD...... 47 5.5.2.1 MÓDULO DE ENLACE.............................................. 48 5.5.2.2 MÓDULO DE RECEPCIÓN DE ENLACE........................ 48 5.5.2.3 MÓDULO TRATAMIENTO DE ENTRADA...................... 49 5.5.2.4 MÓDULO TRATAMIENTO DE SALIDA......................... 51 5.5.2.5 MÓDULOS DE APLICACIÓN...................................... 53 5.5.3 CONSULTA DE CLÁUSULAS (2) DE UNA SOLICITUD...... 55 5.5.3.1 MÓDULO DE ENLACE.............................................. 56 5.5.3.2 MÓDULO DE RECEPCIÓN DE ENLACE........................ 56 5.5.3.3 MÓDULO TRATAMIENTO DE ENTRADA...................... 57 5.5.3.4 MÓDULO TRATAMIENTO DE SALIDA......................... 58 5.5.3.5 MÓDULOS DE APLICACIÓN...................................... 59 5.5.4 ANULACION DE UNA SOLICITUD.................................. 60 5.5.4.1 MÓDULO DE ENLACE.............................................. 61 5.5.4.2 MÓDULO DE RECEPCIÓN DE ENLACE........................ 61 5.5.4.3 MÓDULO TRATAMIENTO DE ENTRADA...................... 62 5.5.4.4 MÓDULO TRATAMIENTO DE SALIDA......................... 63 5.5.4.5 MÓDULOS DE APLICACIÓN...................................... 64 3 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 6. IMPLICACIÓN PERSONAL EN EL PROYECTO................................ 65 7. CONCLUSIONES........................................................................... 66 7.1 Conocimientos Aplicados......................................................... 66 7.3 Valoración Personal................................................................ 67 8. AGRADECIMIENTOS.................................................................... 68 4 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 1. EMPRESA: GETRONICS IBERIA 1.1. Introducción a Getronics Getronics es una compañía con presencia directa en 34 países que tiene su sede central en Ámsterdam, además de sedes regionales en Boston, Londres, Washington y Singapur. Cotiza en la bolsa de Ámsterdam (GTN) desde 1985 poseyendo una facturación de 3.000 millones de euros, durante el año 2004, una plantilla aproximada de 28.000 empleados, más de 1000 empresas en su cartera de clientes y ocupando el segundo puesto en el ranking europeo de servicios de gestión en desktop y redes y el tercero en servicios de consultoría e integración de redes mundiales, Getronics aspira a ser el proveedor líder de soluciones y servicios TIC para el mundo del comercio electrónico construyendo futuro para sus clientes, empleados y accionistas. Su misión es la de suministrar soluciones avanzadas y servicios TIC, independientemente del fabricante y que, a su vez, permitan a sus clientes, tanto a nivel mundial como local, conseguir e incluso superar sus objetivos de negocio. Getronics inició su actividad en España en 1980, ofreciendo servicios de Infraestructura Tecnológica. Con el fin de desarrollar Soluciones de Negocio y Consultoría en España y Portugal, en 1998 Getronics adquirió Grupo CP, una de las de las mayores compañías españolas en el campo de la Consultoría y las Tecnologías de la Información, dando lugar a una nueva compañía: Getronics Grupo CP. Más tarde, en 1999, Getronics adquirió Wang Global, la cual había adquirido anteriormente OLSY, la filial de Servicios y Soluciones de Olivetti, y Wang Global España pasa a ser Getronics España Solutions. En el año 2000, comienza un proceso de integración entre Getronics Grupo CP y Getronics España Solutions para agrupar todas las actividades que desarrollan ambas compañías bajo una sola dirección y así mejorar su oferta de Soluciones y Servicios. En Enero de 2001 nace Getronics Iberia, como resultado de la total integración de Getronics Grupo CP y Getronics España Solutions, convirtiéndose en una marca global, una compañía global y la oferta más completa del mercado con 30 años de probada experiencia. 5 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas Getronics Iberia, por tanto, constituye la representación de Getronics en la Península Ibérica, cuenta con 19 oficinas en España y una en Portugal, cubriendo la totalidad del nacional, una característica esencial para ofrecer sus servicios de Gestión y Mantenimiento de redes y equipamientos TIC. Getronics Iberia es una de las principales subsidiarias del Grupo Getronics en el mundo, gracias a su amplia presencia local y a su sólida práctica de Soluciones de Negocio y Consultoría. Getronics Iberia tiene una facturación de 271 millones de euros, de los que el 64% provienen del sector Financiero, el 19% del Sector de Industria y el 17% restante del sector Público y Sanidad, y que representa cerca del 7% de la facturación total del grupo. Getronics Iberia cuenta con más de 3.700 profesionales, los responsables desarrollar e implementar los servicios y soluciones de la compañía. Por otra parte, Getronics Iberia posee 175 certificaciones en Cisco, Microsoft, Novell y SUN, entre otros fabricantes. 6 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 1.2. Soluciones y Servicios de Getronics Iberia Getronics ofrece una amplia gama de soluciones y servicios a sus clientes. Sus capacidades se dividen en dos áreas complementarias, dando lugar a una oferta única en el mercado por lo amplio de su cobertura y lo profundo de su especialización: Soluciones de negocios y consultoría: Donde Getronics proporciona servicios de consultoría, diseño, integración y gestión para optimizar procesos y alcanzar los objetivos de negocio de sus clientes. Soluciones de infraestructuras TIC: Donde Getronics ofrece servicios de consultoría, diseño, integración, suministro y gestión avanzada de redes y sistemas. Esta oferta de Getronics se integra en la marca Networkplace, la cual engloba 19 servicios integrados. A continuación, detallamos los servicios más importantes que ofrece Getronics Iberia: Consultoría de Gestión: - Organización. - Gestión de Cambio. - Gestión de Negocio. - Gestión Comercial y de Marketing Calidad. Soluciones especializadas: - Banca: Medios de Pago, Control de Gestión, Riesgos. - Seguros: Plataforma Integral. - Industria, Comercio y Servicios: Gestión, Operaciones, Econ.Financieros y Presupuestarios. - Tecnologías avanzadas: Datawarehouse. 7 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas Consultoría Tecnológica: - Diagnósticos y Auditorias. - Seguridad Informática. - Planes de Sistemas. - Organización Informática. Sistemas Informáticos: - Dirección de Proyectos - Desarrollo de Aplicaciones. - Conversión de Sistemas. - Implantación de Sistemas. Servicios Informáticos: - Prestaciones Profesionales. - Mantenimiento de Aplicaciones. - Software Factory. - Teleworking. - Gestión de Redes. - Outsourcing Operativo. Servicios de Soporte: - Formación Informática. - RR.HH. - Implantación de Productos. 8 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 1.3. Soluciones Especializadas Getronics Iberia, además ofrece una serie de soluciones en las que está especializada, con el objetivo de tener una producción de servicios con una contrastable mejora de calidad y una reducción de costes de desarrollo. Soluciones orientadas al cliente, entre las que destacan el Outsourcing, el CRM, DataWarehouse, ERP, Workflow, E-Bussines, etc. A continuación detallaremos las soluciones más importantes subdivididas por sectores: Sector Financiero: - Medios de Pago Electrónicos. - Banca de Electrónica. - Centro de Atención a Clientes. - CRM y DataWarehouse. - Gestión de Riesgo. - Sistemas de Gestión de Información. - Seguros. - Sistema de Gestión Integral. - Aplicaciones Financieras Integradas. Sector Industria: - Implantación de Servicios para Sistemas Integrados (ERP). - E-Commerce. - Gestión Integral de Sistemas. - Soporte de la Explotación. - Gestión de Recursos Humanos. - Implantación de Sistemas de Calidad. - Software Factory. - Implantación de Sistemas a medida. 9 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas Sector Público y Sanidad: - Sistemas de Gestión de Información. - Implantación de Sistemas de Información Hospitalarios. - Sistemas de Información para los Servicios Centrales del Sistema Nacional de Salud. - Metodologías y Herramientas para los Procesos de Reingeniería. 10 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 1.4. Estructura ESTRUCTURA GENERAL DE GETRONICS IBERIA Presidente EMEA MS BS ESI NI VPE & CEO Dirección C.F.O Económico Financiero Desarrollo Corporativo Dirección Medios E Infraestructura Dirección Técnica R.R.H.H. Formació Inform. Interna Zona Centro FES MARCO H Servicios Generales Zona Zona Zona Dirección Adjunta Tempiber México Portugal Centro Norte Nordeste IES EL Financiero Clientes EL Seguros Proyectos EL Industria Latino EL Sanidad Americanos Infraestructura Técnica Dentro de la zona Nordeste, mi puesto geográfico se haya en la oficina de Tarragona. Mí puesto en la jerarquía funcional de la empresa esta en el Área de Infraestructura dentro del Sector Banca: GETRONICS IBERIA (ZONA NORDESTE) SECTOR FINANCIERO ÀREA INFRAESTRUCTURA SECTOR BANCA ÀREA MEDIOS DE PAGO SECTOR INDUSTRIA ÀREA SERV. BANCARIOS Dídac Jiménez 11 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 1.5. Localización Getronics Iberia tiene su sede central en Madrid y posee un total de 19 oficinas repartidas por toda la Península Ibérica: ALMERIA BARCELONA BILBAO CASTELLÓN CIUDAD REAL GIRONA ISLAS BALEARES LAS PALMAS LLEIDA LISBOA MADRID PAMPLONA STA. CRUZ DE TENERIFE SAN SEBASTIÁN SANTANDER SEVILLA TARRAGON VALENCIA ZARAGOZA Además está presente en Latinoamérica: México (México DF y Monterrey) Y con proyectos en desarrollo en: Puerto Rico Argentina Bolivia Brasil Chile Colombia Paraguay Perú Uruguay Venezuela 12 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 1.6. Clientes La cartera de clientes de Getronics asciende a más de 1000 compañías. La mayoría de ellas colaboran con Getronics desde hace tiempo, con una media de fidelización que asciende a 10,5 años, y que una vez finalizada la creación de Getronics Iberia, los clientes que Getronics poseía en la Península Ibérica pasaron a formar parte de la subsidiaria española. Entre ellas se encuentran importantes multinacionales y organismos de las administraciones públicas. Entre los clientes de Getronics Iberia en España podemos destacar: Entidades Aseguradoras: - ALLIANZ-RAS - MAPFRE - OCASO - RACC - SANTA LUCÍA - WINTERTHUR - ZURICH Entidades Financieras: - BBVA - BANCO DE ESPAÑA - BANC SABADELL - BANESTO - BANKINTER - DEUTSCHE BANK - CAIXA D’ESTALVIS I PENSIONS DE BARCELONA “la Caixa’ - CAIXA TARRAGONA - CAJA MADRID Industria, Comercio y Servicios: - AIRTEL - DANONE - DERBI - EL CORTE INGLÉS - ENDESA (Grupo) - IBERIA 13 Proyecto Final de Carrera - 2006 - MICHELIN - REPSOL-YPF - SEUR - SOGECABLE - SONY - TABACALERA - TELEFÓNICA Ingeniería Técnica en Informática de Sistemas Sector público y sanidad: - AGENCIA ESTATAL DE ADM. TRIBUTARIA - AYUNTAMIENTO DE BARCELONA - CENTRO DE GESTIÓN Y COOPERACIÓN TRIBUTARIA - CENTRO NACIONAL DE METEOROLOGÍA - GENERALITAT DE CATALUNYA - INSALUD - INSTITUT D’ESTUDIS CATALANS - INSTITUTO OCEANOGRÁFICO - HOSPITAL VALL D’HEBRON - Mº ECONOMÍA Y HACIENDA - SERVEI CATALÀ DE LA SALUT Otros clientes de Getronics en el panorama internacional: - BANK OF NEW YORK - BRITISH TELECOM - DEUTSCHE BANK - EUROPEAN COMISSION - FEDERAL EXPRESS - FIAT - FORD EUROPE - ITALIAN POLICE AUTHORITIES - NASA - NIKE - PHILIPS - SHELL - VOLKSWAGEN 14 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 2. UBICACIÓN EN LA EMPRESA 2.1 Introducción: Como ya he explicado anteriormente, la empresa esta dividida en diferentes sectores, desde el punto de vista del área de negocio. Pues bien, yo pertenezco al sector Banca. En este sector nos dedicamos principalmente a suministrar soluciones y servicios a las diferentes entidades financieras para las cuales trabajamos. En la empresa, dentro de este sector, hay diferentes grupos de trabajo o aplicaciones (que es como se conocen estos grupos dentro de la empresa). El sistema de información de “La entidad financiera” se divide en estas aplicaciones. Cada aplicación se encarga de gestionar una parte concreta del sistema informático del cliente y tiene unas funciones muy concretas dentro de la entidad. Por ejemplo: Ahorro es la aplicación que se encarga de todas las gestiones de las cuentas de ahorro de los clientes de la entidad financiera, la aplicación de Clientes de Línea Abierta es la que se encarga de las soluciones para los servicios de la banca electrónica y de Clientes de Internet... Yo pertenezco a la aplicación de CLO (Clients de Linia Oberta). 2.2 Aplicación CLO: CLO se encarga de gestionar y mantener todo el software para que nuestro cliente disponga de la operativa necesaria para trabajar con los Clientes a través de la Banca Electrónica. Es decir, se encarga de dotar del software necesario a la entidad financiera para gestionar todos los servicios que se le pueden ofrecer a sus clientes a través de lo que se llama Banca Electrónica, por ejemplo, Internet, móviles, Banca telefónica, etc... Esta operativa se conoce como Línea Abierta. Tarragona es una de las oficinas que cuenta con más trabajadores dedicándose a esta aplicación, ya que actualmente hay muchos proyectos importantes que se tienen que realizar en un plazo de tiempo relativamente corto. Sus trabajadores también se reparten por Barcelona y Castellón. 15 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 2.3 Organización de la Aplicación: La aplicación está gestionada por un Gerente que únicamente gestiona esta aplicación porque es lo suficientemente extensa. En otras aplicaciones comparten gerente, pero este no es el caso. La figura del gerente está por encima de la aplicación, y es el encargado de la comunicación con el cliente a nivel comercial y, por otro lado, se encarga de gestionar los recursos de la aplicación dentro de la propia empresa. Entrando ya en lo que sería la aplicación propiamente dicha, encontramos la figura del Jefe de Proyecto. Esta persona se encarga de gestionar y organizar los recursos de la aplicación en términos de carga de trabajo y producción. Además también se encarga de la comunicación con el cliente para definir el análisis y los requisitos para llevar a cabo el proyecto. En el caso que haya un proyecto muy grande, también se encarga de dirigirlo y gestionarlo. Justo por debajo del jefe de proyecto, tenemos la figura del Analista Funcional, que podríamos decir que es la mano derecha del jefe de proyecto. Realiza funciones parecidas a las del jefe de proyecto, pero tiene funciones menos comerciales con el cliente. Ayuda en la gestión interna de la aplicación. A partir de aquí tendríamos ya los Analistas Programadores. Quienes se encargan de realizar el análisis y el diseño, una vez el cliente ha pedido una solución o una nueva propuesta. Por último tenemos a los Programadores Senior y los Programadores Junior. En principio, no hay una diferencia substancial del tipo de tareas que desempeñan, pero los programadores seniors tienen más experiencia, y por lo tanto hay diferencia en cuanto a calidad de trabajo y tiempo invertido. Lo natural, si todo se desarrolla correctamente es que después del primer año se pase de Programador Junior a Programador Senior. En el momento de realizar el proyecto, la aplicación estaba compuesta por un jefe de proyecto, 4 analistas funcionales, 4 analistas programadores, 7 programadores seniors y 4 programadores juniors. 16 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas En el siguiente esquema se muestra la estructura jerárquica de la aplicación: Gerente Comunicación con el cliente (a nivel comercial) Jefe de proyecto Comunicación con el cliente (a nivel comercial y técnico) Analista Funcional Comunicación con el cliente (a nivel técnico) Analista Programador Programadores APLICACIÓN En el momento de realizar el proyecto mi categoría era de Programador Junior. Actualmente, como todavía no tengo un año de experiencia sigo con la misma categoría, pero espero ascender pronto. 17 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 2.4 Privacidad de Información Como trabajador de Getronics existe un compromiso contractual, con la empresa y con sus clientes de preservar la privacidad de los datos de estos. Por dicha razón en este documento no pueden aparecer datos concretos del cliente (su nombre, datos de sus clientes, etc.) ni información concreta sobre el diseño o la implementación del proyecto (datos del análisis, código fuente, volcados de pantallas, etc.). La información aquí contenida sólo pretende ser una breve aproximación al problema y dar una ligera idea del tipo de trabajo a realizar. 2.5 El Cliente El cliente del proyecto es una importante entidad financiera del país, que a partir de ahora llamaremos “Entidad E”. Es uno de los clientes más importantes de Getronics Iberia, con más de setecientas personas de la plantilla trabajando para él. Esta entidad tiene personal propio para el desarrollo de proyectos informáticos pero gran parte del trabajo lo exterioriza, subcontratando otras empresas de desarrollo como Getronics Iberia. Mi posición dentro de la empresa, como programador dentro del sector de banca y de servicios bancarios, se sitúa entre esas setecientas personas trabajando para “Entidad E”. 18 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 3. ENTORNO DE DESARROLLO (ENTORNO HOST) 3.1 Introducción al Entorno: Los proyectos se desarrollan en un entorno Host. Este entorno consiste en un sistema operativo MVS, con una serie de herramientas que facilitan su uso, el desarrollo, el mantenimiento y el funcionamiento de los diversos programas. La programación se realiza en el lenguaje PL/I y existen dos tipos de Bases de Datos: DB2 (relacional) y DL/I (jerárquica). 3.2 El Sistema Operativo: Para poder trabajar con el sistema operativo existen varias herramientas que facilitan el uso de éste. TSO (Time Sharing Option): Permite el acceso al sistema de múltiples usuarios al mismo tiempo. ISPPF (Interactive System Productivity Facility): Conocer la utilización del TSO es bastante complejo, por eso existe este programa, que se ejecuta bajo el control del TSO y que permite a través de menús, la ejecución de forma sencilla de múltiples funciones o aplicaciones: - Editor para la creación de programas fuente - Acceso a las Bases de Datos DB2 de forma interactiva - Acceso sencillo a los programas de utilidad tales como gestión y mantenimiento de ficheros, compiladores, gestión de colas de ejecución de jobs, etc. IMS: Es el entorno sobre el cual funcionan todos los procesos interactivos o On-Line. 19 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas JCL (Job Control Language): es un lenguaje para describir tareas al sistema operativo. Al JCL se le especifican los datos de entrada (ficheros) que han de ser accedidas, los datos de salida que han de ser creadas o modificadas, que recursos necesitará el job o tarea y los programas que se ejecutaran utilizando los datos anteriores. El job esta dividido en pasos. Cada programa que ejecuta un job tiene un número de paso asociado, y este será el orden de ejecución de los programas. 20 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 3.3 La Programación: El lenguaje de programación usado es el PL/I. Este lenguaje no presenta ninguna dificultad especial. Me gustaría destacar que existen unas normas de programación bastante estrictas, que se deben seguir al pie de la letra. Estas normas vienen dadas por la filosofía de la empresa, y es normal si sabemos que el mantenimiento del programa de desarrollemos, muy probablemente no lo haremos nosotros. Existen unas herramientas que calculan la calidad estática de un código fuente (no controla lo que pueda pasar en tiempo de ejecución por ejemplo). Siempre es preferible un programa claro con comentarios, que no un programa brillante pero incomprensible. Evidentemente siempre se tiene que buscar un punto intermedio en esta afirmación. Además, al ser la mayoría de aplicaciones del cliente muy críticas, existen turnos de guardia nocturnos en los que una persona debe permanecer localizable para resolver posibles incidencias y en estos casos es muy molesto recibir un aviso a media noche y encontrarse con un código incomprensible. Otro factor muy importante en el desarrollo de software, es la reutilización de código. Existe una amplia biblioteca de código reutilizable (macros) y de herramientas para consultarlo, con las funciones más utilizadas. En la fase de programación se usan muchas macros y se llaman muchos módulos ya programados que implementan funcionalidades varias como pueden ser escribir la cabecera del programa en la salida del batch, tratar ficheros, acceder a bases de datos, calcular fechas, validar números de tarjetas de crédito, etc. También se reutilizan los mensajes de error que dan los programas a los usuarios. Hay una base de datos con todos los mensajes de error usados hasta el momento y que sirven para la mayoría de casos con los que uno se pueda encontrar al programar. Hay una lista de errores estándar y una lista específica para cada aplicación diferente. 21 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas Existen dos entornos donde convive el software creado: Entorno de desarrollo (o “pruebas”): Es donde se crea y se prueba el software. Existe toda una Base de Datos de pruebas que es con la que trabajamos identica a la que existe en el entorno de público pero con un menor volumen de datos. Entorno de explotación (o “público”): Cuando una aplicación ha sido programada y probada intensivamente, asegurando que no hay fallos, se “sube a público” y entonces es usada por el cliente. La particularidad radica en que cada entorno tiene un código, datos propios, distintas CPU’s y en el entorno de explotación se limita el acceso a un número determinado de usuarios para evitar una sobreexplotación de los recursos del sistema que el cliente necesita para operar. 22 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 3.4 La Herramienta CASE: La entidad financiera posee una herramienta CASE a medida llamada MAESTRO, que centraliza todo el inventario y diseño de los programas, includes, tablas DB2, formatos de pantalla, etc. Cada vez que se quiere desarrollar algún componente, se debe definir primero en MAESTRO, y es esta herramienta la que informa al diccionario HOST de la creación. A parte esta herramienta es capaz de generar parte del código (el esqueleto del programa). Esto es especialmente útil para los formatos de pantalla y para enlazarlos con las transacciones asociadas a ellos. También se especifica el flow de ejecución a seguir en las transacciones. En los puntos siguientes se explican los conceptos de formatos de pantalla y todos los conceptos relacionados con transacciones. 3.5 Batch: Todos los programas que se encargan de crear, borrar o modificar ficheros (realizar copias de seguridad, fusión entre ficheros para crear ficheros mensuales, etc.) y en los cuales no existen procesos interactivos, son conocidos como programas Batch. Este tipo de programas los definimos mediante cadenas del lenguaje JCL. Estas cadenas pueden ser diarias, mensuales, anuales (si se ejecutan cada día, cada mes o cada año) o bien variables (nosotros planificamos su ejecución a conveniencia). 3.6 On-Line: La programación de aplicaciones On-Line se diferencia claramente de la programación Batch por tener una estructura especial y por utilizar una serie de macros que engloba un paquete de software especial y diseñado por el propio cliente. 23 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas A continuación se intentan explicar una serie de conceptos que forman parte del On-Line: -Transacción: es una operación On-Line. Esta operación On-Line, consta de un módulo de tratamiento de entrada, uno o varios módulos de aplicación, un módulo de tratamiento de salida y uno o varios formatos de pantallas. Dependiendo de los datos de entrada que recibe el módulo de entrada, se ejecutaran unos módulos de aplicación ó otros. La entrada de la transacción puede venir dada por los datos introducidos en una pantalla, y el resultado del módulo de salida puede insertarse en una pantalla con los datos. -Formato de pantalla: sirven de interfície con el usuario para la entrada y salida de datos. Se componen de una cabecera estándar y una serie de campos de datos de entrada o de salida. La estructura de datos con estos campos que viaja de la pantalla al programa se llama MID, y la estructura que viaja del programa a la pantalla con los campos que la llenaran se llama MOD. La parte del sistema operativo encargada de gestionar esta entrada y salida de pantalla se llama FrontEnd. -Módulo de entrada o PostFrontend: gestiona y valida los datos de entrada de la transacción, ya sean datos que vienen de la pantalla o bien sean datos de otra transacción. También prepara la ejecución de los módulos de aplicación. -Módulos de aplicación: son los que realizan los cálculos y las operaciones que corresponda hacer. -Módulo de salida o PreFrontend: a partir de los resultados de los módulos de aplicación, monta y presenta la pantalla de respuesta al usuario. -Función de Negocio: Normalmente, dentro de una transacción bajo el control del STO, los enlaces con otras aplicaciones se hacen a través de módulos utilizando solo funciones aisladas. La función de Negocio permite enlazar con "paquetes globales", es decir, enlazar con un grupo de funciones de una aplicación y una vez ejecutadas retornar al punto de enlace. El enlace se puede hacer a través de una transacción o bien a través de un insert de pantalla. 24 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas -PSB: es un componente que define todas las Bases de Datos a las cuales accederá la transacción. -Programa director: este programa es el que compone todos los componentes anteriores. -Conversa: es una estructura de datos que se usa para ir guardando los campos de las pantallas a medida que se va “navegando” por ellas. En condiciones normales, el hecho de retroceder en la navegación significa tener que volver a generar la salida de las pantallas anteriores, con la pérdida de tiempo que conlleva. En cambio, con la “conversa”, que tiene una estructura de pila, cada vez que se pasa a otra pantalla se apilan los datos de la pantalla anterior de manera que al retroceder en la navegación sólo hay que ir desapilando de la “conversa” los datos de las pantallas anteriores (lo que se denomina “conversa” de las pantallas anteriores). Además de los campos de la pantalla (el “MOD”), se guardan otros datos que no son visibles y que sirven para traspasar información de una pantalla a otra. Así, cuando el módulo de salida llena los campos de una pantalla (“MOD”) también rellena la “conversa” de esa pantalla, lo que se llama grabar conversa. Y el módulo de entrada, cuando recibe los datos de la pantalla (“MID”), también lee los datos de su “conversa”, o sea, recupera conversa. El on-line que usa la “conversa” se denomina on-line conversacional. 25 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas - Esquema típico de una transacción: Los datos introducidos en la pantalla A son validados por el módulo de entrada, el cual prepara la ejecución de los módulos de aplicación. Estos últimos se pueden ejecutar varias veces. Cuando se acaba la operación se ejecuta el módulo de salida, el cual llenara los datos de la pantalla B. 26 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 3.7 Bases de Datos: Se trabaja con dos tipos de Bases de Datos: DB2 (relacional) y DL/I (jerárquica). El sistema más común que se utiliza es el DB2 que permite SQL y tiene un funcionamiento sencillo. Pero por cuestiones de rendimiento no esta totalmente implementada, con lo cual su eficiencia con una cantidad de datos como con la que tratamos a veces no cumple los requisitos mínimos. Hace unos años DB2 se usaba únicamente en los casos en que el volumen de datos no era excesivamente grande, pero en la actualidad, su utilización va creciendo a medida que se optimiza el motor de esta Base de Datos. La otra Base de Datos el DL/I. Es un sistema jerárquico bastante antiguo, que agrupa los datos en forma de árbol. Cada nodo de este árbol tiene una estructura de datos concreta y se llama segmento. La principal ventaja que tiene el DL/I es que lleva utilizándose desde hace mucho tiempo, y que es fiable robusto y eficiente. 27 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 4. CICLO DE VIDA DE UN PROYECTO DE LA APLICACIÓN • Valoración del proyecto • Generar el documento Propuesta de Solución • Generar la documentación del diseño del proyecto: • o Documento de las Includes (diseño de las includes) o Cuadernos de Carga (diseño de los programas) o Cadenas Construcción del proyecto: o Includes o Programas (incluye pruebas unitarias) o Cadenas • Pruebas Generales • Implantación de la solución • Control calidad • Período Garantía 4.1. Valoración de un Proyecto: Se trata de elaborar un documento donde se calcula el coste de desarrollo de todo el proyecto desde el primer documento de propuesta de solución hasta la puesta en marcha y el período de garantía (o de depuración de errores). Se pone el total de las horas y a parte se desglosan cada apartado del ciclo de vida al detalle indicando el número de programas, includes, cadenas, tablas que se tienen que hacer y las horas previstas para diseñarlos y construirlos. 4.2. Propuesta de Solución: Una vez el analista se ha entrevistado con el cliente de “la entidad financiera”, reúne toda la información del proyecto que se tiene que realizar y lo plasma sobre este documento. 28 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 4.3. Diseño: Cuando el analista reúne toda la información necesaria, se procede a diseñar las includes, las tablas (en el caso que sea necesario), los programas que nos harán falta, las cadenas que se tendrán que crear, los nuevos ficheros, etc... 4.3.1. - Diseño de programas. Cuaderno de carga Para diseñar un programa, se elabora un documento que se llama Cuaderno de carga el cual le servirá al programador para construir el programa. No se utiliza ningún tipo de lenguaje de programación, todo está en pseudocódigo. El documento está formado por diferentes partes: • Funcionalidad: Describimos de forma breve para expresar las ideas básicas de lo que se quiere que haga el programa. • Recursos o Ficheros, Bases de Datos: Detallamos todos los ficheros de entrada y salida (nombres lógicos y las includes a las que estarán asociados) y si hace falta también se tiene que definir si utilizamos alguna Base de Datos de DB2 (include de la tabla) o IMS (puntero a la Base de Datos DLI). o Includes: Si se requiere poner alguna include a parte de las del formateo de los ficheros, como por ejemplo alguna llamada a algún módulo que tenga los parámetros definidos en una include, se pondría aquí. o Módulos: Tenemos 3 tipos de módulos: M. estandards: Son módulos totalmente genéricos que ofrece el entorno de “la entidad E” que sirven para facilitar tareas rutinarias y laboriosas, como por ejemplo: conversión de fechas (diferentes formatos, comparaciones), llamadas a las tablas de ayuda. 29 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas M. propia aplicación: Si tenemos la necesidad de hacer una misma tarea en diversos programas, se puede crear un módulo de nuestra aplicación y llamarlo desde todos los programas que lo necesiten. M. de otras aplicaciones: Cada aplicación tiene sus módulos más o menos genéricos, pues bien, si tenemos la necesidad de hacer una tarea de la que se suele encargar otra aplicación, no se diseña un módulo nuevo, sino que se puede utilizar el módulo de esa aplicación. • Lógica o Temas generales: En este apartado se hace una descripción de lo que hará el procedimiento principal. Sin utilizar ningún lenguaje de programación ni algoritmos. o Procedimiento principal: Utilizaremos el lenguaje de algoritmos para diseñar el procedimiento principal que debe ser breve y muy claro (alto nivel). o Procedimientos secundarios: A partir del procedimiento principal vamos descendiendo y diseñando los procedimientos secundarios o llamados por el procedimiento principal. Tenemos que llegar hasta el último nivel que se necesite (a ser posible evitar procedimientos largos y potenciar la reutilización y parametrización de los procedimientos para que sean lo más genéricos posible). Se utilizará, igual que en el apartado anterior, lenguaje de algoritmos (pseudocódigo) y se obviarán las declaraciones de variables al igual que las conversiones de asignaciones de tipos de datos diferentes (creando variables temporales) que será tarea del programador. • Pruebas Unitarias: en este apartados se describirá lo que se tiene que probar, aunque el programador se encargará de hacer el documento del Juego de Pruebas en el cual se prueban todas las condiciones del programa. 30 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 4.3.2.- Diseño de Cadenas: Entonces se tiene que diseñar el número de cadenas que se necesitarán para ejecutar los nuevos programas, si estas cadenas tendrán alguna dependencia de otras ya existentes o de alguna de las nuevas, etc.… 31 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 4.4. Construcción de Elementos del Proyecto: 4.4.1.- Construcción de Includes: Para crear las includes, se puede hacer directamente editando la nueva include en el HOST, o bien se puede utilizar una herramienta interna de “la entidad E”, llamada MAESTRO, que te permite crear una include y enviarla, posteriormente al HOST. Antes de la construcción, en el proceso de diseño, se habrá definido el número de includes necesarias, así como los campos y los formatos de los campos que la forman. 4.4.2.- Construcción de Programas y Módulos: En el momento que el programador recibe el cuaderno de carga y se dispone a empezar el programa, se tiene que leer y debe tener bien claro el funcionamiento y los objetivos del programa para su total autonomía al desarrollar el mismo. La programación debe tener una cierta calidad y estandarización (el cliente exige que se usen unos estándares propios). Existen métodos de calidad para evitar crear variables superfluas, programación incomprensible, utilización de instrucciones que tienen un alto consumo de recursos y el programador debe conocerlos. El programa ha de plasmar lo que pide el cuaderno de carga. Si el programa no realiza lo que se esperaba de el, se tiene que mirar de arreglar el cuaderno de carga y arreglarlo. Cuando el programa está listo y compilado sin errores, forma parte de esta misma tarea hacer las pruebas unitarias. Se tiene que elaborar el documento del Juego de Pruebas para asegurar el correcto funcionamiento del programa a nivel unitario. 4.4.3.- Construcción de Cadenas (JOBS): Utilizaremos el lenguaje de JCL del Host para construir las cadenas gracias a los documentos hechos con FlowChart. La cadena tiene que estar probada en el entorno de pruebas con ficheros reducidos o creados por el usuario (ficheros de prueba). Normalmente, no tenemos cadenas demasiado largas ya que se intenta separar cada cadena a nivel funcional. 32 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 4.5. Pruebas Generales: Las pruebas generales o integradas sirven para simular una puesta en marcha del proyecto. En entorno de pruebas se ejecutan todas las cadenas tal y como se haría automáticamente en el entorno real y se acaban de depurar algunos posibles errores que pueda haber. En el momento en que estas pruebas son correctas y revisadas por el analista ya se puede preparar el alta del proyecto. 4.6. Implantación de la Solución: En el momento que las pruebas ya están realizadas y son correctas, se procede a desarrollar un pequeño documento conocido como Inventario, que recoge todos los componentes del proyecto (includes, programas, cadenas y todos los componentes que hayamos creado) para no olvidarnos nada en el proceso de alta del proyecto (puesta en marcha). Gracias a la herramienta de Host, Changeman podemos pasar todo el proyecto del entorno de pruebas al entorno real (también conocido como público). Se debe tener un cuidado especial al traspasar las cadenas porqué se tienen que definir las dependencias entre ellas. Las dependencias entre las cadenas definen el orden de prioridad de ejecución y evitar que todas las cadenas se ejecuten a la vez y tengan un orden determinado. Una vez traspasado todo el proyecto tenemos que esperar al día siguiente para que las nuevas cadenas que hemos dado de alta entren en funcionamiento. A través de la herramienta Planificador de Host podremos hacer una monitorización de las cadenas para ver las ejecuciones y ver que todo funciona correctamente. Cuando se hayan realizado unas cuantas ejecuciones, el analista procede a hacer la revisión de la información de salida del proyecto comprobando que todo sea correcto y que obtenemos los resultados esperados del proyecto. 33 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 4.7. Control de Calidad: En todo proyecto debe haber un control calidad en todos los aspectos. El analista es el encargado de llevar a cabo esta tarea. Lo que se hace concretamente es observar las estadísticas del proyecto, es decir, asegurarnos que no tenemos ejecuciones excesivamente largas por haber hecho algún proceso innecesario, la calidad de la información generada por los nuevos programas. Básicamente, se trata de comprobar que el proyecto ya tiene la autonomía suficiente para ejecutarse automáticamente. 4.8 Periodo de Garantía: A pesar de que el proyecto ya funciona automáticamente, siempre se deja un periodo de garantía por cualquier incidencia que pueda ocurrir. Todo entra en el periodo de garantía, menos las modificaciones que no se hubiesen acordado, que entonces se tendrían que añadir en otros proyectos pequeños de evolutivos (mejora de un proyecto). 34 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5. PROYECTO: “MULTIFIRMA” 5.1 Introducción a Línea Abierta Antes de empezar a explicar el contenido del proyecto en si, me gustaría situar todo lo que sería en entorno conceptual del mismo. En los siguientes párrafos intento introducir lo que es la Línea Abierta para que se comprenda bien. Para empezar, un cliente de la “entidad E” puede darse de alta con un contrato de Línea Abierta y cada contrato a su vez puede tener diferentes usuarios. Cada uno de estos usuarios mantiene un perfil y unas características propias a pesar de pertenecer a un mismo contrato. Puede ser que un usuario de un contrato quiera adquirir unos productos totalmente distintos a otro usuario del mismo contrato (esto suele pasar). Para cada usuario existen una serie de productos que se pueden contratar como por ejemplo las cuentas de ahorro, las tarjetas, etc. Estos usuarios de Línea Abierta pueden tener activados unos servicios, llamados canales, que sirven para realizar operaciones a través de diversas formas. Estos canales son: - Web (Internet) - Windows (PC) - Línea Abierta SMS - WAP (Internet Móvil) - Banca Telefónica - Televisión Digital Normalmente tener el servicio de estos canales no es gratuito, excepto de canal Web que es un servicio que suele ofrecer la “entidad E” a sus clientes de manera gratuita. A través de estos canales el usuario puede realizar una serie de operaciones bancarias tales como consultas de saldo y últimos movimientos, transferencias, realizar pagos automáticos, obtener ayuda acerca de algún tema relacionado, etc. 35 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas Por ejemplo, un usuario de Línea Abierta que tenga activado en su perfil el canal de Línea Abierta SMS, podrá realizar las operaciones que antes comentaba a través de mensajes SMS desde su propio móvil. Estos usuarios, pueden tener activadas adicionalmente una serie de operativas especiales. La operativa de Multifirma, operativa en que está basado este proyecto, se encuentra dentro de este grupo de funcionalidades en concreto. 36 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.2. Definición del Problema: El proyecto consiste en construir toda una operativa que dote al cliente, la “entidad E”, de las transacciones y pantallas necesarias para poder gestionar todas las operaciones que requieren Multifirma. Ya existía una pequeña operativa que gestionaba parte de la Multifirma pero este nuevo proyecto aplica mejoras de usabilidad, adaptándola a la terminología de la red de oficinas de la entidad financiera e incluyendo las nuevas funcionalidades que requería el proyecto. Para conseguir esta operativa se necesitaba la creación de una serie de Transacciones (en este caso Funciones de Negocio) con sus respectivas pantallas, que le permitieran al terminalista hacer las consultas y acciones pertinentes para tratar las operaciones con Multifirma. Para entender bien todo lo relacionado con la Multifirma hay que explicar varios conceptos básicos de ella: Cuentas de Ahorro Multifirma: son aquellos productos que un usuario de Línea Abierta puede contratar. Estas cuentas tienen la particularidad que para las operaciones necesitan la firma de varias personas relacionadas a estas cuentas. Estas cuentas de ahorro se mantienen en una tabla DB2. Cláusulas Multifirma: son las condiciones que se necesitan cumplir para que se firme una solicitud. Por ejemplo, para que se firme una solicitud_X, como mínimo la tienen que firmar 3 personas. Hasta que tres personas que están dentro de la cláusula no han firmado, la solicitud no se firma y por tanto no se ejecuta la operación determinada. Las cláusulas se mantienen en una tabla dónde cada fila representa una cláusula relacionada a una cuenta de ahorro y a una persona dentro de esa cuenta. 37 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas Solicitudes Multifirma: la solicitud de una operación multifirma requiere que se realicen las firmas de un mínimo de personas, dependiendo de la cláusula de dicha solicitud. Toda operación Multifirma tiene una clave. Esta clave es el elemento que permite referenciar una solicitud realizada en Línea Abierta, en la operativa de oficinas de la entidad financiera. Las solicitudes se mantienen en una tabla donde cada fila representa a una persona que puede firmar la solicitud dado que el índice de la tabla es la clave de operación multifirma más un identificador de la persona. Por este motivo, para una solicitud tiene N filas en esta tabla (cada fila una persona). Firmas de Solicitudes Multifirma: son las firmas de cada una de las personas que pueden firmar una determinada solicitud Multifirma. Existe una tabla donde están todas las firmas de una solicitud. Cada fila de esta tabla es una firma de una persona en concreto. A parte se guarda el estado de la firma (Pendiente de Firma, Firmada, Caducada, etc.). Cuando se cumple la cláusula de una determinada solicitud, es decir, cuando se realizan todas las firmas de un número mínimo de personas, se firma la solicitud y puede ejecutarse la operación. NOTA Utilizaré una nomenclatura genérica a partir de ahora para referirme a las diferentes tablas: Tabla_A: Tabla de Cuentas de Ahorro con Multifirma. Tabla_B: Tabla de Cláusulas de operaciones Multifirma. Tabla_C: Tabla de Solicitudes Multifirma. Tabla_D: Tabla de Firmas de la Solicitud Multifirma. 38 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.3. Requisitos Generales: La operativa de Multifirma debe ser capaz de realizar las siguientes funciones de negocio (concepto explicado en el apartado 3.6): o Lista de Solicitudes: mostrar una lista de solicitudes de operaciones Multifirma de un contrato o DNI. determinado. o Consultar Solicitud: mostrar toda la información de una solicitud en concreto. o Consultar Cláusulas: mostrar todas las cláusulas de una determinada solicitud. Si para una determinada solicitud solo existe una cláusula el sistema debe mostrar una pantalla con la lista de todos los firmantes para esa cláusula sino, debe mostrar el listado de cláusulas completo. o Consultar Firmas: mostrar para una determinada solicitud, la lista de firmas de la misma, mostrando también el estado de cada una de las firmas (Firmadas o Pendiente de Firma). o Firma Solicitud Multifirma: A través de esta Función de Negocio se permitirá la firma de una solicitud en nombre de un determinado firmante. o Consultar Acciones: En esta Función de Negocio se mostraran por una pantalla todas las acciones o movimientos realizados sobre una solicitud en concreto: o Autorización de Anulación: La pantalla que gestiona esta Función de Negocio se mostrará cuando se solicite la anulación de una determinada solicitud. Esta Función de Negocio pedirá el identificador de un empleado y su respectiva clave para poder anular una solicitud. 39 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas Para el acceso a esta nueva operativa se ha habilitado una opción en el menú principal de nuestra aplicación (CLO). El terminalista, además de seleccionar esta opción (Multifirma) debe introducir un contrato de Línea Abierta o el DNI. de algún usuario. Después de esto, se mostrará la pantalla principal de la operativa de Multifirma, de la cual se parte. Tanto la Función de Negocio de este primer paso como la pantalla se reutiliza de la operativa de Multifirma antigua (es la única que aprovechamos). 40 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.3.1. FLUJO DE PANTALLAS MENU PRINCIPAL LISTA DE SOLICITUDES OPERATIVA MULTIFIRMA CONSULTA SOLICITUD CONSULTA FIRMAS INTRODUCCION FIRMAS CONSULTA CLAUSULAS 1 CONSULTA ACCIONES AUTORIZACION ANULACION CONSULTA CLAUSULAS 2 41 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.4. Propuesta de Solución: Para explicar en lo que consiste el proyecto voy a resumir el funcionamiento de cada una de las Funciones de Negocio que intervienen. En puntos posteriores explicaré de forma más extensa las Funciones de Negocio que he desarrollado de forma completa (Aunque, mi participación ha estado presente en todas las transacciones). 5.4.1. LISTA DE SOLICITUDES En esta pantalla facilitará la lista de solicitudes de multifirma que cumplen el criterio de búsqueda indicado, ordenadas de más a menos recientes (según fecha de solicitud). Información que se muestra de cada solicitud: - Fecha y Hora de la Solicitud - Nombre de la Operación que se solicita - Estado de la Solicitud - El Importe Para cada solicitud se pueden realizar las siguientes acciones (seleccionando una solicitud con la letra que identifica a la acción): - Consultar (C) - Firmar (F) - Anular (A) Cualquiera de estas acciones sobre una solicitud enlazará con la Pantalla de consulta de solicitud, con la información detallada de la misma. Es una ventana previa a la acción que se haya seleccionado. Hay una acción adicional en la pantalla que filtra el listado de solicitudes, mostrando únicamente aquellas que tienen el estado “Pendientes”. 42 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.4.2. CONSULTA SOLICITUD Esta pantalla mostrará la información detallada de una determinada operación. A partir de esta pantalla se pueden obtener datos adicionales o realizar acciones sobre la solicitud en cuestión. En esta pantalla existen una serie de acciones a realizar que, dependiendo de cómo hayamos llegado a esta pantalla, se pueden seleccionar o no. Son las siguientes: - Consultar Firmas, Consultar Cláusulas, Consultar Acciones: Estas acciones están disponibles para seleccionarlas si en la pantalla anterior (Lista de Solicitudes) se ha seleccionado una solicitud con una C de Consultar. La selección de una de estas acciones enlazará con la pantalla correspondiente. - Firmar Solicitud: Esta acción aparecerá marcada por defecto y con el resto de acciones bloqueadas si venimos de la pantalla anterior con una selección de solicitud con una F de Firmar. Esta acción enlazará con una pantalla previa a la firma, dónde se muestra, para una solicitud, el estado de las firmas de la misma. Es decir, un listado con el NIF y el nombre de cada firmante y el estado de cada una de ellas. De esta pantalla se puede enlazar con la Pantalla de “Firmar Solicitud” si se selecciona la acción de Firmar Pendientes. - Anular Solicitud: Esta acción aparecerá marcada por defecto y con el resto de acciones bloqueadas si venimos de la pantalla anterior con una selección de solicitud con una A de Anular. Esta acción enlazará con una pantalla de autorización para la anulación de una solicitud. 43 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.4.3. CONSULTA CLAUSULAS (1) A esta primera pantalla de consulta de cláusulas se llega después de haber seleccionado la opción de Consultar Cláusulas en la pantalla “Consulta de Solicitud” y existen más de una cláusula para dicha solicitud. En el caso contrario la pantalla que se mostraría sería la de “Consulta Cláusulas (2)”. En Consulta Cláusulas (1) se muestra una lista con todas las cláusulas de una determinada solicitud con el Estado de cada cláusula a un lado. Los posibles estados de una cláusula son: - Con Firmas: Si la solicitud tiene firmas y no se ha ejecutado la operación Multifirma. - Con Firmas y Procesada: Si la solicitud tiene firmas y además se ha ejecutado la operación Multifirma. - Sin Firmas: Si la solicitud no tiene firmas. De la lista de cláusulas se puede seleccionar con una C cualquiera de las que tengan estado “Con Firmas” o “Con Firmas y Procesada” para enlazar con la siguiente pantalla (Consulta Cláusulas 2). 5.4.4. CONSULTA CLAUSULAS (2) Esta pantalla muestra toda la lista de firmantes que existen para una determinada cláusula. Permite conocer el estado de los firmantes de dicha cláusula dado que en la pantalla se muestra el DNI, el nombre del Firmante y su estado. Para llegar a esta pantalla puede haber dos cosas. Que vengamos de la pantalla de “Consulta de Solicitud” y han seleccionado la opción de Consultar Cláusulas y esa solicitud en concreto solo tiene una Cláusula ó, venimos de la pantalla “Consulta Cláusulas 1” y nos han seleccionado una cláusula con una C y esa solicitud tiene Firmas. 44 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.4.5. CONSULTA FIRMAS Esta es la pantalla que comentaba anteriormente que era previa a la firma. Esta pantalla muestra, para una solicitud, el estado de las firmas de la misma. Y para acceder a esta pantalla se tiene que seleccionar la acción de Firmar Solicitud en la pantalla de “Consulta de Solicitud”. En esta pantalla hay una acción de Firmar Pendientes que te permite enlazar con la pantalla que a continuación se explica. 5.4.6. FIRMAR SOLICITUD A través de esta pantalla se permitirá la firma de una solicitud en nombre de un determinado firmante. En esta pantalla se muestra una lista con la siguiente información: - DNI y Nombre del Firmante - Estado del Firmante Sólo se permitirá Firmar de una en una. Para ello hay que seleccionar con una F de Firmar, la Firma de la persona que se desea realizar. No se permite firmar cuando ya conste la firma del cliente. 45 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.4.7. CONSULTA ACCIONES Esta Función de Negocio mostrará en su respectiva pantalla todas las acciones realizadas sobre una solicitud en concreto. Se contemplarán las siguientes acciones: Acción Solicitud Multifirma Solicitud Firma Firma Error en Proceso Procesada OK Anulada Caducada Bloqueada Pasada a Histórico Para llegar a esta pantalla tienen que haber seleccionado la opción de Consultar Acciones en la pantalla de “Consultar Solicitud”. 5.4.8. ANULACIÓN DE SOLICITUD Esta Función de Negocio se encarga de validar que el empleado que se dispone a anular una solicitud tiene el nivel mínimo requerido para hacerlo y que la clave que introduce es correcta. En la pantalla que respectiva a esta Función de Negocio hay dos campos dónde el terminalista debe introducir su número de empleado y su clave. El sistema validará si puede Anular la Solicitud o si de lo contrario no puede. Para acceder a esta pantalla se debe accionar la opción de Anular Solicitud en la pantalla de “Consultar Solicitud”. 46 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.5. Funciones de Negocio Desarrolladas: En este punto quiero explicar todas las Funciones de Negocio que he desarrollado al completo, detallando cada módulo de los que participan en cada Función de Negocio. Las Funciones de Negocio son las siguientes: - Consulta de Cláusulas 1 - Consulta de Cláusulas 2 - Anulación de Solicitud 5.5.1.- CREACIÓN PANTALLAS, ESTRUCTURAS ENTRADA Y SALIDA,...: La construcción de las todas las pantallas que intervienen en el Proyecto fue mi primera participación en el proyecto. Las nuevas Funciones de Negocio tendrán las pantallas que anteriormente he comentado y que están conectadas entre si como se ve en el esquema del punto 5.3.1. El diseño de las pantallas viene especificado en la Propuesta de Solución del Proyecto. A continuación se detallan los pasos a seguir a la hora de construirlas: ¾ Las pantallas se definen en la herramienta MAESTRO (explicada anteriormente). Lo que hacemos en MAESTRO es decidir que aspecto tendrá la interfície gráfica que verá el terminalista (el aspecto de las pantallas viene definido también en la Propuesta de Solución). Además se define una cabecera (todas las pantallas tienen una cabecera estándar, sólo cambia el título de la pantalla), se definen los campos que pueda tener, los literales, para introducir o mostrar datos, etc.… ¾ Definir las estructuras de entrada y salida de la pantalla. Cada pantalla tiene definida una estructura de entrada (conocida como MID, en esta estructura tenemos todos los datos de entrada) y una estructura de salida (conocida como MOD, que contiene todos los datos que son de salida). Con esto tendremos generado el formato de la pantalla en el HOST. 47 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.5.2.- CONSULTA DE CLAUSULAS (1) DE UNA SOLICITUD: En el esquema que se muestra a continuación podemos ver la secuencia que sigue esta Función de Negocio y los Módulos de Aplicación que tiene planificados en cada flujo de ejecución. En los puntos siguientes se explican detalladamente cada uno de los módulos que intervienen en la Función de Negocio de “Consulta de Cláusulas 1”. MODULO DE ENLACE MODULO TRATAMIENTO DE ENTRADA MODULO RECEPCION ENLACE ‘0002’ Selección de una Cláusula ‘0000’ Lista de Cláusulas MODULO APLICACIÓN A ‘0001’ Paginación MODULO ENLACE CONSULTA CLAUSULAS 2 MODULO TRATAMIENTO DE SALIDA Retorno Transacción Origen LISTA CLAUSULAS Pantalla 48 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.5.2.1.- MÓDULO DE ENLACE: Este módulo no pertenece propiamente a la Función de Negocio. Como ya he comentado con anterioridad este módulo se incluirá en las transacciones de origen que llamarán a Función de Enlace asociada a este módulo. Su función es la de complementar los datos de la Include de comunicación (los datos que recibirá la Función de Negocio), realizar una validación formal, y llamar a la Función de Negocio de “Consulta de Cláusulas 1”i, incluyéndola en el Mensaje Circulante de la transacción. INCLUDE DE COMUNICACIÓN: La include de comunicación contiene los datos que necesita la Función de Negocio para ejecutarse. Esta include se llena en el Módulo de Enlace. Una vez la include esta llena de datos, se procede a llamar a la Función de Negocio. Esta recibe la información mediante el módulo de recepción de enlace, que se encargará de recibir estos datos y validarlos. En el siguiente punto se explica en detalle el Módulo de Recepción de Enlace. 5.5.2.2.- MÓDULO DE RECEPCIÓN DE ENLACE: Este módulo es el primero que se lanza cuando la Función de Negocio se ejecuta desde otra transacción. Recibe la include de comunicación, hace la validación sintáctica y formal de los campos. Es decir, realiza las siguientes acciones: 1.- Validación sintáctica y formal, de los datos que recibe por la include de comunicación del Módulo de Enlace 2.- Planifica el flujo de ejecución inicial, llenando la include de entrada del “MODULO DE APLICACIÓN A” con los datos que nos pasa la transacción Origen. Es decir, indica al IMS que módulos se ejecutarán. A efectos prácticos los Módulos de Recepción de Enlace tienen las mismas características que los Módulos de Tratamiento de Entrada. 49 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.5.2.3.- MÓDULO TRATAMIENTO DE ENTRADA: Este módulo se encarga de validar los datos que se teclean por pantalla y, crear el mensaje circulante de la transacción. La validación será sintáctica, es decir, se comprobará su bondad formal, sin comprobar su validez en cuanto a los datos guardados en las Bases de Datos del IMS o tablas DB2. En nuestro caso se encargará de: 1.- Validar los datos de entrada que recibe de la pantalla, dependiendo de la tecla que haya introducido el terminalista: • Si la tecla introducida es un ‘Intro’: - Controlar que seleccionan únicamente una Cláusula de la lista de Cláusulas. - Controlar que la selección la realizan con la letra correspondiente. El sistema sólo permite que se seleccione una Cláusula con la letra ‘C’ de Consulta. - Controlar que la Cláusula que se selecciona tiene Firmas, en caso contrario informar el mensaje de error que se mostrará. - Generar el Mensaje Circulante (Área de memoria del Programa Online que contiene toda la información de la transacción: datos de control, datos identificativos y registros de entrada y salida). Prepara las estructuras de entrada/salida de los módulos de aplicación que se ejecutarán. En nuestro caso, prepara las estructuras de entrada/salida del MODULO DE ENLACE con la Función de Negocio siguiente, es decir, con “Consultar Cláusulas 2”. 50 Proyecto Final de Carrera - 2006 • Ingeniería Técnica en Informática de Sistemas Si la tecla introducida es un ‘F8’ (Tecla de paginación hacia adelante): - Generar el Mensaje Circulante (Área de memoria del Programa Online que contiene toda la información de la transacción: datos de control, datos identificativos y registros de entrada y salida). Prepara las estructuras de entrada/salida de los módulos de aplicación que se ejecutarán. En nuestro caso, prepara las estructuras de entrada/salida del MÓDULO DE APLICACIÓN A. • Si la tecla introducida es un ‘F7’ (Tecla de paginación hacia atrás): - Cuando se pagina hacia atrás se recupera la pantalla anterior de la paginación. Esto se consigue con la conversa explicada en el punto 3.6. • Si la tecla introducida es un ‘F3’ (Tecla de Retorno): - Se Retorna a la Transacción Origen. Transacción que ha realizado la llamada a esta Función de Negocio, que sería la de “Consulta de Solicitud”. Los diferentes Flujos de Ejecución se diferencian dentro de la Función de Negocio con un código, conocido como Subcódigo. Este subcódigo se le asigna a un determinado Flujo de Ejecución, en el Módulo de Recepción de Enlace o en el Módulo de Tratamiento de Entrada. Esto se hace, para que el Módulo de Tratamiento de Salida sepa que Flujo se ha ejecutado para poder mostrar una pantalla u otra. En las Funciones de Negocio que hay paginación es muy importante comprobar que la paginación es correcta. 51 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.5.2.4.- MÓDULO TRATAMIENTO DE SALIDA: Su función básica se puede resumir en dos acciones: 1. Analizar las respuestas de las diferentes operaciones-aplicaciones ejecutadas. 2. En función de este análisis, recoger los datos pertinentes para construir la respuesta a la Terminal (Pantalla). En nuestro caso será el encargado de: 1.- Recuperar les áreas de salida de los módulos de aplicación que se han ejecutado y analizar las respuestas de estos módulos. 2.- Dependiendo del resultado del análisis de los módulos, puede pasar lo siguiente: 2.1.- Si los módulos han acabado OK entonces podemos informar la pantalla de salida dependiendo del Subcódigo que anteriormente comentaba: • Si el Subcódigo pertenece al Flujo de ejecución planificado en el Módulo de Recepción de Enlace y el resultado de los módulos que se han ejecutado es correcto, mostramos la pantalla de “Consulta de Cláusulas 1”. • Si el Subcódigo pertenece al Flujo de ejecución dónde nos han seleccionado una Cláusulas con Firmas y todos los módulos que se han ejecutado han ido bien, quiere decir que venimos de la pantalla de “Consulta de Cláusulas 2”. • Si el Subcódigo pertenece al Flujo de ejecución dónde han tecleado un ‘F8’ (Paginación hacia delante) mostramos la misma pantalla, pero con la nueva información que nos devuelve el MÓDULO DE APLICACIÓN A. 52 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 2.2.- Si los módulos han acabado con algún error. Entonces enviará un mensaje de error al Terminal. 53 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.5.2.5.- MÓDULOS DE APLICACIÓN: Esta Función de Negocio tiene un único Módulo de Aplicación. Utilizaré el nombre que he estado usando hasta ahora para referirme a él, MÓDULO DE APLICACIÓN A. Todo módulo de aplicación utiliza un área de entrada y otra de salida, dónde se pasan los datos que necesita para realizar sus operaciones, y dónde el deja el resultado de las operaciones que realiza, o algún dato que necesite retornar. Esto implica que se tiene que crear una estructura de datos de entrada y otra de salida para el módulo de aplicación en cuestión. o MÓDULO_APLICACIÓN_A: Lista de Cláusulas Este módulo accede a la TABLA_B, Tabla de Cláusulas, a partir de un número de cuenta de ahorro Multifirma. Este módulo retornara a través de su área de salida un máximo de 10 Cláusulas (las que se mostrarán por pantalla) y en caso de que haya más los datos, retornara la información necesaria para poder ejecutarse de nuevo y mostrar las 10 Cláusulas siguientes. Este módulo también retornará el estado de cada una de las 10 Cláusulas retornadas, accediendo a la TABLA_D, Tabla de Firmas, accediendo por solicitud (clave de operación Multifirma). - Si una cláusula determinada no tiene filas en la TABLA_D, el estado que se mostrará por pantalla será el de “Sin Firmas”. - Si una cláusula determinada tiene filas en la TABLA_D, pero el estado de la cláusula es diferente de “Procesada”, el estado que se mostrara por pantalla será “Con Firmas”. - Si una cláusula determinada tiene filas en la TABLA_D, y además el estado de la cláusula en la TABLA_B es “Procesada”, el estado que mostraremos será “Con Firmas y Procesada”. A parte de toda esta información el Módulo de Aplicación retornará por su área de salida el número de filas que ha conseguido y si hay más filas para mostrar. 54 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.5.3.- CONSULTA DE CLAUSULAS (2) DE UNA SOLICITUD: En el esquema que se muestra a continuación podemos ver la secuencia que sigue esta Función de Negocio y los Módulos de Aplicación que tiene planificados en cada flujo de ejecución. En los puntos siguientes se explican detalladamente cada uno de los módulos que intervienen en la Función de Negocio de “Consulta de Cláusulas 1”. MODULO DE ENLACE MODULO RECEPCION ENLACE ‘0000’ Consulta de Firmas y su Estado MODULO TRATAMIENTO DE ENTRADA ‘0001’ Paginación MODULO APLICACIÓN B MODULO TRATAMIENTO DE SALIDA Retorno Transacción Origen LISTA FIRMANTES Pantalla 55 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.5.3.1.- MÓDULO DE ENLACE: Este módulo es de las mismas características que el Módulo de Enlace de la anterior Función de Negocio. Sus funciones son muy parecidas pero para esta Función de Negocio. No creo que requiera de explicación. 5.5.3.2.- MÓDULO DE RECEPCIÓN DE ENLACE: En esta Función de Negocio, el Módulo de Recepción de Enlace realiza las siguientes acciones: 1.- Validación sintáctica y formal, de los datos que recibe por la include de comunicación del Módulo de Enlace. 2.- Planifica el flujo de ejecución inicial, llenando la include de entrada del “MODULO DE APLICACIÓN B” con los datos que nos pasa la transacción Origen. Es decir, indica al IMS que módulos se ejecutarán. A efectos prácticos los Módulos de Recepción de Enlace tienen las mismas características que los Módulos de Tratamiento de Entrada. 56 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.5.3.3.- MÓDULO TRATAMIENTO DE ENTRADA: Este módulo se encarga de validar los datos que se teclean por pantalla y, crear el mensaje circulante de la transacción. La validación será sintáctica, es decir, se comprobará su bondad formal, sin comprobar su validez en cuanto a los datos guardados en las Bases de Datos del IMS o tablas DB2. En nuestro caso se encargará de: 1.- Validar los datos de entrada que recibe de la pantalla, dependiendo de la tecla que haya introducido el terminalista: • Si la tecla introducida es un ‘Intro’ o un ‘F3’: - Se Retorna a la Transacción Origen. Transacción que ha realizado la llamada a esta Función de Negocio, que sería la de “Consulta de Cláusula 1”. • Si la tecla introducida es un ‘F8’ (Tecla de paginación hacia adelante): - Generar el Mensaje Circulante (Área de memoria del Programa Online que contiene toda la información de la transacción: datos de control, datos identificativos y registros de entrada y salida). Prepara las estructuras de entrada/salida de los módulos de aplicación que se ejecutarán. En nuestro caso, prepara las estructuras de entrada/salida del MÓDULO DE APLICACIÓN B. • Si la tecla introducida es un ‘F7’ (Tecla de paginación hacia atrás): - Cuando se pagina hacia atrás se recupera la pantalla anterior de la paginación. Esto se consigue con la conversa explicada en el punto 3.6. 57 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.5.3.4.- MÓDULO TRATAMIENTO DE SALIDA: Su función básica se puede resumir en dos acciones: 3. Analizar las respuestas de las diferentes operaciones-aplicaciones ejecutadas. 4. En función de este análisis, recoger los datos pertinentes para construir la respuesta a la Terminal (Pantalla). En nuestro caso será el encargado de: 1.- Recuperar les áreas de salida de los módulos de aplicación que se han ejecutado y analizar las respuestas de estos módulos. 2.- Dependiendo del resultado del análisis de los módulos, puede pasar lo siguiente: 2.1.- Si los módulos han acabado OK entonces podemos informar la pantalla de salida, dependiendo del Subcódigo: • Si el Subcódigo pertenece al Flujo de ejecución planificado desde el Módulo de Recepción de enlace y todos los módulos de aplicación han terminado bien, se muestra la pantalla “Consultar Cláusulas 2”. • Si el Subcódigo pertenece al Flujo de ejecución dónde han tecleado un ‘F8’ (Paginación hacia delante) mostramos la misma pantalla, pero con la nueva información que nos devuelve el MÓDULO DE APLICACIÓN B. 2.2.- Si los módulos han acabado con algún error. Entonces enviará un mensaje de error al Terminal. 58 Proyecto Final de Carrera - 2006 Ingeniería Técnica en Informática de Sistemas 5.5.3.5.- MÓDULOS DE APLICACIÓN: Esta Función de Negocio tiene un único Módulo de Aplicación. Utilizaré el nombre que he estado usando hasta ahora para referirme a él, MÓDULO DE APLICACIÓN B. Para este Módulo de Aplicación (igual que en el de la Función de Negocio anterior) se tiene que crear una estructura de datos de entrada y otra de salida. o MÓDULO_APLICACIÓN_B: Lista de Firmantes Este módulo accede a la TABLA_D, Tabla de Firmas, a partir de un número de solicitud (clave de operación Multifirma). Este módulo retornara a través de su área de salida un máximo de 10 Firmas (las que se mostrarán por pantalla) y en caso de que haya más los datos, retornará la información necesaria para poder ejecutarse de nuevo y mostrar las 10 firmas siguientes. Este módulo también retornará el estado de cada una de las filas. A parte de toda esta información el Módulo de Aplicación retornará por su área de salida el número de filas que ha conseguido y si hay más filas para mostrar. 59 Proyecto Final de Carrera - 2005 Ingeniería Técnica en Informática de Sistemas 5.5.4.- ANULACION DE SOLICITUDES: En el esquema que se muestra a continuación podemos ver la secuencia que sigue esta Función de Negocio y los Módulos de Aplicación que tiene planificados en cada flujo de ejecución. En los puntos siguientes se explican detalladamente cada uno de los módulos que intervienen en la Función de Negocio de “Anulación de Solicitudes”. MODULO DE ENLACE MODULO TRATAMIENTO DE ENTRADA ‘0001’ Anulación Autorizada MODULO RECEPCION ENLACE MODULO APLICACIÓN C ‘0000’ Flujo de enlace a la Pantalla MODULO TRATAMIENTO DE SALIDA Retorno Transacción Origen AUTORIZACION ANULACION Pantalla 60 Proyecto Final de Carrera - 2005 Ingeniería Técnica en Informática de Sistemas 5.5.4.1.- MÓDULO DE ENLACE: Este módulo es de las mismas características que el Módulo de Enlace de la anterior Función de Negocio. Sus funciones son muy parecidas pero para esta Función de Negocio. No creo que requiera de explicación. 5.5.4.2.- MÓDULO DE RECEPCIÓN DE ENLACE: En esta Función de Negocio, el Módulo de Recepción de Enlace realiza las siguientes acciones: 1.- Validación sintáctica y formal, de los datos que recibe por la include de comunicación del Módulo de Enlace. 2.- Planifica el flujo de ejecución inicial, aunque en este caso, el flujo inicial no ejecuta ningún Módulo de Aplicación. Lo único que hace es enlazar con la pantalla de “Autorización de Anulación. A efectos prácticos los Módulos de Recepción de Enlace tienen las mismas características que los Módulos de Tratamiento de Entrada. 61 Proyecto Final de Carrera - 2005 Ingeniería Técnica en Informática de Sistemas 5.5.4.3.- MÓDULO TRATAMIENTO DE ENTRADA: Este módulo se encarga de validar los datos que se teclean por pantalla y, crear el mensaje circulante de la transacción. La validación será sintáctica, es decir, se comprobará su bondad formal, sin comprobar su validez en cuanto a los datos guardados en las Bases de Datos del IMS o tablas DB2. En nuestro caso se encargará de: 1.- Validar los datos de entrada que recibe de la pantalla, dependiendo de la tecla que haya introducido el terminalista: • Si la tecla introducida es un ‘Intro’: - Se valida que tanto el empleado que desea realizar la anulación como su clave sean numéricos. - Utilizando una función que ya existe para comprobar que el empleado introducido existe y validar su clave, se realiza la autorización para poder anular la solicitud. - Generar el Mensaje Circulante (Área de memoria del Programa Online que contiene toda la información de la transacción: datos de control, datos identificativos y registros de entrada y salida). Prepara las estructuras de entrada/salida de los módulos de aplicación que se ejecutarán. En nuestro caso, prepara las estructuras de entrada/salida del MÓDULO DE APLICACIÓN C. • Si la tecla introducida es un ‘F3’: - Se Retorna a la Transacción Origen. Transacción que ha realizado la llamada a esta Función de Negocio, que sería la de “Consulta de Cláusula 1”. 62 Proyecto Final de Carrera - 2005 Ingeniería Técnica en Informática de Sistemas 5.5.4.4.- MÓDULO TRATAMIENTO DE SALIDA: Su función básica se puede resumir en dos acciones: 5. Analizar las respuestas de las diferentes operaciones-aplicaciones ejecutadas. 6. En función de este análisis, recoger los datos pertinentes para construir la respuesta a la Terminal (Pantalla). En nuestro caso será el encargado de: 1.- Recuperar les áreas de salida de los módulos de aplicación que se han ejecutado y analizar las respuestas de estos módulos. 2.- Dependiendo del resultado del análisis de los módulos, puede pasar lo siguiente: 2.1.- Si los módulos han acabado OK entonces podemos informar la pantalla de salida, dependiendo del Subcódigo: • Si el Subcódigo pertenece al Flujo de ejecución planificado desde el Módulo de Recepción de enlace, se muestra la pantalla “Autorización para Anulación”. • Si el Subcódigo pertenece al Flujo de ejecución dónde han tecleado un ‘Intro’ (Anulación) mostramos la misma pantalla, pero con el mensaje que nos retornará el MÓDULO DE APLICACIÓN C. - Si la Anulación se ha realizado correctamente se informara de ello. 2.2.- Si los módulos han acabado con algún error. Entonces enviará un mensaje de error al Terminal. 63 Proyecto Final de Carrera - 2005 Ingeniería Técnica en Informática de Sistemas 5.5.4.5.- MÓDULOS DE APLICACIÓN: Esta Función de Negocio tiene un único Módulo de Aplicación. Utilizaré el nombre que he estado usando hasta ahora para referirme a él, MÓDULO DE APLICACIÓN C. Para este Módulo de Aplicación (igual que en el de la Función de Negocio anterior) se tiene que crear una estructura de datos de entrada y otra de salida. o MÓDULO_APLICACIÓN_C: Anulación de una Solicitud Este módulo accede a la TABLA_C, Tabla de Solicitudes, a partir de un número de solicitud (clave de operación Multifirma). Este módulo modificará el estado de la solicitud, para que aparezca como solicitud “Anulada”. En el caso de que no encuentre dicha solicitud informará en su área de salida el error. Además, también graba en una tabla de movimientos, que ha realizado una anulación de la solicitud en cuestión. 64 Proyecto Final de Carrera - 2005 Ingeniería Técnica en Informática de Sistemas 6. IMPLICACIÓN PERSONAL EN EL PROYECTO Este proyecto lo realizó el grupo de trabajo de Tarragona con la colaboración de programadores en Barcelona y Castellón, bajo la supervisión y participación de un analista funcional en Tarragona. Mi implicación en el proyecto empezó en el momento que tuvimos entre manos una propuesta de solución definida. En este momento, nos reunimos todos los que íbamos a participar en el proyecto con el analista programador para que nos facilitara toda la información referente al proyecto y para definir las pautas a seguir para realizar el proyecto. A partir de aquí, mi tarea consistió en desarrollar, en un principio, módulos de aplicación y partes de una transacción, y finalmente desarrollando transacciones completas. Durante todo el proyecto estábamos en contacto con nuestro responsable en Tarragona, pero también con el resto del grupo de trabajo ya que mis tareas solían depender de transacciones hechas por otros componentes del proyecto. Por la naturaleza del proyecto, durante el mismo se han tenido que tomar una serie de decisiones que no se contemplaban en la primera propuesta de solución. Para estas decisiones el analista funcional tenia que contactar con el cliente para informarle y conocer su punto de vista sobre el tema. 65 Proyecto Final de Carrera - 2005 Ingeniería Técnica en Informática de Sistemas 7. CONCLUSIONES 7.1. Conocimientos Aplicados: Conceptos de programación: Conceptos adquiridos en asignaturas basadas en el aprendizaje de algorítmica y la estructuración del código. Conocimientos adquiridos en Programación I y Programación II. Conceptos de utilización y gestión de ficheros de entrada y salida: Conocimientos adquiridos en Introducción a Bases de Datos, muy útiles en el entorno HOST en el que trabajamos, por qué se trabaja a un nivel muy cercano al del Sistema Operativo y cuando se crea un fichero, se ha de especificar el tipo de registros que va a contener (fijos o variables), la longitud, el tamaño del bloque, el tipo de datos (Kb o Bytes), espacio primario y dependiendo del volumen de datos, si el fichero se catalogará en disco o en cinta. Conceptos de Bases de Datos: Sobretodo ha sido muy útil los conceptos sobre las bases de datos relacionales, materia a la que se dedicó la asignatura de Bases de Datos, ya que en este proyecto se trabaja con tablas DB2. Respecto a las bases de datos jerárquicas, aunque en este proyecto no se han utilizado, son muy útiles los conocimientos adquiridos por qué en otras aplicaciones aun se trabaja con Bases de Datos jerárquicas y ayuda a entender programas que puedes necesitar en ocasiones. Conceptos de Sistemas Operativos: Conceptos que se vieron en las asignaturas de Introducción a Sistemas Operativos y Sistemas Operativos, necesarios para la comprensión del funcionamiento del sistema operativo y sus herramientas básicas: colas de ejecución de procesos, el planificador batch, las clases ó grupos de prioridad, distribución de memoria, etc. 66 Proyecto Final de Carrera - 2005 Ingeniería Técnica en Informática de Sistemas 7.2. Valoración Personal: Mi valoración global es muy positiva en todos los aspectos. Tanto en el resultado obtenido en la resolución del proyecto expuesto, como de mi participación en particular. Además, gracias a este proyecto he podido conocer profundamente la aplicación de los Clientes de Línea Abierta. Valoro la perfecta línea de comunicación que mantuve con mi responsable en un inicio y más tarde con el analista que supervisaba el trabajo que se iba realizando. Trabajar en este proyecto me ha ayudado a coger soltura a la hora de programar y a la hora de trabajar con Bases de Datos. En este proyecto son muy importantes las tablas dónde guardamos la información y de dónde la consultamos. También valoro muy positivamente el trabajo realizado en equipo y lo gratificante que es formar parte de un grupo de trabajo. Me gustaría destacar el buen ambiente que se vive, no sólo en mi aplicación, sino en toda la oficina de Tarragona. Este hecho facilita el buen entendimiento y la comunicación, a parte de que mejora el rendimiento y calidad del trabajo realizado. 67 Proyecto Final de Carrera - 2005 Ingeniería Técnica en Informática de Sistemas 8. AGRADECIMIENTOS En estas líneas me gustaría agradecer a todas las personas que han hecho posible la realización de este Proyecto Final de Carrera. En primer lugar, quiero agradecer a GETRONICS Iberia todas las facilidades que me han dado para presentar el proyecto en cuestión como Proyecto Final de Carrera, y especialmente a Conchita Núñez, Gerente de la aplicación, y a Ignasi Bescos, que ha sido mi responsable desde que entre en la oficina a trabajar, por su predisposición a ayudar y las facilidades que me han dado para hacerlo. Y finalmente, también agradecer a Jordi Pascual, analista funcional responsable del proyecto, por toda la información y la ayuda que me ha facilitado. 68