迴圈運算質
概觀 & 範例
迴圈運算質會將來源架構中的多個記錄或欄位合併成目的地架構中的單一記錄。
下圖顯示對應中使用的 迴圈運算質,可將從兩個不同問卷收集的位址合併成單一主要通訊清單。
注意
迴圈和值對應 (扁平化) 運算質不應該一起使用。 如果同時使用這兩者,則會產生已編譯的對應,假設目標節點在 迴圈 運算質下方沒有來源迴圈相依性。
來源架構的 FoodSurvey 和 FlowerSurvey 循環記錄會對應至目的地架構的循環 地址 記錄。 如果輸入實例訊息有三筆 FoodSurvey 記錄和兩筆 FlowerSurvey 記錄, 迴圈運算質會結合這些記錄,在輸出實例訊息中建立五筆 地址 記錄。
以下程式碼為範例輸入執行個體訊息。
<ns0:Surveys xmlns:ns0="http://LoopingFunctoid.Surveys">
<FoodSurvey Name="Karin Zimprich" Address="345 N 63rd St" City="Boston" State="MA" PostalCode="07485" />
<FoodSurvey Name="Wendy Wheeler" Address="7890 Broadway" City="Columbus" State="OH" PostalCode="46290" />
<FoodSurvey Name="Florian Voss" Address="1234 Main St" City="Denver" State="CO" PostalCode="97402" />
<FlowerSurvey Name="Kelly Focht" Address="456 1st Ave" City="Miami" State="FL" PostalCode="81406" />
<FlowerSurvey Name="Jim Kim" Address="567 2nd Ave" City="Seattle" State="WA" PostalCode="98103" />
</ns0:Surveys>
此輸入實例訊息會在上圖中的對應處理時產生下列輸出實例訊息。
<ns0:MasterAddresses xmlns:ns0="http://LoopingFunctoid.MasterAddresses">
<Address Name="Karin Zimprich" Street="345 N 63rd St" City="Boston" State="MA" PostalCode="07458"/>
<Address Name="Wendy Wheeler" Street="7890 Broadway" City="Columbus" State="OH" PostalCode="46290"/>
<Address Name="Florian Voss" Street="1234 Main St" City="Denver" State="CO" PostalCode="97402"/>
<Address Name="Kelly Focht" Street="456 1st Ave" City="Miami" State="FL" PostalCode="81406"/>
<Address Name="Jim Kim" Street="567 2nd Ave" City="Seattle" State="WA" PostalCode="98103"/>
</ns0:MasterAddresses>
FoodSurvey 和 FlowerSurvey 訊息地址已合併。 結合的訊息不會指出每個位址的來源。 如果您想要追蹤來源,請將Source屬性新增至 MasterAddress 架構的 Address 記錄,並對應常數值。 若要設定此值,請將 FoodSurvey 欄位連接到新的 [來源] 欄位。 在連接器列上,將 [鏈接屬性 | 編譯 | 程式來源連結] 屬性修改為 「複製名稱」。 針對 [花][Survey ] 字段重複此程式。 從上述程序重新處理輸入訊息會產生下列輸出:
<ns0:MasterAddresses xmlns:ns0="http://LoopingFunctoid.MasterAddresses">
<Address Name="Karin Zimprich" Street="345 N 63rd St" City="Boston" State="MA" PostalCode="07458" Source="FoodSurvey"/>
<Address Name="Wendy Wheeler" Street="7890 Broadway" City="Columbus" State="OH" PostalCode="46290" Source="FoodSurvey"/>
<Address Name="Florian Voss" Street="1234 Main St" City="Denver" State="CO" PostalCode="97402" Source="FoodSurvey"/>
<Address Name="Kelly Focht" Street="456 1st Ave" City="Miami" State="FL" PostalCode="81406" Source="FlowerSurvey"/>
<Address Name="Jim Kim" Street="567 2nd Ave" City="Seattle" State="WA" PostalCode="98103" Source="FlowerSurvey"/>
</ns0:MasterAddresses>
與節點的關聯性
節點之間的關聯性會影響 迴圈 運算質的行為。 例如,將來源架構中的子節點及其父系連結至 迴圈 運算質,可防止建立目的地節點。
運算質也會受來源節點間的關係影響。 將運算質連接到 迴圈 運算質來源節點的非同層級子欄位,可能會產生非預期的結果。 例如,使用 String Concatenate 運算質將 FoodSurvey Name 欄位和 FlowerSurvey Address 字段結合至 MasterAddress 中的 [位址名稱] 字段,會產生下列輸出實例訊息:
<ns0:MasterAddresses xmlns:ns0="http://LoopingFunctoid.MasterAddresses">
<Address Street="345 N 63rd St" City="Boston" State="MA" PostalCode="07458"/>
<Address Street="7890 Broadway" City="Columbus" State="OH" PostalCode="46290"/>
<Address Street="1234 Main St" City="Denver" State="CO" PostalCode="97402"/>
<Address Name="Kelly Focht" Street="456 1st Ave" City="Miami" State="FL" PostalCode="81406"/>
<Address Name="Jim Kim" Street="567 2nd Ave" City="Seattle" State="WA" PostalCode="98103"/>
</ns0:MasterAddresses>
請注意 FoodSurvey 來源訊息的 [名稱] 字段遺失,但適用於 FlowerSurvey 來源訊息。
重要
如果來源節點不是同層級,將運算質連接到 迴圈 運算質來源節點的子欄位,可能會產生非預期的結果。
迴圈運算質是功能強大的建構,可用來建立條件式迴圈,以及將架構對應至目錄。 您也需要考慮重疊 迴圈 運算質路徑的一些效果。
下一步
另請參閱
UI 指引和開發人員 API 命名空間參考中的數據表循環運算質參考