2014-10-08 23 views
0

我被困在從一條消息映射到另一個BizTalk業務流程中無法跨越的情況中。場景如下: 源模式有許多字段,並且目標模式具有許多子元素,並且這些目標元素的子字段可以與源模式字段具有一對一的映射關係。根據BizTalk業務流程圖中的一個字段的值進行映射

假設源模式具有字段,如如下:

SF1 
SF2 
SF3 
SF4 
SF5 

和目標架構包含下列元素

DEL1 and DEL1 has fields DEL1_F1,DEL1_F2,DEL1_F3,DEL1_F4,DEL1_F5 
DEL2 and DEL2 has fields DEL2_F1,DEL2_F2,DEL2_F3,DEL2_F4,DEL21_F5 
DEL3 and DEL3 has fields DEL3_F1,DEL3_F2,DEL3_F3,DEL3_F4,DEL3_F5 

現在取決於值SF1我需要映射值。如果SF1的值爲'0',那麼我將分別將SF1,SF2,SF3,SF4和SF5與DEL1_F1,DEL1_F2,DEL1_F3,DEL1_F4,DEL1_F5進行映射,如果SF1的值爲'1',則我將映射SF1 ,SF2,SF3,SF4和SF5與DEL2_F1,DEL2_F2,DEL2_F3,DEL2_F4,DEL21_F5,並且如果SF1的值是'3',則SF1,SF2,SF3,SF4和SF5的映射需要用DEL3_F1,DEL3_F2, DEL3_F3,DEL3_F4,DEL3_F5。

請建議我如何在BizTalk映射中實現這一點。

+0

您是否考慮過使用XSLT代替映射器?這種方法通過使用xsl:choose/xsl:when/wsl:else語句可以使這個特定的用例變得非常簡單。 – 2014-10-08 14:58:04

+0

如果您可以將示例模式添加到問題中並顯示您嘗試過的內容以及它爲什麼不適合您,那將會很好。 – Dijkgraaf 2014-11-12 19:45:45

回答

1

您可以使用visual studio提供的內建functoids。 enter image description here

+0

我只是想避免這種functoid的使用。使用這個aproach將需要一個字段映射的4個函數。 – 2014-10-10 10:29:33

+0

我認爲這是你可以做的唯一方法 – Hichamveo 2014-10-10 12:19:56

+0

這是隻有2個functoids每個領域是沒有那麼多,唯一的其他選項是根據Pieter Vandenheede的評論和使用XSLT來代替。 – Dijkgraaf 2014-11-12 19:43:42