Как опубликовать любой элемент из схемы конверта в MessageBox - PullRequest
0 голосов
/ 21 октября 2011

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

Это универсальная служба (WCF, запрос-ответ), принимающая сообщение запроса, возвращающая ответное сообщение (имеющее некоторые элементы запроса и с новым сгенерированным уникальным идентификатором транзакции) и сообщение об ошибке (если применимо).

Полезная нагрузка должна быть опубликована в MessageBox (прямое связывание) с некоторыми свойствами контекста EM.

Как это можно сделать наиболее эффективно?

Ответы [ 2 ]

0 голосов
/ 21 октября 2011

Могу ли я просто подтвердить

  1. Клиент WCF отправляет сообщение, соответствующее схеме конверта
  2. Вы хотите отослать схему конверта в одно или несколько сообщений полезной нагрузки, содержащихся внутри, для обработки полезной нагрузкиоркестровка.
  3. ?Вам нужно подождать, пока все сообщения полезной нагрузки не будут обработаны, пока вы не ответите клиенту WCF ответом об успешном / неудачном завершении (т. Е. Ответ зависит от завершения сообщений полезной нагрузки).

Еслипункт 3 вам не нужен), тогда ваша оркестровка WCF может просто отправить сообщение «да» клиенту WCF, не беспокоясь о том, что происходит с вашей полезной нагрузкой.

Стандартный XMLReceive в вашем месте получения WCF должен бытьможет автоматически отправлять сообщение, если оно распознает его как схему конверта, т.е. содержит

<b:schemaInfo is_envelope="yes" xmlns:b="somexmlns"/>
<b:recordInfo body_xpath="xpathtoroot"/>

Однако, если вам нужен пункт 3, я вижу проблему, потому что вы используете WCF request-ответ - клиент хочет получить синхронный ответ в зависимости от обработки полезной нагрузки.Было бы трудно сделать это, используя стандартную отладку конвертов, так как вам нужно было бы соотнести ход и результаты обработки полезной нагрузки с вашим WCF-ордом - вместо этого вы могли бы просто сохранить свою внешнюю (Envelope) схему как не-конверт, ииспользуйте пользовательский конвейер приема в своем WCF-орга-фоне, чтобы разделить сообщения, а затем перебрать каждое из них и вызвать вашу оркестровку обработки полезных данных.

http://mstecharchitect.blogspot.com/2008/12/debatching-biztalk-xml-messages.html

0 голосов
/ 21 октября 2011

Знаете ли вы, как обрабатывать схемы конвертов с использованием компонента дизассемблера xml внутри приемного конвейера?Из вашего вопроса не ясно, пробовали ли вы это или нет, или это даже вызов, с которым вы столкнулись.

Если нет, тогда читайте здесь: http://msdn.microsoft.com/en-us/library/aa546772(v=BTS.20).aspx

...