Сделать скриптовый функтоид на карте BizTalk пропускающим элемент вывода

Я использую скриптовый функтоид на карте BizTalk. В определенном случае я хочу, чтобы элемент назначения был пропущен (а не пуст).

Я использую встроенный С#. Когда я возвращаю null, целевой элемент пуст. Есть ли способ сделать это вообще пропущенным?


person Jeremy Stein    schedule 25.03.2010    source источник


Ответы (2)


Используйте функтоид LogicalEquals, чтобы определить, соответствует ли ваш ввод вашему случаю. Затем сопоставьте этот вывод с LogicalNot. Отправьте вывод LogicalEquals в один функтоид Mapping (второй ввод для Mapping будет значением вашего поля), а вывод LogicalNot — в другой (тот же второй ввод). Затем сопоставьте оба функтоида сопоставления значений с целевым узлом.

Затем, когда ваше значение равно вашему регистру, вы отправите FALSE в пункт назначения (вместо Null или Empty), и узел не будет выведен. В любое другое время LogicalNot запустит свой Mapping Functoid, и вы должны получить желаемый результат.

person AllenG    schedule 25.03.2010
comment
Таким образом, функтоид отображения значений кажется ключевым. Спасибо! - person Jeremy Stein; 25.03.2010

Вот как я это решил: (Пожалуйста, напишите ответ, если у вас есть лучший способ.)

Разделите скриптовый функтоид на две части. Первый определяет, должен ли вообще существовать целевой элемент, и возвращает логическое значение. Второй определяет, какое значение должно быть установлено в назначении (если оно есть). Используйте эти два функтоида сценариев в качестве входных данных для функтоида сопоставления значений.

Обновление: я не видел подобного ответа Аллена, когда публиковал это. Я оставлю свой альтернативный подход здесь, если он кому-то поможет.

person Jeremy Stein    schedule 25.03.2010