Steuerzeichen simulieren

Hallo,

es wird ein APICall auf eine externe URL gemacht, dass immer mal wieder ein Steuerzeichen beinhaltet und damit dieser und weitere Vorgänge nicht ausgeführt werden.

Die Fehlermeldung ist folgende:

Letzte Meldung: An invalid XML character (Unicode: 0x1f) was found in the CDATA section.

Bisher konnte ich bei Synesty dazu keine Möglichkeit finden, das zu beheben. Was aber auch daran liegt, dass das Steuerzeichen noch am selben Tag entfernt werden muss, damit der nächtliche Vorgang nicht still steht. Dies erfolgte daher immer hektisch über die Quelldaten.

Aus diesem Grund habe ich eine eigene Quelldatei erstellt, indem ein Steuerzeichen hinzugefügt wird und ich die Möglichkeit habe, den Fehler in Ruhe zu beheben.

Meine Datei:

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<ARTIKEL>
<FOO>
<![CDATA[Text with control char: \x1F]]>
</FOO>
</ARTIKEL>
</ROOT>

Wenn ich nun den API-Call und DatastoreWrite auf diese Datei mache, erhalte ich die obige Fehlermeldung nicht. Warum?

Beste Grüße

Hallo @Lemm,

deine Datei enthält nur den Text „\x1F“. Die Steuerzeichen sind unsichtbare Zeichen.
Du kannst dir das Steuerzeichen z.B. mit Freemarker erzeugen, indem du dieses Template
in den TextHTMLWriter Step kopierst:

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<ARTIKEL>
<FOO>
<![CDATA[Text with control char: ${"\x1F"}]]>
</FOO>
</ARTIKEL>
</ROOT>

Die Vorschau sollte dann die „Steuerzeichen“ Warnung anzeigen. Das Zeichen ist aber nicht sichtbar:

Du kannst dir diesen Output in die Zwischenablage kopieren und in deine Datei einfügen oder du verwendest direkt den StringToFile Step um eine Datei aus dem TextHTMLWriter Step zu erzeugen.

Wenn du danach einen XMLReader Step hinzufügst, der die Datei verarbeitet, erhältst du den Fehler.

VG Torsten