Drucker Massenänderungen

Es kommt nicht häufig vor. Aber wenn, dann ist es oft mit einem riesigen Aufwand verbunden. Nach einem SAP Umzug oder einer externen Änderung muss - meistens hastig und überstürzt - an vielen Druckern eine Einstellung angepasst werden. Da der Standard nur bescheidene Mittel bietet, ist man gut beraten, wenn man auf einige Programmierkenntnisse zurückgreifen kann.

Mit den den folgenden Support Packages steht im SAP Standard in Transaktion SPAD ein Tool für Massenänderungen zur Verfügung. Allerdings sind die Möglichkeiten sehr begrenzt und helfen nicht immer weiter.

SAP Release Support Package
SAP Basis 7.02 SAPKB70215
SAP Basis 7.30 SAPKB73011
SAP Basis 7.31 SAPKB73110
SAP Basis 7.40 SAPKB74005

Der mutig Experte bedient sich des Standard-Werkzeugs zum Übertragen von Druckern und kombiniert dies mit einem kleinen awk-Script. Die Druckerkonfiguration wird in Transaktion SPAD exportiert. Dazu öffnet man die Verwaltung der Ausgabegeräte im Änderungsmodus, stellt den Cursor auf einen beliebigen Drucker und wählt dann Bearbeiten -> Übertragen -> Exportieren auswählen.

Je nach SAP Release kann dieses Werkzeug den Export nur auf das Frontend speichern oder alternativ auch auf den Applikationsserver. Für den Export wählen wir die Optionen Export und Drucker-Konfig. Exportieren.

Die Option Drucker-Konfiguration beinhaltet die Druckoptionen des jeweiligen Gerätetyps. Wenn die Druckoptionen nicht exportiert werden, stehen nach dem Import alle wieder auf Default, in der Regel also auf aktiviert.

Der Export erstellt eine Textdatei im Unicode-Format; bei Non-Unicode SAP Systemen in einem Non-Unicode Format. Für die nachfolgende Bearbeitung spielt das keine Rolle, denn beide Formate können mit einem Editor oder einem Script bearbeitet werden. Allerdings erkennt das Import-Tool das Dateiformat nicht automatisch und es muss korrekt ausgewählt werden.

Der Inhalt der Exportdatei ist lesbar und mehr oder weniger selbsterklärend. Man erkennt einen Header, Abschnitte je Drucker und die Feldnamen aus den internen Druckertabellen. Eine Anpassung kann nun per Fleißarbeit oder mit Hilfe eines Scripts erledigt werden. Hier ein Beispiel aus der Praxis, bei dem für alle Drucker die Funktionalität „Kopienzähler an Hostspool-System weitergeben" auf „Kopien als separate Ausgabeaufträge" umgestellt wird:

#!/bin/bash
awk '{
  if ( $1 == "PADUPCOPY" ) 
    print "  PADUPCOPY = \"X\""
  else 
    print $0
}' $1

Das Script bekommt beim Aufruf die Export-Datei als Parameter. Die Ausgabe soll in eine separate Datei umgeleitet werden, die wir später für den Import benötigen. Wer kein Unix-System zur Verfügung hat, kann sich auch mit einem etwas sperrigen Batch-Programm behelfen (in diesem Beispiel ist der Dateiname fest auf export.txt eingestellt):

@echo off
for /f "tokens=* delims=A" %%i in (export.txt) do call :sub "%%i"
goto :eof
:sub
  for /f "tokens=1,*" %%k in (%1) do set PARA=%%k
  for /f "tokens=*" %%k in (%1) do set LINE=%%k
  IF %PARA% EQU PADUPCOPY (
    echo PADUPCOPY = "X"
  ) ELSE (
    echo %LINE%
  )
  goto :eof
 

Für den Import ist vor allen Dingen die richtige Codierung (unicode, non-unicode) zu wählen und die überarbeitete Datei einzulesen. Die Angabe des Ausgabegeräts spielt keine Rolle. Die Eingabe wird komplett ignoriert. Keine Angst, die Original Export-Datei ist ja noch vorhanden und kann als Backup natürlich auch wieder eingespielt werden. Je nach Bedarf kann das Script natürlich beliebig komplex werden, auch neue Drucker könnten auf diese Weise maschinell erstellt werden, bzw. in exakt gleicher Weise für mehrere Systeme vorbereitet werden ohne dass manuelle Nacharbeit im Zielsystem erforderlich ist.

Autor: Axel BorchmannWebsite: /index.php/prof/profile-abo