Может кто-то помочь мне с этим? У меня есть карта biztalk. В исходной схеме есть две адресные записи с адресными элементами. Адресная запись 1 всегда существует в исходной схеме, но если адресная запись 2 существует в источнике, я хотел бы сопоставить ее с пунктом назначения вместо адресной записи 1. Возможно ли это сделать?
Если запись существует, сопоставьте ее, если нет — сопоставьте другую — сопоставление Biztalk.
Ответы (1)
Вот шаги, которые я бы предпринял для достижения этой цели - это должно быть описание решения на высоком уровне, поскольку вы не включили какое-либо определение схемы или образец Xml.
Для этого можно использовать XSLT или The Mapping Designer. Я описываю последнее;
1) Используйте функтоид Logical Existence
, чтобы проверить, существует ли узел Address 2. Он возвращает True, если в вашей исходной схеме присутствует адрес 2.
2) Соедините функтоид Logical Existence
с функтоидом Value Mapping
(в качестве первого входа) и перетащите значение адреса 2 на то же самое (в качестве второго входа).
3) Подключите функтоид Value Mapping
к узлу Address Destination.
4) Затем вам нужно обслуживать несуществующие адреса 2. Итак, добавьте функтоид Logical Not на поверхность картографа.
5) Подключить Logical Not
к себе Logical Existence
. Это читает "Не существует".
6) Подключите свой Logical Not
к другому функтоиду Value Mapping
в качестве первого входа.
7) Подключите значение адреса 1 к функтоиду Value Mapping
в качестве второго входа.
8) Подключите второй Value Mapping
к адресу назначения.
Таким образом, у вас должно быть два соединения с целевым узлом, но только один путь должен быть верным, что приводит к одному отображению.
Надеюсь, это даст вам руководство о том, как подойти к этому. Кричите, если вам нужна дополнительная помощь!
РЕДАКТИРОВАТЬ: вот иллюстрация, чтобы помочь!
TJ