2017-02-28 64 views
0

我有一個源模式,其中特定記錄是可選的,並且在源消息實例中記錄不存在。我需要將此記錄映射到目標記錄,如果源記錄不存在,則需要將默認值0映射到目標節點。如果它確實存在,則需要按原樣傳遞源節點值(隨後進行幾次算術運算)。BizTalk映射:源記錄不存在,但需要映射並傳遞默認值

我已經嘗試過使用functoid的各種組合,如邏輯存在,然後是值映射,記錄計數,字符串存在等。也嘗試過在腳本functoid和xslt中使用c#,沒有任何工作。處理映射非現有記錄非常困難。我在這條記錄的頂部有幾條記錄,它們映射得很好,它們確實存在。只有這個問題有困難。無論我編寫多少個c#和xslt代碼組合,感覺就像腳本functoid永遠不會接受一個非存在記錄或節點鏈接。請注意,如果這個記錄存在,可以重複多次。

使用BizTalk2013r2。

回答

2

如果記錄不存在(記錄不會到來,甚至不會像<記錄/>),您可以使用Functoids的這種簡單組合。

enter image description here

鏈接記錄到邏輯存在,如果存在,它將通過頂部值映射發送。如果不退出第二個條件將是真實的,零將從底部的值映射發送。

+0

只有源記錄存在時纔有效。如果源記錄丟失,它不會生成默認值0,甚至不會生成空目標記錄。 – user6546702

+0

如果源記錄不存在,則發送0。如果你分享你的地圖和你的輸入XML,我可以幫助你更多。 –