У меня есть проблема, которую я пытаюсь решить с помощью BizTalk, и я надеялся, что у вас возникнут мысли о том, как лучше ее решить. Я загружаю в плоский файл, используя адаптер для плоских файлов. Этот файл содержит записи, если количество различных типов. Записи типа 1 являются родительскими записями. Все остальные типы ссылаются на родительские записи с использованием различных внешних ключей. Я ищу разработку преобразования, которое будет принимать сообщение, созданное путем загрузки плоского файла (с записями всех типов), и преобразовывать его в сообщение, являющееся результатом объединения всех записей на основе внешних ключей. Поэтому каждая запись в полученном сообщении будет содержать столбцы всех типов записей, поскольку записи сообщения будут результатом объединения.
Например, плоский файл может содержать следующие записи:
* Type1
* Type1
* Type2
* Type2
* Type3
* Type4
* Type4
Сообщение после преобразования может содержать такие записи:
* Type1 columns, type2 columns, type3 columns, type4 columns
* Type1 columns, type2 columns, type4 columns
Я искал варианты для достижения этой цели, но надеялся, что некоторые люди могли бы посоветоваться о том, как идти.
Вещи, которые я пробовал:
- Разделение исходного сообщения на сообщения с записями каждого типа с последующим использованием карты с несколькими источниками для их объединения. Мне было трудно этого добиться, так как я не был уверен, какие функтоиды использовать.
- Вставка дочерних записей в базу данных SQL, чтобы можно было заполнить дополнительные столбцы в родительских записях с помощью функций поиска SQL. Это было немного медленнее, чем я ожидал, и имеет дополнительную зависимость от использования базы данных.
- Используя DTS для загрузки файла, преобразуйте его в формат и выведите файл в объединенном формате для использования в BizTalk. Это просто и быстро, но не использует BizTalk.
Буду признателен за любые советы о том, как лучше использовать BizTalk для этого.