Проблема картографирования Biztalk, идеи, пожалуйста - PullRequest
0 голосов
/ 24 марта 2009

Я работаю над умеренно сложной схемой плоских файлов, и мне бросили изогнутый шар. Вот как выглядит ввод:

BCT121, C, 7.35,6.5,0.39,7216, "SMITH, TRACEY", 13456321, МАГАЗИН КЛАССОВОГО ТКАНЯ, МАГАЗИН КЛАССОВОГО ТКАНИ, VAN, BC, 20090109,20090112,20090127, V, 0,46 BCT121, C, 14.7,13.01,0.78,7216, "SMITH, TRACEY", 13456321, ТОРГОВЫЙ МАГАЗИН КЛАССА, ТОРГОВЫЙ МАГАЗИН, VAN, BC, 20090110,20090112,20090127, V, 0,91, BCT121, C, 60.27,53.34,3.2,5812, «SMITH, TRACEY», 13456321, PIZZA PARLORS ME-N-ED, PIZZA PARLORS ME-N-ED, VAN, BC, 20090110,20090112,20090127, V, 3.73, BCT121, C, 201,56,179,96,0,5200, «SMITH, TRACEY», 13456321, ДОМАШНИЙ ДЕПО № 7145, ДОМАШНИЙ ДЕПО № 7145, VAN, BC, 20090110,20090112,20090127, V, 21,6, REF. # ^ 1 ^

Хорошо, поэтому вывод, который хочет получить клиент, следующий:

1 строка заголовка PRQT для каждого человека / номера карты и строка для каждой из вышеуказанных транзакций ... поэтому для Трейси у нас будет 1 строка PRQT и 4 строки PRLN, которые являются деталями транзакции ... так что это будет выглядеть примерно так:

PRQT, SMIT6321, 13456321, подробности, подробности и т. Д.

PRLN, SMIT6321,7.35, 6.5 и т. Д. И т. Д.

PRLN, SMIT6321, 14,7, 13,01 и т. Д. И т. Д.

PRLN и т. Д. И т. Д.

PRLN и т. Д. И т. Д.

Хорошо, моя главная проблема - как вставить только одну запись prqt для заголовка? Я смотрю на логические функтоиды, чтобы посмотреть, есть ли один, который может посмотреть, было ли создано существующее значение для выходной схемы. Мой первичный ключ - SMIT6321 (фамилия + последние четыре цифры номера карты). Таким образом, в основном, если бы я кодировал это в C #, я бы создал массив ранее вставленных ключей PRQT, и во время цикла я бы посмотрел на это, когда натолкнулся на то, чтобы убедиться, что я уже создал запись. Если бы я уже создал, я бы пропустил, чтобы не создавать дубликаты записи PRQT. Обратите внимание, что записи создаются в исходном документе в хронологическом порядке, поэтому приведенные выше записи, скорее всего, будут перемешаны, а не последовательными, как в примере выше.

Кто-нибудь может указать мне правильное направление? Какие фунтоиды я должен использовать? Может ли Biztalk Mapper справиться с подобными вещами? Я уверен, что это может ... Мне просто нужно это выяснить.

спасибо,

Эрик

1 Ответ

1 голос
/ 25 марта 2009

Эрик

Я бы посмотрел на создание карты в пользовательском XSLT. Картограф (хотя сам по себе мощный) не даст вам 100% того, что вы хотите, не пройдя через обручи. Используя пользовательский XSLT, вы сможете выполнять полные сортировки полей и правильно перемещаться по документу, чтобы получить желаемый результат. Для решения подобных проблем в будущем существует новая книга под названием BizTalk 2009 Pro Mapping от APress, в которой рассматриваются такие проблемы, как ваша.

-Bryan

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...