Creazione di nuovi campi

Questo argomento fornisce un esempio di codice ESQL per un nodo Compute che crea un nuovo messaggio di output in base al messaggio di input, a cui sono aggiunti un numero di campi supplementari.

Il messaggio di input ricevuto dal nodo Compute nel flusso di messaggi è in un messaggio XML e ha il seguente contenuto:

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

Il nodo Compute è configurato e viene creato un modulo ESQL che include il seguente ESQL. Il codice mostrato di seguito copia le intestazioni dal messaggio di input al nuovo messaggio di output, quindi crea l'intero contenuto del messaggio di output.

-- copiare le intestazioni 
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';

Il messaggio di output che risulta dall'ESQL mostrato sopra ha la seguente struttura e contenuto:

<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>
Concetti correlati
Panoramica dei flussi di messaggi
Panoramica di ESQL
Creazione di modelli di messaggio
Attività correlate
Progettazione di un flusso di messaggi
Definizione del contenuto del flusso di messaggi
Gestione dei file ESQL
Riferimenti correlati
Nodo Compute
Nodo Database
Nodo Filter
Riferimento ESQL
Istruzione DECLARE
Istruzione CREATE
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac16800_