Drucker semiautomatisch im SAP anlegen

Wenn man viele Drucker (manuell) im SAP anlegen muß kann die SPAD schon zur Qual werden. Aber es gibt Abhilfe. Das Folgende Script kann Drucker(Definitionen) nach Vorgabe automatisch erzeugen und in eine Datei schreiben. Diese Datei kann dann entsprechend per SPAD importiert werden. Hierbei werden die Drucker auf Wunsch automatisch gesperrt angelegt und in jedem Fall sauber generiert.

Das Script erwartet im gleichen Ordner eine Datei input.txt (Semikolon als Trennzeichen!), die wie folgt aufgebaut sein muss. Der SAP Druckername ist auch gleichzeitig der Kurzname. Das Script kann bei Bedarf einfach erweitert werden, sofern hier Änderungen/Erweiterungen gewünscht sind.

SAP Druckername, Hostname des Druckers, Kommentar
P001;printer-ffm-p001;Zentraldrucker Rechnungswesen (IP: 172.128.1.20)


Die Datei output.txt muss dann über die Transaktion SPAD -> Ausgabegeräte -> Import importiert werden. Der Anzugebende Pfad bezieht sich auf das SAP GUI bzw. den Host auf dem es läuft. Die output.txt kann z.B. unter c:\temp\output.txt abgelegt und von dort aus importiert werden.

So kann man im Handumdrehen 100 von Drucker für den Import im SAP vorbereiten.  Anregungen und Verbesserungen sind natürlich gern gesehen!

 

#!/usr/bin/ksh
#Script zum Anlegen von Druckern im SAP
#Patrick Wessel


#Konstanten
TIME=`date "+%Y%m%d%H%M%S"`
SCRIPT=$1
WORK=$(pwd)
INPUT=$WORK/input.txt
OUTPUT=$WORK/output.txt
SAPPRINTER=""
KOMMENTAR=""
HOSTPRINTER=""
PRINTERDISABLE="X" #Drucker deaktivieren=X 

### Pruefen ob Input File existiert
[ ! -f $INPUT ] &&  echo "Es wurde keine Input Datei gefunden. Das Script wird beendet." && exit 1

### Pruefen ob altes Output File existiert und umbenennen
if [ -f $OUTPUT ]
then
	mv $OUTPUT $OUTPUT.old
	touch $OUTPUT
	chmod 666 $OUTPUT
fi

### Output Header schreiben
echo "VERSION = \"0.1\"\nTIME = \"${TIME}\"\nSYSTEM = \"D01\"\nRELEASE = \"700\"" >>$OUTPUT

#Drucker konfiguration parsen und ausgeben 
cat $INPUT | while read ZEILE
do
	#SAP-Drucker, Drucker und Kommenatar parsen
	SAPPRINTER=""
	HOSTPRINTER=""
	KOMMENTAR=""

	SAPPRINTER=$(echo ${ZEILE} | awk -F';' '{print $1}')
	HOSTPRINTER=$(echo ${ZEILE} | awk -F';' '{print $2}')
	KOMMENTAR=$(echo ${ZEILE} | awk -F';' '{print $3}')
	
	echo "Erzeuge Konfiguration fuer SAP Drucker $SAPPRINTER"
	
	echo "* DEVICE = {" >>$OUTPUT
	echo "  NAME = \"${SAPPRINTER}\"" >>$OUTPUT
	echo "  PADEST = \"${SAPPRINTER}\"" >>$OUTPUT
	echo "  PATYPE = \"HPLJ5\"" >>$OUTPUT
	echo "  PAMODEL = \"HP LJ 500\"" >>$OUTPUT
	echo "  PACLASS = \"\"" >>$OUTPUT
	echo "  PAARCHIVER = \"\"" >>$OUTPUT
	echo "  PALANGU = \"D\"" >>$OUTPUT
	echo "  PADISABLED = \"${PRINTERDISABLE}\"" >>$OUTPUT
	echo "  PANOQUERY = \"X\"" >>$OUTPUT
	echo "  PADUPCOPY = \"\"" >>$OUTPUT
	echo "  PADUPLEX = \"\"" >>$OUTPUT
	echo "  PASTORELOC = \"\"" >>$OUTPUT
	echo "  PADFLTUTTL = \"\"" >>$OUTPUT
	echo "  PADFLTSTTL = \"\"" >>$OUTPUT 
	echo "  PASYNC = \"X\"" >>$OUTPUT
	echo "  PAMONI = \"\"" >>$OUTPUT
	echo "  PASTANDORT = \"${KOMMENTAR}\"" >>$OUTPUT
	echo "  PAMSG = \"${KOMMENTAR}\"" >>$OUTPUT
	echo "  PAMSSERVER = \"sapservere01_E01_00\"" >>$OUTPUT
	echo "  PAMETHOD = \"E\"" >>$OUTPUT
	echo "  PAPROSNAME = \"${HOSTPRINTER}\"" >>$OUTPUT
	echo "  PALOMS = \"Output\"" >>$OUTPUT
	echo "  PALPRCMD = \"\"" >>$OUTPUT
	echo "  PALPDHOST = \"\"" >>$OUTPUT
	echo "  PALPDPORT = \"0\"" >>$OUTPUT
	echo "  PACONNTIME = \"0\"" >>$OUTPUT
	echo "  PAREADTIME = \"0\"" >>$OUTPUT
	echo "  PATRAYS = \"0\"" >>$OUTPUT
	echo "  PAXSHIFT = \"0\"" >>$OUTPUT
	echo "  PAYSHIFT = \"0\"" >>$OUTPUT
	echo "  PAXSHUNIT = \"MM\"" >>$OUTPUT
	echo "  PAYSHUNIT = \"MM\"" >>$OUTPUT
	echo "  PACRYPTMOD = \"\"" >>$OUTPUT
	echo "  PACRYPTMET = \"\"" >>$OUTPUT
	echo "  PANOVSERVR = \"\"" >>$OUTPUT
	echo "  PAPOOLART = \"\"" >>$OUTPUT
	echo "  PATRACE2 = \"\"" >>$OUTPUT
	echo "  PATRACEF = \"\"" >>$OUTPUT
	echo "  PAPROTDATA = \"\"" >>$OUTPUT
	echo "  PAPROTCMD = \"\"" >>$OUTPUT
	echo "  PAPROTRES = \"\"" >>$OUTPUT
	echo "  PAKEEPFILE = \"\"" >>$OUTPUT
	echo "  CHGNAME1 = \"Patrick\"" >>$OUTPUT
	echo "  CHGTSTMP1 = \"${TIME}\"" >>$OUTPUT
	echo "  CHGSAPREL1 = \"700\"" >>$OUTPUT
	echo "  CHGSAPSYS1 = \"E01\"" >>$OUTPUT
	echo "  PADEVGRP = \"\"" >>$OUTPUT
	echo "  COLORPRT = \"\"" >>$OUTPUT
	echo "  PRINTMODE = \"\"" >>$OUTPUT
	echo "  INPUTTRAY = \"\"" >>$OUTPUT
	echo "  PANOCHOICE = \"\"" >>$OUTPUT
	echo "}" >>$OUTPUT
done

echo "Fertig." 
exit 0 

Das Script kann hier herunter geladen werden: drucker_anlegen.sh

About the author