0

J'ai un schéma de fichier plat qui analyse un fichier avec plusieurs lignes J'ai fait des délimiteurs pour obtenir les données nécessaires après une phrase 'Demande d'informations [CR ] [LF] '.BizTalk.Les données inattendues trouvées lors de la recherche: 'Request Information r'

Lorsque j'ai essayé de tester le projet avec un fichier (.txt), cela fonctionne correctement. Mais quand j'ai essayé de tester les données POP de courrier électronique

Je suis cette erreur:

An output message of the component "Flat file disassembler" in receive pipeline "InqueryCardDemo.EmailParserPipleline, InqueryCardDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0522d81e74b224f" is suspended due to the following error: Unexpected data found while looking for: 'Request Information\r\n' The current definition being parsed is Root. The stream offset where the error occured is 0. The line number where the error occured is 1. The column where the error occured is 0. . The sequence number of the suspended message is 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> 

Répondre

1

je recommande de remplacer le EmailParserPipeline pour le pipeline PassThru et brancher un port d'envoi pour vider la message à un emplacement de fichier (filtre sur le nom du port de réception car le message n'est pas typé). Ensuite, inspectez le fichier. Est-ce que ça a l'air attendu? Essayez d'utiliser un éditeur hexadécimal et vérifiez les marques d'ordre d'octet qui apparaissent avant votre 'Demande d'informations'. Cela pourrait vous aider à diagnostiquer le problème; Je ne dis pas que c'est une solution.

Je soupçonne que l'adaptateur POP ajoute quelque chose au début du message, avant le jeton que vous recherchez. Une fois que vous avez identifié ce que c'est, vous pouvez soit: mettre à jour votre schéma de fichier plat pour consommer ces jetons, soit ajouter un composant de pipeline personnalisé avant le désassembleur de fichier plat pour manipuler le message entrant afin qu'il soit conforme au schéma.

Si le codage du message, si pas utf-8, BizTalk doit être dit quel codage il est, en utilisant une marque d'ordre d'octet (BOM). Consultez également cette question MSDN pour plus d'informations: http://blogs.msdn.com/b/atinag/archive/2009/03/18/utf-encoded-message-failing-in-biztalk-2006.aspx

+0

EmailParserPipeline est le pipeline que j'utilise pour analyser le fichier plat .. Je ne peux pas le remplacer –

+0

OK, merci ** Rob ** –

0

Vérifiez le message en cours reçu à partir de HAT pour BizTalk 2006R2 ou à partir de la console d'administration BizTalk si BizTalk 2009 ou supérieur. Vous pouvez trouver que c'est un message Multipart que vous devez accepter, et puis obtenir la partie que vous voulez de cela et l'exécuter à travers un pipeline dans votre Orcherstration à dissoudre.

POP3 Adapter

The POP3 receive adapter retrieves e-mail from a specified mailbox on a specified POP3 server. By default, the POP3 receive adapter applies MIME processing to the e-mail messages that it downloads and submits these messages to BizTalk Server as multipart BizTalk messages. The POP3 receive adapter can receive and process e-mail in the following formats: Plain text * MIME encoded * MIME encrypted * MIME encoded and signed * MIME encrypted and signed

A mon travail, nous évitons d'utiliser l'adaptateur POP en raison de ses problèmes de sécurité, nous préférons avoir un service SMTP en cours d'exécution sur le serveur BizTalk que les e-mails sont envoyés aussi, et il est configurés pour écrire les fichiers .eml que nous récupérons et traitons via un pipeline MIME et parcourons toutes les pièces jointes.

Questions connexes