En este paso se explica cómo añadir al flujo de nivel superior un nodo no de
terminal Invoke que invoca la aplicación DF0XCMN.
DF0XCMN es un componente de la aplicación de catálogo de ejemplo de
CICS y se invoca para efectuar un pedido simulado. Para crear un nodo no de terminal Invoke en el flujo de nivel superior que invoca
DF0XCMN, siga estos pasos:
- Cree una operación denominada PlaceOrder que contenga la
información necesaria para invocar DF0XCMN (consulte el subtema
Crear la operación no de terminal PlaceOrder).
- Utilice la nueva operación PlaceOrder y el nodo Invoke normal
Step1 para crear un nodo no de terminal Invoke que invoque DF0XCMN
(consulte el subtema Modificar el nodo Invoke Step1 para invocar PlaceOrder).
Crear la operación no de terminal PlaceOrder
En este subtema utilizará el asistente Importar archivos COBOL para crear una operación
no de terminal denominada PlaceOrder que contiene la información
necesaria para invocar la aplicación no de terminal DFH0XCMN.
Una
operación es una entidad
que contiene la información necesaria para invocar un flujo, una
aplicación de terminal o una aplicación no de terminal. Una operación no de
terminal es el tipo de operación que contiene la información
necesaria para invocar una aplicación no de terminal. Una
aplicación no de terminal
es una aplicación de host que puede invocarse mediante una interfaz
llamada-retorno y que no muestra pantallas de aplicación que precisen
entrada del usuario.
Los archivos
fuente COBOL para DFH0XCMN pueden obtenerse del administrador del
host (consulte la sección
Entorno, materiales y asistencia necesarios).
Necesitará los archivos siguientes:
- DFH0XCMN.CBL
- DFH0XCP1.CPY
- DFH0XCP2.CPY
Descargue estos archivos del host y cópielos en un directorio local
de la estación de trabajo.
Para crear la operación no de terminal:
Nota: Estas instrucciones
presuponen que el archivo COBOL DFH0XCMN.CBL y sus libros de copia DFH0XCP1.CPY
y DFH0XCP2.CPY están ubicados en el sistema de archivos de la estación de trabajo y en el mismo directorio.
Añada la vía de acceso del directorio a la pestaña SYSLIB en la
página de preferencias de del entorno
de trabajo.
En el menú principal del entorno de trabajo, pulse
. Se abrirá la ventana Preferencias.
En la ventana Preferencias:
- En el panel izquierdo, pulse
.
- En el panel derecho:
- Pulse la pestaña SYSLIB.
- En la pestaña SYSLIB:
- Pulse
Añadir.
- Vaya hasta el directorio donde están ubicados el archivo COBOL DFH0XCMN.CBL y sus
libros de copia DFH0XCP1.CPY y DFH0XCP2.CPY.
- Pulse Aceptar.
La ubicación que ha seleccionado
se visualiza en la lista Ubicación.
Pulse Aceptar. Se cerrará la ventana Preferencias.
Inicie el asistente Importar archivos COBOL:
En el Explorador de proyectos EST pulse con el botón derecho del ratón el subproyecto CatalogSample.Nonterminal.
Pulse
. Se abrirá el asistente Importar archivos COBOL.
En la primer página del asistente Importar archivos COBOL:
Verifique que en la lista ProjectName esté seleccionado el
subproyecto CatalogSample.Nonterminal.
Seleccione los archivos fuente para la aplicación no de terminal:
- Pulse Sistema de archivos. Se abrirá el asistente del sistema de archivos.
- En el asistente del sistema de archivos, navegue hasta el subdirectorio que contiene los archivos origen COBOL.
- Se visualizará el archivo fuente DFHOXCMN.CBL.
Importante: Los dos archivos de libro de copia DFH0XCP1.CPY y DFH0XCP2.CPY deben
estar presentes también en el mismo directorio (aunque no aparezcan en la ventana
Sistema de archivos) porque se importarán por referencia
cuando se importe DFHOXCMN.CBL.
- Pulse DFH0XCMN.CBL.
- Pulse Abrir. Se cerrará el asistente del sistema de archivos.
- Verifique si en la lista Archivos COBOL a importar se lista ahora
la vía de acceso completa del directo para DFH0XCMN.CBL.
Importante: Aunque los dos archivos de libro de copia DFH0XCP1.CPY y DFH0XCP2.CPY no aparezcan aquí
en la lista de archivos COBOL a importar, se importarán cuando se
importe el archivo origen COBOL DFH0XCMN.CBL, si se encuentran en el
mismo directorio que DFH0XCMN.CBL.
Pulse Siguiente.
En la segunda página del asistente Importar archivos COBOL:
Compruebe los valores siguientes:
- Se ha seleccionado el recuadro de selección Crear definiciones de programa COBOL.
- Se ha seleccionado el botón de selección Archivo nuevo.
- El campo de entrada que hay junto al botón de selección contiene el nombre de archivo predeterminado new_programs.
Nota: Este es
el nombre del archivo WSDL en que se almacenará la operación nueva.
- El programa dfh0xcmn se visualiza en la lista
Definiciones de programa.
Nota: Este es el nombre del
programa principal del archivo fuente COBOL que ha importado.
En el grupo Propiedades de programa
seleccionado, en el campo de entrada
Programa:
- Borra el nombre de programa dfh0xcmn.
- Escriba un nuevo nombre de programa PlaceOrder.
En la lista Tipo de comunicación, seleccione
LINK con COMMAREA si aún no está seleccionado.
Especifique un mensaje de entrada para esta operación:
- A la derecha de Datos de entrada, pulse el botón etiquetado
Seleccionar. Se abrirá la ventana Seleccionar un elemento de lenguaje
que mostrará las estructuras de datos contenidas en el archivo fuente COBOL y sus dos libros de copia.
- En la ventana Seleccionar un elemento de lenguaje:
- Pulse la estructura
DFH0XCMN_DFHCOMMAREA.
Nota
acerca de DFH0XCMN_DFHCOMMAREA: El nombre de la
estructura en el fuente COBOL es DFHCOMMAREA.
Sin embargo, como DFHCOMMAREA es una palabra reservada en
CICS, el asistente cambia automáticamente el
nombre de la estructura a DFH0XCMN_DFHCOMMAREA (consulte la
sección Nombres de las estructuras de datos importadas).
- Pulse Aceptar.
Especifique un mensaje de salida para esta operación siguiendo el
mismo procedimiento que se siguió para especificar un mensaje de
entrada:
- A la derecha de Datos de salida, pulse el botón
etiquetado Seleccionar. Se abrirá la ventana Seleccionar
un elemento de lenguaje.
- En la ventana Seleccionar un elemento de lenguaje:
- Pulse DFH0XCMN_DFHCOMMAREA.
Consulte
la Nota sobre
DFH0XCMN_DFHCOMMAREA.
- Pulse Aceptar.
Observe que puede pulsar el botón Especificar propiedades de generación y
especificar propiedades de generación predeterminadas para esta operación. Sin embargo,
en esta guía de aprendizaje no especificará aquí las propiedades de generación predeterminadas.
Pulse
Finalizar. El asistente crea un nuevo archivo de
operaciones y un nuevo archivo de mensaje en el subproyecto
CatalogOrder.Nonterminal:
- En la carpeta Operaciones, el asistente crea un nuevo archivo
de operaciones denominado new_programs.wsdl y almacena la nueva
operación PlaceOrder en el archivo.
- En la carpeta Messages, el asistente crea un nuevo archivo de
mensaje dfh0xcmn.sfmxsd, y crea en él un nuevo mensaje para cada
estructura de datos del código fuente importado, incluido DFH0XCMN_DFHCOMMAREA.
Modificar el nodo Invoke Step1 para invocar PlaceOrder
En este subtema convertirá el nodo Invoke normal Step1 en un nodo
no de terminal Invoke que invoca la operación no de terminal
PlaceOrder.
Recuerde
que ha creado los nodos Invoke Step0 y Step1 como
espacios reservados (consulte la sección Coloque los nodos, añada los nodos Assign y los nodos Invoke y conecte los nodos).
Un nodo Invoke normal como, por ejemplo, Step1 puede funcionar
asociándolo a una operación o un flujo (consulte la sección
Crear un nodo Invoke directamente a partir de una operación existente). En este subtema asociará la operación
no de terminal PlaceOrder con el nodo Invoke
normal Step1, para que Step1 se
convierta en un nodo no de terminal Invoke que invoca la aplicación no de
terminal DF0XCMN.
Para convertir Step1 en un nodo no de
terminal Invoke:
Abra el flujo CatalogOrder.seqflow en el editor de flujo
si aún no está abierto.
- En el menú principal del entorno de trabajo, pulse
.
En el Explorador de proyectos EST, pulse
.
Arrastre la operación PlaceOrder al lienzo del editor de flujo y encima
del nodo Step1.
Step1 se convierte en un nodo
no de terminal Invoke y se denomina como la operación que invoca, PlaceOrder.
El lienzo del editor de flujo para CatalogOrder.seqflow
debería parecerse a la Figura 1:
Figura 1. CatalogOrder.seqflow
Cierre el editor de flujo.