Convertendo Dados em uma Mensagem

É possível converter os dados de uma forma para outra.

Um exemplo típico de requisito para converter os dados é se os itens forem conhecidos em uma mensagem pelo nomes e em outra mensagem pelos números. Por exemplo:

Nome do Tipo       Código do Tipo

Confectionary      2000
Newspapers         3000
Hardware           4000

Considere a seguinte mensagem de entrada:

<Dados>
    <Items>
     <Item>
            <Cat>1000</Cat>
            <Description>Milk Chocolate Bar</Description>
            <Type>Confectionary</Type>
     </Item>
     <Item>
            <Cat>1001</Cat>
            <Description>Daily Newspaper</Description>
            <Type>NewsPapers</Type>
     </Item>
     <Item>
            <Cat>1002</Cat>
            <Description>Kitchen Sink</Description>
            <Type>Hardware</Type>
     </Item>
    </Items>
    <TranslateTable>
        <Translate>
            <Name>Confectionary</Name>
            <Number>2000</Number>
        </Translate>
        <Translate>
            <Name>NewsPapers</Name>
            <Number>3000</Number>
        </Translate>
        <Translate>
            <Name>Hardware</Name>
            <Number>4000</Number>
        </Translate>
    </TranslateTable>
</Data>

Essa mensagem possui duas seções: a primeira seção é uma lista de itens na qual cada item possui um número de catálogo e um tipo; a segunda é uma tabela de conversão entre nomes de tipos descritivos e códigos de tipos numéricos. Inclua um nó Compute na seguinte transformação:

SET OutputRoot.XMLNS.Result.Items.Item[] =
      (SELECT M.Cat, M.Description, T.Number As Type
     FROM       InputRoot.XMLNS.Data.Items.Item[]               As M,
       InputRoot.XMLNS.Data.TranslateTable.Translate[] As T
          WHERE M.Type = T.Name
   );

A seguinte mensagem de saída é gerada:

 <Result>
    <Items>
     <Item>
            <Cat>1000</Cat>
            <Description>Milk Chocolate Bar</Description>
            <Type>2000</Type>
     </Item>
     <Item>
            <Cat>1001</Cat>
            <Description>Daily Newspaper</Description>
            <Type>3000</Type>
     </Item>
     <Item>
            <Cat>1002</Cat>
            <Description>Kitchen Sink</Description>
            <Type>4000</Type>
     </Item>
    </Items>
</Result>

No resultado, cada nome de tipo foi convertido em seu código correspondente. Nesse exemplo, os dados e a tabela de conversão estavam na mesma árvore de mensagens, embora isso não seja um requisito. Por exemplo, a tabela de conversão poderia ser codificada em um banco de dados ou pode ter sido configurada no LocalEnvironment por um nó Compute anterior.

Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Visão Geral do ESQL
Modelagem de Mensagens
Tarefas relacionadas
Projetando um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Gerenciando Arquivos ESQL
Referências relacionadas
Nó Compute
Nó Banco de Dados
Nó Filter
Referência de ESQL
Função SELECT
Instrução SET
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:12:47

ak05790_