BizTalk. При поиске обнаружены непредвиденные данные: "Запрос информации \r\n"

У меня есть плоская схема файла, которая анализирует файл с несколькими строками, которые я сделал разделителями, чтобы получить необходимые данные после предложения "Запрос информации [CR][LF]".

Когда я пытался протестировать проект с файлом (.txt), он работает правильно. Но когда я пытался проверить POP данные из электронной почты

Я получил эту ошибку:

Выходное сообщение компонента "дизассемблер плоских файлов" в приемном конвейере "InqueryCardDemo.EmailParserPipleline, InqueryCardDemo, Version=1.0.0.0, Culture= нейтральный, PublicKeyToken=f0522d81e74b224f" приостановлено из-за следующей ошибки: при поиске обнаружены непредвиденные данные: 'Запрос информации \r\n' Текущее определение, которое анализируется, - Root. Смещение потока, в котором произошла ошибка, равно 0. Номер строки, в которой произошла ошибка, равно 1. Столбец, в котором произошла ошибка, равен 0. Порядковый номер приостановленного сообщения - 1.

<xs:element name="Root">`   
  <xs:annotation>` 
    <xs:appinfo>`
        <b:recordInfo structure="delimited" child_delimiter_type="hex" child_delimiter="0x52 0x65 0x71 0x75 0x65 0x73 0x74 0x20 0x49 0x6E 0x66 0x6F 0x72 0x6D 0x61 0x74 0x69 0x6F 0x6E 0xD 0xA" child_order="infix" sequence_number="1" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" />
     </xs:appinfo>

2 ответа

Я бы порекомендовал заменить линию EmailParserPipeline для конвейера PassThru и подключить порт отправки, чтобы вывести сообщение в местоположение файла (фильтр по имени получающего порта, поскольку сообщение не напечатано). Затем проверьте файл - он выглядит так, как ожидалось? Попробуйте использовать шестнадцатеричный редактор и проверьте все байтовые порядковые метки, которые появляются перед "Запросом информации". Это может помочь вам диагностировать проблему; Я не предполагаю, что это решение.

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

Если кодировка сообщения, если не utf-8, BizTalk нужно сообщить, что это за кодировка, используя метку порядка байтов (BOM). Также см. Этот вопрос MSDN для получения дополнительной информации: http://blogs.msdn.com/b/atinag/archive/2009/03/18/utf-encoded-message-failing-in-biztalk-2006.aspx

Проверьте сообщение, полученное либо из HAT для BizTalk 2006R2, либо из консоли администрирования BizTalk, если BizTalk 2009 или выше. Вы можете обнаружить, что это многокомпонентное сообщение, которое вы должны принять, а затем получить нужную вам часть и пропустить ее через Pipeline в вашей Orcherstration для демонтажа.

POP3 адаптер

Адаптер приема POP3 получает электронную почту из указанного почтового ящика на указанном сервере POP3. По умолчанию адаптер приема POP3 применяет обработку MIME к загружаемым сообщениям электронной почты и отправляет эти сообщения на BizTalk Server как составные сообщения BizTalk. Приемный адаптер POP3 может принимать и обрабатывать электронную почту в следующих форматах: простой текст * MIME-кодирование * MIME-шифрование * MIME-кодирование и подпись * MIME-шифрование и подпись

В моей работе мы избегаем использования адаптера POP из-за проблем с безопасностью, мы предпочитаем, чтобы на сервере BizTalk работала служба SMTP, которая также пересылала электронные письма, и она настроена на запись в них файлов.eml, которые мы затем выбираем и обрабатывать через конвейер MIME и перебирать все вложения.

Другие вопросы по тегам