ich möchte alte SapScript Formulare für Etikettendruck vereinheitlichen und durch modernes ersetzen vor einer Umstellung auf S4.
Die Templates für die Etiketten (ZPL Code) habe ich in einer Z-Tabelle. Zeilenweise mit CHAR200 definiert.
Das Template lese ich in eine String Variable und mache mir replace die Ersetzungen und möchte den String zum Drucker schicken. Und da fangen meine Probleme an. Ich hatte mir dann mal den String in eine Datei schreiben lassen, um zu schauen, ob es passt. Die Datei sieht gut aus, aber all meine Versuche, das an den Drucker zu senden mit den RSPO_SR_OPEN, RSPO_SR_WRITE und RSPO_SR_CLOSE haben nicht zu 100% funktioniert. Das Problem sind hier wohl Unicode Zeichen sowie CRLF Zeichen. Im Template steht für eine neue Zeile __CRLF__.
REPLACE ALL OCCURRENCES OF '__CRLF__' IN lv_zpl_string WITH cl_abap_char_utilities=>cr_lf.
So hatte ich das in eine Datei geschrieben:
OPEN DATASET lv_file FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
IF sy-subrc = 0.
TRANSFER lv_zpl_string TO lv_file.
CLOSE DATASET lv_file.
ENDIF.