Este tema contiene las respuestas a las preguntas más frecuentes acerca del
desarrollo de flujos de
servicios.
Consulte también la sección Información sobre resolución de problemas para proyectos de flujo de servicios.
Este tema contiene los subtemas siguientes:
Importar
recursos de archivos BMS
¿Cómo
puedo cambiar el nombre del conjunto de mapas BMS definido en el fuente importado BMS
original para que sea el mismo que el instalado en CICS?
Siga estos pasos:
- Utilice el editor de mensajes de flujo para abrir el archivo de mensaje de pantalla (.sfmxsd)
que desea cambiar. Este debe ser el archivo de mensaje de pantalla que se creó desde la
información de BMS importada para la pantalla de aplicación en la que está interesado.
- En el editor de mensajes de flujo, haga lo siguiente:
- En la página Visión general, expanda Grupos y seleccione el grupo en el
que está interesado.
- En la pestaña Propiedades, haga lo siguiente:
- En el panel izquierdo, expanda
y seleccione
Grupo global.
- En
el panel derecho, en el campo
Conjunto de mapas,
escriba el nombre que desee utilizar como valor de reconocimiento de conjunto de mapas en
el código de tiempo de ejecución generado.
- Guarde el
trabajo y cierre el editor de mensajes de flujo.
El
valor quedará actualizado y la generación y ejecución subsiguientes producirán los
resultados deseados.
¿Cómo
establecer el próximo ID de transacción cuando el fuente importado BMS original no tiene
un campo con nombre BMS definido para el primer campo de entrada de datos en esa pantalla?
Siga estos pasos:
- En
el editor de flujo, determine el nodo que desea utilizar para establecer el ID de
transacción. Puede ser un nodo existente o un nodo Assign creado con este propósito.
- En el editor de flujo, utilice el editor de correlaciones para abrir el archivo de
correlaciones para el flujo y, a continuación, seleccione la rutina de correlación para el nodo
que desee utilizar.
- En el editor de correlaciones, cree una correlación unilateral que asigne el ID de transacción
que desea utilizar (por ejemplo, 'AINQ')
al campo SNA_NEXT_TRANSID de la estructura SNA_FIELDS. Siga estos pasos:
- En el panel Destino del editor de correlaciones, pulse con el botón derecho del ratón en cualquier
lugar del panel y seleccione Añadir salida de correlación de mensaje.
Se abrirá la ventana Seleccionar
un mensaje.
- En la ventana
Seleccionar un mensaje:
- En el panel izquierdo, expanda
IBMCICS
y seleccione IBMCICS.sfmxsd.
- En el panel central, seleccione SNA_FIELDS.
- Pulse Aceptar para cerrar la ventana.
El mensaje SNA_FIELDS se añadirá al panel Destino del editor de correlaciones.
- En el panel de destino del editor de correlaciones, pulse con el botón derecho del ratón el
elemento SNA_NEXT_TRANSID del mensaje SNA_FIELDS, después seleccione Crear correlación unilateral. Se creará una correlación unilateral en el panel Visión general.
- Edite la correlación unilateral para establecer el valor del elemento SNA_NEXT_TRANSID en el ID de transacción que
desea utilizar (por ejemplo, 'AINQ') (consulte la
sección Correlación unilateral).
- Guarde el trabajo y cierre el editor de correlaciones.
Cuando
se ejecute el nodo, se ejecutará la rutina de correlación.
Cuando se ejecute la rutina de correlación, el valor que ha especificado se almacenará en
el elemento SNA_NEXT_TRANSID del mensaje SNA_FIELDS.
Con ello se establecerá el ID de
transacción.
- Después de importar un mapa BMS, al abrir el archivo de mensaje de
pantalla resultante en el editor de mensajes de pantalla, seleccionar la pestaña Estructura de pantalla
y observar la lista de campos en la vista Esquema, no se ven todos los campos que habían en el
mapa BMS. ¿Cuál es el problema?
El asistente de
importación de BMS sólo procesa los campos que están definidos dentro del archivo BMS que
se importa. El asistente ignora todas las
instrucciones de ensamblador del archivo BMS (es decir, TITLE, PRINT, EJECT,
RMODE, AMODE y COPY) que no forman parte de la sintaxis BMS, tratándolas como líneas de
comentario.
Por tanto, si importa un archivo BMS que
contiene una instrucción COPY que copia segmentos de macros DFHMDF BMS de un archivo
fuente independiente, el asistente de importación de BMS ignora la instrucción
COPY y los campos especificados por los segmentos de las macros DFHMDF no se
incluyen en el archivo de mensaje de pantalla resultante.
Para
solucionar este problema, copie manualmente en el archivo fuente BMS el contenido de los
archivos que el archivo fuente BMS incluya por medio de la sentencia COPY. A
continuación, importe el archivo BMS mediante el asistente de importación de BMS.
Registro
de flujo
- He
insertado datos en un campo incorrecto al crear una acción Insertar. ¿Cómo arreglo rápidamente este problema
sin tener que iniciar de nuevo el proceso de registro de flujo?
Método 1. Si
todavía está registrando el flujo y no ha abandonado la pantalla de aplicación donde ha insertado
datos en el campo incorrecto:
Siga estos pasos:
- En la vista Esquema, expanda el nodo Acciones en curso al final del árbol jerárquico
(consulte la sección (a)
Nodo Acciones en curso).
- En el nodo Acciones en curso, busque la correlación que se ha creado para
la acción Insertar que desea suprimir.
La correlación se parece a la siguiente:
ItemQuantity -> Field1583
- Pulse con el botón derecho del ratón la correlación.
- Pulse Eliminar correlación.
La correlación para la acción Insertar se suprime
del flujo. Esto significa que la acción Insertar se ha suprimido (consulte la sección Vistas Esquema y Propiedades cuando se selecciona la pestaña Terminal).
Ahora
puede crear una nueva acción Insertar del modo normal.
Método 2. Si
ha abandonado la pantalla de aplicación donde ha insertado el campo incorrecto:
Siga estos pasos:
- Tome
nota de la pantalla de aplicación, el campo en el que ha insertado el texto y el campo en el que deseaba
insertar el texto.
- Si sigue en el proceso de registro de
flujo, continúe con él hasta que haya terminado y luego almacene el flujo registrado como
de costumbre.
- Utilice el editor de flujo para
abrir el flujo.
- En el editor de flujo:
- Localice
el nodo de operación de pantalla Invoke correspondiente a la pantalla de aplicación en la
que ha insertado el campo incorrecto.
- Pulse el nodo
de operación de pantalla Invoke con el botón derecho del ratón, seleccione
Abrir rutina de
correlación y seleccione la
rutina de correlación de entrada
para el nodo. Se abrirá el editor de correlaciones.
- En el editor de correlaciones:
- En el área del editor, en el panel Origen:
- Localice la variable de inserción en el panel Origen.
- Seleccione la variable de inserción. Esto hace que la expresión de correlación correspondiente se seleccione
también en la vista Esquema.
Nota: La lista de elementos del panel Destino corresponde a los campos de la
pantalla de aplicación.
- En la vista
Esquema:
- Pulse la
expresión de correlación seleccionada con el botón derecho del ratón y seleccione
Eliminar correlación.
- La
expresión de correlación se suprimirá de la vista Esquema. En el área del editor, desaparecerá
la punta de flecha azul que marca la variable de inserción del panel Origen, así como
la punta de flecha dorada que marca el campo en el panel Destino.
- En el área del editor, cree una correlación desde la variable de inserción del panel Origen
hasta el campo del panel Destino en el que desea insertar la información. Para crear esta correlación:
- Arrastre la variable de inserción del panel Origen al campo del panel Destino en el que desea
insertar texto.
- Se creará la correlación.
- Guarde el trabajo y cierre el editor de correlaciones.
- Guarde el trabajo y cierre el editor de flujo cuando esté preparado.
La acción
insertar se realizará ahora en el campo con el que ha correlacionado la variable de inserción.
Editor de correlaciones
- ¿Por
qué, en el archivo de correlación, sólo se visualizan las asignaciones de entrada y no
las asignaciones de salida?
Puede haber varias rutinas de correlación en un archivo
sfmap. Utilice la vista Esquema para seleccionar otra
rutina de correlación.
Editor de flujo
- ¿Cómo
añadir un nodo Parse al flujo a fin de que el entorno de ejecución determine en qué
pantalla se encuentra el usuario y tome la ruta de ejecución correcta en el flujo?
Siga estos pasos:
- Utilice el editor de flujo para abrir el flujo registrado.
- En el Explorador de proyectos EST:
- Expanda
el subproyecto de aplicaciones de terminal en el que se almacenan los mensajes de
pantalla y las operaciones de pantalla del flujo registrado.
- Expanda
la carpeta Operaciones.
- Expanda el archivo WSDL
del flujo. Por ejemplo, si el flujo se denomina Extract_01,
el archivo WSDL se denominará Extract_01.wsdl.
- En la carpeta WSDL, busque la operación de pantalla cuyo nombre termine en
Outputs. Por ejemplo, si el flujo se denomina Extract_01, la entrada se denominará
extract_01Outputs.
- Arrastre
la operación de pantalla
Outputs al lienzo del
editor de flujo. Se creará un nodo de operación de pantalla Invoke en el lienzo. Este es el nuevo nodo Parse.
- Conecte el nuevo nodo
Parse al flujo en el punto en que deba producirse el reconocimiento de pantalla. (Puede
realizar este paso antes o después de los dos pasos siguientes).
- El
nodo Parse contiene una lista de los nombres de todos los mensajes de pantalla del flujo. Configure
el nodo Parse añadiendo un terminal de salida al nodo Parse para cada mensaje de pantalla
que coincida con una pantalla de aplicación que desee que se reconozca en este punto del
flujo. Por ejemplo:
- Pulse con el botón derecho del ratón el nodo de análisis y seleccione Editar terminales.
- En la ventana
Añadir
terminales:
- En
el recuadro de lista
Mensajes disponibles,
seleccione el mensaje de pantalla correspondiente a una pantalla que deba reconocerse
(consulte la sección Utilizar terminales de salida con un nodo de operación de pantalla Invoke).
- Pulse
Añadir y
Aplicar.
El mensaje de
pantalla se añadirá al recuadro de lista
Mensaje
de
respuesta.
- Pulse
Aceptar para cerrar la
ventana y crear el terminal de salida.
- En
el editor de flujo, compruebe que cada nuevo terminal de salida del nuevo nodo Parse esté
asociado con un mensaje de pantalla que pueda aparecer en este punto del flujo. Por ejemplo:
- En
el editor de flujo, pulse dos veces sobre uno de los nuevos terminales de salida del nodo
Parse. El editor de mensajes de pantalla se abrirá y visualizará la estructura de
pantalla y las descripciones de pantalla pertenecientes al mensaje de pantalla asociado
con el terminal de salida.
- En el editor de
mensajes de pantalla, observe la estructura de pantalla y las descripciones de pantalla
y compruebe que este mensaje de pantalla coincide con una pantalla de aplicación que
pueda aparecer en este punto del flujo.
- Guarde el trabajo.
- Cierre el
editor de flujo cuando esté preparado.
Cuando
se ejecute el nodo Parse, el ejecutor de flujo comparará los terminales de
salida
del nodo Parse con la pantalla de aplicación visualizada actualmente, a partir del primer
terminal de salida. Si el ejecutor de flujo encuentra que el mensaje de pantalla asociado
a un terminal de salida coincide con la pantalla de aplicación visualizada actualmente,
dejará de buscar coincidencias (es decir, no comparará ninguno de los terminales de
salida restantes con la pantalla de aplicación actual) y tomará inmediatamente la ramificación de
flujo asociada al terminal de salida coincidente.
Propiedades
de generación
- He
rellenado todos los valores necesarios para el archivo de propiedades de generación, pero
el botón generar código de tiempo de ejecución no se ha habilitado.
¿Cómo puedo
habilitarlo?
Cuando se cambia el valor de una
propiedad de generación, el botón queda inhabilitado. El botón no se habilita hasta que
se guardan las propiedades de generación.
Para guardar
las propiedades de generación, pulse Control-S o seleccione
en el menú principal del entorno de trabajo.
- tengo
un flujo agregado formado por una operación COMMAREA
y un flujo de terminal. ¿Por qué tengo dos archivos de propiedades de generación
diferentes?
Los
archivos de código de tiempo de ejecución generados para cada flujo se almacenan en una
subcarpeta independiente bajo la carpeta generación del Explorador de proyectos EST.
Generación
de código de tiempo de ejecución
- ¿Cómo
alterar temporalmente el nombre predeterminado dado a un archivo de libro de copia
generado?
Siga estos pasos:
- Determine
que archivo de mensaje contiene el mensaje correspondiente al archivo de libro de copia.
- Abra
el archivo de libro de copia (por ejemplo, INPROCES.CPY) con el editor LPEX básico y
examine el nombre del libro de copia (por ejemplo, INPROCESSORDERERQUESTMESSAGE).
A continuación, cierre el archivo de libro de copia.
- En
el Explorador de proyectos EST, en el proyecto de flujo de servicios, en el subproyecto
de definición de interfaz, en la carpeta Mensajes, abra cada uno de los archivos de
mensaje (.sfmxsd) con el editor de mensajes de flujo hasta encontrar el archivo que
contenga un mensaje con el mismo nombre (por ejemplo, inProcessOrderRequestMsg) y
estructura que el libro de copia.
- Abra
el archivo de mensaje con el editor de mensajes de flujo, si aún no está abierto.
- En el editor de mensajes de flujo:
- Seleccione el mensaje (en el ejemplo anterior, inProcessOrderRequestMsg).
- Vaya a la pestaña Propiedades del editor. En la pestaña Propiedades:
- En el panel izquierdo:
- Expanda
.
- Seleccione
Mensaje.
- En el panel derecho:
- En
el campo cobolName,
escriba el nombre que desee utilizar para el archivo de libro de copia (sólo los primeros
ocho caracteres se utilizarán para el nombre).
- Guarde el
trabajo y cierre el editor de mensajes de flujo.
- Vuelva a generar los archivos de código de tiempo de ejecución.
El
archivo de libro de copia regenerado tendrá el nombre que ha especificado en el editor de
mensajes de flujo.
- ¿Cómo
reducir el número de archivos de código de tiempo de ejecución que se generan para cada
flujo?
A partir de Rational Developer
for System z Versión 7, las características
siguientes reducen el número de archivos que se generan para un proyecto de flujo de
servicios:
- El
generador de código de tiempo de ejecución ya no genera un programa independiente para
cada nodo Invoke de tipo LINK con COMMAREA. En lugar de ello, CICS Service Flow Runtime maneja
automáticamente el enlace a programas COMMAREA.
- En
un archivo de propiedades de generación de un flujo, el editor de propiedades de
generación incluye el recuadro de selección
Generar estructuras de datos
internas.
Si no se marca este recuadro de selección, las estructuras de datos se generan como
libros de copia externos (como se realizaba automáticamente en todas las versiones
anteriores a la Versión 7). Si se marca el recuadro de selección, las estructuras de
datos se generan internamente en el código fuente del programa COBOL.
- En la primera pestaña del asistente Generar código de tiempo de ejecución, se han añadido dos recuadros de
selección:
- El recuadro de selección Crear JCL de
definiciones de recurso controla si se genera JCL para facilitar la
definición de recursos en CICS. Para evitar que se genere JCL, quite la marca
del recuadro de selección. De forma predeterminada, el recuadro de selección está marcado.
- El recuadro de selección Crear JCL
de compilación controla si se genera JCL para
facilitar la
compilación del código fuente COBOL o PL/I. Para evitar que se genere JCL, quite la marca
del recuadro de selección. De forma predeterminada, el recuadro de selección está marcado.
- ¿Cómo puedo crear definiciones de recursos del CICS?
Consulte el tema de ayuda Tres métodos de creación de definiciones de recurso CICS.
Compilación
- Cuando se compilan los archivos COBOL generados por el asistente
Generar código de tiempo de ejecución, recibo el error de compilación IGYPS0037. ¿Cómo
puede solucionar este problema?
Este problema puede ocurrir si los mensajes
definidos para un flujo incluyen un mensaje (por ejemplo, "InputInfo") y un campo dentro
de otro mensaje ("MyMessage.InputInfo") que tiene el mismo nombre ("InputInfo"). En tal
caso, el asistente Generar código de tiempo de ejecución puede
generar una sentencia COBOL que haga referencia de forma ambigua a uno de los dos
elementos utilizando el nombre en conflicto ("INPUTINFO").
Cuando el compilador
COBOL intenta compilar esta sentencia COBOL, detecta la ambigüedad (el compilador no
reconoce si "INPUTINFO" hace referencia al mensaje o al campo) y emite el siguiente
mensaje de error:
IGYPS0037 "<nombre>" no es un nombre definido
de forma exclusiva.
Para solucionar este problema, cambie el nombre
del mensaje o el campo y vuelva a ejecutar el asistente
Generar código de
tiempo de ejecución. Siga estos pasos:
- Cambie el nombre del elemento:
- En el Explorador de proyectos EST, pulse con el botón derecho del ratón el elemento
al que desee cambiar el nombre, ya sea el mensaje o el campo.
- Seleccione
Redenominar. Se abrirá la ventana Refactorizar objeto.
- Compruebe que el recuadro de selección ¿Refactorizar el resultado de la
redenominación dentro de los archivos? esté seleccionado.
- Pulse Aceptar.
- Ejecute de nuevo el asistente Generar código de tiempo de ejecución.
Prueba
- Estoy utilizando la característica "Invocar una operación WSDL" del Explorador de servicios Web
para probar el archivo WSDL de tiempo de ejecución generado para un proyecto de flujo de servicios. La característica "Invocar una operación WSDL" requiere que escriba valores en
muchos campos de entrada de diversos contenedores.
¿Existe algún modo de guardar y
restaurar estos valores de campo?
Para guardar los
valores de campo en un archivo de texto:
- Pulse
el enlace
Fuente
en la esquina superior derecha del Explorador de servicios Web.
- Pulse el enlace
Guardar como.
- Escriba
un nombre de archivo en el campo de entrada y pulse
Aceptar.
Los
valores de campo se guardarán en el archivo de texto. Para restaurar la vista Formulario, pulse el
enlace Formulario
ubicado en la esquina superior derecha del Explorador de servicios Web.
Para
restaurar los valores de campo desde un archivo de texto:
- Pulse
Examinar.
- Seleccione
el archivo de texto y pulse
Aceptar.
- Seleccione
el enlace Cargar.
Los
valores del archivo de texto se restaurarán. Para restaurar la vista Formulario, pulse el
enlace Formulario
ubicado en la esquina superior derecha del Explorador de servicios Web.
- Cuando utilizo el Explorador de servicios Web para probar un
servicio Web generado, recibido el código de respuesta de error CIA06021E (DFHMA06021E).
¿Cuál es el problema?
Realice las siguientes comprobaciones:
- Asegúrese
de haber especificado el nombre de petición en el Explorador de servicios Web en MAYÚSCULAS. (Para obtener información acerca del significado del nombre de petición consulte la sección Propiedades de generación común de los tres tipos de flujo). Si especifica el nombre en minúsculas, el Explorador de servicios Web no podrá
encontrarlo en el host y devolverá el código de respuesta CIA06021E (DFHMA06021E).
- Asegúrese
de haber ejecutado el archivo JCL para instalar y habilitar la definición de tipo de
proceso (processtype). El tipo de proceso tiene el mismo nombre que el nombre de petición
especificado en el descriptor de construcción. Después de generar el código de tiempo de
ejecución y desplegarlo en el host, ejecute el archivo JCL suministrado.
Con ello creará
la definición de processtype, la instalará y la habilitará.
Determinación de problemas
- He recibido un mensaje de error en el que se decía que debería consultar el archivo de anotaciones de error para encontrar información adicional acerca del error.
¿Cómo puedo hacerlo?
Para encontrar información adicional sobre un error en la vista Archivo de anotaciones de error:
- En el menú principal del entorno de trabajo, seleccione .
Se abrirá la ventana Mostrar vista.
- En la ventana Mostrar vista:
- Seleccione .
Se abrirá la vista Archivo de anotaciones de error.
- En la vista Archivo de anotaciones de error:
- Pulse el botón derecho del ratón sobre el error en el que esté interesado.
- Seleccione Detalles del evento.
Se abrirá la ventana Detalles del evento en la que se visualizará información adicional del error.
Si se pone en contacto con el servicio de soporte de IBM® para solucionar el error, debería enviar esta información al servicio de soporte de IBM para ayudarles a emitir un diagnóstico del problema.
DBCS
- ¿Por
qué no se muestran correctamente los caracteres DBCS durante el registro de flujo y en el
editor de pantalla?
Posiblemente, los fonts de idiomas
de Asia oriental (especialmente MS Gothic) no estén instalados en el
sistema.
Si
utiliza una estación de trabajo Windows®
XP, puede determinar si un font está instalado siguiendo estos pasos:
- Seleccione
. Se abrirá una ventana que visualiza una lista de fonts instalados.
- Si
el nombre del font que está buscando figura en la lista de fonts, significa que el font
está instalado en el sistema. Si no es así, debe instalar el font.
Si utiliza una estación de trabajo Windows XP, puede instalar los fonts de Asia oriental siguiendo estos pasos:
- Seleccione
.
- En
la ventana Configuración
regional y de idioma:
- Seleccione
la pestaña Idiomas.
- Marque el recuadro de
selección Instalar archivos para
los idiomas de Asia oriental.
- Pulse Aceptar.
- Puede
que sea necesario reiniciar el sistema para que los cambios de font entren en vigor.