다음을 통해 공유


누적 펑토이드

개요

누적 펑토이드는 일련의 값을 합계, 연결된 문자열 또는 평균과 같은 단일 값으로 줄입니다.

모든 누적 펑토이드에는 다음 두 개의 입력 매개 변수가 허용됩니다.

  1. 누적할 값. 이 값은 문자열 값이 필요한 누적 Concatenate 펑토이드를 제외한 모든 누적 펑토이드의 숫자입니다. 값은 종종 Field Attribute, Field 요소 또는 Record 노드( Mixed 속성이 True로 설정됨)의 링크입니다.

    참고

    스키마 트리에 있는 상위 Record 노드가 반복되지 않는 경우 누적 펑토이드를 사용할 필요가 없습니다.

  2. 값이 누적되는 범위. 이 인수는 선택 사항입니다. 이 인수는 지정한 값을 누적하기 위해 필요한 해당 값의 상호 관련도를 나타냅니다.

    다음 표는 영역 지정 매개 변수 값과 해당 값의 영향을 보여 줍니다.

영역 지정 매개 변수 값 효과
0(영) 전체 인스턴스 메시지에 대해 값을 누적합니다. 기본값입니다.
1 부모 요소가 같은 요소 값 또는 특성 값을 누적합니다.
2 부모의 상위 요소가 같은 요소 값 또는 특성 값을 누적합니다.
3 이상 선행 패턴(부모의 두 번째 상위, 부모의 세 번째 상위 등)에 따라 점진적으로 범위가 넒어지는 요소 값 또는 특성 값을 누적합니다.

예제

누적 펑토이드를 사용하는 예는 구매 주문에서 비용을 합산하는 것일 수 있습니다. 다음 코드는 구매 주문서에 대한 예입니다.

<ns0:PurchaseOrder xmlns:ns0="http://CumulativeFunctoid.PurchaseOrder">  
    <From>Kevin F. Browne</From>  
    <To>Northwind Traders</To>  
    <LineItems>  
        <Item>  
            <Product>Laptop Computer</Product>  
            <Description>Thin profile laptop</Description>  
            <Price>1999.95</Price>  
            <Quantity>1</Quantity>  
        </Item>  
        <Item>  
            <Product>Monitor Swipes</Product>  
            <Description>Disposable monitor swipes</Description>  
            <Price>3.95</Price>  
            <Quantity>10</Quantity>  
        </Item>  
    </LineItems>  
</ns0:PurchaseOrder>  

물론 Item 레코드의 Max Occurs 속성은 바인딩되지 않습니다. 이에 따라 Item 레코드가 반복되고 BizTalk 맵 편집기에서 이 레코드를 반복하여 컴파일합니다.

다음 그림에서는 Multiplication 펑토이드와 누적 합계 펑토이드를 사용하여 들어오는 구매 주문에서 항목 레코드를 집계하고 POTotal 필드에 결과를 출력하는 맵을 보여 있습니다.

누적 합계 펑토이드의 사용량을 보여 주는 맵입니다.

이 맵은 위의 데이터에 대해 기본 영역 지정 매개 변수 값(0)을 사용하여 다음과 같은 출력을 생성합니다.

<ns0:SummedPO xmlns:ns0="http://CumulativeFunctoid.SummedPO">  
    <From>Kevin F. Browne</From>  
    <To>Northwind Traders</To>  
    <POTotal>2039.45</POTotal>  
</ns0:SummedPO>  

이 예제에서는 LineItems 레코드 아래의 모든 Item 레코드가 누적에 참여합니다. 범위 지정 매개 변수의 기본값은 전체 메시지에 값이 누적됨을 나타냅니다. 가격수량 필드는 하기 펑토이드로 전송됩니다. 하기 펑토이드의 출력은 누적 합계 펑토이드에 대한 입력이 됩니다. Cumulative Sum 펑토이드의 출력은 Item 레코드가 입력 구매 주문으로 트래버스될 때 누적된 값입니다.

참고

입력의 누적 집계는 입력 링크가 시작되는 부모 레코드에서 발생합니다. Cumulative 펑토이드가 다른 펑토이드에서 입력을 가져오는 경우에도 누적 집계는 누적 펑토이드에 대한 입력 역할을 하는 펑토이드에 대한 입력 링크의 부모 레코드를 통해 발생합니다.

영역 지정 매개 변수를 1로 변경하고 출력 스키마를 약간 변경하면 다음과 같은 출력이 생성됩니다.

<ns0:SummedPO xmlns:ns0="http://CumulativeFunctoid.SummedPO">  
    <From>Kevin F. Browne</From>  
    <To>Northwind Traders</To>  
    <ItemTotal>1999.95</ItemTotal>  
    <ItemTotal>39.5</ItemTotal>  
</ns0:SummedPO>  

영역 지정 매개 변수를 1로 설정하면 부모가 같은 요소 또는 특성의 값이 누적됩니다. 여기서 PriceQuantity 필드에는 Item 이 부모로 있으므로 펑토이드가 각 개별 Item에 대한 값을 합산합니다.

영역 지정 매개 변수가 2인 경우 펑토이드는 부모의 상위 요소가 같은 요소 또는 특성의 값을 누적합니다. 가격수량 필드의 조부모는 LineItems 레코드입니다. instance 메시지에 LineItems 레코드가 하나만 있으므로 결과는 기본값을 사용하는 것과 같습니다.

<ns0:SummedPO xmlns:ns0="http://CumulativeFunctoid.SummedPO">  
    <From>Kevin F. Browne</From>  
    <To>Northwind Traders</To>  
    <POTotal>2039.45</POTotal>  
</ns0:SummedPO>  

참고

누적 펑토이드(누적 문자열 펑토이드 제외)는 숫자가 아닌 입력을 무시합니다. 예를 들어 "three"라는 입력 값은 무시됩니다.

누적 평균, 누적 최솟값 및 누적 최대 펑토이드가 누적 합계 펑토이드와 유사하게 작동합니다. 누적 문자열은 숫자 값을 집계하는 대신 문자열을 연결합니다.

사용 가능한 펑토이드

누적 펑토이드는 다음과 같습니다.

  • Cumulative Average
  • Cumulative Concatenate
  • Cumulative Maximum
  • Cumulative Minimum
  • Cumulative Sum

이러한 펑토이드에 대한 자세한 내용은 UI 지침 및 개발자 API 네임스페이스 참조에 있습니다.

참고 항목