Migrieren von Flatfiledatensätzen
Überblick
Microsoft BizTalk Server unterstützt mehrstellige Trennzeichen, obwohl nur ein Typ von Trennzeichen unterstützt wird: untergeordnete Trennzeichen.
Drei Schemaanmerkungen steuern die Trennzeichenbehandlung in BizTalk Server: zwei für die Analyse (skip_CR, skip_LF) und eine für die Serialisierung (append_newline). BizTalk Server interpretiert diese Anmerkungen beim Migrieren von Datensätzen wie folgt:
Wenn die skip_CR Anmerkung den Wert true aufweist und das aktuelle Trennzeichen nicht wagenrücklauf (0x0D) ist, fügt BizTalk Server dem aktuellen Trennzeichen einen Wagenrücklauf hinzu. Ist das aktuelle Trennzeichen beispielsweise das Pipe-Symbol oder Verkettungszeichen (0x7C), ergibt sich als Trennzeichen ein Pipe-Symbol, gefolgt von einem Wagenrücklaufzeichen (0x7C 0x0D). Wenn das aktuelle Trennzeichen wagenrücklauf ist, bleibt es als einzelner Wagenrücklauf unabhängig vom Wert von skip_CR.
Wenn die skip_LF Anmerkung den Wert true aufweist, fügt BizTalk Server dem aktuellen Trennzeichen ein Zeilenvorschubzeichen (0x0A) hinzu. Beachten Sie, dass im vorherigen Fall, in dem das aktuelle Trennzeichen das Pipesymbol (0x7C) ist, ein Trennzeichen mit drei Zeichen (0x7C 0x0D 0x0A) ergibt, wenn sowohl skip_CR als auch skip_LFtrue sind.
BizTalk Server ignoriert die Einstellung der append_newline-Anmerkung.
Diese Interpretationen der Anmerkungen ermöglichen meist eine problemlose Migration, in einigen Situationen schlägt die Migration jedoch fehl. Wenn z. B. skip_CR und skip_LFtrue sind und das aktuelle Trennzeichen das Pipesymbol (0x7C) ist, akzeptiert BizTalk Server alle folgenden Werte als gültige Trennzeichen innerhalb eines einzelnen Datensatzsatzes: 0x7C 0x0D 0x0A, 0x7C 0x0D, 0x7C 0x0A und 0x7C. Datensätze, die solche Trennzeichen verwenden, können nicht migriert werden und erfordern benutzerdefinierten Parsercode in BizTalk Server.
Obwohl BizTalk Server nur einen Typ von Trennzeichen aufweist, interpretiert er die alten Anmerkungen, sodass Datensätze problemlos migriert werden. Wenn ein BizTalk Server Schema Werte für def_record_delimdef_field_delim, def_subfield_delim enthält und auf diese in delimiter_type als inherit_record usw. verwiesen wird, ruft BizTalk Server den entsprechenden Wert ab und speichert ihn lokal.
Darüber hinaus fügt BizTalk Server Felder für markierte Positionsdatensätze ohne untergeordnete Elemente hinzu.
Weitere Informationen
Bekannte Probleme bei der Schemagenerierung und -überprüfung