索引運算質
索引運算質可讓您從一系列記錄中的特定記錄中選取資訊。 每個 索引 運算質都會從單一欄位收集資訊。
輸入檔案中的特定記錄通常會發生多次。 例如,在天氣報告中, DailySummary 元素可能會發生多次。 DailySummary元素可能包含溫度、對稱壓力和風速的屬性。 下列程式碼為氣象報告範例。
<ns0:WeatherReport xmlns:ns0="http://IndexFunctoid.WeatherReport">
<DailySummary Pressure="80" Windspeed="10" Temperature="20" />
<DailySummary Pressure="78" Windspeed="20" Temperature="23" />
<DailySummary Pressure="77" Windspeed="16" Temperature="24" />
</ns0:WeatherReport>
在基礎架構中,DailySummary記錄的Max Occurs屬性會設定為未系結,以指出週期性或迴圈記錄。 「BizTalk 對應工具」會將此記錄編譯為迴圈。
假設您想要收集天氣報告前兩筆 DailySummary 記錄的天氣資訊。 在 BizTalk Mapper 中,傳入來源架構之 DailySummary 記錄中的每個屬性都可以連線到 索引 運算質。 接著,每個 Index 運算質都可以指定要從中繪製資訊的 DailySummary 記錄:第一個或第二筆。 然後 ,索引 運算質可以連接到目的地架構的適當欄位。
下圖顯示以這種方式使用的 索引 運算質。
索引運算質範例
若要取得第一天的每日摘要資訊,三個 索引 運算質的上限集合會將其索引值設定為 1。 若要取得第二天的每日摘要資訊,三個 索引 運算質的下層集合會將其索引值設定為 2。
索引 運算質使用 [ 設定 < 運算質 > 運算質 ] 對話方塊來設定其輸入參數。 第一個輸入參數會識別在來源結構描述中迴圈記錄內的欄位。 第二個及後續的輸入參數會指定特定的記錄。 您可以指定多個索引值以選取巢狀重複結構中的記錄。 最內層結構的索引值為第二個參數。 下一個最外層結構的索引值為第三個參數等等。 例如,假設上述 DailySummary 記錄位於 WeeklyData 記錄內。 若要從第二個WeeklyData中的第一個DailySummary 擷取壓力,第二個參數會是 1,第三個參數會是 2。
請注意,此範例假設 [ 壓力 ] 欄位不會重複。 如果欄位重複,則索引會關閉—計數會以 [ 壓力 ] 欄位開始,而不是 [每日摘要]。
注意
雖然索引順序輸入參數通常為常數,但可以使用來源結構描述中節點的連結。 若此連結來自迴圈記錄,且不是第一個輸入參數的父項,則索引順序輸入值來自輸入執行個體訊息中節點的第一個執行個體。
注意
索引順序輸入值一律與來源文件中的目前內容相關。
重要
索引運算質必須有數目的索引值,因為欄位層級有父節點到根節點下方的第一個層級。 例如,在多個氣象報告執行個體訊息中,需要兩個索引值。 在單一氣象報告執行個體訊息中,僅需要一個索引值。 無法設定 Index 運算質的必要索引值數目,會根據來源實例訊息中符合 Index 運算質第一個輸入參數的第一個節點來建立輸出。