У меня есть карта, которая принимает 2 входных сообщения, например:
<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, я хочу, чтобы значение было заменено на новое значение.Если это 0, я хочу, чтобы Value оставался прежним.Я использовал скриптовый функтоид с кодом, подобным следующему:
public string Get_Value(string indicator, string value, string newValue)
{
if(indicator == "1")
{
return newValue;
}
else
{
return value;
}
}
У меня возникают проблемы из-за того факта, что Value может фактически не встречаться в исходном InputMessagePart_1 - если это не так, я хочу создатьЭто.С помощью приведенного выше сценария, хотя Indicator равен 1, я не получаю возвращаемую строку, когда Value не существует.
Есть предложения?
Обновлено: я провел дополнительное тестирование, удаливлогика if / then и только что вернувшая жестко закодированную строку из функтоида, и я получаю те же результаты ... кажется, что наличие пустого ввода убивает всю функциональность функтоида ...