Nodo DataInsert

Este tema contiene los apartados siguientes:

Finalidad

Utilice el nodo DataInsert para interactuar con una base de datos del origen de datos ODBC especificado. El nodo DataInsert es un formato especializado del nodo Database y la interacción se limita a insertar una o más filas en una tabla de la base de datos. Puede definir lo que se debe insertar especificando sentencias de correlación que utilicen de algún modo los datos del mensaje de entrada para definir la acción necesaria.

Puede establecer una propiedad para controlar si la actualización de la base de datos se debe confirmar inmediatamente, o bien, si se debe diferir hasta que finalice el flujo de mensajes, cuando la actualización se confirma o se restituye según el estado de finalización global del flujo de mensajes.

El nodo DataInsert se representa en el área de trabajo mediante el icono siguiente:

icono del nodo DataInsert

Utilización de este nodo en un flujo de mensajes

Imagínese una situación en la que la empresa ha desarrollado un nuevo producto. Desde el departamento técnico le han enviado los detalles sobre el producto y debe extraer detalles del mensaje y añadirlos como una nueva fila en la base de datos de existencias.

Configuración del nodo DataInsert

Se puede configurar al transferir una instancia del nodo DataInsert a un flujo de mensajes. Pulse el botón derecho del ratón en la vista del editor y, a continuación, pulse en Propiedades. Se muestran las propiedades básicas del nodo.

Todas las propiedades obligatorias para las que debe entrar un valor (las que no tienen un valor por omisión definido) se muestran marcadas con un asterisco en el diálogo de propiedades.

Configure el nodo DataInsert tal como se indica a continuación:

  1. Especifique en Origen de datos el nombre por el que se conoce la base de datos adecuada en el sistema en el que se va a ejecutar este flujo de mensajes. El intermediario conecta a esta base de datos con información de contraseña e ID de usuario que se ha especificado en el mandato mqsicreatebroker, mqsichangebroker o mqsisetdbparms.

    En sistemas z/OS, el intermediario utiliza el ID de tarea iniciada del intermediario.

  2. En Sentencia, identifique la rutina de correlación asociada que se va a ejecutar en este nodo. Por omisión, el nombre asignado a la rutina de correlación es idéntico al del archivo de correlaciones en el que se ha definido la rutina. El nombre por omisión para el archivo es el del flujo de mensajes concatenado con el nombre del nodo cuando se incluye en el flujo de mensajes (por ejemplo, MFlow1_DataInsert.mfmap para el primer nodo DataInsert en el flujo de mensajes MFlow1). No puede especificar un valor que incluya espacios.

    Si pulsa el botón en Examinar, situado junto a este campo de entrada, se muestra un diálogo en el que se listan todas las rutinas de correlación disponibles a las que puede acceder este nodo. Seleccione la rutina que desea y, a continuación, pulse en Aceptar. El nombre de la rutina se establece en Sentencia.

    Para trabajar con la rutina de correlación asociada al nodo, pulse el botón derecho del ratón en el nodo y, a continuación, seleccione Abrir correlaciones. Si la rutina de correlación no existe, se crea automáticamente con el nombre por omisión en el archivo por omisión. Si el archivo ya existe, también puede abrir el archivo <nombre_flujo>_<nombre_nodo>.mfmap en la vista del navegador.

    Una rutina de correlación es específica del tipo de nodo al que está asociada; no puede utilizar una rutina de correlación que ha desarrollado para un nodo DataInsert con ningún otro nodo que utilice correlaciones (por ejemplo, un nodo DataDelete). Si crea una rutina de correlación, no la puede invocar desde ninguna otra rutina de correlación, aunque puede invocarla desde una rutina ESQL.

  3. Seleccione el valor Transacción del menú desplegable. Los valores son:
    • Automática (el valor por omisión). El flujo de mensajes, del que forma parte el nodo DataInsert, se confirma en caso satisfactorio. Es decir, se llevan a cabo las acciones que define en las correlaciones y el mensaje continúa a través del flujo de mensajes. Si el flujo de mensajes no se ejecuta correctamente, se restituye. Por consiguiente, si elige Automática, la posibilidad de confirmar o restituir la acción del nodo DataInsert en la base de datos depende de que las acciones se realicen de modo satisfactorio o de que se produzca una anomalía en todo el flujo de mensajes.
    • Confirmar. Si desea confirmar todas las acciones no confirmadas que se realizan en este flujo de mensajes en la base de datos conectada a este nodo, sin tener en cuenta el éxito o la anomalía del flujo de mensajes a nivel global, seleccione Confirmar. Los cambios de la base de datos se confirman aunque el flujo de mensajes en sí mismo no se haya ejecutado correctamente.
  4. Seleccione Básico en el navegador de diálogo de propiedades y establezca o deseleccione los dos recuadros de selección:
    • Si desea 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 el recuadro de selección Tratar los avisos como errores. El recuadro está, inicialmente, deseleccionado.

      Cuando selecciona el recuadro, el nodo maneja todos los códigos de retorno positivos de la base de datos como errores y genera excepciones utilizando el mismo procedimiento que para los 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. El aviso emitido más importante es not found, que se puede manejar, de modo seguro, como un código de retorno normal en la mayor parte de los casos.

    • Si desea que el intermediario genere una excepción cuando se detecta un error de base de datos, seleccione el recuadro de selección *Generar excepción en error de la base de datos. El recuadro está, inicialmente, seleccionado.

      Si deselecciona el recuadro, debe manejar el error en el flujo de mensajes a fin de garantizar la integridad del intermediario y de la base de datos: el error se ignora si no se maneja a través de procesos propios, puesto que se ha elegido que el intermediario no invoque el manejo de errores por omisión. Por ejemplo, puede conectar el terminal de anomalías a una subrutina de proceso de errores.

  5. Seleccione Descripción en el navegador del diálogo de propiedades para especificar una descripción corta, una descripción larga, o ambas.
  6. Pulse el botón en Aplicar para realizar los cambios en el nodo DataInsert sin cerrar el diálogo de propiedades. Pulse el botón en Aceptar para aplicar los cambios y cerrar el diálogo de propiedades.

    Pulse el botón en Cancelar para cerrar el diálogo y descartar todos los cambios que ha realizado en las propiedades.

Terminales y propiedades

Los terminales del nodo DataInsert se describen en la tabla siguiente:

Terminal Descripción
Terminal de entrada Terminal de entrada que acepta un mensaje para que lo procese el nodo.
Terminal de anomalías 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.
Terminal de salida Terminal de salida desde el que sale el mensaje después de la ejecución de la sentencia de base de datos.

En las tablas siguientes se describen las propiedades del nodo; la columna que tiene el encabezamiento M indica si se trata de una propiedad obligatoria (marcada con un asterisco en el diálogo de propiedades si se debe especificar un valor cuando no se ha definido ningún valor por omisión), la columna que tiene el encabezamiento C indica que se trata de una propiedad configurable (se puede cambiar el valor cuando se añade el flujo de mensajes al archivo bar para su difusión).

Las propiedades básicas del nodo DataInsert se describen en la tabla siguiente:

Propiedad M C Valor por omisión Descripción
Origen de datos No   Nombre de origen de datos ODBC de la base de datos en la que residen las tablas a las que se hace referencia en las correlaciones asociadas a este nodo (identificado en la propiedad Sentencia).
Sentencia No DataInsert Nombre de la rutina de correlación que contiene las sentencias que se van a ejecutar con respecto a la base de datos y el árbol de mensajes. La rutina es exclusiva de este tipo de nodo.
Transacción No Automática Modalidad de transacción para el nodo. Puede ser Automática o Confirmar.
Tratar los avisos como errores No Deseleccionada Tratar los avisos SQL de base de datos como errores. Si selecciona el recuadro de selección, se realiza esta acción.
*Generar excepción en error de la base de datos No Seleccionada Los errores de base de datos hacen que el intermediario emita una excepción. Si selecciona el recuadro de selección, se realiza esta acción.

Las propiedades de descripción del nodo DataInsert se describen en la tabla siguiente:

Propiedad M C Valor por omisión Descripción
Descripción corta No No   Descripción breve del nodo.
Descripción larga No No   Texto que describe la finalidad del nodo en el flujo de mensajes.

Conceptos relacionados
Flujos de mensajes
Flujos de mensajes, correlaciones y ESQL

Tareas relacionadas
Configuración de DB2
Cómo decidir los nodos que utilizar
Configuración de flujos de mensajes coordinados
Manejo de errores en flujos de mensajes
Desarrollo de correlaciones
Edición de propiedades configurables

Referencia relacionada
Mandato mqsichangebroker
Mandato mqsicreatebroker
Mandato mqsisetdbparms
Nodo Database
Nodo DataDelete