Ejecución de la transformación
Luego de guardar el editor, haga clic en Run Transformations... (Ejecutar transformaciones) y después haga clic en Finish (Finalizar) para ejecutar las transformaciones, como muestra la Figura 11.
Figura 11. Propiedades de configuración
Si usted no está conectado a un sistema z/OS, posiblemente visualice un mensaje de advertencia que le informará que faltan una o más opciones de implantación y que algunos artefactos de implantación no se generarán. No preste atención a este mensaje. Los archivos de salida de la transformación se generarán en el proyecto. En este tutorial, sólo nos dedicaremos a la clase Customer; consulte el ejemplo listado en la Figura 12.
Durante la transformación, si usted seleccionó Automatic Remote Deployment y está conectado al sistema z/OS, se realizarán las siguientes acciones:
- Todos los archivos .cbl se moverán al conjunto de datos COBOL especificado como objetivo en el sistema MVS.
- Todos los archivos .jcl se moverán al conjunto de datos JCL especificado como objetivo en el sistema MVS.
- El JCL se enviará al host.
- Todos los archivos .wsbind se moverán al directorio WSBIND especificado en el sistema USS.
- Todos los archivos .wsdl se moverán al directorio WSDL especificado en el sistema USS.
Figura 12. Activos generados
Descripción de los activos generados
La transformación genera activos COBOL (con tipo cbl), los archivos WSBIND necesarios para implantar Servicios CICS (con tipo wsbind), los archivos WSDL (Lenguaje de Descripción de servicios web) (de tipo wsdlbind), los JCL (de tipo JCL) y los archivos de registro (de tipo log). La siguiente es una breve explicación de los activos generados:
-
@USTCRUD.cbl: Varios programas COBOL responsables del driver Web Services Converter (Convertidor de servicios web) que usará la aplicación CRUD COBOL.
-
@USTLIST.cbl: Varios programas COBOL responsables del driver Web Services Converter (Convertidor de servicios web) que usará la aplicación LIST COBOL.
-
CUSTCRUD.cbl: Programa COBOL que realiza las operaciones CRUD contra la tabla z/OS DB2.
-
CUSTCRUD.log: Archivo de registro para la aplicación CRUD. Registra la fecha, la versión de WebSphere Developer para System z usada, los parámetros usados para la transformación, etc. Si requiere soporte, IBM le solicitará este archivo. Este archivo también guarda el contenido hexadecimal del archivo WSBIND generado.
-
CUSTCRUD.wsbind: WSBIND que necesita CICS para crear el servicio Web para la aplicación CRUD. Este archivo deberá instalarse en el sistema z/OS en el directorio de recogida.
-
CUSTCRUD.wsdl: El archivo WSDL (Lenguaje de Descripción de servicios web) que se requerirá más adelante para invocar el servicio Web CRUD creado. No es necesario mover este archivo al sistema z/OS, ya que no será CICS, sino el driver COBOL generado el que efectuará el análisis XML.
-
CUSTLIST.cbl: Programa COBOL que lleva a cabo una lectura de filas múltiples de una tabla. Nuestro ejemplo usa el siguiente valor predeterminado: 50 filas.
-
CUSTLIST.log: Archivo de registro para la aplicación LIST, similar en contenido a la aplicación CRUD antes descripta.
-
CUSTLIST.wsbind: Archivo WSBIND que necesita CICS para crear el servicio web para la aplicación LIST.
-
CUSTLIST.wsdl: WSDL que define la aplicación de servicio web LIST. Se usará más adelante para invocar a la aplicación LIST a través de servicios CICS.
La siguiente es una breve descripción del JCL generado:
-
ITSOBD.JCL: JCL para construir los programas de aplicaciones CRUD y LIST COBOL generados y vincular los planes y paquetes DB2. Este JCL invocará el proc ITSOCB también generado.
-
ITSOBDDR.JCL: JCL para construir los programas controladores CRUD y LIST COBOL generados. Este JCL invocará el proc ITSOCBDR también generado.
-
ITSOCB.JCL: Procedimiento usado por ITSOBD.JCL para:
- Precompilar o preprocesar en DB2 programas COBOL con instrucciones EXEC SQL
- Precompilar en CICS programas COBOL con instrucciones CICS
- Compilar COBOL
- Aplicar Linkedit en programas compilados
-
ITSOCBDR.JCL: Procedimiento usado por ITSOBDDR.JCL para llevar a cabo las operaciones COBOL/CICS en el programa controlador generado.
-
ITSORDO.JCL: JCL para definir recursos CICS a través de Resource Definition Option (Opción de definición de recursos - RDO):
- Definir recursos de programas para la tabla CUSTOMER
- Definir los recursos para acceder a DB2
- Definir los recursos de servicios web para la tabla CUSTOMER
Comprensión de los programas controladores COBOL
El asistente genera dos archivos cuyos nombres comienzan con @; a efectos de este tutorial, los denominaremos drivers COBOL. En este ejemplo, estos archivos son @USTCRUD.cbl y @USTLIST.cbl. Los programas controladores son responsables de la comunicación entrante y saliente con la invocación de servicios. Los drivers también son responsables del análisis XML. Estos programas no tienen efecto en DB2 y no deberán modificarse bajo ningún concepto.
Considere que estos archivos contienen más de un programa COBOL físico; cada archivo es responsable por la creación de un módulo de carga. Por ejemplo, @USTCRUD.cbl contiene 12 programas, pero estos crean únicamente un módulo de carga, denominado @USTRUD. La misma arquitectura se aplica al driver @USTLIST.cbl.
Comprensión del COBOL que realiza la operación CRUD
Los programas COBOL generados, CUSTCRUD.CBL y CUSTLIST.CBL, son los programas que acceden a la tabla DB2 y realizan las operaciones CRUD y LIST. Estos crean módulos de carga llamados CUSTCRUD y CUSTLIST, respectivamente.
CUSTCRUD realiza las operaciones CRUD. CICS carga este programa cuando se ejecuta el servicio web. Si usted no desea implementar los servicios web CICS, puede usar estos programas como modelo para acceder a la tabla DB2. Las operaciones posibles son C (crear), R (leer), U (actualizar) y D (borrar). La Figura 13 muestra un fragmento del área de almacenamiento de trabajo de este programa con sus definiciones.
Figura 13. Acciones definidas para el programa CUSTCRUD
La Figura 14 muestra un fragmento de las definiciones DB2 en el área de trabajo COBOL.
Figura 14. Fragmento del código generado que mapea la tabla DB2
Los programas COBOL se construyen usando la interfaz del programa CHANNEL en
lugar de COMMAREA. CHANNEL supera el límite de transmisión de COMMAREA (32 KB).
La Figura 15 muestra el fragmento de la SECCIÓN DE VINCULACIÓN (LINKAGE SECTION) con el área de entrada.
Figura 15. Fragmento de la SECCIÓN DE VINCULACIÓN en el programa COBOL generado
Comprensión del COBOL que realiza la operación LIST
El programa CUSTLIST realiza la operación LIST. CICS carga este programa cuando se ejecuta el servicio web. Nuevamente cabe destacar que si usted no desea implementar los servicios web CICS, puede usar estos programas como modelo para acceder a la tabla DB2. Los parámetros que recibe este programa son los siguientes:
- Dónde comenzar en la lista, es decir la primera fila DB2 que debe listar.
- Cantidad de filas a recuperar. El límite en este ejemplo es el valor predeterminado: 50 filas.
- Campos donde realizar las búsquedas. El editor Transformation Parameter personaliza este parámetro. Si bien en este caso usamos la opción predeterminada, también es posible realizar otras búsquedas, por ejemplo, por Last Name (Apellido) u otros campos.
La Figura 16 muestra un fragmento de la SECCIÓN DE VINCULACIÓN (LINKAGE SECTION) de este programa.
Figura 16. SECCIÓN DE VINCULACIÓN definida en el programa CUSTLIST
La Figura 17 muestra las instrucciones DB2 SQL usadas para declarar el cursor que luego capturará las filas. Recuerde que el calificador de tabla fue uno de los parámetros que usamos en el editor Transformation Parameter; en este ejemplo es ITSO04.
Figura 17. SQL DECLARE usado por el programa CUSTLIST
