새 필드 작성

이 주제에서는 입력 메시지를 기초로 여러 필드를 추가하여 새로운 출력 메시지를 작성하는 Compute 노드용으로 코딩한 ESQL 예를 제공합니다.

메시지 플로우 내의 Compute 노드에서 수신하는 입력 메시지는 XML 메시지이며 다음과 같은 컨텐츠를 포함합니다.

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

Compute 노드가 구성되었고 다음의 ESQL이 포함된 ESQL 모듈이 작성되었습니다. 아래 표시된 코드는 입력 메시지의 헤더를 새 출력 메시지로 복사한 후 출력 메시지 본문의 전체 컨텐츠를 작성합니다.

-- copy headers 
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';

 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';

위에 표시된 ESQL의 결과로 생성된 출력 메시지는 다음의 구조 및 컨텐츠를 갖습니다.

<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>
관련 개념
메시지 플로우 개요
ESQL 개요
메시지 모델링
관련 태스크
메시지 플로우 설계
메시지 플로우 컨텐츠 정의
ESQL 파일 관리
관련 참조
Compute 노드
Database 노드
Filter 노드
ESQL 참조
DECLARE문
CREATE문
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac16800_