Correlación de un elemento de destino desde tablas de base de datos

Para correlacionar un elemento de destino desde una tabla de base de datos, configure el Nodo Mapping para:
  • recuperar las filas relevantes desde la base de datos
  • llenar los elementos de destino de mensaje con valores de la base de datos
Hay varios modos de añadir una base de datos como origen para una correlación, como se describe en Adición de una base de datos al origen. Después de añadir una base de datos a la correlación, el panel de hoja de cálculo contiene una entrada $db:select en la columna Script de correlación. Por omisión, su valor es fn:true(), que significa que todas las filas se recuperan de la tabla de base de datos. En el SQL de base de datos, debe limitar el número de filas añadiendo una cláusula WHERE a una llamada de base de datos. En el Nodo Mapping, el método equivalente para limitar el número de filas seleccionadas es utilizar una expresión $db:select.

Estos pasos muestran el método equivalente para limitar el número de filas seleccionado en una Nodo Mapping:

  1. En el panel de hoja de cálculo, pulse la fila $db:select. Esto hace que fn:true() se coloque en el panel de edición.
  2. Edite la expresión en el panel de edición para especificar la condición correcta para la llamada de base de datos. Para lograrlo, puede:
    1. Seleccionar las columnas de base de datos que sean relevantes para las filas que se recuperen, y arrastrarlas del panel de origen al panel de edición. Estos son los nombres de columnas de base de datos que se utilizan en la cláusula WHERE de SQL.
    2. Seleccionar los elementos de mensaje de origen con valores que sean relevantes para las filas que se recuperen, y arrastrarlas del panel de origen al panel de edición. Estos son los valores con los que pueden compararse las columnas de base de datos seleccionadas.
    3. Abrir la Ayuda de contenido pulsando Editar > Ayuda de contenido.
    4. En la Ayuda de contenido, seleccione las funciones a aplicar a los elementos de mensaje en la llamada a la base de datos.
El siguiente es un ejemplo de una entrada $db:select en la que se hace coincidir una columna de base de datos con una constante o con un campo de un mensaje de entrada:
$db:select_1.BROKER50.JDOE.RESOLVEASSESSOR.ASSESSORTYPE = 'WBI' o $db:select_1.BROKER50.JDOE.
RESOLVEASSESSOR.ASSESSORTYPE = $source/tns:msg_tagIA81CONF/AssessorType 

Una entrada $db:select recupera todas las filas cualificadas, por lo que es posible que se recupere más de una fila. Por omisión, la selección se trata como una repetición, lo cual se indica mediante la fila "for" debajo de $db:select en el panel de hoja de cálculo.

Después de configurar $db:select, llene el mensaje de destino desde la base de datos, arrastrando la columna de base de datos del panel de origen al elemento de mensaje en el panel de destino. La correlación se indica con una línea entre la columna de base de datos en el panel de origen y el elemento en el panel de destino. También aparece una entrada para esta correlación en formato Xpath en el panel Hoja de cálculo. Aparecen iconos triangulares en los paneles de origen y de destino al lado de los objetos que se han correlacionado.

Inicio del cambioUtilización de selecciones de base de datos

Por omisión, una entrada $db:select va acompañada de una fila "for" que itera por el conjunto de resultados de select. Asegúrese de que la fila "for" esté en la posición correcta de la correlación. El comportamiento de la correlación se determina según la posición de la columna "for" del panel de hoja de cálculo. Por ejemplo, si los resultados de la sentencia $db:select coinciden con 5 filas de la base de datos y la fila "for" está situada encima de la entrada$target del panel de hoja de cálculo, el nodo de correlación emitirá cinco mensajes de salida completos. Si la fila 'for' está situada dentro del cuerpo del mensaje, entonces se genera un mensaje con 5 elementos de repetición en el cuerpo del mensaje.

Una correlación puede contener varias filas "for" asociadas a una entrada $db:select que efectúa una selección individual de la base de datos y realiza varias veces la iteración por los resultados. Por ejemplo, se pueden utilizar varias filas "for" en las correlaciones incondicionales, en las que se utiliza una fila "for" individual con "condition" o "else".

No siempre es necesaria una fila 'for' y se puede suprimir en las circunstancias siguientes:
  • Si la sentencia select de base de datos sólo devuelve una fila
  • Si utiliza una función Xpath adicional en los resultados de select

    Por ejemplo: fn:sum o fn:count.

Cualquier expresión $db:select debe estar dentro del ámbito de la entrada $db:select del panel de hoja de cálculo, lo que significa que debe ser descendiente de la sentencia select. Si una expresión $db:select está fuera de ámbito, el editor de las correlaciones de mensajes traslada la entrada $db:select a una posición en la que la expresión $db:select está dentro del ámbito. Asegúrese de que la posición de la entrada $db:select sea correcta para la correlación de mensajes.

Unión de las tablas de base de datos

La unión de las tablas de base de datos está soportada para las tablas de la misma base de datos. Por ejemplo, tome como ejemplo las dos tablas siguientes en las que PRODUCT_ID y PART_NUMBER coinciden:
Tabla    Columna       Fila 1    Fila 2    Fila 3      Fila 4
ORDER    PRODUCT_ID    456      456      345        123
         QUANTITY      100      200      300        400

PRODUCT  PART_NUMBER   123      456      789        012
         PART_NAME     pluma    lápiz    clip       cola
         PRICE         0,25     0,15     0,02       0,99
Una expresión $db:select con la siguiente sintaxis une las tablas:
$db:select.MY_DB.SCHEMA1.ORDER.PRODUCT_ID=$db:select.MY_DB.SCHEMA2.PRODUCRT.PART_NUMBER
La expresión $db:select del ejemplo genera el siguiente conjunto de resultados:
                Fila 1    Fila 2    Fila 3
PRODUCT_ID      456      456      123
QUANTITY        100      200      400
PART_NUMBER     456      456      123
PART_NAME       lápiz    lápiz    pluma
PRICE           0,15     0,15     0,25
A continuación, puede utilizar la fila "for" para la iteración por el conjunto de resultados, del mismo modo que se efectúa en los resultados de una tabla individual.
Fin del cambio
Conceptos relacionados
Editor de correlaciones de mensajes
Creación de correlaciones de mensajes
Referencia relacionada
Nodo Mapping
Panel de origen del Editor de correlaciones de mensajes
Panel de destino del Editor de correlaciones de mensajes
Panel de edición del Editor de correlaciones de mensajes
Panel de hoja de cálculo del Editor de correlaciones de mensajes
Correlaciones de mensajes
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ar25267_