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.
danke für die Tipps. Habe heute keinen Zebra-Drucker zur Hand. Aber ich kann schon mal so viel sagen: der Druck auf einen Laser-Drucker hat funktioniert. Da habe in den ZPL-Code in lesbarer Form gehabt. Das sollte dann mit einem Zebra-Drucker genau so funktionieren.
Bisher konnte man im Spool sich die Zebra-Etiketten ansehen (ZPL-Code). Das geht jetzt nicht mehr. Ist aber auch nicht so schlimm, da ich eh eine Print2File Option eingebaut habe. Dann kann ich mir das bei Bedarf dann direkt in einem Texteditor anschauen.
An der Logistik-Front schauen sich die meisten Mitarbeier keine Spool-Aufträge dann. Wenn überhaupt machen die dann nur einen Nachdruck aus dem Spool.