La expresión de selección de registro
se utiliza para seleccionar un registro de un
archivo para que se propague al resto del flujo.
Cada registro a su vez se compara con la
expresión, y el primero que se evalúe en
verdadero se propaga al terminal Out.
Puede establecer la expresión en cualquier
expresión válida XPath que devuelva un valor
booleano. La expresión no se utiliza cuando se selecciona
Todo el archivo como la opción de Detección de
registros.
Nombres de correlación utilizados
en la expresión
Puede utilizar
cualquiera de los siguientes nombres de
correlación de la expresión:
- RaízEntrada
y
EntradaEntornoLocal
- Los nombres de Entrada hacen referencia al mensaje
entrante que entra en el nodo a través del terminal In
- RaízResultado
- El
nombre
RaízResultado
refiere al mensaje creado utilizando el registro
actual del archivo.
- RaízSalida
- El
nombre
RaízSalida
refiere al mensaje que se propaga si la expresión
se evalúa en verdadero. Esta acción es idéntica a
RaízResultado,
a menos que la ubicación de los datos de Salida o
la ubicación de datos Resultado hayan sido
cambiados para copiar el mensaje Resultado
encontrado en el archivo a una ubicación
diferente en el mensaje saliente.
- OutputLocalEnvironment
- La opción
OutputLocalEnvironment
contiene el entorno local normal que se propaga
por el terminal Out y
contiene información útil, como el número de
registro y su desplazamiento.
Cualquier
combinación de datos en estos nombres de
correlación se pueden utilizar, junto con
cualquier expresión Xpath válida, para determinar
si se ha de propagar al registro.
Ejemplos
La expresión es:
$InputRoot/XMLNSC/Invoice/AccountNumber=$ResultRoot/XMLNSC/Data/Key
En
este ejemplo, cada registro es un documento XML
válido. El nodo FileRead lee cada
registro del archivo. En el mensaje de entrada, el nodo
FileRead compara el campo /Data/Key con
el campo /Invoice/AccountNumber. Si el registro coincide, se propaga al terminal Out.
La
expresión es:
$OutputLocalEnvironment/File/Read/RecordNumber=5
El
nodo FileRead lee cada registro del
archivo y compara el número de registro con 5. El registro se propaga cuando alcanza
el quinto registro.
Compilación de un mensaje saliente utilizando un mensaje entrante combinado
con un registro de un archivo
El nodo
FileRead lee un registro de un archivo y
lo combina con el mensaje que entra en el nodo. De
forma predeterminada, reemplaza el mensaje por
los contenidos del registro leídos en el
archivo. No obstante, utilizando las propiedades
en el Panel de resultados, puede elegir cómo
combinar el mensaje entrante y los contenidos de
los registros de archivo. El nodo tiene tres
árboles lógicos:
- Entrada
- El ensamblaje del mensaje de Entrada contiene
todos los datos del mensaje entrante y es la base
para el registro propagado.
- Resultado
- El ensamblaje del mensaje Resultado contiene
el registro que se leyó en el archivo.
- Salida
- El ensamblaje del mensaje de Salida es el
objeto concreto propagado desde el nodo.
De
forma predeterminada, el ensamblaje del mensaje
Salida se construye copiando el ensamblaje del
mensaje Entrada al ensamblaje del mensaje Salida. La
parte de datos del ensamblaje del mensaje Salida
se reemplaza entonces por los contenidos del
ensamblaje del mensaje Resultado y OutputLocalEnvironment
se actualiza con detalles de lo que sucedió en el
nodo.
Las siguientes propiedades del panel
Resultados se pueden utilizar para modificar este
comportamiento:
- Ubicación de datos de resultado
- Especifica qué parte del registro leído se
copia al mensaje Salida. De forma predeterminada,
la ubicación de datos de Resultado copia todo de
RaízResultado, pero puede cambiarse para que
copie sólo parte del registro.
Pro ejemplo: ResultRoot.XMLNSC.Invoice.Name
solamente copia el campo del nombre del registro
seleccionado al mensaje de salida.
- Ubicación de datos de salida
- Especifica dónde se copia el registro en el
mensaje de salida. De forma predeterminada, la
ubicación de los datos Salida copia todo a
RaízSalida.
La ubicación especificada puede estar en la parte
de datos del mensaje (bajo RaízResultado) o en
cualquier otro árbol Salida, como OutputLocalEnvironment.
Por ejemplo: para copiar el registro resultante a
un campo del cuerpo del mensaje
OutputRoot.XMLNSC.Invoice.Data o para copiar el
resultado al entorno
local, OutputRoot.Variables.Invoice.data.
- Copiar entorno local
- Hace que el entorno local se copie desde InputLocalEnvironment.
Si la opción Copiar entorno local no está
seleccionada, InputLocalEnvironment
se utiliza directamente sin copiarse. Esta opción permite que los nodos anteriores
al nodo FileRead vean los cambios en el entorno local.
Por
ejemplo, las siguientes opciones copian el nombre
de campo desde un registro al mensaje de salida. El
resto del mensaje Salida se basa en el mensaje de
entrada:
Result data location= ResultRoot.XMLNSC.Invoice.Name
Output data location= OutputRoot.XMLNSC.Invoice.Name
Las
siguientes opciones copian el cuerpo del mensaje
desde un registro al entorno local saliente. El
mensaje Salida es el mismo que el mensaje de
entrada:
Result data location= ResultRoot.XMLNSC.Invoice
Output data location= OutputLocalEnvironment.Variables.Invoice