A expressão de seleção de registro é usada para selecionar um registro
de um arquivo para propagar para o restante do fluxo.
Cada registro, por sua vez, é comparado com a expressão e o primeiro
avaliado como true é propagado para o terminal de Saída.
É possível configurar a expressão com qualquer expressão XPath válida que retornar
um valor booleano. A expressão não é usada quando
Arquivo Inteiro é selecionado como a opção
Detecção de Registro.
Nomes de Correlação Usados na Expressão
É
possível usar qualquer um dos seguintes nomes de correlação na expressão:
- InputRoot e InputLocalEnvironment
- Os nomes de Entrada referem-se à mensagem recebida que entra no
nó por meio do terminal de Entrada
- ResultRoot
- O nome ResultRoot
refere-se à mensagem criada usando o registro atual no arquivo.
- OutputRoot
- O nome OutputRoot
refere-se à mensagem que será propagada se a expressão for avaliada
como true. Esta ação é idêntica a ResultRoot,
a não ser que o local dos dados de Saída ou o local dos dados de Resultado tenha sido
alterado para copiar a mensagem de Resultado localizada no arquivo para um local
diferente na mensagem de saída.
- Ambiente Local da Saída
- O OutputLocalEnvironment contém
o ambiente local normal que é propagado pelo terminal de Saída
e contém informações úteis, como o número do registro e
seu deslocamento.
É possível usar qualquer combinação de dados
nesses nomes de correlação, juntamente com qualquer expressão XPath válida, para determinar
se o registro deve ser propagado.
Exemplos
A expressão é:
$InputRoot/XMLNSC/Invoice/AccountNumber=$ResultRoot/XMLNSC/Data/Key
Neste
exemplo, cada registro é um documento XML válido. O nó FileRead lê cada registro do arquivo. Na mensagem recebida, o nó FileRead compara o campo /Data/Key ao campo /Invoice/AccountNumber. Se o registro corresponder, ele será propagado para o terminal de Saída.
A expressão
é:
$OutputLocalEnvironment/File/Read/RecordNumber=5
O nó FileRead lê cada registro do arquivo e compara o número do registro com 5. O registro é propagado ao atingir o quinto registro.
Construir uma Mensagem de Saída Usando uma Mensagem
Recebida Combinada com um Registro de um Arquivo
O nó
FileRead lê um registro de um arquivo e o combina com a mensagem recebida no nó. Por padrão, ele substitui a mensagem pelo conteúdo
do registro lido do arquivo. No entanto, ao usar propriedades
no painel de Resultado, é possível escolher como combinar a mensagem recebida
e o conteúdo do registro do arquivo. O nó possui três árvores lógicas:
- Entrada
- O conjunto da mensagem de Entrada contém todos os dados da mensagem de
entrada e é a base do registro propagado.
- Resultado
- O conjunto da mensagem de Resultado contém o registro lido do
arquivo.
- Saída
- O conjunto da mensagem de Saída é o objeto real propagado
do nó.
Por padrão, o conjunto da mensagem de Saída é construído
copiando-se o conjunto da mensagem de Entrada para o conjunto da mensagem de Saída.
A parte dos dados do conjunto da mensagem de Saída é então substituído pelo
conteúdo do conjunto da mensagem de Resultado e o OutputLocalEnvironment
é atualizado com detalhes do que aconteceu no nó.
As seguintes
propriedades do painel de Resultado podem ser usadas para modificar esse comportamento:
- Local de dados de Resultado
- Especifica qual parte do registro de leitura é copiada para a mensagem de
Saída. Por padrão, o local de dados de Resultado copia tudo de
ResultRoot, mas pode ser alterado para copiar apenas parte do registro.
Por exemplo: ResultRoot.XMLNSC.Invoice.Name copia apenas o campo de nome
do registro selecionado para a mensagem de saída.
- Local de dados de Saída
- Especifica para onde o registro é copiado na mensagem de saída.
Por padrão, o local de dados de Saída copia tudo para OutputRoot.
O local especificado pode estar na parte de dados da mensagem (em
ResultRoot) ou em qualquer outra árvore de Saída, como OutputLocalEnvironment.
Por exemplo: Copiar o registro resultante para um campo no corpo da
mensagem OutputRoot.XMLNSC.Invoice.Data ou copiar o resultado para o ambiente
local OutputRoot.Variables.Invoice.data.
- Copiar ambiente local
- Faz com que o ambiente local seja copiado a partir de InputLocalEnvironment. Se a opção Copiar ambiente local não estiver selecionada, o InputLocalEnvironment
será usado diretamente sem cópia. Essa opção permite que nós antes do nó FileRead vejam as mudanças no ambiente local.
Por exemplo, as opções a seguir copiam o
campo de nome de um registro para a mensagem de saída. O restante
da mensagem de Saída baseia-se na mensagem de entrada:
Result data location= ResultRoot.XMLNSC.Invoice.Name
Output data location= OutputRoot.XMLNSC.Invoice.Name
As
opções a seguir copiam o corpo da mensagem de um registro para o ambiente
local de saída. A mensagem de saída é a mesma que a de
entrada:
Result data location= ResultRoot.XMLNSC.Invoice
Output data location= OutputLocalEnvironment.Variables.Invoice