Nodo Datos

Utilice el nodo Datos para interactuar con una base de datos en el origen de datos ODBC especificado.

El nodo Datos está disponible en las siguientes modalidades de operación:
  • Desarrollador
  • Application Integration Suite
  • Estándar
  • Avanzada
Para obtener más información, consulte Modos de funcionamiento.

Finalidad

Defina la naturaleza de la interacción codificando sentencias ESQL que especifican los datos del mensaje de entrada y quizás los transforman de alguna manera (por ejemplo, para realizar un cálculo), y asignan el resultado a una tabla de base de datos.

Puede establecer una propiedad para controlar si la actualización de la base de datos se confirma inmediatamente o si se difiere hasta que el flujo de mensajes se complete, momento en el que la actualización se confirma o se restituye, según el estado general de realización del flujo de mensajes.

El nodo Datos está contenido en el cajón Datos de la paleta y está representado en el IBM® Integration Toolkit por el siguiente icono:

Icono del nodo de base de datos

Utilización de este nodo en un flujo de mensajes

Por ejemplo, supongamos que recibe un pedido de 20 monitores. Si tiene suficientes monitores en el almacén, desea reducir las existencias en el almacén. Puede utilizar el nodo Datos para comprobar que tiene suficientes supervisores disponibles y reducir el valor del campo de cantidad en la base de datos.

Terminales y propiedades

Cuando haya puesto una instancia del nodo Datos en un flujo de mensajes, puede configurarlo; consulte Configuración de un nodo de flujo de mensajes. Las propiedades del nodo se visualizan en la vista Propiedades. 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.

Los terminales del nodo Datos se describen en la tabla siguiente. Para obtener más información sobre la sentencia PROPAGATE, incluida su sintaxis, consulte Sentencia PROPAGAR

Terminal Descripción
De entrada El terminal de entrada que acepta un mensaje para que lo procese el nodo.
Anomalía El terminal de salida al que se propaga el mensaje de entrada si se detecta una anomalía durante el cálculo. Si ha seleccionado Tratar los avisos como errores, el nodo propaga el mensaje a este terminal aunque el proceso se complete satisfactoriamente.
De salida El terminal de salida al que se direcciona el mensaje transformado cuando se completa el proceso en el nodo. Es posible que una sentencia PROPAGATE también direccione el mensaje transformado a este terminal.
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.

Las tablas siguientes describen las propiedades del 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 Datos se describen en la tabla siguiente.

Propiedad M C Valor predeterminado Descripción
Nombre de nodo No No El tipo de nodo, Database El nombre del nodo.
Descripción breve No No   Breve descripción del nodo.
Descripción larga No No   Texto que describe la finalidad del nodo en el flujo de mensajes.

Las propiedades básicas del nodo de Datos se describen en la tabla siguiente.

Propiedad M C Valor predeterminado Descripción Propiedad del mandato mqsiapplybaroverride
Origen de datos No   El nombre del origen de datos ODBC de la base de datos que contiene las tablas a las que se hace referencia en el ESQL asociado a este nodo (identificado por la propiedad Statement).

Este nombre identifica la base de datos apropiada tal como se la conoce en el sistema en el que se va a ejecutar el flujo de mensajes. El nodo de integración se conecta a esta base de datos con la información de ID de usuario y contraseña que ha especificado en el mandato mqsisetdbparms .

Si el ESQL que está asociado a este nodo incluye una sentencia PASSTHRU o una función SELECT y una referencia a base de datos, debe especificar un valor para la propiedad Origen de datos.

dataSource
Sentencia No No Base de datos Nombre del módulo dentro del archivo ESQL que contiene las sentencias que se van a utilizar con la base de datos. Si desea que el nombre del módulo incluya uno o varios espacios, escriba el nombre entre comillas.

El archivo ESQL, que de forma predeterminada tiene el nombre <message_flow_name>.esql, contiene ESQL para cada nodo del flujo de mensajes que lo requiere. Cada parte del código relacionada con un nodo específico se denomina módulo. Cuando codifica sentencias ESQL que interactúan con tablas, se da por hecho que esas tablas existen dentro de esta base de datos. Si no existen, el nodo de integración genera un error de base de datos durante la ejecución.

Codifique sentencias ESQL para personalizar el comportamiento del nodo Datos en un archivo ESQL asociado al flujo de mensajes en el que ha incluido esta instancia del nodo Datos . Si no existe un archivo ESQL para este flujo de mensajes, efectúe una doble pulsación en el nodo Datos o pulse con el botón derecho del ratón en el nodo y pulse Abrir ESQL para crear y abrir un nuevo archivo ESQL en la vista del editor ESQL.

Si existe un archivo ESQL, pulse Examinar junto a la propiedad Declaración para visualizar el recuadro de diálogo Selección de módulo, que lista los módulos de nodo Datos disponibles que están definidos en los archivos ESQL a los que puede acceder este flujo de mensajes (los archivos ESQL se pueden definir en otros proyectos dependientes, dependientes). Seleccione el módulo apropiado y pulse Aceptar. Si no hay disponibles módulos apropiados, la lista está vacía.

Si el módulo que ha especificado no existe, se crea automáticamente y el editor lo muestra. Si el archivo y el módulo existen, el editor resalta el módulo adecuado. 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 DATABASE MODULE <flow_name>_Database
       CREATE FUNCTION Main() RETURNS BOOLEAN
       BEGIN
               RETURN TRUE; 
       END;
END MODULE;

Si crea su propio módulo ESQL, debe crear este esqueleto exactamente tal como se muestra. Puede actualizar el nombre predeterminado, pero asegúrese de que el nombre que especifique coincida con el nombre de la propiedad de nodo Sentencia correspondiente.

Para personalizar este nodo, añada su propio ESQL después de la sentencia BEGIN y antes de RETURN TRUE. Puede utilizar todas las sentencias ESQL incluyendo SET, WHILE, DECLARE y IF en este módulo, pero (a diferencia del nodo Cálculo ) el nodo Datos propaga, sin cambios, el mensaje que recibe en su terminal de entrada a su terminal de salida. Por lo tanto, al igual que el nodo Filtro , sólo tiene un mensaje al que hacer referencia en un nodo de Datos .

 
Transacción No Automática La modalidad de transacción para el nodo. Los valores son los siguientes:
  • Automática (el valor predeterminado). El flujo de mensajes, del que forma parte el nodo Datos , se confirma si es satisfactorio; es decir, las acciones que se definen en el módulo ESQL se realizan y el mensaje continúa a través del flujo de mensajes. Si el flujo de mensajes da error, la acción se restituye. Si selecciona Automático, la capacidad de confirmar o retrotraer la acción del nodo Datos en la base de datos depende del éxito o la anomalía de todo el flujo de mensajes.
  • Confirmar. Para confirmar todas las acciones no confirmadas realizadas en este flujo de mensajes en la base de datos conectada a este nodo, independientemente del éxito o error del flujo de mensajes como un todo, seleccione Confirmar. Los cambios en la base de datos se confirman incluso si el flujo de mensajes propiamente dicho no se ejecuta correctamente.
 
Tratar los avisos como errores No Deseleccionado Para que los mensajes de aviso de base de datos se traten 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 normales y no emite ninguna excepción. La advertencia más importante planteada es:not found, que se puede manejar de forma segura como un código de retorno típico en la mayoría de las circunstancias.

 
Generar excepción en error de base de datos No Seleccionada Para que el nodo de integración 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á seleccionado.

Si deselecciona el recuadro, incluya ESQL para comprobar si hay errores de base de datos que puedan devolverse después de cada llamada de base de datos que efectúe (para obtener esta información, puede utilizar SQLCODE y SQLSTATE). Si se ha producido 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 utilizar el manejo de errores predeterminado mediante el nodo de integración. Por ejemplo, puede incluir la sentencia ESQL THROW para generar una excepción en este nodo, o puede utilizar el nodo Throw para generar su propia excepción en un punto posterior.

 
Las propiedades de supervisión del nodo se describen en la siguiente tabla.
Propiedad M C Valor predeterminado Descripción
Sucesos No No Ninguna En este separador se visualizan los sucesos que ha definido para el nodo. De forma predeterminada, no se define ningún suceso de supervisión en ningún nodo en un flujo de mensajes. Utilice Añadir, Editary Suprimir para crear, cambiar o suprimir sucesos de supervisión para el nodo; consulte Configuración de orígenes de sucesos de supervisión utilizando propiedades de supervisión para obtener detalles.

Puede habilitar e inhabilitar sucesos que se muestran aquí seleccionando o deseleccionando el recuadro Habilitado.