!--a11y-->
Umwandlung des Datei-Inhalts im
Sender-Adapter 
Falls Sie unter Message-Protokoll Umwandlung des Datei-Inhalt ausgewählt haben, dann können Sie in diesem Modus eine Textdatei mit komplexeren Strukturen in ein XML-Ausgangsformat konvertieren. Die Datei enthält unterschiedliche Zeilenformate in logischen Strukturen.
Es wird eine Datei mit einer oder mehreren logischen Strukturen (Recordsets) erwartet. Eine beliebige Anzahl dieser Recordsets (eine, mehrere oder alle, die in der Datei gefunden werden) können als unabhängige Message an den Integration Server/an das PCK verschickt werden.
Ein Recordset kann mehrere Typen von Unterstrukturen enthalten, die durch logische Namen identifiziert werden. Die Anzahl solcher Unterstrukturen in einem Recordset kann fest oder variabel sein. Das Format einer solchen Unterstruktur wird als fest vorausgesetzt und entspricht der Beschreibung des Zeilenformats in der unten angeführten Tabelle. Eine Unterstruktur muss immer in genau einer Zeile des Textdokuments dargestellt sein.
Das Dokument hat die folgende Struktur:
<documentName>...
<recordset>
<NameA>
<field-nameA1>field-value</field-nameA1>
<field-nameA2>field-value</field-nameA2>
<field-nameA3>field-value</field-nameA3>
</NameA>
<NameB>
<field-nameB1>column-value</field-nameB1>
<field-nameB2>column-value</field-nameB2>
<field-nameB3>column-value</field-nameB3>
</NameB>
</recordset>
...
<recordset>
...
</recordset>
</documentName>...
Machen Sie hierzu folgende Angaben:
· Dokumentname
Geben Sie den Namen des XML-Dokuments an. Der Dokumentname wird als Haupt-XML-Tag in die Message eingefügt.
· Dokumentnamensraum
Der Namensraum wird an den Namen des Dokuments angehängt.
· Dokument-Offset
Geben Sie die Anzahl der Zeilen an, die am Anfang des Dokuments ignoriert werden sollen. So können Kommentarzeilen oder Spaltennamen bei der Bearbeitung übersprungen werden. Wenn Sie keine Angabe machen, dann ist der Vorgabewert null Zeilen.
· Recordset-Name
Geben Sie den Namen der Struktur an. Er wird in das XML-Schema übernommen.
· Recordset-Namensraum
Der Namensraum wird an den Namen der Struktur angehängt.
· Recordset-Struktur
Geben Sie die Reihenfolge und die jeweilige Anzahl der Unterstrukturen nach dem Muster <NameA,nA,NameB,nB,...> an. Hierbei ist nA=1,2,3,... oder * (für eine variable, beliebige Anzahl einschließlich 0).
· Recordset-Reihenfolge
Der Anfang und das Ende von Recordsets, die eine variable Anzahl und Anordnung von Strukturen enthalten, werden folgendermaßen bestimmt:
¡ Aufsteigend: Die Reihenfolge der Strukturen des Recordsets wird als eindeutig angenommen. Sobald eine frühere Struktur auftritt, bedeutet dies den Beginn eines neuen Recordsets.
¡ Variable: Die Reihenfolge der Strukturen des Recordsets wird als nicht festgelegt angenommen.. Ein neues Recordset beginnt erst dann, wenn erstmals wieder eine Struktur auftritt, die mit fester Anzahl definiert ist. Sind alle Strukturen als variabel definiert, dann wird das gesamte Dokument als ein einziges Recordset interpretiert.
· Recordsets pro Message
Geben Sie die Anzahl der Recordsets an, die zu einer Message gruppiert werden sollen. Die Angabe ist optional, der Vorgabewert ist *. Durch diese Vorgabe werden alle Recordsets in eine Message übernommen.
Ist die Anzahl der Recordsets in dem Dokument größer als die angegebene, so erstellt der Adapter mehrere Messages aus einem Dokument. Die letzte Message enthält dann womöglich weniger Recordsets als angegeben.

Wird unter Quality-of-Service (siehe unten) Exactly Once angegeben, dann ist sichergestellt, dass jede dieser Messages (also jeder Teil eines Dokuments, aus dem eine Message erstellt wird) genau einmal an den Integration Server/an das PCK geschickt wird. Dies ist auch der Fall, wenn die Anwendung während der Erstellung der Messages unterbrochen und später wieder neu gestartet wird.
· Schlüsselfeldname
Haben Sie unter Recordset-Struktur eine variable Anzahl von Unterstrukturen angegeben, also für mindestens eine Struktur den Wert *, dann müssen die Unterstrukturen über ihren Inhalt vom Parser identifiziert werden. Dies bedeutet, dass ein Schlüsselfeld mit verschiedenen Konstanten für die Unterstrukturen gesetzt werden muss. In diesem Fall ist die Angabe eines Schlüsselfelds zwingend und der Feldname muss in allen Unterstrukturen erscheinen.
· Schlüsselfeldtyp
Geben Sie den Typ des Schlüsselfeldes an, auf dessen Basis der Vergleich mit den vorgegebenen Werten stattfindet. Diese Eingabe wird verwendet, wenn der Schlüsselfeldname definiert ist.
Setzen Sie Parameter für alle angegebenen Recordset-Strukturen NameA, NameB, etc. in der folgenden Tabelle:
Angaben für Recordset-Strukturen
Parametername |
Bedeutung |
ignoreRecordsetName |
In der XML-Struktur wird ein Element <Recordset> pro Recordset-Struktur eingeführt. Diese Ebene ist nicht immer gewünscht, insbesondere wenn das Recordset nur eine Strukturdefinition enthält. Wenn Sie den Parameter auf true setzen, dann wird das <Recordset>-Element nicht eingefügt. |
NameA.fieldFixedLengths |
Wenn Sie hier eine Angabe machen, wird eine Zeichenkette erwartet, die die Längen der Spalten der Struktur als durch Kommata getrennte Argumente enthält. Geben Sie für die Spalten auch ein Trennzeichen an, darf die Länge des Trennzeichens nicht zur Spaltenlänge hinzuaddiert werden.
Diese Angabe ist zwingend, wenn sie unter NameA.fieldSeparator keine Angabe machen.
|
NameA.fieldFixedType |
Gibt an, in welcher Form die die Angaben unter NameA.fieldFixedLengths gezählt werden: · char (Vorgabewert) Es wird die Anzahl der Zeichen gezählt. · byte Es wird die Byte-Länge der Zeichen gezählt. |
NameA.fieldSeparator |
Wenn Sie hier eine Angabe machen, wird erwartet, dass die Struktur die angegebene Zeichenkette (ein oder mehrere Zeichen) als Trennzeichen zwischen den einzelnen Spalten enthält. Haben Sie unter bei fieldFixedLengths keine Angabe gemacht, ist dies die einzige Angabe zur Identifikation der einzelnen Spalten einer Reihe. Haben Sie bei fieldFixedLengths eine Angabe gemacht, wird die zusätzliche Länge des Trennzeichens berücksichtigt, aber keine zusätzlichen Konsistenzprüfungen durchgeführt. |
NameA.enclosureSign |
Geben Sie eine Zeichenkette an, die als Textbegrenzer wirkt. Text innerhalb solcher Textbegrenzer wird unverändert in die Zielstruktur übernommen, wobei im Standardfall die Textbegrenzer entfernt werden. In solchen Texten enthaltene Trennzeichen werden ignoriert. Dieser Parameter ist optional. Voreingestellt ist der leere Wert (kein Textbegrenzer). |
NameA.enclosureSignEnd |
Bei unterschiedlichen Textbegrenzern für Beginn und Ende des Textes geben Sie hier den Textbegrenzer für das Textende an. Falls keine Angabe erfolgt, wird die Angabe unter NameA.enclosureSign verwendet. |
NameA.enclosureSignEscape |
Geben Sie hier eine Zeichenkette an, die den Textbegrenzer ersetzt, wenn dieser innerhalb eines von ihm begrenzten Textes vorkommt. Bei der Übernahme des Textes wird diese Zeichenkette durch den bei NameA.enclosureSign angegebenen Wert ersetzt. |
NameA.enclosureSignEndEscape |
Hier können Sie eine Zeichenkette angeben, die den Textbegrenzer für das Textende ersetzt, wenn dieser innerhalb eines von ihm begrenzten Textes vorkommt. Bei der Übernahme des Textes wird diese Zeichenkette durch den bei NameA.enclosureSignEnd angegebenen Wert ersetzt. |
NameA.enclosureConversion |
· Geben Sie YES an, wenn der Textbegrenzer bei der Übernahme entfernt, bzw. die Escape-Zeichen ersetzt werden sollen. Dieser Wert ist voreingestellt. · Geben Sie NO ein, wenn die Zeichen unverändert übernommen werden sollen.
Haben Sie xml.enclosureSign=“ und xml.enclosureSignEsc=““ angegeben, wird in Anführungszeichen vorhandener Text im Dokument unverändert übernommen und die Anführungszeichen werden entfernt. Kommt im Text selbst das Escape-Zeichen ““ für ein Anführungszeichen vor, wird es bei der Übernahme durch das Anführungszeichen ersetzt. |
NameA.endSeparator |
Wenn Sie eine zusätzliche Zeichenkette als Trennzeichen nach der letzten Spalte einer Reihe definieren möchten, dann geben Sie es hier an. Es wird beim Verarbeiten der letzten Spalte übersprungen (andernfalls würde es als Teil der letzten Spalte behandelt). |
NameA.beginSeparator |
Machen Sie hier eine Angabe, wenn Sie eine zusätzliche Zeichenkette als Trennzeichen vor der ersten Spalte einer Reihe definieren möchten. Es wird beim Verarbeiten dieser Spalte übersprungen (andernfalls würde es als Teil der ersten Spalte behandelt). · Sonderzeichen in den Zeichenketten für Trennzeichen In allen Zeichenketten für Trennzeichen (NameA.fieldSeparator, NameA.beginSeparator, NameA.endSeparator) ist die Angabe von nicht-druckbaren ASCII-Zeichen möglich. Diese Zeichen können in der Form ´0xHH´ (einschließlich der Hochkommata) jeweils einzeln in die Zeichenketten eingefügt werden, wobei HH das als Hexadezimalwert kodierte Zeichen darstellt. · Zeichenketten für Trennzeichen in das XML Dokument einfügen: Die mit NameA.beginSeparator und NameA.endSeparator spezifizierten Trennzeichen können auch als Felder in die Struktur des erzeugten XML-Dokuments eingefügt werden. Hierzu spezifizieren Sie Feldnamen mit den Angaben NameA.addBeginSeparatorAsField=<fieldname> und/oder NameA.addEndSeparatorAsField=<fieldname> Die Zeichenketten werden dann mit dem angegebenen Feldnamen am Beginn bzw. am Ende der Struktur eingefügt, so wie sie unter NameA.beginSeparator und NameA.endSeparator angegeben wurden, also einschließlich der Definitionen von Sonderzeichen. Eine Umwandlung in die Sonderzeichen wird nicht vorgenommen, da solche Zeichen in XML-Dokumenten nicht erlaubt sind. |
NameA.fieldNames |
Geben Sie die Namen der Spalten der Struktur an. Das Eingabeformat hängt von folgenden Angaben ab: · Haben Sie für NameA.fieldFixedLengths einen Wert angegeben, wird eine Zeichenkette erwartet, die die Namen der Dateispalten als Argumente enthält, die durch Kommata getrennt sind. Dies gilt auch, wenn Sie zusätzlich einen Wert für NameA.comlumnSeparator angegeben haben. · Haben Sie nur einen Wert für NameA.fieldSeparator angegeben, wird eine Zeichenkette erwartet, die die Namen der Dateispalten im gleichen Format enthält wie die Dateizeilen, was bedeutet, dass das gleiche Trennzeichen und eine eventuell für NameA.endSeparator und/oder NameA.beginSeparator zusätzlich angegebene Zeichenkette erwartet wird. |
NameA.keyFieldValue |
Geben Sie den Wert des Schlüsselfeldes für die Struktur an. Die Angabe ist zwingend erforderlich, wenn der Schlüsselfeldname gesetzt ist. Ansonsten wird die Angabe ignoriert. |
NameA.fieldContentFormatting |
· Um alle führenden und nachfolgenden Leerzeichen eines gefundenen Wertes zu entfernen, geben Sie trim an. Dies ist der Vorgabewert. · Damit der Wert unverändert bleibt, geben Sie nothing an. |
NameA.keyFieldInStructure |
· Falls das Schlüsselfeld der Unterstruktur zum XML-Dokument hinzugefügt werden soll, geben Sie add an. Dies ist der Vorgabewert. · Wenn das Schlüsselfeld ignoriert werden soll, dann geben Sie ignore ein. |