PROPAGATE문

PROPAGATE 문은 메시지를 다운스트림 노드로 전달합니다.

구문

Compute 및 Database 노드에서 PROPAGATE 문을 사용할 수 있지만 Filter 노드에서는 사용할 수 없습니다.

TO TERMINAL 절
TO TERMINAL절이 있는 경우 TerminalExpression이 평가됩니다. 결과가 CHARACTER 유형인 경우 규칙에 따라 메시지가 터미널로 전달됩니다.
‘nowhere’ : no propagation
‘failure’ : failure
 ‘out’    : out 
 ‘out 1   : out1
 ‘out 2   : out2
 ‘out 3   : out3
 ‘out 4’  : out4
팁: 터미널 이름은 대소문자 구분되므로 "Out1"은 모든 터미널과 일치하지 않습니다.
TerminalExpression의 결과가 INTEGER 유형인 경우 규칙에 따라 메시지는 터미널로 전달됩니다.
-2 : no propagation
-1 : failure
 0 : out 
 1 : out1
 2 : out2
 3 : out3
 4 : out4

TerminalExpression의 결과가 CHARACTER나 INTEGER가 아닌 경우 브로커에서 예외가 발생합니다.

TO TERMINAL 절이나 TO LABEL 절이 없는 경우 브로커에서 메시지를 "out" 터미널로 전달합니다.

팁: 터미널 표현식에서 문자값을 사용하면 가장 자연스럽고 읽기 가능한 코드가 생성됩니다. 그러나 정수 값은 루프로 조작하기 쉽고 약간 더 빠릅니다.
TO LABEL 절
TO LABEL절이 있는 경우 LabelExpression이 평가됩니다. 결과가 CHARACTER 유형 이고 동시에 동일한 플로우에 LabelExpression과 일치하는 레이블 속성이 있는 Label 노드가 있는 경우 브로커에서 해당 노드에 메시지를 전달합니다.
팁: 터미널과 같은 레이블은 대소문자가 구분됩니다. 또는 Label 노드에 대한 라우트가 있는 것처럼 노드의 레이블 자체가 아니라 대상을 정의하는 Label 노드의 labelName 속성입니다.

LabelExpression의 결과가 널(null)이거나 CHARACTER 유형이 아니거나 플로우에 일치하는 Label 노드가 없는 경우 브로커에서 예외가 발생합니다.

TO TERMINAL 절이나 TO LABEL 절이 없는 경우 브로커에서 메시지를 "out" 터미널로 전달합니다.

MessageSources 절

MessageSources 절은 전달할 메시지 트리를 선택합니다. 이 절은 Compute 노드에만 적용됩니다(Database 노드에는 영향을 주지 않음).

MessageSources 절에서 지정할 수 있는 값은 다음과 같습니다.
ENVIRONMENT : 
  InputLocalEnvironment 
  OutputLocalEnvironment 

Message : 
  InputRoot 
  OutputRoot

ExceptionList : 
  InputExceptionList
  OutputExceptionList

MessageSources 절이 없는 경우 전달할 메시지를 판별하는 데 노드의 "compute mode" 속성이 사용됩니다.

FINALIZE 절
완료는 헤더 체인을 고정하고 Properties 폴더가 헤더와 일치하도록 하는 과정입니다. 필요한 경우 FINALIZE 절을 사용하여 완료를 제어할 수 있습니다.

이 절은 Compute 노드에만 적용됩니다(Database 노드에는 영향을 주지 않음).

FINALIZE가 DEFAULT로 설정되거나 FINALIZE절이 없으면 전달되기 전에 출력 메시지(Environment, Local Environment 또는 Exception List는 아님)가 완료됩니다.

FINALIZE가 NONE으로 설정된 경우 완료되지 않습니다.

DELETE 절
DELETE 절을 사용하면 출력 로컬 환경, 메시지 및 예외 목록에 대한 지우기를 제어할 수 있습니다.

DELETE 절은 Compute 노드에만 적용됩니다(Database 노드에는 영향을 주지 않음).

DELETE가 DEFAULT로 설정되거나 DELETE절이 없는 경우 출력 로컬 환경, 메시지 및 예외 목록이 모두 지워지고 전달 후에 메모리가 즉시 복구됩니다.

DELETE가 NONE으로 설정되는 경우에는 아무 것도 지워지지 않습니다.

전달되는 사항에 상관 없이 완료되고 지워지는 출력 트리입니다.

Compute 노드를 사용하면 다른 노드(출력 메시지를 변경하는 다른 노드)에서 출력 메시지를 변경할 수 있습니다. 그러나 Compute 노드에서 작성한 메시지는 다음과 같은 경우 다른 노드에서 변경할 수 없습니다.
  • 완료된 경우
  • 비트스트림을 생성하는 출력 또는 다른 노드에 도달한 경우

전달은 동기적 프로세스입니다. 즉, 다운스트림 노드의 모든 메시지 처리가 완료될 때까지 다음 명령문이 실행되지 않습니다. 이 처리에 의해 예외가 발생할 수 있으며 이 예외가 발견되지 않는 경우 PROPAGATE 호출 다음의 명령문에 도달하지 않음에 주의하십시오. 이것이 플로우의 논리에 필요한 사항일 수 있지만 그렇지 않은 경우 핸들러를 사용하여 예외를 포착하여 필수 조치를 수행할 수 있습니다. 포착하지 않은 경우 전달의 예외 발생 다운스트림은 Compute 또는 Database 노드의 마지막 자동 조치(예: COMMIT Transaction set to Commit 발행)가 발생하지 않도록 합니다.

DECLARE i INTEGER 1;
DECLARE count INTEGER;
SET count = CARDINALITY(InputRoot.XML.Invoice.Purchases."Item"[])

WHILE i <= count DO 
  --use the default tooling-generated procedure for copying message headers 
  CALL CopyMessageHeaders(); 
  SET OutputRoot.XML.BookSold.Item = InputRoot.XML.Invoice.Purchases.Item[i]; 
      PROPAGATE; 
      SET i = i+1; 
END WHILE; 
RETURN FALSE;

다음은 PROPAGATE문의 의해 OUT 터미널에서 생성되는 메시지입니다.

<BookSold>
    <Item>
  <Title Category="Computer" Form="Paperback" Edition="2">The XML Companion </Title>
        <ISBN>0201674866</ISBN>
        <Author>Neil Bradley</Author>
        <Publisher>Addison-Wesley</Publisher>
        <PublishDate>October 1999</PublishDate>
        <UnitPrice>27.95</UnitPrice>
        <Quantity>2</Quantity>
    </Item>
</BookSold>
<BookSold>
    <Item>
  <Title Category="Computer" Form="Paperback" Edition="2">A Complete Guide to DB2 Universal Database</Title>
        <ISBN>1558604820</ISBN>
        <Author>Don Chamberlin</Author>
        <Publisher>Morgan Kaufmann Publishers</Publisher>
        <PublishDate>April 1998</PublishDate>
        <UnitPrice>42.95</UnitPrice>
        <Quantity>1</Quantity>
    </Item>
</BookSold>
<BookSold>
    <Item>
  <Title Category="Computer" Form="Hardcover" Edition="0">JAVA 2 Developers Handbook</Title>
        <ISBN>0782121799</ISBN>
  <Author>Phillip Heller, Simon Roberts </Author>
        <Publisher>Sybex, Inc.</Publisher>
  <PublishDate>September 1998</PublishDate>  <UnitPrice>59.99</UnitPrice>
        <Quantity>1</Quantity>
    </Item>
</BookSold>
관련 개념
ESQL 개요
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2005 마지막 갱신 날짜: 11/08/2005
ak05110_