Criando Novos Campos

Este tópico fornece código ESQL de exemplo para um nó Compute que cria uma nova mensagem de saída com base na mensagem de entrada na qual são incluídos vários campos adicionais.

A mensagem de entrada recebida pelo nó Compute dentro do fluxo de mensagens é uma mensagem XML e apresenta o seguinte conteúdo:

<TestCase description="This is my TestCase">
      <Identifier>ES03B305_T1</Identifier>
      <Sport>Football</Sport>
      <Date>01/02/2000</Date>
      <Type>LEAGUE</Type>
</TestCase>

O nó Compute é configurado e é criado um módulo ESQL que inclui o ESQL a seguir. O código mostrado a seguir copia os cabeçalhos da mensagem de entrada para a nova mensagem de saída e depois cria o conteúdo inteiro do corpo da mensagem de saída.

-- copiar cabeçalhos
DECLARE i INTEGER 1;
DECLARE numHeaders INTEGER CARDINALITY(InputRoot.*[]);

WHILE i < numHeaders DO
        SET OutputRoot.*[i] = InputRoot.*[i];
      SET i = i + 1;
END WHILE;

CREATE FIELD OutputRoot.XML.TestCase.description TYPE NameValue VALUE 'This is
my TestCase' ;
CREATE FIRSTCHILD OF OutputRoot.XML.TestCase Domain('XML') NAME 'Identifier'
                                VALUE InputRoot.XML.TestCase.Identifier;
CREATE LASTCHILD OF OutputRoot.XML.TestCase Domain('XML') NAME 'Sport'
                                VALUE InputRoot.XML.TestCase.Sport;
 CREATE LASTCHILD OF OutputRoot.XML.TestCase Domain('XML') NAME 'Date'
                                VALUE InputRoot.XML.TestCase.Date;
 CREATE LASTCHILD OF OutputRoot.XML.TestCase Domain('XML') NAME 'Type'
                                VALUE InputRoot.XML.TestCase.Type;
 CREATE FIELD OutputRoot.XML.TestCase.Division[1].Number TYPE NameValue
                                VALUE 'Premiership';
  CREATE FIELD OutputRoot.XML.TestCase.Division[1].Result[1].Number TYPE
NameValue VALUE  '1' ;
  CREATE FIELD OutputRoot.XML.TestCase.Division[1].Result[1].Home TYPE Name;
 CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[1].Home NAME 'Team'
                                VALUE 'Liverpool' ;
 CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[1].Home NAME 'Score'
                                VALUE '4';
  CREATE FIELD OutputRoot.XML.TestCase.Division[1].Result[1].Away TYPE Name;
 CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[1].Away NAME 'Team'
                                VALUE 'Everton';
 CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[1].Away NAME 'Score'
                                VALUE '0';

  CREATE FIELD OutputRoot.XML.TestCase.Division[1].Result[2].Number TYPE
NameValue VALUE  '2';
  CREATE FIELD OutputRoot.XML.TestCase.Division[1].Result[2].Home TYPE Name;
 CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[2].Home NAME 'Team'
                                VALUE 'Manchester United';
 CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[2].Home NAME 'Score'
                                VALUE '2';
  CREATE FIELD OutputRoot.XML.TestCase.Division[1].Result[2].Away TYPE Name;
 CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[2].Away NAME 'Team'
                                VALUE 'Arsenal';
 CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[2].Away NAME 'Score'
                                VALUE '3';

 CREATE FIELD OutputRoot.XML.TestCase.Division[2].Number TYPE NameValue
                                VALUE '2';
 CREATE FIELD OutputRoot.XML.TestCase.Division[2].Result[1].Number TYPE NameValue
                                VALUE  '1';
  CREATE FIELD OutputRoot.XML.TestCase.Division[2].Result[1].Home TYPE Name;
 CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[2].Result[1].Home NAME 'Team'
                                VALUE 'Port Vale';
 CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[2].Result[1].Home NAME 'Score'
                                VALUE '9' ;
  CREATE FIELD OutputRoot.XML.TestCase.Division[2].Result[1].Away TYPE Name;
 CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[2].Result[1].Away NAME 'Team'
                                VALUE 'Brentford';
 CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[2].Result[1].Away NAME 'Score'
                                VALUE '5';

A mensagem de saída que resulta do ESQL mostrado antes tem a seguinte estrutura e conteúdo:

<TestCase description="This is my TestCase">
    <Identifier>ES03B305_T1</Identifier>
    <Sport>Football</Sport>
    <Date>01/02/2000</Date>
    <Type>LEAGUE</Type>
  <Division Number="Premiership">
    <Result Number="1">
            <Home>
                <Team>Liverpool</Team>
                <Score>4</Score>
            </Home>
            <Away>
                <Team>Everton</Team>
                <Score>0</Score>
            </Away>
     </Result>
    <Result Number="2">
            <Home>
                <Team>Manchester United</Team>
                <Score>2</Score>
            </Home>
            <Away>
                <Team>Arsenal</Team>
                <Score>3</Score>
            </Away>
     </Result>
    </Division>
  <Division Number="2">
    <Result Number="1">
            <Home>
                <Team>Port Vale</Team>
                <Score>9</Score>
            </Home>
            <Away>
                <Team>Brentford</Team>
                <Score>5</Score>
            </Away>
     </Result>
    </Division>
</TestCase>
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ó Database
Nó Filter
Referência de ESQL
Instrução DECLARE
Instrução CREATE
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac16800_