Documentos de Académico
Documentos de Profesional
Documentos de Cultura
IBM Integration Bus, versión 10.0.0.8 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows,
z/OS
Nodo Calcular
Utilice el nodo Calcular para crear uno o más mensajes de salida nuevos.
• Estándar
• Avanzada
Finalidad
Especificación de ESQL
Establecimiento de la modalidad
Validación de mensajes
Terminales y propiedades
Finalidad
Los mensajes de salida que cree en el nodo Calcular podrían crearse modificando la información que se
suministra en el mensaje de entrada o utilizando únicamente información nueva que puede extraerse de
una base de datos o de otras procedencias. Se pueden utilizar los elementos del mensaje de entrada (por
ejemplo cabeceras, campos de cabecera y datos de cuerpo), el entorno asociado y la lista de excepciones
para crear el nuevo mensaje de salida.
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 1/15
2017614 Nodo Calcular
Especifique cómo se crean los nuevos mensajes codificando ESQL en el archivo de recursos ESQL del
flujo de mensajes. Para obtener más información, consulte Especificación de ESQL.
Todas las propiedades obligatorias para las que debe especificar un valor (las que no tienen un valor
predeterminado definido) están marcadas con un asterisco.
2. Especificación de ESQL
3. Establecimiento de la modalidad
4. Validación de mensajes
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 2/15
2017614 Nodo Calcular
Automática (el valor predeterminado). El flujo de mensajes del que forma parte el nodo Calcular, se
confirma si la operación es satisfactoria. Es decir, que las acciones que define en el módulo ESQL se
realizan en el mensaje y éste continúa a través del flujo de mensajes. Si el flujo de mensajes da error,
la acción se restituye. Si elige Automática, la posibilidad de confirmar o restituir la acción del nodo
Calcular en la base de datos depende del éxito o el error de todo el flujo de mensajes.
Confirmar. Para confirmar la acción del nodo Calcular sobre la base de datos, independientemente
de que la ejecución general del flujo de mensajes sea correcta o dé errores, seleccione Confirmar.
La actualización de la base de datos se confirmará incluso si el flujo de mensajes no se ejecuta
correctamente.
El valor escogido se establece para todas las bases de datos que haya añadido; no se puede
seleccionar un valor diferente para cada tabla.
• Para tratar los mensajes de aviso de la base de datos como errores y que el nodo propague el mensaje
de salida al terminal de anomalías, seleccione Tratar los avisos como errores. Inicialmente, el
recuadro está vacío.
Cuando selecciona el recuadro, el nodo gestiona todos los códigos de retorno positivos de la base de
datos como errores y genera excepciones igual que si se tratase de errores negativos o más graves.
Si no selecciona el recuadro, el nodo trata los avisos como códigos de retorno habituales y no emite
excepciones. El aviso más significativo es no encontrado que, en la mayoría de los casos, puede
tratarse de forma segura como un código de retorno habitual.
• Para forzar al nodo de integración a que genere una excepción cuando se detecte un error de base de
datos, seleccione Generar excepción en error de base de datos. Inicialmente, el recuadro está
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 3/15
2017614 Nodo Calcular
seleccionado.
Si deselecciona el recuadro, deberá incluir ESQL para comprobar si hay algún error de la base de datos
que pudiera devolverse después de cada llamada efectuada a la base de datos (esto puede hacerse
utilizando SQLCODE y SQLSTATE). Si se produce un error, deberá gestionarlo en el flujo de mensajes
para asegurarse de la integridad del nodo de integración y de la base de datos; el error se ignora si no lo
gestiona a través de su propio proceso, debido a que ha decidido no invocar el manejo de errores
predeterminado mediante el nodo de integración. Por ejemplo, puede incluir la sentencia THROW de
ESQL para generar una excepción en este nodo o puede utilizar el nodo Throw para generar
posteriormente su propia excepción en el flujo de mensajes.
También puede configurar automáticamente la conectividad a una base de datos utilizando el Servicio de
base de datos. Para obtener más información, consulte Servicio de base de datos.
Especificación de ESQL
Codifique sentencias ESQL para personalizar el comportamiento del nodo Calcular. Por ejemplo, puede
personalizar el nodo para que cree un nuevo mensaje o mensajes de salida, utilizando mensajes de
entrada o contenido de base de datos (sin modificar o modificados), o datos nuevos. Por ejemplo, quizá
desee modificar un valor en el mensaje de entrada añadiendo un valor de una base de datos y
almacenando el resultado en un campo en el mensaje de salida. De forma predeterminada, los archivos
ESQL se despliegan como recursos individuales y se pueden editar y volver a desplegar sin volver a
desplegar los flujos de mensajes que hacen referencia a ellos. Para obtener más información, consulte
Desplegar un archivo ESQL.
Codifique las sentencias ESQL que desee en un archivo ESQL asociado al flujo de mensajes en el que ha
incluido esta instancia del nodo Calcular. El archivo ESQL, que, de forma predeterminada tiene el nombre <
nombre_flujo_mensajes>_<nombre_nodo_compute>.esql, contiene ESQL para cada nodo del flujo de
mensajes que lo necesite. Cada parte del código relacionada con un nodo específico se denomina módulo.
Si todavía no existe ningún archivo ESQL para este flujo de mensajes, efectúe una doble pulsación en el
nodo Calcular o pulse el botón derecho del ratón en el nodo y pulse en Abrir ESQL. Esta acción crea y abre
un nuevo archivo ESQL en la vista del editor ESQL. Si lo prefiere, puede abrir el archivo ESQL adecuado en
la vista Desarrollo de aplicaciones y seleccionar este nodo en la vista Esquema.
Si el archivo ya existe, pulse Examinar al lado de la propiedad Módulo ESQL para visualizar el recuadro de
diálogo Selección de módulo, que lista los módulos disponibles del nodo Calcular definidos en los archivos
ESQL a los que este flujo de mensajes puede acceder (pueden definirse archivos ESQL en otros proyectos
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 4/15
2017614 Nodo Calcular
Si se crea un esqueleto de módulo para este nodo en un archivo ESQL nuevo o ya existente, consta del
ESQL siguiente. En este ejemplo se muestra el nombre de módulo predeterminado:
CREATE COMPUTE MODULE <nombre_flujo>_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
‐‐ CALL CopyMessageHeaders();
‐‐ CALL CopyEntireMessage();
RETURN TRUE;
END;
CREATE PROCEDURE CopyMessageHeaders() BEGIN
DECLARE I INTEGER 1;
DECLARE J INTEGER CARDINALITY(InputRoot.*[]);
WHILE I < J DO
SET OutputRoot.*[I] = InputRoot.*[I];
SET I = I + 1;
END WHILE;
END;
CREATE PROCEDURE CopyEntireMessage() BEGIN
SET OutputRoot = InputRoot;
END;
END MODULE;
Si crea su propio módulo ESQL, debe crear este esqueleto exactamente tal como se muestra, a excepción
de las llamadas y las definiciones de procedimiento (que se describen más adelante en esta sección).
Puede cambiar el nombre predeterminado, pero asegúrese de que el nombre que especifique coincida
con el nombre de la propiedad de nodo correspondiente Módulo ESQL. Si desea que el nombre del
módulo incluya uno o más espacios, escriba el nombre entre comillas en la propiedad Módulo ESQL.
Añada su propio ESQL para personalizar este nodo después de la sentencia BEGIN que hay después de
CREATE FUNCTION y antes de RETURN TRUE. Puede utilizar las dos llamadas incluidas en el esqueleto,
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 5/15
2017614 Nodo Calcular
Estos procedimientos, definidos después de la función Main, proporcionan funciones comunes que es
posible que desee cuando manipula mensajes. Las llamadas en el esqueleto están comentadas; elimine
las marcas de comentario si desea utilizar el procedimiento. Si no desea utilizarlo, elimine del módulo la
llamada y la definición del procedimiento.
Establecimiento de la modalidad
Este valor predeterminado se utiliza cuando el mensaje transformado se direcciona al terminal de salida
una vez que se ha completado el proceso en el nodo. También se utiliza el valor predeterminado siempre
que una sentencia PROPAGATE no especifica la composición del mensaje de salida.
Esos componentes que no están incluidos en la selección se pasan sin modificarse; incluso si modifica
esos componentes, las actualizaciones son locales para este nodo.
Y al revés, los componentes que no se incluyen en la selección no se pasan y persisten las actualizaciones
que se realizan en el nodo.
Los siete valores posibles que puede tener la propiedad Modalidad de cálculo se indican en la
siguiente tabla.
Modalidad Descripción
Mensaje (valor predeterminado) El mensaje lo genera o lo pasa el nodo Calcular tal como se ha
modificado dentro del nodo.
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 6/15
2017614 Nodo Calcular
Modalidad Descripción
Entorno local El nodo Calcular genera o pasa la estructura en árbol del entorno
local tal como se ha modificado dentro del nodo.
Entorno local y mensaje El nodo Calcular genera o pasa la estructura en árbol del entorno
local y el mensaje tal como lo ha modificado el nodo.
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 7/15
2017614 Nodo Calcular
Modalidad Descripción
Si se ha seleccionado Todo, el nodo Calcular espera generar los tres nuevos árboles de mensaje para
Root, LocalEnvironment y ExceptionList rellenando OutputRoot, OutputLocalEnvironment y
OutputExceptionList. Los árboles de mensaje de entrada no se pasan a la salida, a menos que se copien
explícitamente de la entrada a la salida.
Para producir un mensaje de salida nuevo o modificado y propagar los mismos LocalEnvironment y
ExceptionList, establezca la propiedad Modalidad de cálculo en Mensaje para que el
LocalEnvironment y ExceptionList que se pasen al nodo Calcular o Correlación, se pasen desde el nodo
Calcular.
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 8/15
2017614 Nodo Calcular
En la propagación desde el nodo, los siguientes árboles se propagan desde el nodo Calcular o Correlación
para los siguientes valores.
Modalidad de cálculo Árboles propagados
Cuando se define el nombre de un árbol de salida, ESQL crea este árbol de mensajes antes de la
propagación. Si el ESQL no crea el árbol, no se propagará ningún árbol para ese nombre de correlación y
el árbol de entrada no se utilizará en su lugar porque la propiedad Modalidad de cálculo no ha indicado
esta opción. Por tanto, dependiendo de los valores de la propiedad Modalidad de cálculo de cálculo y
del ESQL, se puede suprimir un árbol que se haya entrado al nodo porque no se ha transferido al árbol de
salida, o propagar un árbol modificado, tal como deseaba.
A la inversa también se cumple. Si su ESQL interroga a los árboles de entrada y no necesita propagar
estos árboles, el valor de la Modalidad de cálculo puede indicar que el árbol de mensajes se propaga
cuando no es su intención que esto suceda. Por ejemplo, quizá no desee propagar LocalEnvironment y
ExceptionList desde un nodo Calcular, pero como seleccionó Mensaje, se propagarán las versiones de
entrada de los árboles. Aunque el ESQL suprima explícitamente OutputLocalEnvironment y
OutputExceptionList, esas modificaciones serán locales para el nodo debido a que el valor de la propiedad
Modalidad de cálculo causa la propagación de los árboles de entrada.
El componente Entorno del árbol de mensajes no queda afectado por el valor de la propiedad Modalidad
de cálculo. El contenido, si existe, se pasa desde este nodo en el mensaje de salida.
Establezca esta propiedad para que refleje el formato de mensaje de salida que requiere. Si selecciona una
opción (o acepta el valor predeterminado) que no incluye una parte determinada del mensaje, esa parte del
mensaje no se incluye en ningún mensaje de salida que se cree.
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 9/15
2017614 Nodo Calcular
El nodo Calcular tiene un mensaje de entrada y un mensaje de salida, por lo que puede utilizar el ESQL
para hacer referencia a campos de cualquiera de los dos mensajes. También puede trabajar con
InputLocalEnvironment y OutputLocalEnvironment, e InputExceptionList y OutputExceptionList, así como
con los cuerpos de los mensajes de entrada y de salida.
Validación de mensajes
Establezca las propiedades de validación para definir cómo debe validarse el mensaje producido por el
nodo Calcular. Estas propiedades no hacen que se valide el mensaje de entrada. Se espera que, si se
necesita dicha validación, el nodo de entrada o un nodo de validación anterior ya habrá realizado la
validación.
Terminales y propiedades
Los terminales del nodo Calcular están descritos en la siguiente tabla.
Terminal Descripción
De entrada) El terminal de entrada que acepta un mensaje para que lo procese el nodo.
Out1 El primer terminal de salida alternativo al que es posible que una sentencia PROPAGATE
direccione el mensaje transformado.
Out2 El segundo terminal de salida alternativo al que es posible que una sentencia PROPAGATE
direccione el mensaje transformado.
Out3 El tercer terminal de salida alternativo al que es posible que una sentencia PROPAGATE
direccione el mensaje transformado.
Out4 El cuarto terminal de salida alternativo al que es posible que una sentencia PROPAGATE
direccione el mensaje transformado.
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 10/15
2017614 Nodo Calcular
Las tablas siguientes describen las propiedades de nodo. La columna con la cabecera O indica si la
propiedad es obligatoria (marcada con un asterisco si tiene que entrar un valor cuando no hay definido
ningún valor predeterminado); la columna con la cabecera C indica si la propiedad es configurable (puede
cambiar el valor cuando añade el flujo de mensajes al archivo BAR para desplegarlo).
Las propiedades de Descripción del nodo Calcular están descritas en la siguiente tabla.
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 11/15
2017614 Nodo Calcular
• Entorno local
• Entorno local y mensaje
• Excepción
• Excepción y mensaje
• Excepción y entorno local
• Todo
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 12/15
2017614 Nodo Calcular
Las propiedades de validación del nodo Calcular se describen en la tabla siguiente. Para ver la descripción
completa de estas propiedades, consulte Propiedades de validación.
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 13/15
2017614 Nodo Calcular
Conceptos relacionados:
Visión general de flujos de mensajes
Nombres de correlación
Servicio de base de datos
Tareas relacionadas:
Decidir los nodos a utilizar
Validación de mensajes
Manejar errores en flujos de mensajes
Configuración de la transaccionalidad de flujos de mensajes
Escribir ESQL
Edición de propiedades configurables en un archivo BAR
Utilizar un Servicio de base de datos con un nodo Calcular
Referencia relacionada:
Referencia de ESQL
Sentencia PROPAGATE
Mandato mqsichangebroker
Mandato mqsicreatebroker
Mandato mqsisetdbparms
Orígenes de datos en z/OS
Propiedades de validación
https://www.ibm.com/support/knowledgecenter/es/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac04660_.html 15/15