我有一個地圖,需要2個輸入消息,例如:問題與BizTalk多輸入地圖
<ns0:Root>
<InputMessagePart_0>
<root>
<Indicator>1</Indicator>
<NewValue>AAA</NewValue>
</root>
<InputMessagePart_0>
<InputMessagePart_1>
<root>
<Value>BBB</Value>
</root>
<InputMessagePart_1>
</ns0:Root>
(節點的許多未示出,爲了清楚起見) 的輸出中的消息如下所示:
<Root>
<Value>AAA</Value>
</Root>
(這等同於InputMessagePart_1)
如果指示燈1,我想價值與的NewValue更換。如果它是0,我希望Value保持不變。我用了一個腳本functoid有這樣的代碼:
public string Get_Value(string indicator, string value, string newValue)
{
if(indicator == "1")
{
return newValue;
}
else
{
return value;
}
}
我遇到問題,是由於這樣的事實,值可能不是實際發生在原InputMessagePart_1 - 如果沒有,我要創建它。使用上面的腳本,即使Indicator是1,當Value不存在時,我也沒有收到返回字符串。
有什麼建議嗎?
更新:我做了一些進一步的測試,通過刪除if/then邏輯,並剛剛從functoid返回一個硬編碼的字符串,我得到了相同的結果......似乎只有空輸入殺死整個functoid的功能...
要麼不工作,或者我沒有跟你說的話...我跑(從InputMessagePart_1)的值節點到邏輯存在functoid的,跑輸出到一個值映射functoid的。虛擬機的第二個輸入是Value節點。虛擬機的輸出進入的if/then腳本functoid(因爲我還需要看看指示燈是否1或0),但結果是一樣的 - 如果值節點不存在,我無法創建它與的NewValue填充它,當指示燈= 1 – 2011-01-06 19:26:23