Ошибка маршрутизации сообщений из плоского файла BizTalk

StackOverflow https://stackoverflow.com/questions/2778111

  •  03-10-2019
  •  | 
  •  

Вопрос

Я нашел несколько неработающих потоков в Интернете, где люди утверждают, что могут использовать receive shapes в оркестровке с типами XLANGMessage для получения файлов схемы плоских файлов, которые не могут быть собраны в определенный xsd.

Я попытался установить тип сообщения в форме получения как Microsoft.XLANGS.Базовые типы.XLANGMessage, но этот базовый тип не является сериализуемым.Затем это приводит к ошибке сборки.

Существует ли тип объекта, который может захватывать как XML-документы с хорошо сформированными XML-сообщениями, так и искаженные XML-файлы и несобранные плоские файлы?

Это было полезно?

Решение

В ответ на ваш прямой вопрос выделено жирным шрифтом - да, тип, который вам нужен, это System.Xml.XmlDocument.

Что вам нужно сделать, это создать новое сообщение и при выборе его типа выбрать указанный выше тип в разделе Классы .NET.

Это сообщение, назначенное форме приема, может затем получать любую полезную нагрузку, например, я часто использовал это для передачи таких форматов, как файлы .pdf, через BizTalk, где мне не нужно было их разбирать.Однако имейте в виду, что, несмотря на название, то, что у вас здесь есть, не является Xml и вызовет у вас всевозможные проблемы, если вы попытаетесь рассматривать is как таковой.


Чтобы немного углубиться в ваш вопрос - вы пытаетесь создать какую-то оркестровку обработки ошибок?

Если это так, то в вашем коде обработки ошибок вы можете просто создать форму получения, которая получает сообщение типа XmlDocument с его выражением фильтра, установленным в ErrorReport.ErrorType == "failedMessage", которое привязано к порту прямой привязки, подключенному к окну сообщения.

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

Это означает, что затем вы можете создать одно централизованное место для обработки всех исключений.


Если вы этого еще не видели, то здесь есть приятный сообщение Чарльза Янга это может описывать что-то похожее на то, что вы пытаетесь сделать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top