Использование BizTalk 2010 для извлечения данных из OracleDB

Я новичок в BizTalk и столкнулся со следующей проблемой:

Я извлекаю текстовые файлы с помощью BizTalk с FTP-сервера. Текстовые файлы имеют позиционную структуру и имеют длину около 300 символов. Я создал XML-схемы с помощью мастера плоских файлов для анализа данных, которые отлично работают.

Вот мой вопрос: в качестве требования мне нужно извлечь позицию 2-6, которая является уникальным идентификатором. После извлечения значения мне нужно подключиться к базе данных Oracle и найти идентификатор, который вернет имя пользователя.

Вы знаете, как я могу это сделать?


person Vegi    schedule 19.08.2013    source источник


Ответы (1)


Лучший способ добиться этого зависит от того, что вы хотите сделать с полезной нагрузкой имени пользователя/сообщения после того, как вы запросили базу данных Oracle. Ответ также предполагает, что у вас есть правильно работающая схема плоского файла с уникальным идентификатором, извлекаемым из плоского файла в отдельный элемент в схеме/результирующем сообщении, давайте назовем это поле «UniqueId». Я также предполагаю, что на один плоский файл приходится только одно сообщение (если это не так, все немного сложнее).

В схеме плоского файла отметьте элемент UniqueId как отличительное поле. Это упростит доступ к значению в оркестровке. Создайте порт получения и местоположение с дизассемблером плоских файлов, настроенным на использование вашей схемы плоских файлов.

Затем создайте оркестровку, которая использует ваш порт получения для встроенных сообщений. В оркестровке создайте новое сообщение SELECT для вашего OracleDb. Для предложения WHERE используйте значение в выделенном поле из входящего сообщения — здесь вы можете использовать точечную нотацию, например. FlatFileMsg.УникальныйИд. Этот последний шаг необходимо будет выполнить в форме назначения сообщения в форме сообщения Construct сообщения OracleDb Select.

Если вы не хотите идти по маршруту выделенного поля, вы можете просто сопоставить сообщение Oracle SELECT в вашей оркестровке. Любой маршрут приемлем, но я стараюсь не вызывать картограф для простых сообщений.

Отправьте сообщение Oracle Db SELECT через порт запроса/ответа в базу данных Oracle, и вы должны получить возвращенный идентификатор пользователя. Выполните любое действие, которое вам нужно выполнить с UserId.

person Nick Heppleston    schedule 20.08.2013