Está en la página 1de 11

Laboratorio 3

Trabajando con WebServices


Explicando el Contexto.
Este laboratorio se basa en el laboratorio 2.
La empresa tienes nuevos requerimientos, las cuales se detallan a continuación:

* El sistema de créditos en efectivo también esta migrando a plataforma Mainframe


(z/OS), por lo que requiriere que le dejen una trama posicional en el siguiente formato:

Campo Tamaño Observaciones


Tipo de 2
credito

Codigo de 7
cliente

Nombres de 30 Debido a políticas del área de créditos en Efectivo, no


cliente se confía en los datos del Nombre del cliente, que se
ingreso por el data entry de solicitudes, por lo que es
necesario invocar al WebServices WSDatos para
obtener los datos correcto del nombre del cliente.
Sueldo 12 Invocar al WebServices WSDatos y obtener el sueldo
promedio del promedio del cliente.
cliente

Monto del 12
credito

nrocuotas 2
fechainicio 10

* Por temas de auditoria el sistema de Créditos de estudio requiere que antes de


enviarle la trama de solicitud, se ingrese todos los datos a enviar en una tabla de Base
de Datos, para luego ser analizados por el sistema de auditoria.

Se esta solicitando hacer los cambios respectivos para soportar estos requerimientos.
Grafico de resumen

Sistema de créditos en
WebServices
Posicional efectivo (Cobol)
Formato2 (WMQ)

Sistema de créditos
DataEntry de XML (WMQ) WMB XML (WMQ)
hipotecario (.Net)
solicitudes de credito

Posicional Sistema de créditos de


BD Auditoria (Credito Formato1 (WMQ)
estudios (Cobol)
de Estudios)

Paso Iniciales.
__1. Verificar que se tenga funcionando correctamente lo solicitado en el laboratorio 2,
de lo contrario solicitar la solución al profesor.

Paso I.
Preparando el proyecto

__1. Crear un Message Set Project de nombre CWMB_LAB03_MSP y un Message


Set de nombre CWMB_LAB03_MS:

Ingrese el nombre del Message Set a crear, seleccionar Use namespaces y el MSP
del LAB02 para ser copiado a este nuevo proyecto, también indicar que se utilizaran
los formatos físicos: XML, CWF.

__2. Como el sistema de créditos en efectivo manejara otro formato de tipo CWF,
crear uno adicional. Doble clic sobre el archivo .mset
__3. Modificar el Message Definition File para agregar el campo sueldoPromedio:

__4. Utilizando el nuevo formato CWF2 definir el tamaño de los campos según:

Campo Tamaño
tipo 2
cliente

codigo 7
nombres 30
codinstitucion 0
sueldoPromedio 12
datos

monto 12
nrocuotas 2
fechainicio 10

* Estos están definidos únicamente en CWF1

Paso II.
Definir el proyecto de Flujo
__1. Crear un proyecto de flujos de nombre CWMB_LAB03_MFP y que haga referencia al MSP
CWMB_LAB03_MSP

__2. Del Copiar CWMB_LAB02_MFP copiar el archivo LAB01.INPUT.enqueue y todo el shema


com.cwmb.lab01, quedando asi:
__3. Modificar el flujo según:

Propiedades de nodos que cambian:

Nombre Tipo Propiedades del Nodo

Q.INPUT MQInput Message Set: CWMB_LAB03_MS


Message Type: credito
Message Format: XML1

Database Database Data Source: CWMBSQL

HTTP Request HTTPRequest WebServices URL:


http://(ip_instructor):Port/WSDatos/services/Con
sultaDatos

__4. Copiar al MSP el archivo wsdl ([PATH_CURSO]\WMB\Developer\Datos\Lab03\


ConsultaDatos.wsdl), ubicarlo en un nueva carpeta:
__5. Colocar el siguiente codigo ESQL para el nodo Database:

CREATE DATABASE MODULE CWMB_LAB01_Database


CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
INSERT INTO
Database.HIPOTECARIO_SOL(COD_CLIENTE,NOMBRES,MONTO,NRO_CUOTAS,FECHA_INICIO)
VALUES (Root.MRM.cliente.codigo,
Root.MRM.cliente.nombres,
Root.MRM.datos.monto,
Root.MRM.datos.nrocuotas,
Root.MRM.datos.fechainicio);
RETURN TRUE;
END;

END MODULE;

Paso III.
Modificando el Message Set Project.

__1. Se usara el WSDL para crear nuevos Message File Definition:


__2. Verificar que luego de importar quede similar a:

Paso IV.
Consumiendo WebServices en el Flujo
__1. Agregar el siguiente ESQL al nodo Compute1
CREATE COMPUTE MODULE CWMB_LAB01_Compute1
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
-- Guardo datos para recuperarse luego de la invocacion al
WebServices,
-- si no se perderan.
SET Environment.MQMD = InputRoot.MQMD; --El MQMD
SET Environment.DatosEntrada=InputRoot.MRM; --Los datos

-- Formato del mensaje de salida


SET OutputRoot.Properties.MessageSet = 'CWMB_LAB03_MS';
SET OutputRoot.Properties.MessageType = 'Envelope';
SET OutputRoot.Properties.MessageFormat = 'XML1';

SET OutputRoot.MRM.tns:Body.ns:codigo=InputRoot.MRM.cliente.codigo;

RETURN TRUE;
END;
END MODULE;
__2. Agregar el siguiente codigo ESQL al nodo Compute2

CREATE COMPUTE MODULE CWMB_LAB01_Compute2


CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
-- Salida es MQ, Eliminia HTTP Headers
SET OutputRoot.HTTPResponseHeader = null;
SET OutputRoot.Properties.MessageSet = ¿?;
SET OutputRoot.Properties.MessageFormat = ¿?;
SET OutputRoot.Properties.MessageType = ¿?;

-- Agrego un MQMD, y restauro valores del original MQInput


CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
SET OutputRoot.MQMD = Environment.MQMD;

-- Mensaje---------------------------------------------------
SET OutputRoot.MRM.tipo=¿?;
SET OutputRoot.MRM.cliente.codigo=¿?;
SET OutputRoot.MRM.cliente.nombres=
InputRoot.MRM.tns:Body.ns:consultaClienteReturn.ns:nombres;
SET OutputRoot.MRM.cliente.codinstitucion='';
SET OutputRoot.MRM.cliente.sueldoPromedio=¿?;
SET OutputRoot.MRM.datos=¿?;
------------------------------------------------------------

RETURN TRUE;
END;
END MODULE;

Paso V.
Probando el servicio
__1. Enviar creditos de tipo 01, 02 y 03 para probar todo el flujo, analizar los resultados.

También podría gustarte