Betrieb mit SAP

Anforderung

Die Firma SAP hat ihre Anwendung mit einem kompletten Druck- und Spooling-System ausgestattet, um eine einheitliche Schnittstelle zu allen Druckfunktionen zu schaffen, unabhängig davon, auf welcher Rechnerplattform mit welchem Betriebssystem läuft, und genauso unabhängig vom konkreten Ausgabegerät. Das interne Drucksystem erzeugt für eine ganze Reihe von Ausgabegeräten bereits druckfertige Datenströme, die vom Betriebssystem des Host-Rechners nur noch zum Ausgabegerät übertragen werden müssen.

Im SAP System werden in den sogenannten Device Types alle Informationen zu einem Ausgabegerät hinterlegt. Alle Geräte von diesem Typ benutzen den gleichen Device Type, sodass sich eine Modifikation sofort auf alle betroffenen Geräte auswirkt.

Für print2forms können im Prinzip alle Device Types genutzt werden, die einen PCL4-, PCL5-, PCL5e- oder PCL5c-Datenstrom erzeugen. Für die Aktivierung eines besonderen Prozesses im print2forms-System bedarf es allerdings einer kleinen Modifikation am Device Type.

Welcher Device Type konkret als Grundlage für die notwendige Modifikation verwendet wird, hängt vom gewünschten Zieldrucker ab. Wenn für diesen Drucker kein eigenes Device Type existiert, tut es meist eines der gängigen HP-Modelle (ZHPxxx) oder einer der Device Types ZA0x1xxx (Latin 1) oder ZA0x2xxx (Latin 2).

Realisierung

Im Device Type sind sogenannte Formate angelegt, was letztendlich nichts weiter als Beschreibungen von verschiedenen Papierformaten sind. Da diese Formate die PJL-Sequenzen enthalten, die für die Einrichtung eines Druckauftrags benötigt werden, ist auch hier die Modifikation für print2forms anzubringen.

In jedem Format gibt es eine Printer inititialization-Sequenz, deren Inhalt vom als Ausgangspunkt gewählten Device Type abhängt.

Im Prinzip steht dort aber irgend etwas ähnlich dem folgenden:

Wichtig ist das sogenannte Universal Exit Language ('\e%-12345X') welches den Drucker auf den Wechsel in den PJL-Modus vorbereitet, der dann mit dem ersten '@PJL\r\n' aktiviert wird. An dieser Stelle können nun die für print2forms notwendigen PJL-Sequenzen eingefügt werden.

PJL-Sequenz                                  Bedeutung
@PJL SET COMPUTER=„<string>“ Kennzeichnet den druckenden Rechner. Dieser Wert kann später in Prozessen und Formularen abgefragt werden.
@PJL SET USER=„<string>“ Kennzeichnet den Benutzernamen. Dieser Wert kann später in Prozessen und Formularen abgefragt werden.
@PJL SET MODEL=„<string>“ Kennzeichnet den Host-Drucker. Dieser Wert kann später in Prozessen und Formularen abgefragt werden.
@PJL SET FORM=„<string>“ Wählt den Prozess, mit dem der Druckauftrag ausgeführt werden soll. Der Prozess wird über seinen externen Namen ausgewählt.
@PJL SET JOBID=„<string>“ Kennzeichnet den Namen des Druckauftrags. Dieser Wert kann später in Prozessen und Formularen abgefragt werden.
@PJL SET JOBNO=„<num>“ Kennzeichnet die Nummer des Druckauftrags. Dieser Wert kann später in Prozessen und Formularen abgefragt werden.
@PJL SET FILEID=„<string>“ Kennzeichnet den Namen der Druckdatei. Dieser Wert kann später in Prozessen und Formularen abgefragt werden.
@PJL SET FILENO=„<num>“ Kennzeichnet die Nummer der Druckdatei. Dieser Wert kann später in Prozessen und Formularen abgefragt werden.
@PJL SET USRDATA=„<string>“ Beliebige Zeichenkette zur Kennzeichnung der Druckdatei. Dieser Wert kann später in Prozessen und Formularen abgefragt werden.


Zentraler Punkt ist die Auswahl eines Prozesses. Welches Druckattribut aus dem SAP System Verwendung findet, ist von Fall zu Fall zu entscheiden, aber es liegt nahe, den Formatnamen selbst zu nehmen, um dann in der Applikation durch Auswahl des Formats zu entscheiden, mit welchem Prozess print2forms den Druckauftrag bearbeiten soll. Das erfordert natürlich ein eigenes Format für jeden print2forms-Prozess.

Eine mögliche modifizierte Version der Printer Init-Sequenz wäre dann etwa die folgende:


Bemerkungen