En este tema se describe brevemente el uso de variables y referencias de campo en el subconjunto de
ESQL que las herramientas de proyecto de flujo de servicios soportan.
Importante: Para comprender totalmente una característica descrita en este tema, debe leer toda
la descripción de la característica en la documentación
para WebSphere Message
Broker (consulte la sección
Trabajos de referencia que describen ESQL).
Variables
En ESQL una variable es un campo de
datos dentro de un mensaje. Por ejemplo, la variable
CA_REQUEST_ID, que es una variable de serie pensada para contener
un ID de petición para una aplicación no de terminal, es un campo dentro de un mensaje
como msg_QUERYACC_DFHCOMMAREA.
Nota: No se debe
confundir el uso de los términos
variable y
elemento de mensaje. Un elemento de mensaje puede ser una estructura compleja, un campo individual, una matriz o un elemento
de matriz. Dos de estos elementos, el campo individual y la matriz, también
se pueden denominar
variables (consulte la sección
Cómo se utilizan los mensajes en flujos).
En ESQL, se hace referencia a una variable mediante una referencia de campo que se
compone (en este caso) del nombre de mensaje, seguido por un punto y, después, por el
nombre de campo:
msg_QUERYACC_DFHCOMMAREA.CA_REQUEST_ID (consulte la
sección Referencias de campo).
Las
variables de ESQL de un flujo de proyecto de flujo de servicios pertenecen a una categoría de variables de
ESQL denominadas compartidas. Estas variables existen para toda la duración del flujo (porque
los mensajes en los que están ubicados las variables existen para toda la duración del flujo) y se puede
acceder a ellas desde cualquier nodo del flujo.
Por lo tanto, dentro de un flujo puede tener acceso a las estructuras, los
campos, las matrices y los elementos de matriz contenidos en todos los mensajes a los que el flujo hace referencia,
incluyendo:
- El mensaje de entrada para el flujo
- El mensaje de salida para el flujo
- El mensaje de variables
Los nombres de variables son sensibles a las
mayúsculas y minúsculas, así como todos los nombres de los mensajes y los nombres de elementos de los
mensajes.
Nota: Puesto que las herramientas de proyecto de flujo de servicios sólo soportan el
uso de expresiones ESQL (no sentencias ESQL, procedimientos
ESQL ni módulos ESQL), no se puede utilizar la sentencia ESQL DECLARE para declarar
una variable.
Referencias de campo
Las referencias
de campo son las referencias dentro de las expresiones ESQL a mensajes o elementos de
mensajes existentes (incluyendo variables) por nombre. Las referencias de campo pertenecen al tipo de datos
REFERENCE.
Las referencias de campo son sensibles a las mayúsculas y minúsculas, porque utilizan
nombres de mensajes y de elementos de mensajes, que son sensibles a las mayúsculas y minúsculas (consulte
la sección Sensibilidad a las mayúsculas y minúsculas).
Una referencia
de campo se compone de un
nombre de correlación seguido por cero o
más
elementos de vía de acceso separados por puntos (consulte la
sección
Figura 1).
En las herramientas de proyecto de flujo de servicios, un nombre de correlación debe ser el nombre de un mensaje
que haya importado al flujo actual. Un elemento de vía de acceso puede ser el nombre de una estructura, el nombre de
un campo de datos, el nombre de una matriz o el elemento de una matriz. El nombre de correlación y los elementos de vía de
acceso combinados especifican la vía de acceso dentro del mensaje para el campo de datos al que desea hacer referencia:
Figura 1. Referencias de campomsg_QUERYACC_DFHCOMMAREA.CA_REQUEST_ID
msg_MY_PROGRAM_INFO.aiAccountInfo.userName
msg_JGAPPSCA_DFHCOMMAREA.INSEARCHCRITERIA.INFIRSTNAME
msg_MY_DATA.arrCustomerInfo[4].CustomerID
Cuando se utiliza una expresión ESQL que contiene una referencia de campo,
ésta debe satisfacer los criterios para ser un identificador de ESQL válido (consulte la
sección Identificadores y palabras clave en ESQL).
Importante: Si el nombre de un
mensaje o elemento de mensaje que se incluye en una referencia de campo contiene un operador de ESQL
o una palabra clave de ESQL, debe especificarse entre comillas. Ejemplos:
Figura 2. Utilización de comillas alrededor de operadores y nombres reservados en las referencias de campomsg_MY_INFO."ORDER-NUMBER" *** Signo menos
msg_MY_INFO."NOT_NEEDED" *** NOT
msg_MY_INFO."NULL_SENDER" *** NULL
msg_MY_INFO."IS_VALID" *** IS
Consulte
las secciones Operadores en ESQL
y Identificadores y palabras clave en ESQL.