Я работаю над умеренно сложной схемой плоских файлов, и мне бросили изогнутый шар. Вот как выглядит ввод:
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 справиться с подобными вещами? Я уверен, что это может ... Мне просто нужно это выяснить.
спасибо,
Эрик