累計運算質
概觀
累計 運算質會將一系列值減少為單一值,例如總和、串連字號串或平均值。
所有 累計 運算質都接受兩個輸入參數:
要累計的值。 除了預期字串值的累積串連運算質以外,這個值是所有累計運算質的數值。 此值是連結,通常是從 Field Attribute、 Field Element或 Record 節點 (,其 Mixed 屬性設定為 True) 。
注意
如果架構樹狀結構中沒有任何上階 記錄 節點正在迴圈,則不需要使用 累積 運算質。
累計此值的範圍。 此引數是選擇性的。 此引數指示要累計的值所必須緊密相關的程度。
下表顯示範圍參數值及其效果:
範圍參數值 | 效果 |
---|---|
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>
專案記錄的Max Occurs屬性當然不會系結。 這表示 [Item] 記錄會重複,而 BizTalk 對應工具將此記錄編譯成迴圈。
下圖顯示使用 乘 法運算質和 累積總和 運算質從傳入採購單匯總專案記錄的對應,並在 [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記錄都會參與累積,範圍參數的預設值表示在整個訊息中累積值。 [價格] 和 [數量] 欄位會傳送至乘法運算質。 乘法運算質的輸出會成為累計總和運算質的輸入。 累加總運算質的輸出是累積值,因為專案記錄是在輸入採購單中周遊。
注意
輸入的累計彙總發生在父記錄,由此產生輸入連結。 即使 累積 運算質從另一個運算質取得其輸入,累積匯總仍會透過輸入連結至運算質的父記錄,做為 累積 運算質的輸入。
將範圍參數變更為 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 (一) 表示以相同父項累計項目或屬性的值。 在這裡, [價格 ] 和 [ 數量 ] 欄位具有 Item 做為父代,讓運算質加總每個個別 Item的值。
若將範圍參數設為 2,則此運算質會以相同父父代累計項目或屬性的值。 Price和Quantity欄位的父代是LineItems記錄。 因為實例訊息中只有一個 LineItems 記錄,所以結果與使用預設值相同:
<ns0:SummedPO xmlns:ns0="http://CumulativeFunctoid.SummedPO">
<From>Kevin F. Browne</From>
<To>Northwind Traders</To>
<POTotal>2039.45</POTotal>
</ns0:SummedPO>
注意
累積運算質 (,但 累積字串 運算質) 忽略非數值輸入。 例如,輸入值 "three" 會被忽略。
累計平均、累計最小值和累計最大運算質的行為類似于累計總和運算質。 累加字串會串連字號串,而不是匯總數值。
可用的運算質
累計運算質如下:
- 累計平均
- 累計串連
- 累計最大值
- 累計最小值
- 累計總和
這些運算質的詳細資料位於 UI 指引和開發人員 API 命名空間參考中。
另請參閱
- 如何新增基本運算質至對應
- UI 指引和開發人員 API 命名空間參考中的累計運算質參考