Отслеживание сообщений от внешней программы на biztalk и обратно - PullRequest
2 голосов
/ 03 декабря 2008

У меня есть внешняя программа, которая сгенерирует XML-документ из БД и передаст его BizTalk. Можно ли создать идентификатор транзакции или что-то (идентификатор сообщения, как в БД), чтобы я мог отслеживать сообщение в BizTalk и сохранять информацию в пользовательском конвейере BizTalk в базу данных с данным идентификатором транзакции?

Я хочу сохранить, если это не удастся, и у меня есть пользовательские конвейеры, которые ловят эту информацию для хранения. Я не хочу зависеть от HAT для обработки ошибок.

Как лучше всего отслеживать сообщения в BizTalk, отправленные из внешних программ, которым необходимо хранить информацию об обработке BizTalk? Любые ссылки / книжные советы тоже будут полезны. Спасибо!

Ответы [ 3 ]

3 голосов
/ 05 декабря 2008

С архитектурной точки зрения, как это часто бывает, есть несколько способов достичь того, чего вы хотите, и то, как будет выглядеть решение, будет сильно зависеть от вашего конкретного сценария.

В BizTalk лучший способ отследить поток, инициированный конкретным сообщением, - это идентификатор обмена.

Идентификатор обмена - это свойство контекста, которое передается по мере обработки входящего сообщения и копируется из одного сообщения в другое в течение процесса (-ов). Технически, это идентификатор сообщения полученного сообщения, который начал обмен.

Если вам нужен один идентификатор для группировки «всего», вот оно.

Если в вашем сценарии у вас есть возможность вернуть это назад вызывающей стороне, он сможет связать его со всем, что вам нужно (в базу данных и из нее).

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

По мере продвижения процессов (успешно или нет) вы всегда можете вернуться и обновить эту запись, поскольку у вас ВСЕГДА есть доступ к идентификатору обмена в BizTalk.

1 голос
/ 25 декабря 2008

Может быть, хорошо подумать о том, что вы хотите. Возможно, вы хотите, чтобы отправляющая клиентская / внутренняя система каким-то образом следила за своим сообщением, но должен ли статус считываться приложением или некоторым пользователям требуется статус сообщения?

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

Другой подход заключается в использовании BAM и создании веб-сайта, который клиент может использовать для определения статуса своего сообщения, как, например, в большинстве компаний по доставке, например, DHL. Возможно, потребуется больше усилий, но я думаю, что лучше адаптировать решение для нужд.

С BAM вы можете извлекать данные, не меняя ваши проекты BizTalk вообще. «Просто» проанализируйте свои потребности, чтобы выяснить, какие данные извлекать или объединять, в BAM-Excel, экспортировать их в базу данных BizTalk, активировать и подключать их с помощью редактора профилей отслеживания.

Затем вы можете показать важные мили для клиента на веб-сайте. Я знаю, что это не так просто, как я описал выше, но это будет хорошо:)

0 голосов
/ 03 декабря 2008

Если вы публикуете сообщение в BizTalk, оно по умолчанию возвращает вам SubmissionHandle. Это свойство Context, доступное вам через порт приема. Затем он может быть записан в оркестровке и использован для сопоставления ошибок с исходным представлением.

При желании вы можете использовать двухсторонний приемный порт HTTP и отправлять обратно все, что вы хотите, в вызывающее приложение. Вы можете сразу же вернуться с сообщением или подождать, чтобы вернуть успех или неудачу в зависимости от того, что происходит во время обработки.

Удачи

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