WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Retornando um Valor Escalar em uma Mensagem

Use uma instrução SELECT para retornar um valor escalar incluindo as palavras-chave THE e ITEM.

Por exemplo:

1 + THE(SELECT ITEM T.a FROM Body.Test.A[] AS T WHERE T.b = '123')

Utilização da Palavra-chave ITEM

O exemplo a seguir mostra o uso da palavra-chave ITEM que seleciona um item e cria um valor único.

SET OutputRoot.MQMD = InputRoot.MQMD;

SET OutputRoot.XMLNS.Test.Result[] = 
   (SELECT ITEM T.UnitPrice FROM InputBody.Invoice.Purchases.Item[] AS T);

Quando a mensagem Invoice for recebida como entrada, o ESQL mostrado gerará a seguinte mensagem de saída:

<Test>
  <Result>27.95</Result>
  <Result>42.95</Result>
  <Result>59.99</Result>
</Test>

Quando a palavra-chave ITEM for especificada, a mensagem de saída incluirá uma lista de valores escalares. Compare essa mensagem com a mensagem produzida se a palavra-chave ITEM for omitida, na qual uma lista de campos (pares nome/valor) é gerada:

<Test>
  <Result>
    <UnitPrice>27.95</UnitPrice>
  </Result>
  <Result>
    <UnitPrice>42.95</UnitPrice>
  </Result>
  <Result>
    <UnitPrice>59.99</UnitPrice>
  </Result>
</Test>

Efeitos da Palavra-chave THE

A palavra-chave THE converte uma lista contendo um item no próprio item.

Os dois exemplos anteriores especificaram uma lista como a origem de SELECT na cláusula FROM (a referência de campo possui [] no final para indicar uma matriz), portanto, geralmente, a função SELECT gera uma lista de resultados. Devido a esse comportamento, você deve especificar uma lista como o destino da designação (portanto o "Result[]" como o destino da designação). No entanto, você normalmente sabe que a cláusula WHERE especificada como parte de SELECT retorna TRUE apenas para um item na lista. Nesse caso, utilize a palavra-chave THE.

O exemplo a seguir mostra o efeito de utilizar a palavra-chave THE:

SET OutputRoot.MQMD = InputRoot.MQMD;

SET OutputRoot.XMLNS.Test.Result =              
    THE (SELECT T.Publisher, T.Author FROM InputBody.Invoice.Purchases.Item[] 
         AS T WHERE T.UnitPrice = 42.95);

A palavra-chave THE significa que o destino da designação torna-se OutputRoot.XMLNS.Test.Result (o "[]" não é permitido). Sua utilização gera a seguinte mensagem de saída:

<Test>
  <Result>
    <Publisher>Morgan Kaufmann Publishers</Publisher>
    <Author>Don Chamberlin</Author>
  </Result>
</Test>

Selecionando a partir de uma Lista de Escalares

Considere a seguinte mensagem de entrada de amostra:

<Test>
 <A>1</A>
 <A>2</A>
 <A>3</A>
 <A>4</A>
 <A>5</A>
</Test>

Se você codificar as seguintes instruções ESQL para processar essa mensagem:

SET OutputRoot.XMLNS.Test.A[] = 
  (SELECT ITEM A from InputBody.Test.A[]  
   WHERE CAST(A AS INTEGER) BETWEEN 2 AND 4);

será gerada a seguinte mensagem de saída:

      <A>2</A>
      <A>3</A>
      <A>4</A>
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:29:59


Tópico de TarefaTópico de Tarefa | Versão 8.0.0.5 | ak05770_