В настоящее время я внедряю решение EDI в BizTalk Server 2010. Вот сценарий:
BizTalk отвечает за правильную маршрутизацию сообщений между почтовым ящиком X.400 и программным обеспечением ERP клиента. Он также используется для размещения информации об обмене сообщениями на сайте SharePoint с помощью веб-сервисов SharePoint.
Я использую ролевые ссылки и управление участниками BizTalk для применения правильных настроек (порты отправки, пароль в сегменте UNB6 и т. д.). ).
Теперь у меня есть следующий вопрос:
когда я пытаюсь получить исходящее сообщение INVOIC из системы ERP клиента, извлечь соответствующую информацию в оркестровке и записать ее на сайт SharePoint, порт получения, использующий конвейер получения EDI, получает приостановлено со следующим сообщением об ошибке:
An output message of the component "EDI disassembler" in receive pipeline
"**********.Pipelines.FileNamePromotionEDIReceivePipeline, **********.Pipelines,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=****************" is suspended
due to the following error:
Error: 1 (Miscellaneous error)
33: Invalid occurence outside message, package or group.
The sequence number of the suspended message is 1.
Это происходит потому, что сообщение использует CR и LF в качестве суффиксов после каждого разделителя сегментов. Теперь я мог бы добавить ASCII-hex-коды для CR и LF в настройку "EfactDelimiters" пайплайна, но проблема в том, что есть другие сообщения без CR и LF, которые потом нельзя было бы получить с помощью того же пайплайна. Между прочим, когда я получаю одно из этих сообщений без CR и LF, используя конвейер, также без CR и LF, установленных в качестве разделителей, принимающий порт также приостанавливается, на этот раз с сообщением об ошибке в результате использования точек вместо запятых в качестве десятичного разделителя (хотя я включил параметр «UseDotAsDecimalSeparator» в конвейере). Опять же, помогает только изменение EfactDelimiters.
Я думал, что страница «Набор символов и разделители» в соглашении сторон должна была сделать именно это возможным: установить разделители индивидуально для каждой деловой стороны. Но изменения, которые я делаю в этих настройках, похоже, не имеют никакого эффекта. Я установил «UNA6 Suffix» на «CR LF» и «Decimal Notation (UNA3)» на «.(Decimal)», перезапустил экземпляр хоста... та же проблема.
Кто-нибудь может помочь?