Rational Developer for System z, Versión 7.6.1

Paso 5.5: probar el flujo de servicios

En este paso, verificará si se ha definido un TCPIPService, verificará si se ha definido un PIPELINE y ejecutará el flujo de servicios utilizando el Explorador de servicios Web del entorno de trabajo.

Si encuentra problemas al probar el flujo de servicios, consulte Paso 5.6: resolución de problemas.

Comprobar si se ha definido un TCPIPService

Para invocar el nuevo flujo de servicios como el componente de programa de aplicación de un servicio Web que se ejecuta en Servicios Web para CICS, debe haberse definido un TCPIPService en el sistema z/OS. El TCPIPService debe definirse para el mismo puerto especificado en el campo de entrada URI de punto final en CatalogOrderGP.sfgen.

En esta guía de aprendizaje, el valor especificado en el campo de entrada URI de punto final es http://system.company.com:6182/user25/sampcapn (consulte la sección Editar el archivo de propiedades de generación de CatalogOrder.seqflow). Por lo tanto, el nuevo flujo de servicios presupone que se ha definido un TCPIPService en el puerto 6182 del sistema z/OS remoto.

Consulte con el administrador del sistema CICS para obtener información sobre las siguientes cuestiones:
  • Cómo configurar un TCPIPService (consulte la sección Entorno, materiales y asistencia necesarios).
  • La dirección de host y el número de puerto correctos para el campo URI de punto final en el editor de propiedades de generación de servicio Web de CatalogOrderGP.sfgen.

Configurar un CICS PIPELINE

Para invocar el nuevo flujo de servicios como el componente de programa de aplicación de un servicio Web que se ejecuta en Servicios Web para CICS, debe tener también un PIPELINE CICS definido en el sistema z/OS remoto.

El conducto debe tener como directorio de trabajo el directorio de UNIX® System Services en el que ha copiado el archivo BIND de servicio Web. Esta información es específica del campo de entrada Archivo WSBind en la segunda página del asistente Generar código de entorno de ejecución.

En esta guía de aprendizaje, el valor especificado para el Archivo WSBind es /u/cicsts32/webservices/wsbind/cicssfrp (consulte Ejecutar el asistente Generar código de tiempo de ejecución de CatalogOrderGP.sfgen).

Esta guía de aprendizaje utiliza el conducto CICSSFRP en el grupo CICS PIPELINE. La Figura 1 muestra las características del conducto. Observe que el directorio de trabajo (Wsdir) es /u/cicsts32/webservices/wsbind/cicssfrp.
Figura 1. Características de objeto
Características de objeto del conducto CICSSFRP

Consulte con el administrador de CICS para obtener información sobre cómo configurar un PIPELINE (consulte la sección Entorno, materiales y asistencia necesarios). Un PIPELINE pueden utilizarlo varios programas, de modo que puede utilizar un PIPELINE existente.

Instalar los programas en su grupo de PIPELINE

Después de definir el PIPELINE, deben instalarse los programas en el grupo al que pertenecen. "Instalar" significa que el PIPELINE buscará los programas que pertenezcan a un grupo especificado y añadirá esos programas a su lista de archivos que pertenecen al grupo.

Importante: En esta guía de aprendizaje, el asistente Generar código de tiempo de ejecución instala automáticamente los recursos CICS, porque ha seleccionado el recuadro de selección Instalar los recursos de programa, transacción y tipo de proceso en la tercera página del asistente.

Si no selecciona el recuadro de selección Instalar los recursos de programa, transacción y tipo de proceso, la definición de grupo se especifica en el archivo JCL de definición de recursos #SAMPCAR.JCL (consulte la sección Archivos JCL). Cuando se somete JCL, CICS genera los recursos y especifica que pertenecen al grupo PIPELINE. A continuación, cuando instala los programas en el grupo CICS PIPELINE, CICS busca los programas que pertenecen al grupo y los añade al grupo.

Para instalar los programas en un grupo, escriba el mandato siguiente en el indicador de mandatos de CICS y pulse Intro:
   ceda install group(el_nombre_del_grupo)
Por ejemplo:
   ceda install group(pipeline)

Hacer que el PIPELINE reconozca el archivo WSBind

Aunque haya copiado el archivo BIND de servicios Web (en esta guía de aprendizaje sampcapn.wsbind) en el directorio de trabajo de PIPELINE (en esta guía de aprendizaje /u/cicsts32/webservices/wsbind/cicssfrp), no se ha indicado a PIPELINE que existe el nuevo archivo BIND del servicio Web.

Importante: En esta guía de aprendizaje, el asistente Generar código de tiempo de ejecución hace que el conducto reconozca automáticamente el archivo WSBind, porque ha seleccionado el recuadro de selección Solicitar exploraciones de conductos en la tercera página del asistente.

Si no selecciona este recuadro de selección, para que PIPELINE reconozca el nuevo archivo WSBind, PIPELINE debe realizar una exploración de su directorio de trabajo para detectar los archivos WSBind nuevos.

Para ello, escriba el siguiente mandato en el indicador de mandatos de CICS y pulse Intro:
   cemt perform pipeline(el_nombre_del_pipeline) scan
Por ejemplo:
   cemt perform pipeline (cicssfrp) scan

Ejecutar el servicio Web

En esta sección se explica cómo se ejecutará el servicio Web en el explorador de servicios Web. Para ejecutar el servicio Web, utilizará la información contenida en la copia local del archivo WSDL (sampcapn.wsdl) que se ha creado al generar el código de tiempo de ejecución para el flujo CatalogOrder.

Para ejecutar el servicio Web:

Atención: Observe que algunas de las acciones del paso 3 y el paso 4 pueden ser diferentes, dependiendo del valor que establezca para el recuadro de selección Exponer todas las cabeceras CICS SFR en interfaz (AVANZADO) en el editor de propiedades de generación (se borra el valor predeterminado: consulte la sección Editar el archivo de propiedades de generación de CatalogOrder.seqflow).
  1. En la vista Sistemas remotos, compruebe que la conexión con el sistema z/OS remoto esté activa (consulte la sección Configurar una conexión con z/OS en la vista Sistemas remotos).

  2. Inicie el explorador de servicios Web:

    1. En el Explorador de proyectos EST, pulse con el botón derecho del ratón CatalogSample > Generación > CICS SFR L2.0 > CatalogOrder sampcapn.wsdl.

    2. Pulse Servicios Web > Probar con el explorador de servicios Web. Se abrirá el explorador de servicios Web.

  3. En la vista Navegador del explorador de servicios Web:

    1. En el árbol principal WSDL, busque la entrada de archivo de sampcapn.wsdl, por ejemplo:

      file:/D:/Tutorial/CatalogSample/deployment/CICS SFR L2.0/CatalogOrder/sampcapn.wsdl

    2. En la entrada de archivo, expanda el árbol y pulse el nodo de la operación.

      Los nombres del nodo para los detalles del servicio WSDL, el nodo para los detalles del enlace WSDL y el nodo de la operación WSDL pueden ser diferentes, dependiendo del valor que establezca para el recuadro de selección Exponer todas las cabeceras CICS SFR en interfaz (AVANZADO) en el editor de propiedades de generación (consulte la sección Atención):

      • Si ha deseleccionado el recuadro de selección (valor predeterminado), pulse DFHMADPLService > DFHMADPLHTTPSoapBinding > DFHMADPLOperation.

      • Si ha seleccionado el recuadro de selección, pulse sampcapnService > sampcapnBinding > sampcapnOperation.

      La vista Acciones mostrará ahora la página Invocar una operación WSDL.

  4. En la vista Acciones del explorador de servicios Web, deberá especificar valores para dos conjuntos de campos de entrada en la cabecera de entrada de servicios, por ejemplo:
    • Valores para la cabecera del mensaje de petición.
    • Valores para el contenedor de datos de entrada.

    1. Especificación de valores para la cabecera del mensaje de petición:

      Consejo: Los campos de la cabecera del mensaje de petición se describen en la publicación CICS Service Flow Runtime User's Guide (consulte el tema Entornos de ejecución soportados para cada tipo de proyecto).

      Los nombres y el número de estos campos de entrada pueden ser diferentes, dependiendo del valor que establezca para el recuadro de selección Exponer todas las cabeceras CICS SFR en interfaz (AVANZADO) en el editor de propiedades de generación (consulte la sección Atención):

      • Si ha deseleccionado el recuadro de selección (este es el valor predeterminado):
        Nota: Cuando deselecciona el recuadro de selección, el asistente Generar código de tiempo de ejecución establece todos los campos de datos de la cabecera del mensaje de petición en los valores predeterminados, excepto el nombre de petición.
        1. Expanda Cuerpo > DFHMADPLOperation > service_input_area > dfhmahr_requestv1.

        2. En el campo de entrada dfhmahr_requestname, escriba SAMPCARN.
          Importante: ¡Debe escribir SAMPCARN en mayúsculas!
          Este es el nombre de petición del flujo de servicios que desea invocar y coincide con la serie que ha especificado en el campo Nombre de petición del editor de propiedades de generación (consulte la sección Propiedades de generación comunes).

      • Si ha seleccionado el recuadro de selección:

        Nota: Cuando selecciona el recuadro de selección en el editor de propiedades de generación, el asistente Generar código de tiempo de ejecución restablece todos los campos de datos de la cabecera del mensaje de petición.
        1. Expanda Cuerpo > SERVICEINPUTAREA > dfhmah.

        2. Establezca los campos en los valores que se muestran en la Tabla 1.
          Importante: La Tabla 1 no lista todos los campos de entrada de dfhmah. Si un campo de entrada no aparece en la tabla, déjelo en blanco.
          Tabla 1. Campos de entrada en la estructura de datos dfhmah
          Nombre de campo: Valor de entrada:
          dfhma_strucid MAH1
          dfhma_version 2
          dfhma_struclength 384
          dfhma_returncode 0
          dfhma_compcode 0
          dfhma_mode 0
          dfhma_suspstatus 0
          dfhma_abendcode 0
          dfhma_uowcontrol 0
          dfhma_processtype SAMPCARN1
          dfhma_requestname SAMPCARN1
          dfhma_datalength 7
          dfhma_linktype 1
          dfhma_more_data_ind 0
          dfhma_bridge_rc 0
          1¡Debe escribir esta entrada utilizando mayúsculas!
          Nota:

          La mayoría de los valores que se muestran en esta tabla son idénticos para todos los servicios Web que se creen.

          Tres valores de la tabla son específicos del servicio Web:
          • dfhma_processtype: especifica el mismo nombre que el especificado en el campo Nombre de petición del editor de propiedades de generación. Aquí, el nombre de petición es SAMPCARN
          • dfhma_requestname: especifica el mismo nombre que el especificado en el campo Nombre de petición del editor de propiedades de generación. Aquí, el nombre de petición es SAMPCARN.
          • dfhma_datalength: en una petición a un servidor Web, este campo contiene el tamaño total (en términos de representación de datos COBOL) del área de datos que se va a asignar para los parámetros de entrada. (Por su parte, en una respuesta, este campo contiene el tamaño en términos de representación de datos COBOL del área de datos para los parámetros de salida).
            En esta guía de aprendizaje, el tamaño total de los parámetros de entrada es 7. Este valor se calcula añadiendo el tamaño de datos máximo posible de todas las variables del mensaje de entrada:
            • Longitud máxima de i_CatalogOrder.itemNumber: 4 dígitos
            • Longitud máxima de i_CatalogOrder.itemQuantity: 3 dígitos
            • Longitud total: 7
            Para determinar el tamaño máximo posible de un valor entero o un valor de tipo Short:
            1. Abra el archivo de mensaje (por ejemplo, i_CatalogOrder.sfmxsd) con el editor de mensajes de flujo.
            2. Pulse la pestaña Básico.
            3. En el panel izquierdo, seleccione la variable (por ejemplo, itemNumber).
            4. La longitud máxima posible de la variable se muestra en el panel derecho del campo Dígitos del total (4).
            Para determinar el tamaño máximo posible de una serie:
            1. Abra el archivo de mensaje (por ejemplo, o_CatalogOrder.sfmxsd) con el editor de mensajes de flujo.
            2. Pulse la pestaña Básico.
            3. En el panel izquierdo, seleccione la variable (por ejemplo, returnMessage).
            4. La longitud máxima posible de la variable se muestra en el panel derecho del campo Longitud máxima.

    2. Especificación de valores para el contenedor de datos de entrada:

      1. En la vista Acciones, expanda el contenedor de datos de entrada. La vía de acceso del contenedor de datos de entrada puede ser diferente, dependiendo del valor que establezca para el recuadro de selección Exponer todas las cabeceras CICS SFR en interfaz (AVANZADO) en el editor de propiedades de generación (consulte la sección Atención):

        • Si ha deseleccionado el recuadro de selección (valor predeterminado), expanda Cuerpo > DFHMADPLOperation > service_input_area > input_data_container > i_catalogorder.

        • Si ha seleccionado el recuadro de selección, expanda Cuerpo > SERVICEINPUTAREA > input_data_container > i_catalogorder.

      2. En el campo itemnumber, escriba el número de artículo que desea probar (por ejemplo, 0010).

      3. En el campo itemquantity, escriba el número de artículos que desea solicitar (por ejemplo, 25).

  5. Para ejecutar el flujo de servicio, desplácese al final de la vista Acciones y pulse Ir.

  6. Compruebe la información devuelta:

    1. En el explorador de servicios Web, expanda la vista Estado. Los campos de esta vista pueden ser diferentes dependiendo del valor que establezca para el recuadro de selección Exponer todas las cabeceras CICS SFR en interfaz (AVANZADO) en el editor de propiedades de generación (consulte la sección Atención):

      • Si ha deseleccionado el recuadro de selección (valor predeterminado), expanda DFHMADPLOperationResponse > service_output_area > navigator_output_area > o_catalogorder.

      • Si ha seleccionado el recuadro de selección, expanda Body > SERVICEOUTPUTAREA > navigator_output_area > o_catalogorder.

    2. Los resultados se mostrarán en las variables returncode y returnmessage en o_catalogorder:
      Tabla 2. Resultados de ejecutar el servicio Web
      Escenario: returncode returnmessage
      Si se ha encontrado el número de artículo y el número de artículos solicitados está en existencias: 0 ORDER SUCCESSFULLY PLACED
      Si el número de artículos solicitados no está en existencias: 97 INSUFFICIENT STOCK TO COMPLETE ORDER
      Si el artículo especificado no estaba en el catálogo. 99 ITEM WAS NOT AVAILABLE IN CATALOG
Si la petición al flujo de servicios no ha sido satisfactoria:
  1. En la vista Estado, pulse Fuente.
  2. Expanda Sobre de respuesta SOAP.
  3. Busque el código de retorno en el elemento <faultstring> (por ejemplo, DFHMA08002E).

    El significado de los códigos de retorno se describe en la publicación CICS Service Flow Runtime User's Guide.


Términos de uso | Comentarios

Este Information Center está basado en tecnología Eclipse. (http://www.eclipse.org)