#biztalk #biztalk-2016
#biztalk #biztalk-2016
Вопрос:
Возникла проблема, из-за которой я пытаюсь разделить плоский файл на сервере BizTalk (разделенный запятой и разделенный табуляцией) на отдельные плоские файлы на основе значения (в данном примере это будет PONumber) в исходном файле.
Пример ввода:
PartNumber,Weight,PONumber,Other
21519,234,46788,1
81919,456,47115,1
91910,789,47115,1
Это привело бы к появлению 2 сообщений, таких как:
PartNumber Weight PONumber Other
21519 234 46788 1
и
PartNumber Weight PONumber Other
81919 456 47115 1
91910 789 47115 1
Я видел подобные вещи, но никаких определенных ответов, или образцы являются мертвыми ссылками. Есть ли у кого-нибудь пример, где они делали что-то подобное, или у них есть хорошее решение?
Комментарии:
1. Ваш пример не имеет смысла, оба имеют значение PONumber = 1. Вы имели в виду, что второе сообщение должно быть PONumber = 2? Если это так, то перед вами шаблон сбора разброса
2. @Dijkgraaf Если вы посмотрите на разделитель табуляции, значениями PONumber являются значения 46788 и 47117. Извините, если это было неясно из исходного описания.
Ответ №1:
Вариант 1: шаблон Convoy
Измените свою схему так, чтобы ее максимальное значение было равно 1 для строки PO, это приведет к разбиению каждой строки на собственные сообщения при ее получении.
Повысьте значение PONumber, чтобы оно было повышенным свойством в контексте сообщения.
Имейте оркестровку, которая имеет корреляцию, установленную на основе номера PO, и инициализирует ее при первой форме приема.
Имейте форму приема со следующей корреляцией, которая находится в форме ожидания внутри цикла, чтобы получить все остальные строки с тем же номером PO и объединить их в одно сообщение.
Вариант 2: Промежуточная база данных
Другой вариант — просто вставить все строки в базу данных SQL, а затем использовать хранимую процедуру опроса, которая получает все строки для одного запроса.
Иногда это может быть проще и позволяет избежать проблемы с зомби, поскольку вы можете реализовать это как шаблон только для обмена сообщениями или с использованием более простого Orcherstration без цикла.
Комментарии:
1. Никогда не выполнял все эти шаги с оркестровкой (не разбираясь в них), у вас есть пример ссылки на что-нибудь подобное? Тем временем я постараюсь следовать!
2. @JackBlack Я осмотрелся, и есть несколько статей о корреляции, а некоторые о шаблонах Convoy, которые близки, но не совсем соответствуют этому. Я также дал вам другой вариант.
3. Посмотрим, смогу ли я найти какой-нибудь пример с номером 2 … звучит как хороший вариант, но опять же не уверен, как это настроить.