Copyright © 1998, 1999, 2001 Jochen Hein
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections , with the no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
This is still a DRAFT only. I need to decide how to use the options available in the GNU Free Documentation License. You'll find the complete text of the gdfl in appendix Anhang C, GNU Free Documentation License.
Many of the designations used by manufacturer and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and I was aware of a trademark claim, the designations have been printed in caps or initial caps.
While every precaution has been taken in the preparation of this book, the publisher assumes no responsibility for errore or omissions, or for damages resulting from the use of the information contained herein.
Zusammenfassung
All you need to know
Dieses Werk ist allen Personen gewidmet, die Freie Software entwickeln, supporten, maintainen, dokumentieren oder benutzen. Es macht Spaß mit Euch allen zu arbeiten.
Inhaltsverzeichnis
Abbildungsverzeichnis
TPPARAM fileTabellenverzeichnis
/usr/sap/transBeispiele
SAP R/3 ist ein komplexes System, innerhalb dessen betriebswirtschaftliche Anwendungen entwickelt und betrieben werden. R/3 läuft auf verschiedenen Hardware- und Betriebssystem-Plattformen, die Belastungen durch die Anwendungen sind enorm. Durch großen Umfang des System ist es relativ komplex zu installieren, konfigurieren und zu betreuen. Dieses Heft versucht, die wichtigsten Informationen für den SAP Basisbetreuer schnell verfügbar zu machen.
SAP R/3 setzt auf verschiedenen Betriebssystemen auf, Sie sollten mit dem von Ihnen verwendeten System vertraut sein. Zu speziellen Fragen zu Ihrem Betriebssystem konsultieren Sie die Dokumentation, die zu Ihrem System gehört.
Das eben gesagt gilt genauso für die verschiedenen, von SAP unterstützten Datenbanksysteme. Sorgen Sie dafür, dass Sie Zugriff auf die entsprechende Dokumentation haben. Möglicherweise gibt es eine nützliche Referenzkarte, die Sie sich in den Schreibtisch legen sollten.
Zur Zeit beschreibt dieses Heft nur Oracle-Datenbanken, sofern ie entsprechenden Teile datenbankabhängig sind. Ergänzungen sind herzlich willkommen.
Trotz aller Komplexität und dem Zeitdruck, der häufig in Projekten herrscht, ist die SAP-Welt sehr interessant und aufregend. Sorgen Sie dafür, dass Sie trotz allem immer genügend Spaß bei der Arbeit mit R/3 haben.
Aktuelle Versionen gibt's gelegentlich auf meiner Homepage. Das
Projekt wird jetzt von Sourceforge gehostet. Es gibt einen
CVS-Tree, mehr Informationen dazu gibt es hier. Das
Module heißt sapr3docs.
Ich hoffe, dass Sie beim Lesen dieses Buches so viel Spaß haben,
und so viel lernen, wie ich beim Schreiben. Sie können mich per
e-Mail unter der Adresse <jochen@jochen.org> erreichen.
Jochen Hein
Inhaltsverzeichnis
Das wichtigste zuerst: Dokumentieren Sie, was Sie tun. Gerade
bei einem Administrations-Team ist dies wichtig. Jeder benötigt die
Informationen, was an den Systemen geändert wurde, und wann das
passiert ist (in der Regel reicht dabei das Datum). Sie können
beispielsweise ein Verzeichnis anlegen, das auf allen betroffenen
Systemen verfügbar ist, zum Beispiel unter
/usr/sap/trans. Dieses Verzeichnis sollte für
eine Unix-Gruppe, in der alle Administratoren (und die technischen
SAP-Benutzer) Mitglied sind, beschreibbar sein. Wenn Sie GNU-Emacs
verwenden, können Sie das Kommando M-x
add-changelog-entry verwenden. Schreiben Sie kurze, aber
vollständige Kommentare. Diese sollten für Ihre Kollegen, eventuell
neue Mitarbeiter und Sie selbst auch nach mehreren Jahren noch
verständlich sein. In Beispiel 2.1, „Auszug aus einem ChangeLog“ sehen Sie ein
Beispiel für einen Log-Eintrag.
1998-10-07 Jochen Hein <jochen@jochen.org>
* SID: Profile-Parameter
foo/bar von 100 auf 200 geändert. Grund: Fehlermeldungen im
Systemlog (vor vier Wochen :-o ), System durchgestartet.
* SID: Mandant 000 als 100 kopiert
für das neueste Geheim-Projekt.
Beispiel 2.1. Auszug aus einem ChangeLog
Achten Sie darauf, dass das ChangeLog
möglichst vollständig ist. Drängen Sie Ihre Kollegen, dass diese
ebenfalls dokumentieren. Das Schreiben eines
ChangeLog-Eintrages dauert in der Regel nur
wenige Minuten. Für einfache Aktionen (wie in Beispiel 2.1, „Auszug aus einem ChangeLog“ kann man das praktisch zugleich mit der
Änderungen aufschreiben. Größere Aktionen müssen üblicherweise extern
dokumentiert werden (Fahrpläne, Terminpläne etc.), in diesem Fällen
können Sie einfach auf diese Dokumente verweisen. Benötigen Sie
länger als ein paar Minuten für einen Eintrag, ist einfach nur
offensichtlich, dass diese Tätigkeiten noch nicht ausführlich genug
dokumentiert waren.
Neben der Dokumentation für Sie selber kann dies hilfreich sein, wenn Projekte nach Monaten nicht wissen, was für sie getan wurde, oder das eine oder andere nochmals anfordern. Außerdem wird ein Teil Ihrer Tätigkeiten transparenter – in der Regel ist das kein Schaden.
Wenn Sie die SAP R/3 Systeme unter Unix betreiben, dann sollten Sie ein Unix-System auf Ihrem Schreibtisch haben. Denn nur dann haben Sie genügend Erfahrung, auch im Notfall die wichtigsten Dinge parat zu haben. Ob das ein proprietäres Unix, Linux oder *BSD ist ist egal. Für Windows-Applikationen können Sie entweder einen Emulator verwenden, einen zweiten Rechner haben oder evtl. auf einen zentralen Applikationsserver zugreifen. Ich selbst habe mit einem Arbeitsplatzrechner unter Unix nur beste Erfahrungen gemacht, auch wenn es manchmal etwas komplizierter ist.
Sorgen Sie dafür, dass Sie die zentralen Unix-Konzepte und Werkzeuge verstanden haben und anwenden können. Nützliche Literatur finden Sie im Literaturverzeichnis. Je häufiger Sie Unix einsetzen, desto einfacher wird es. Sie werden Skripte entwickeln, um sich das Leben zu vereinfachen. Wenn Sie aus den Möglichkeiten der Unix-Shell herauswachsen, werfen Sie einen Blick auf Perl oder Python.
SAP hat für die technischen R/3-Benutzer eine Reihe von
nützlichen Aliasen definiert (Tabelle 2.1, „predefined aliases“). Sie können
sich die definierten Aliase mit dem Kommando alias
ansehen, wenn Sie als
angemeldet sind. Sie können (und sollten) weitere Aliase definieren.
and should add more aliases to
sidadm˜/.customer.csh oder
˜/.customer.ksh. See Tabelle 2.2, „User-defines aliases“ for examples. Don't change the SAP
scriptes! Every change you make to standard SAP programs and
scripts will give you trouble when you are going to upgrade your
SAP R/3 system.
| Alias | Description |
|---|---|
| cdexe | Change to the exe-directory
/sapmnt/ |
| cdarch | Change to the saparch-directory
/oracle/ |
| cdD | Change to the instance-directory
/usr/sap/ |
| cdJC | Change to the instance-directory
/usr/sap/ |
| cdS | Change to the instance-directory
/usr/sap/ |
| cdpro | Change to the profile-directory
/sapmnt/ |
| cdglo | Change to the global-directory
/sapmnt/ |
| cddump | DB2: Change to the dump-directory |
Tabelle 2.1. predefined aliases
startsap/stopsap?
L ls -Flab
Ps ps -ef | grep
Pwd /bin/pwd
Su rlogin hermes09 -l
cdD is plain wrong; describe a better version
| Alias | Description |
|---|---|
| cdtrans | Change to /usr/sap/trans |
| cdput | Change to /usr/sap/put |
| sapdba | sapdba -u / if you changed your database password. |
| brbackup | brbackup -u / if you changed your database password. |
| brarchive | brarchive -u / if you changed your database password. |
| sapadmin |
Change into our local sapadmin
directory and execute ls -F
|
| tcsh | Start /usr/local/bin/tcsh |
Tabelle 2.2. User-defines aliases
For your normal (non-SAP) unix user, define some aliases to get
and
sidadmora (that's
the unix user for Oracle administration, adapt es needed for other
databases) quickly. I defined the aliases shown in Tabelle 2.3, „Aliase für die Systemverwalter“. With these commands I can even start
programs with a single command as a SAP R/3 admin user. Just try a
sidsidadm id and a
sidadm hostname from
somewhere in your net where the .rhosts
permits a login.
| Alias | Description |
|---|---|
sidadm | rsh -l sidadm
appl-server |
orasid | rsh -l orasid
db-server |
Tabelle 2.3. Aliase für die Systemverwalter
If you are using the secure shell (ssh)
instead of rsh, you may even add the
-t option, so you get a tty for every command
and can run sidadm vi
.customer.csh. Even better, if you have a better
shell than ksh or csh installed,
you may use the shell-functions shown in Abbildung 2.1, „Useful shell functions“.
sapuser()
{
user="$1"
if [ -z "$2" ];
cmd="/usr/local/bin/tcsh -l"
else
cmd="$2"
fi
ssh -t "$user" "$cmd"
}
Abbildung 2.1. Useful shell functions
I suggest using tcsh when SAP is installed with csh users and using bash or zsh when SAP is using ksh. Abbildung 2.2, „Usage examples“ shows some usage examples.
$alias c11adm="sapuser c11adm@c11host"$c11adm startsap$c11adm vi .customer.csh$c11adm
Abbildung 2.2. Usage examples
If you have more than one SAP system, consider distributing your
.customer.csh with
rdist(1). See Abbildung 2.3, „a Distfile for rdist“ for an
example.
#!/usr/ucb/rdist -f
HOSTS = (
sidadm@saphost1
orasid@saphost1
sidadm@saphost2
orasid@saphost2
FILES = ( .customer.csh .customer.ksh )
${FILES} -> ${HOSTS}
install -R ;
Abbildung 2.3. a Distfile for rdist
You will have to create ~/.rhosts files for
that. For details, see the man page rlogin(1).
Keep in mind, that these files should have mode 600 and the home
directories should be writeable only for the user.
If you start some scripts from cron, keep in mind, that no login-script will be read. So you won't have any environment variables defined that a lot of scripts need. I created a script sapbatch (Abbildung 2.4, „starting SAP script from cron“) that sets the right environment and finally calls the command at will.
#!/bin/ksh
# source the profiles so that the environment is set
. ~/.profile
. ~/.kshrc
# Log invocations with syslogd(8)
logger -t sapbatch -p local3.info "Start: $@"
"$@"
exitcode=$?
# Log end and exit code
if [ $exitcode -gt 0 ]; then
priority="error"
else
priority="info"
fi
logger -t sapbatch -p local3.$priority "End: (rc=$exitcode) $@"
# give back the exit code to the caller
exit $exitcode
Abbildung 2.4. starting SAP script from cron
Abbildung 2.5, „Crontab“ shows some entries in the
crontab of the user that
I use. You may or may not want them.
sidadm
Crontab-Listing
#
# Cron-Jobs für das C11-System
#
SHELL=/usr/local/bin/bash
#
# Tägliche Überprüfungen des Systems. Kurz vor Mitternacht, damit
# die Protokolle im täglichen Mail-Aufkommen drin sind.
05 23 * * 1-6 test -x /home/groups/sapadmin/scripts/sapbatch && /home/groups/sapadmin/scripts/sapbatch sapdba -u / -e 5 -check
25 23 * * * test -x /home/groups/sapadmin/scripts/sapbatch && /home/groups/sapadmin/scripts/sapbatch sapdba -u / -cleanup
45 23 * * * test -x /home/groups/sapadmin/scripts/sapbatch && /home/groups/sapadmin/scripts/sapbatch sapdba -u / -e 10 -next PSAP\%
59 23 * * * test -x /home/groups/sapadmin/scripts/sapbatch && /home/groups/sapadmin/scripts/sapbatch /home/groups/sapadmin/scripts/check_sap | mail -s '[C11]: Daily Check' sapadmin
# Das Datenbank-Alert-Log des vergangenen Tages nach Besonderheiten
# durchsuchen, das Ergebnis landet in der Mail
1 0 * * * test -x /home/groups/sapadmin/scripts/sapbatch && /home/groups/sapadmin/scripts/sapbatch /home/groups/sapadmin/monitoring/db-alerts
# SAProuter Logfile
2 0 * * * test -x /home/groups/sapadmin/scripts/sapbatch && /home/groups/sapadmin/scripts/sapbatch /home/groups/sapadmin/monitoring/saprouter
#
# Monatlicher Export nach /dev/null
01 01 10 * * test -x /home/groups/sapadmin/scripts/sapbatch && /home/groups/sapadmin/scripts/sapbatch /home/groups/sapadmin/scripts/exp_to_dev_null.sh | mail -s '[C11]: Export to /dev/null' sapadmin
#
# Datensicherung, Datenbank und Archive-Logs
15 04 * * 2,4,6 test -x /home/groups/sapadmin/scripts/sapbatch && /home/groups/sapadmin/scripts/sapbatch /home/groups/sapadmin/scripts/online_backup.sh
#
# Datensicherung Archive-Logs
15 04 * * 1,3,5 test -x /home/groups/sapadmin/scripts/sapbatch && /home/groups/sapadmin/scripts/sapbatch brarchive -u / -c force > /dev/null
#
# Monitoring Freiplatz in $ORACLE_HOME/saparch
0,5,10,15,20,25,30,35,40,45,50,55 * * * * test -x /home/groups/sapadmin/scripts/sapbatch && /home/groups/sapadmin/scripts/sapbatch /home/groups/sapadmin/monitoring/saparch
# Monitoring Data und Work-Diractory
59 1 * * * test -x /home/groups/sapadmin/scripts/sapbatch && /home/groups/sapadmin/scripts/sapbatch /home/groups/sapadmin/monitoring/datadirectory
58 1 * * * test -x /home/groups/sapadmin/scripts/sapbatch && /home/groups/sapadmin/scripts/sapbatch /home/groups/sapadmin/monitoring/workdirectory
Abbildung 2.5. Crontab
If you have more than one SAP system, it may be useful to create some simple scripts to start the most needed tools like sapdba, brbackup, brarchive, oder startsap/stopsap.
Example and description. getdbhost, getapplhosts etc.
LOG_SAPR3=local3
# Beenden des Skriptes mit Fehlermeldung
die()
{
echo $0: $* >&2
exit 1
}
# Prüfen einer SAP-System-ID (SID) auf Gültigkeit
# Eingabe: <SID>
# Ausgabe: 0 = ok; 1 = unbekannte SID; 2 = Dummy-System
check_sid()
{
local SID tmp
tmp=$1
SID=`echo $tmp | tr [a-z] [A-Z]`
tmp=`rsh hermes01 grep "^$SID " /usr/sap/trans/.sapconf \
| awk '{ print $1 }'`
if [ -z "$tmp" ]; then
return 1
fi
return 0
}
# Datenbank zu einem System finden
# Eingabe: <SID>
# Ausgabe: Hostname des DB-Servers
dbhost()
{
local SID dbhost
SID=$1
check_sid $SID || die "Die System-ID '$SID' ist nicht bekannt"
dbhost=`rsh hermes01 grep $SID/dbhost /usr/sap/trans/bin/TPPARAM \
| awk '{ print $3 }'`
if [ -z "$dbhost" ]; then
die "Kein Datenbankserver für das System '$SID' gefunden"
fi
if [ "$dbhost" = "dummy" ]; then
die "Das System '$SID' ist als Dummy-System konfiguriert"
fi
echo $dbhost
}
# Liste der Applikationsserver zu einem SAP-System
# Eingabe: <SID>
# Ausgabe: Liste der konfigurierten Applikationsserver aus der
# Datei /usr/sap/trans/.sapconf
applservers()
{
local SID applservers
SID=$1
check_sid $SID || die "Die System-ID '$SID' ist nicht bekannt"
applservers=`rsh hermes01 grep "'^[1-9] $SID'" /usr/sap/trans/.sapconf \
| awk '{ print $4 }'`
if [ -z "$applservers" ]; then
die "Keine Applikationsserver zum System '$SID' gefunden"
fi
echo $applservers
}
Abbildung 2.6. Shell functions
Create a directory where you can store useful scripts. You may even use that to share documentation and informations between admins. Useful scripts are for CD mounting, logfile analysis, and system monitoring. Examples?
sapcomm: start, stop, view <Log>
saprouter? see TODO
Central-Instance/Application Server managen
Using a CD drive that is at your local machine: If it is a Windows
system, get a commercial NFS server. Or better: use Linux. You
can mount the cd with mount -t iso9660 -o
map=off,norock,ro /dev/cdrom
/mount/cdrom and export it to your unix machine. On
AIX, I had to add the options
rsize=1024,wsize=1024, but it worked fine.
Doing SAP upgrade without even seeing the machine! Wow!
| Command | Description |
|---|---|
| disp+work -V | Display Kernel Version |
| rslgview | Syslog Viewer: need to check! |
| sapgui | SAPGui for unix |
| dpmon | Anzeige des Dispatcher-Monitors |
| sapevt | Senden von Events an ein SAP-R/3-System |
| sapinfo | Auslesen von Systeminformationen/Prüfen der Systemverfügbarkeit |
| saplicense | Anzeige und Ändern der SAP-Lizenz, you may also use
SLICENSE
instead. |
Tabelle 2.4. Useful commands
Beispiele für rslgview
sapgui, saplogon-Beispiele?
tail -f
awk/sed/perl
saplogon/sappad.pl
saplogon
mc
logger
g+s, Dateiaustausch, User-Wechsel, sudo? lsof, netcat, ncftpget, top/monitor/xsysstats, vmstat, perfagent (AIX), symon (Sun)
awk, sed, perl
Get a glance, how the system is running. You should get as well some monitoring tools for your operating systemen, see XXX for details. Monitor for AIX, top on Solaris, XXX on NT, other systems? xsysstats ist auch nett.
Environment variables
Mit der Transaktion SM50 kann die Belegung der
Work-Prozesse im SAP R/3 angezeigt werden. Der Befehl
dpmondpmon zeigt diese Übersicht auf Betriebssystem-Ebene an.
Als Parameter erwartet das Programm den Namen des betreffenden
Instanz-Profiles (Abbildung 2.7, „Aufruf des Befehls dpmon“).
dpmon zeigt ein Menü an, aus dem die
verschiedenen Anzeigen ausgewählt werden können. Mit
Enter wird die Anzeige aufgefrischt, im
Gegensatz zu SM50
wird die Anzeige aber auch nach wenigen Sekunden automatisch
erneuert.
Wenn Sie eine Systemlandschaft mit mehreren Rechner und SAP R/3
Systemen haben, dann können Sie sich möglicherweise mit dem
Skript aus Abbildung 2.8, „Shell-Skript für dpmon in einer
komplexen Systemlandschaft“ die Arbeit etwas
erleichtern. Als Parameter erwartet das Skript die System-ID
des R/3 Systems und den betreffenden Rechner, beispielsweise als
dpmon.sh
sid@host.
ssh $host -l sidadm dpmon pf=...
Abbildung 2.8. Shell-Skript für dpmon in einer komplexen Systemlandschaft
Inhaltsverzeichnis
First of all: Don't do that. If you are still forced to work with SAP R/3 under NT, read on.
Same as with unix: document what you are doing. If you are a team of
admins, this is essential. Everybody needs to know, who has been
doing what. I did create a directory writable by all out SAP
admins and put a file CangeLog in there.
Keep your comments short but complete. For an example, look at
listing Abbildung 3.1, „Excerpt from a ChangeLog“, keep new entries at the top.
If you ask yourself how to add an entry, Emacs offers M-x
add-changelog-entry.
1998-10-07 Jochen Hein <jochen@jochen.org>
* SID: Changed profile parameter
foo/bar from 100 to 200, because of errors in
syslog (four weeks ago :-o ). System restarted.
* SID: Copied client 000 into 100 for the
secret project.
Abbildung 3.1. Excerpt from a ChangeLog
Get the unix tools: grep, awk and so on. If you are looking for a scripting language, you may want to have a look at perl.
CHECK
SAP has defined some useful aliases, see Tabelle 3.1, „predefined aliases“
for details. You can display an actual list with the command
alias when logged in as the . You may
and should add more aliases to
sidadm~/.customer.csh oder
~/.customer.ksh. See Tabelle 3.2, „User-defines aliases“ for examples. Don't change the SAP
scriptes! Every change you make will give you trouble when you
are going to upgrade your sap system.
| Alias | Description |
|---|---|
| cdexe | Change to the exe-directory
/sapmnt/ |
| cdarch | Change to the saparch-directory
/oracle/ |
| cdD | Change to the work-directory
/usr/sap/ |
Tabelle 3.1. predefined aliases
| Alias | Description |
|---|---|
| cdtrans | Change to /usr/sap/trans |
| cdput | Change to /usr/sap/put |
| sapdba | sapdba -u / if you changed your database password. |
| brbackup | brbackup -u / if you changed your database password. |
| brarchive | brarchive -u / if you changed your database password. |
Tabelle 3.2. User-defines aliases
c11env.cmd, telnet, at/cron
Create a directory where you can store useful scripts. You may even use that to share documentation and informations between admins. Useful scripts are for CD mounting, logfile analysis, and system monitoring. Examples?
Inhaltsverzeichnis
Beside your work at the operating system level, there are lots of tasks that need to be done in R/3 itself. Sometimes, it is easier to do something at the OS level, sometimes in R/3. That depends on your experience.
Most of the time you can work only with your R/3 account. But be aware that you may make your live a lot easier when you can use some unix commands or write scripts for tasks that are not easily done in R/3.
OK-Codes are used to do a lot of things in SAP. Most functions can also be started with a mouseclick, but knowing the OK-Code is sometimes much faster. SAP tells that OK-Codes and transactions may eventually die, but I hope they will survive.
| OK-Code | Beschreibung |
|---|---|
/o | Übersicht der offenen Modi und die Möglichkeit einen bestehenden zu löschen oder einen neuen zu erzeugen. |
/o | Öffnen eines neuen Modi mit der Transaktion
transaktion |
/n
|
Beenden der aktuellen Transaktion und starten der neuen
Transaktion transaktion im
aktuellen Mode. Achtung, nicht
gespeicherte Daten gehen ohne Warnung verloren! |
/*
|
Beenden der aktuellen Transaktion und starten der neuen
Transaktion transaktion im
aktuellen Mode. Der erste Bildschirm der neuen
Transaktion wird nicht angezeigt (wenn?).
XXX Achtung, nicht
gespeicherte Daten gehen ohne Warnung verloren! |
/i | Beendet den aktuellen Modus. Achtung, nicht gespeicherte Daten gehen ohne Warnung verloren! |
/i | Beendet den angegebenen Modus. Achtung, nicht gespeicherte Daten gehen ohne Warnung verloren! |
/nend | Beendet die aktuelle Sitzung und schließt alle offenen Modi. Es wird eine Bestätigung verlangt, in den verschiedenen Modi noch nicht gespeicherte Daten gehen ohne weitere Warnung verloren. |
/nex | Beendet die aktuelle Sitzung ohne Nachfrage. Alle offenen Modi werden ohne Nachfrage geschlossen, Daten können verloren gehen. |
.xyz | Traversieren der Menü-Shortcuts (Hotkeys) |
/h | Springen in den Debugger (Im R/2: 'h', »Hoppeln«) |
/hs | Springen in den Debugger (Systemfunktionen?) |
/$SYNC | Synchronisieren aller Puffer. Durch diese Funktion kann die Performance erheblich verringert werden! |
/$TAB | Synchronisiere den Tabellen-Puffer. Durch diese Funktion kann die Performance negativ beeinflußt werden. |
/$CUA | Synchronisiere den CUA-Puffer. Durch diese Funktion kann die Performance negativ beeinflußt werden. |
/$NAM |
Synchronisiere den NAMTAB-Puffer.
Durch diese Funktion kann die Performance negativ
beeinflußt werden.
|
/$DYNP | Synchronisiere den Dynpro-Puffer. Durch diese Funktion kann die Performance negativ beeinflußt werden. |
/h | In den Debugger wechseln. XXX Welche Berechtigungen sind hier erforderlich? |
/bend |
Batch-Input beenden, dabei können Sie mit »Wiederaufnahme«
in die Transaktion SM35 zurückspringen.
|
/p-- | Auf die erste Seite einer Liste springen. |
/p- | Eine Seite rückwärts blättern. |
/p+ | Zur nächsten Seite vorblättern. |
/p++ | Auf die letzte Seite springen. |
%pc | Liste downloaden. |
%sc | In der Liste suchen. |
%pri | Angezeigte Liste drucken. |
Tabelle 4.1. OK-Codes im SAP-R/3
Das Zurücksetzen der Puffer mittels /$SYNC sollte normalerweise
nicht notwendig sein. Wenn Sie jedoch
»merkwürdige Phänomene« haben, dann ist es durchaus möglich,
dass durch einen Transport die Puffer etwas durcheinandergeraten
sind. Wenn Sie derartiges feststellen, dann wird es Zeit, das
SAP R/3 System, genauer die Applikationsserver, mal wieder
durchzustarten (Wir tun das alle vier Wochen für eine
Offline-Sicherung).
Bei der Verarbeitung von Batch-Input Mappen werden einige weitere OK-Codes verwendet. Das sind einmal Kürzel für die verschiedenen Funktionstasten, alternativ kann auch der entsprechende Funktionscode verwendet werden, wie er im Dynpro (XXX Transaktion) definiert wurde. Außerdem können Sie die Funktion aus dem Menü ++ mit Hilfe der hier angegebenen Codes ausführen.
| OK-Code | Beschreibung |
|---|---|
/bend | Beenden der Batch-Input Verarbeitung |
/bdel | Transaktion aus der Batch-Input Mappe löschen. Achtung, dies kann die Konsistenz Ihrer Daten, z.B. bei der Übernahme aus Fremdsystemen beeinträchtigen. |
/bda | Batch-Input im Modus »sichtbar abspielen« weiterführen. |
/bde | Batch-Input im Modus »nur Fehler anzeigen« weiterführen. |
/bdx | Expertenmodus einschalten (Wozu dient der denn überhaupt?) |
/bdy | Expertenmodus beenden. |
/01 bis /12 | Die Funktionstasten F1 bis F12. |
/13 bis /24 | Die Tastenkombinationen Shift-F1 bis Shift-F12. |
Tabelle 4.2. OK-Codes bei der Batch-Input Verarbeitung
Cancel (F12) und Exit (F15) vermerken die Transaktion als gebucht!
Mit Benutzerparametern (Set/Get-Parameter) kann ein Benutzer sich verschiedene Felder mit (fixen) Werten vorbelegen. Verschiedene Transaktionen merken sich in diesen Parametern den zuletzt eingegebenen Wert, z.B. bei einer Kundennummer.
Nicht alle Felder, tatsächlich sind es eher wenige Felder, können mit Werten vorbelegt werden. Ob das in der aktuellen Transaktion und dem aktuellen Feld möglich ist, sagt die »technische Info« in der Hilfe (mit dem Cursor auf das Feld gehen, F1 drücken und dann den Button oder F6 betätigen.
Mit der Transaktion SU52 kann jeder Anwender die
Benutzerparameter für sich selbst einrichten. Der
Benutzerverwalter kann aus der Benutzerpflege (Transaktion
SU01) für seine
Anwender Benutzerparameter pflegen.
| Parameter | Bedeutung |
|---|---|
BIL | Download-Bilanzversion |
BUK | Buchungskreis |
GR8 | Download-Pfad |
GR9 | Upload-Pfad |
KPL | Kontenplan der Finanzbuchhaltung |
WRK | Werk |
Tabelle 4.3. Einige wichtige Benutzerparameter
Was sind Varianten-Variablen?
GPA's und RFC-Transaktionen. Bei mir geht's erstmal nicht...
Profilegenerator
Benutzermenüs -> SAPLOGON/Session-Manager?
Tips: Adresse/Telefonnummer pflegen, Kostenstellen und Benutzergruppen verwenden, Gültigkeitsdaten, Vermessungsdaten
Beachten Sie den Hinweis 76829: Möglichst keine Benutzernamen mit Wildcards ("*","_", ".", "%") verwenden. Warum? Suchfunktionen gehen nicht vernünftig oder es gibt Schwierigkeiten im Transportsystem.
Tabelle 4.4. Transaktionen zur Benutzerpflege
| Report | Beschreibung |
|---|---|
RSUSR003 | Standard-Paßwörter |
RSUSR005 | Kritische Berechtigungen |
RSUSR006 | Gesperrte Benutzer und Falschanmeldungen |
RSUSR008 | Kombinationen kritischer Transaktionen |
Tabelle 4.5. ABAPs zur Benutzerverwaltung
| Report | Beschreibung |
|---|---|
RSSOINBO | Anzahl SAPOffice Dokumente im Eingang |
RSSOPRIV | Anzahl SAPOffice Dokumente |
RSSORE01 | Konsistenz-Check SAPOffice |
RSSOTRCL | Löschen SAPOffice Traces |
Tabelle 4.6. ABAPs zum SAPOffice
Die aktuelle Transaktion findet man unter -> . In das Hauptmenü kommt man immer mit der Eingabe /ns000 im OK-Code. Ab Release 4.6 erreichen Sie das alte Menü mit /ns000_old.
Viele Funktionen zum SAP System Management sind im
CCMS (Computing Center Management System)
zusammengefaßt. Mit der Transaktion SRZL kann dieses Menü direkt
aufgerufen werden.
DB13?
| Transaktion | Beschreibung |
|---|---|
RZ03 | Control Panel |
RZ04 | Pflege von Instanzen und Betriebsarten |
RZ10 | Profil-Pflege |
RZ11 | Attribute zu Profil-Parametern |
SRZL | Aufruf des CCMS |
SMLG | Pflege von Logon Groups |
SU01 | Pflege Benutzerstammsätze |
SU02 | Berechtigungsprofile |
SU03 | Berechtigungen |
Tabelle 4.7. Funktionen zur Systemüberwachung
Wozu dient das Monitoring überhaupt? Warum sollte man sich schnell zurechtfinden können? Um im Notfall schnell reagieren zu können.
DB Monitoring
Accounting
stat/tabrec in Instance profile
| Transaktion | Beschreibung |
|---|---|
AL11 | Anzeige von Unix-Dateien in verschiedenen Pfaden |
OS01 | LAN check with ping (DB-Server, Applikationsserver, Frontend-Rechner |
RZ03 | Alert-Monitor |
SA38 | Starten von ABAPs |
SM02 | Versenden von Systemnachrichten |
SM04 | Benutzerübersicht, je Server und Speicherbedarf je
Benutzer, Echo-Modus. Alle SAP-Benutzer auf einen Blick
sieht man in der Transaktion SMLG. |
SM13 | Steuerung des Verbuchers |
SM21 | Systemlog |
SM35 | Batch Input |
SM35P | Batch Input Reorganisation |
SM37 | Job Übersicht |
SM50 | Instance View |
SM51 | Prozesse der aktuellen Instanz |
SM56 | Status Nummernkreispuffer |
SM66 | Globale Prozess-Übersicht Prozesse |
SMGW | Gateway-Monitor. Siehe auch Hinweis 64016 |
ST02 | Puffer-Analyse, Puffer sollten normalerweise deutlich über 90% Qualität liegen, siehe auch [AW-Performance]. |
ST03 | Performance-Analyse, mittels der Pofile kann per Doppelklick bis auf die einzelne Transaktion und in das Detailbild gesprungen werden. |
ST04 | Datenbank-Monitor |
ST05 | SQL-Trace je Benutzer, kann zur Analyse von langen Datenbankzeiten hilfreich sein. Zur Analyse sollte man Grundkenntnisse von SQL und dem SAP Datenmodell haben. |
ST07 | Anwendungsmonitor |
ST14 | Anwendungsanalyse |
ST22 | Dump analysis |
SRZL | Direkter Aufruf des CCMS |
TU02 | Anzeige von Profilparametern, der Datei
init
und deren Änderungshistorie |
Tabelle 4.8. Transaktionen zum System-Monitoring
Bei schwerwiegenden Problemen schreibt das SAP-R/3-System
sogenannte Developer-Traces Developer-Traces. Diese Dateien
(mit dem Namen dev_*) werden im
Work-Verzeichnis bei jedem Systemstart neu angelegt. Sie können
sich diese Dateien mit der Transaktion AL11 ansehen oder auf
Betriebssystemebene.
Den Trace-Level für einen Work-Prozeß kann man in der
Transaktion SM50
erhöhen. In den Traces finden sich Hinweise, wie die SAP Basis
bestimmte Fuktionen bearbeitet hat. Besonders nützlich ist der
Trace bei RFC-Destinationen, in diesen findet man häufig die
Ursache für nicht funktionierende RFC-Funktionen.
Achtung: Trace-Dateien können sehr schnell wachsen, daher sollten Sie diese Funktion nicht im produktiven Betrieb verwenden. Besonders beliebt ist es, für die Fehlersuche den Trace einzuschalten und dann zu vergessen diesen wieder abzuschalten.
| ABAP | Beschreibung |
|---|---|
RDDPROTO | Anzeige
der Upgrade-Protokolle (ab Release 4.5x ersetzt durch
/usr/sap/trans/upgrade/) |
RSBDCOS0 | Ausführen von Betriebssystemkommandos |
RSLG0014 | Testprogramm: Schreiben von Systemlog-Einträgen |
RSPARAM | Anzeige der aktiven SAP Profile Parameter |
RSPFPAR | Anzeige der aktiven SAP Profile Parameter |
RSTRANSP? | Transport von Varianten |
RSUSR003 | Paßworte der SAP-Standardbenutzer prüfen. |
Tabelle 4.9. Nützliche ABAP/4-Programme
Im R/3 werden alle Daten in Tabellen des Datenbanksystem gespeichert. SAP unterscheidet zwischen Anwendungsdaten (Stamm- und Bewegungsdaten), Customizing-Einstellungen und (XXX was noch?). Anwendungsdaten werden mit Hilfe von Transaktionen der Anwendung bearbeitet, Customizing-Einstellungen werden über verschiedene Transaktionen und die Tabellenpflege bearbeitet.
| Transaktion | Beschreibung |
|---|---|
SM30 | View-Pflege |
SM31 | Tabellen-Pflege |
SCU0 | Tabellenabgleich zwischen Systemen |
SCU3 | Tabellen-Historie[1] |
SE01 | Transporting tables and more |
SE11 | Data Dictionary |
SE12 | Data Dictionary (Anzeige) |
SE16 | Inhalts-Anzeige von Tabellen nach Kriterien |
??? | Technische Einstellungen, Indices |
Tabelle 4.10. Transaktionen zur Tabellenpflege
[1]
Wie Transportiert man Tabelleneinträge?
SE16: Tabellenpflege mit F5 bzw. Satz markieren, /h, Detail-Button, F7, ok-code = "EDIT", F8. Sinn? Gerade beim entwickeln und Debuggen sinnvoll, möglicherweise auch Manipulation von Daten -> erzählen Sie des der Revision besser nicht
Bei großen SAP R/3-Installationen steigen die Anforderungen an Antwortzeiten und Ausfallsicherheit. Für die Zentralinstanz werden häufig High-Availability-Lösungen wie HACMP™ von IBM oder Veritas-HA™ von Veritas eingesetzt. Bei verteilten Systemen mit mehreren Applikationsservern ist es zu aufwendig, dieses Verfahren für jeden Applikationsserver einzusetzen. Eine einfache Abhilfe ist der Einsatz von Logon-Groups.
Eine Logon-Group wird im R/3 definiert und umfaßt eine oder mehr Dialog-Instanzen. Bei der Anmeldung mit SAPLOGONSAPLOGON wird der Benutzer nicht direkt mit einem SAP-Server verbunden, sondern das Programm fragt zunächst den Message-Server, welche Instanzen verfügbar sind und wie deren derzeitige Auslastung ist. Anschließend wird das Programm SAPGUISAPGUI gestartet, das sich mit einem geeigneten Applikationsserver verbindet.
Die Definition und Überwachung von Logon-Groups erfolgt mit der
Transaktion SMLG
( ->
-> -> -> ->
).
Die Verteilung der Benutzer auf die verschiedenen an der Logon-Group beteiligten Rechner erfolgt nach zwei Kriterien: die aktuelle Antwortzeit der Server und der jeweiligen Benutzeranzahl. Thresholds, quasi-statisch
Bei Rechnern, die mehrere IP-Adressen haben (multihomed hosts) ist es in der Dialogbox möglich die IP-Adresse anzugeben, die den Clients übergeben wird. Default ist der Hostname des ApplikationsserversApplikationsserver.
Mit dem Menü -> -> wird im Übersichtsbild eine ausführlichere Liste angezeigt, die wesentlich aussagekräftiger ist, als die kurze Liste. Mit dem Menüpfad -> wird eine Benutzerübersicht über alle Instanzen aufgebaut, und der Pfad -> zeigt den aktuellen Status aller Instanzen an, die an der Lastverteilung beteiligt sind.
ABAP: RSRZLLG0 steuert die Lastverteilung
Unter Unix: lgtst und eigene Skripte, unter Windows: SAPLOGON kann es.
Inhaltsverzeichnis
Die HintergrundverarbeitungHintergrundverarbeitung dient im
wesentlichen zwei Zwecken, der Durchführung regelmäßiger
Tätigkeiten (z.B. Reorganisationen, Schnittstellen) und der Verarbeitung großer
Datenmengen (in Dialogprozessen ist die maximale Laufzeit durch
den Profile-Parameter rdisp/max_wprun_time begrenzt, der
Standardwert sind 300 Sekunden).
Jobs können von Anwendern manuell
eingeplant und erstellt werden, manche Funktionen (z.B. Zahlen, Mahnen,
Einzug) erstellen automatisch JobsJob, oder bestehende Jobs werden in
bestimmten Abständen oder auf Anforderung wiederholt.
Neben der regelmäßigen, automatischen Ausführung von Programmen
werden Jobs zum Start von länger dauernden Auswertungen
u.ä. verwendet. Wenn in einer Dialog-Task die Laufzeit den
Wert des Profile-Parameters rdisp/max_wprun_time überschreitet, so
wird das Programm vom System beendet. Der Standardwert dieses
Parameters ist 300 Sekunden. Auch Online-Programm können länger
laufen, wenn sie gelegentlich einen COMMIT machen.
In Jobs können Reports (ABAP/4-Programme) und externe Programme
(Betriebssystem-Programme) verwendet werden. Bei Reports, die
Parameter haben, muß für die Verwendung in Jobs eine entsprechende
VarianteVariante angelegt werden,
bei SA38 mit der
Funktion -> , wird automatisch eine temporäre
Variante erstellt.
Zum Starten von Jobs ist die Batch-Administrator-Berechtigung notwendig. Andernfalls kann der Benutzer zwar(?) Jobs einplanen, diese werden aber nicht freigegeben. Das kann sinnvoll sein, wenn die Belastung des Systems durch von Anwendern gestarteten Jobs zu groß wird und diese in die Nacht verlegt werden müssen. Andererseits kann auch ein Anwender einen anderen Starttermin angeben.
SAP R/3 sieht drei JobklassenJobklasse
vor, C für normale Anwenderjobs,
B
für dringende Jobs und A für Systemjobs, die zur Aufrechterhaltung
des Betriebes erforderlich sind. Für Jobs der Klasse A wird stets
versucht, die im Instanzprofil angegebene Anzahl Workprozesse
freizuhalten. Wenn also ein Workprozess für die Klasse A reserviert ist, dann
belegt ein Klasse-A Job diesen Prozess und ein anderer
Hintergrund-Prozess wird für den nächsten Klasse-A Job reserviert.
Bei der Funktion -> in den Transaktionen SA38 und SE38 sucht das System automatisch einen freien
Work-Prozeß auf einem beliebigen Server. Beim Erstellen eines Jobs mit SM37 ist es möglich den Namen
eines Hintergrundservers anzugeben. Der Jobs läuft dann auf genau
diesem Server -- wenn der Server allerdings zum Starttermin nicht
verfügbar ist, dann wechselt der Job in den Status »bereit«, wird
aber nicht ausgeführt. Sofern man das mitbekommt, kann man den
Job natürlich entsprechend anpassen.
In der Regel sollten Sie das R/3 System die Lastverteilung durchführen lassen - das wird normalerweise gut genug funktionieren. Nur in Ausnahmefällen, z.B. für große Reorganisationen oder datenbanklastige Reports kann es sinnvoll sein, die Jobs auf dem Datenbankserver einzuplanen. Alternativ können Sie auch einen Rechner als dedizierten Batch-Server einrichten und regelmäßige Jobs dort gezielt einplanen.
In den Instanzprofilen (Transaktion RZ10) müssen genügend Prozesse
für die Hintergrundverarbeitung eingestellt sein. Es sollte auf
jeder Instanz, die Hintergrundprozesse konfiguriert hat
mindestens ein Backgroundprozeß für die Jobklasse A reserviert
sein. Beachten Sie, dass die Aufteilung der Workprozesse mit
BetriebsartenBetriebsart
geändert werden kann.
Bis R/3 Release 3.1x muß der Benutzer SAPCPIC mit dem Paßwort ADMIN und dem Profile S_SAPCPIC existieren; sont klappt die
Rückmeldung von externen Programmen ins SAP R/3 nicht.
SMX Eigene Jobs
Kurzübersicht über die eigenen, aktiven oder abgebrochenen
Jobs. Es gibt diverse Sprungmöglichkeiten, die die
Überwachung von Jobs deutlich vereinfachen können. Leider
ist nicht diese Funktion, sondern die Transaktion
SM37 im Menü
-> ->
enthalten. Sie können Ihre gerade
laufenden Jobs mit einem Knopfdruck abbrechen und sehen
eine Übersicht über die letzten abgebrochenen Jobs.
SM36 Job-DefinitionErstellen von Jobs, das sind Abfolgen von Reports und externen Programmen. Bei ABAPs, die Parameter haben, wird eine Variante benötigt, externe Programme müssen vorhanden und im Pfad sein oder mit dem vollständigen Pfad angegeben werden.
SM37 Job-ÜbersichtEinplanen und Überwachen von Jobs. Wenn man nicht Batch-Administrator ist, dann sieht man nur Jobs im eigenen Mandanten. Jobs können zu bestimmten Zeiten, regelmäßig oder nach Events oder anderen Jobs eingeplant werden. Gelegentlich zeigt das System einen Job in einem falschen Status an, mit der Funktion schaut das System etwas genauer hin und korrigiert die Anzeige.
SM39
Performance-AnalyseNützlich, um aktuelle und durchschnittliche Laufzeiten sowie Abweichungen zu ermittlen. Mit dem Button kann man z.B. kritische Jobs anzeigen. Diese Funktion ist gut zur Analyse der Hintergrundverarbeitung geeignet, dabei geht es oft um Laufzeiten und Verspätungen. Mit erhält man eine Übersicht über alle Batch-Prozesse des R/3 Systems.
SM50
Prozeß-ÜbersichtÜbersicht über alle Prozesse, egal ob Dialog, Batch oder etwas anderes, der aktuellen Instanz und deren Belegung. Es wird der Benutzer, das laufende Programm und der aktuelle Datenbank-Zugriff angezeigt. In der Detail-Anzeige werden genauere Informationen angezeigt.
SM51 Server-ÜbersichtSpringen zu diversen Funktionen wie und mit -> zu den Developer-Traces. Praktischer Einstieg ins Monitoring.
SM61 Background ObjectsVerwalten der Hintergrund-Verarbeitung; es können einzelne Subsysteme angehalten werden oder mit eine Ablaufverfolgung versehen werden (einmalig oder permanent). Sehr nützlich zur Fehlersuche.
SM64 Trigger EventAuslösen eines EventsEvent. Wenn ein Job oder mehrere Jobs auf diesen Event warten, so werden diese gestartet. Leider werden Events nicht protokolliert, so dass Fehler möglicherweise nicht nachvollziehbar sind. Auf Betriebssystem-Ebene kann ein Event mit dem Kommando sapevt ausgelöst werden, dabei kann ein Event von jeder unterstützten Plattform ohne Paßwort ausgelöst werden.
SM65
Analysetool der HintergrundverarbreitungEinfacher Test, ob die Hintergrundverarbeitung funktioniert. Unter -> werden weitere, intensivere Tests angeboten.
SM66 Globale Workprozeß-ÜbersichtAktuell aktive Workprozesse anzeigen; Diese Funktion ist ein nützliches Performance-Analyse-Hilfsmittel. Besonders vorteilhaft ist, dass alle Prozesse auf allen Server angezeigt werden.
RZ01 Job-Scheduling MonitorGraphische Darstellung der Background-Workprozesse, deren vergangener und geplanter Belegung. Sprungbrett für diverse Job-Analysen über die Menüs und .
Mit dem Menü -> kann man innerhalb des
Reportings (Transaktion SA38 bzw. SE38) einen ABAP im Hintergrund
starten, ohne einen Job anlegen zu müssen. Für einen Job in der
Transaktion SM36
bzw. SM37 ist
eine VarianteVariante
erforderlich.
Varianten sind vorgefertigte Eingaben von Report-Parametern. Varianten können so angelegt werden, dass diese nur für Hintergrund-Jobs verwendet werden können oder dass die Eingabe von einzelnen oder allen Feldern nicht möglich ist. Nützlich sind Varianten bei Reports, die häufig mit denselben Parametern oder bestimmten Variablen gestartet werden sollen.
Mit der Transaktion SE38 bzw. SA38 und dem Menü
->
kann man Varianten
auswählen oder erzeugen. Bei
der Funktion -> erzeugt das System
automatisch eine temporäre Variante.
Viele Online-Listen sind ebenfalls Reports, für die Varianten hinterlegt werden können. Das ist nützlich als Merkhilfe oder Schablone für Parameter, aber auch als Kommunikationshilfmittel zwischen Anwender und Administrator. Mit einer Variante kann man sehr einfach sicherstellen, dass beide dieselben Parameter verwenden.
Statische Varianten sind unflexibel, es ist insbesondere häufig notwendig, regelmäßige Jobs mit dem aktuellen Datum zu starten. Hierfür kann man Variablen in Varianten verwenden, dabei gibt es drei Möglichkeiten:
Datumsvariablen; Typ D, Tagesdatum oder Tagesdatum ± Anzahl Tage
Selektionsvariablen (statische Werte); Typ T
Benutzerspezifische Variablen (Memory-ID;
set/get-parameter); Ändern aus Programm mit
Funktionsbaustein VARI_USER_VARS_*, durch den
Benutzer mit ->
Variablen werden in der Variantenpflege angelegt, indem man die Option Selektionsvariable anwählt. Im folgenden Fenster kann man die Variable genauer spezifizieren.
Externe Programme werden unter Unix™ mit
den Rechten des Benutzers
ausgeführt. Damit ist ein sehr weitreichender Zugriff auf die
Daten des R/3-Systems möglich. Achten Sie darauf, dass möglichst
wenige Benutzer die Berechtigung zum Starten externer Programme
haben und diese nach Möglichkeit weiter eingeschränkt wird.
sidadm
Programme stehen entweder im Suchpfad den oder
müssen mit dem vollen Pfad angegeben werden. Besser ist die
Definition von logischen Kommandos mit der Transaktion
sidadmSM49. Damit kann
man Unterschiede zwischen den verschiedenen Betriebssystemen
verdecken und die eigentlichen Programme vor den Anwendern
verbergen.
Für den Start externer Programme muß bis zum R/3-Release der
Benutzer SAPCPIC mit dem
Paßwort ADMIN im
entsprechenden Mandanten existieren. Andernfalls ist keine
Rückmeldung des Jobs in das R/3-System möglich.
Bei Problemen finden Sie Logs und Traces im Systemlog
(SM21), in den
Developer-Traces (SM51,
->
, Datei
dev_cp, dev_xpg
bzw. die Workprozeß-Traces) und können mittels SM65 ausführliche Ausgaben
anfordern.
Das geprüfte Berechtigungsobjekt ist S_LOG_COM in der Klasse Basis - Administration. Hier kann
man die Ausführung von Programmen ja nach Rechner,
Betriebssystem und Kommando (real oder logisch?) erlauben.
Hintergrungverarbeitung kann das System stark belasten. Im Gegensatz zur Sanduhr in einem Modi (und irgendwann sind die Modi alle) merkt der Anwender davon zunächst nichts. Wenn Sie ein größeres System mit vielen Work-Prozessen für die Hintergrundverarbeitung haben, dann kann ein Anwender praktisch das gesamte System lahmlegen. Erschwerend kommt hinzu, dass besonders langlaufende und belastende Programme in den Hintergrund geschickt werden.
Abhilfe ist hier nur auf zweierlei Weise möglich: Entweder werden Anwender entsprechend ausgebildet und verhalten sich vernünftig (so vernünftig wie Anwender halt sein können...) oder die Berechtigung zum Start von Hintergrundprogrammen wird allen Anwendern entzogen und Jobs werden zentral verwaltet, eingeplant und überwacht. Auf Großrechnern war das Zweite üblich, heute wohl eher die Verantwortung der Anwender.
S_BTCH_NAMDer Job darf unter einer anderen Benutzerkennung ablaufen, die Berechtigung ist einschränkbar auf Benutzernamen. Damit ist es möglich (und sinnvoll) spezielle Batch-Benutzer anzulegen.
S_BTCH_ADMJa/Nein-Eintrag, der festlegt, ob ein Benutzer Jobs verwalten (und z.B. direkt starten darf). JA?
S_BTCH_JOBErlauben von Operationen auf Jobs, einschränkbar auf
einzelne Aktionen (PROT, RELE, SHOW) und
Job-Gruppen (was ist das?)
S_LOG_COMBerechtigung zum ausführen von logischen Kommandos nach Rechnername, Betriebssystem und Kommando vergebbar.
Berechtigungsklasse: Basis - Entwicklungsumgebung, Objekt: ABAP: Programmablaufprüfungen, S_PROGRAM, Aktionen SUBMIT (Start), VARIANT (Varianten-Pflege und Start) und EDIT (Attribute und Textpool). Berechtigungsgruppe ABAP/4-Programm (Report Attribute?).
Wie heißt die Berechtigung für externe Programme (SM49?)
Gehen logische Kommandos in Jobs? Ich glaube nein
Das Job-Protokoll ansehen mit der Transaktion
SM37.
Das Systemlog mit SM21 ansehen. Achtung: die richtige
Instanz erwischen!
Die Developer-Traces ansehen (SM51)
Existieren Dumps? Mit ST22 ansehen.
Geht es um externe Events? Dann das Kommando sapevt -t verwenden.
Nützt das alles nichts? Dann mit SM65 Traces einschalten und
analysieren.
OSS-Hinweis 37104 lesen.
SAP R/3 unterstützt viele Plattformen, dabei unterscheiden sich die Namen von Betriebssystem-Dateien und Betriebssystem-Programmen zum Teil drastisch. Mit logischen Namen kann man diese Unterschiede verdecken, damit ist es möglich, ABAPs und Programme auf verschiedenen Plattformen ohne Anpassungen zu verwenden.
Logische Dateinamen bestehen aus drei Teilen: dem logischen Pfad, die Zuordnung des physikalischen Pfades in der jeweiligen Syntax abhängig vom verwendeten Betriebssystem und die Zuordnung eines logischen Pfades zu einem logischen Dateinamen (als Attribut ist hier die Ersetzung des Dateinamens hinterlegt).
Welche Tabellen sind das? Mandantenübergreifend!
FILE
Define logical filenames
SM49
Logische Kommandos definieren und ausführen
SM69
Logische Kommandos ausführen
In eigenen ABAP-Programmen kann mit CALL
SYSTEM ein Betriebssystem-Kommando ausgeführt
werden. Mit dem Funktionsbaustein WS_EXECUTE kann ein Programm auf
dem Frontend-Rechner gestartet werden.
Nur die wichtigsten: FILENAME (muß!), OPSYS, INSTANCE, SYSID, DBSYS, CLIENT, DATE und Co.
PARAM_1, PARAM_2 (wie geht das?)
<F=Funktion> Funktionsbaustein FILENAME_EXIT_Name
<P=Profile-Parameter>
<V=Variable> aus der Variablentabelle (Varianten zum Vergleich?)
Berechtigungeklasse: Basis - Administration
Berechtigungsobjekt: Berechtigung zum Ausführen logischer Kommandos S_LOG_COM, Einschränkbar auf Rechnername, Betriebssystem und logisches Kommando.
Berechtigungen für den Dateizugriff, S_DATASET, Einschränkbar auf ABAP/4-Programmname, Aktivität (lesen/schreiben) und physischer Dateiname (3.0-Bug: geht nicht).
Hintergrund-Jobs können nicht nur direkt und zeitgesteuert eingeplant werden, es ist auch möglich, diese nach dem Eintritt eines speziellen Ereignisses starten zu lassen. Ein derartiges Ereignis ist ein SAP-Event, die Startart ist eventperiodisch.
System/Benutzer-Event
SM62
Anzeige/Pflege von Event-BezeichnungenVor der Verwendung muß ein Event definiert werden, dies geschieht mit dieser Transaktion.
SM64
Auslösen von EventsVor der Verwendung muß ein Event definiert werden, dies geschieht mit dieser Transaktion.
SM36
Job-DefinitionErstellen eines Jobs und Zuordnung eines Events
SM37
Job-ÜbersichtZuordnung eines Events im Änderungsmodus. Bei der Selektion ist es ebenfalls möglich, nach Jobs zu suchen, die nach einem bestimmten Event gestartet werden.
Event-Parameter
You may even trigger an event by running the command sapevt, see Abbildung 5.1, „Trigger an event from the operating system level“ for an example. This program is available for all supported plattforms including Windows NT. Be aware, that anybody in your LAN can send events (you only need to now the application server and the instance number your SAP runs on). You won't even know which IP address has triggered the event.
%/sapmnt/hermes09:c11adm 4> sapevt usage: sapevt event [-p param] [-t] pf=<profile> | name=<Name> nr=<nn> hermes09:c11adm 5> sapevt ZZ_TEST -t -p Jochen_Text pf=/sapmnt/C11/profile/DEFAULT.PFL hermes09:c11adm 6> sapevt ZZ_TEST -p Jochen_Text pf=/sapmnt/C11/profile/DEFAULT.PFL hermes09:c11adm 7> sapevt ZZ_DUMMY -p Jochen_Text pf=/sapmnt/C11/profile/DEFAULT.PFL hermes09:c11adm 8> sapevt ZZ_DUMMY -t -p Jochen_Text pf=/sapmnt/C11/profile/DEFAULT.PFLSID/exe/sapevt \ pf=/sapmnt/SID/profile/DEFAULT.PFL \Event
Abbildung 5.1. Trigger an event from the operating system level
Parameter zu events, logging(!)
As described above, you can triggern an event from any host
running an operating system supported by SAP. All you need is a
profile similar to Abbildung 5.2, „A profile for sapevt“. Make sure
that your services file contains the
definition of
sapms. Look at
you central instance if in doubt.
SID
SAPSYSTEMNAME =SIDrdisp/mshost =message serverrdisp/btcname =host_sid_system numberhermes09:c11adm 9> cdpro hermes09:c11adm 10> sapevt -t ZZ_DUMMY name=C11 nr=11 sapparam(1c): No Profile used. hermes09:c11adm 11> sapevt ZZ_DUMMY name=C11 nr=11 -t sapparam(1c): No Profile used. Nur der zweite geht...
Abbildung 5.2. A profile for sapevt
Aus eigenen ABAPs kann mit dem Funktionsbaustein BP_RAISE_EVENT ein beliebiger Event
ausgelöst werden. Gibt es dazu spezielle Berechtigungen?
Die Definition von Jobs ist für viele Fälle zu aufwendig. Mit
der Transaktion SE38
→ kann ein ABAP auch ohne eine Variante im
Hintergrund ausgeführt werden. Der Jobs wird, sofern der
Benutzer ausreichende Berechtigungen hat direkt gestartet. Ein
Nachteil ist, dass der Anwender den Zielrechner für diesem Job
nicht bestimmen kann.
Auch wenn man ABAPs auch ohne Varianten starten kann, nutzen Sie Varianten! Es ist eine einfache Möglichkeit, sich Parameter für bestimmte Läufe zu merken ohne diese auf Papier aufzuschreiben. Auch für die Kommunikation zwischen Anwendern und Systemverwaltern ist es nützlich, da beide dieselben Parameter verwenden.
Reorg von Job-Protokollen? RSBTCDEL
Die Job-Protokolle werden im Unix-Dateisystem unter
/sapmnt/
gespeichert. Es ist ziemlich unangenehm, wenn das Dateisystem
voll ist.SID/global/MandantJOBLG
Jobs stehen in der Tabelle TBTCO, dort ist auch der Job-Status
hinterlegt.
For an SAP upgrade the upgrade procedure stops the planned
jobs with the report BTCTRNS1. The jobs are in a special
state "stopped during upgrade". After the upgrade you have to
use report BTCTRNS2 to
reenable the jobs. You can also use the reports to disable jobs
for a system copy or during a client copy.
Funktionsbausteine, pflegbar mit SE37, siehe auch Kapitel 9, Development-Tools.
Aufruf im ABAP mit CALL FUNCTION,
JOB_OPENBeginn eines Jobs
JOB_SUBMITJobstep?
JOB_CLOSEEnde eines Jobs
BP_JOB_*Diverse Funktionsbausteine zur differenzierten Job-Steuerung.
BP_JOBLOG_READLesen von Joblogs.
Mit Batch-Input können größere Datenmengen recht schnell und geprüft in das R/3 System eingespielt werden.
Wie spielt man Batch-Input ab? Siehe auch OK-Codes zum BI im Abschnitt...
Was gibt es an Tools?
Was ist zu beachten? Nachvollziehbarjkeit Schnittstellen
Was braucht man an Berechtigungen? Zum Abspielen? Zum Abspielen als anderer Benutzer? Wann macht das Sinn?
Wie erstellt man Batch-Input? Batch-Input recorder oder die Funktionsbausteine BDC*. Oder Programme wie RFBIBL*.
SHDB
Batch-Input: AufzeichnungManuelle Aufzeichnung von Batch-Input Mappen. Eine nette Hilfe, um zu wissen, wie man die Mappe mit einem ABAP erstellen kann.
SM35
Batch-Input: MonitoringDie zentrale Stelle zum Abspielen und Analysieren von Batch-Input Mappen. Hier können Sie Mappen auch exportieren und importieren, und damit zwischen Systemen oder Mandanten transportieren.
Beachten Sie beim Erstellen von Mappen eine Namenskonvention. Dann können Sie Berechtigungen einfach Modul- oder Abteilungsweise vergeben, ohne bei jeder neuen Mappe neue Berechtigungen vergeben zu müssen.
An dieser Stelle bewährt sich eine zentrale Vergabe von Berechtigungen und die Festlegung (und Einhaltung) einer entsprechenden Konvention (die natürlich allen Beteiligten bekannt sein sollte).
FB07) konsequent einsetzen
oder ausschalten. Andernfalls kommt des irgendwann zu
Kurzdumps mit BDC_OVERFLOW bei der Batch-Input-Verarbeitung.
Dann werden in sehr kurzer Zeit oft sehr viele Kurzdumps
erstellt und die Datenbank läuft voll. Ziemlich
unangenehm.Inhaltsverzeichnis
SAP Systeme sind komplex und damit fehleranfällig. Jede Änderung an Programmen oder Customizing-Einstellungen kann die Stabilität und Verfügbarkeit des R/3-Systemes beeinträchtigen. Daher findet (hoffentlich) die Entwicklung von Programmen, Modifikationen von SAP-Programmen und das Customizing in einem Entwicklungssystem statt. Wenn Bedarf besteht, dann kann zwischen das Produktions- und das Entwicklungssystem noch ein Konsolidierungssystem eingebaut werden, in dem Massentest u.ä. stattfinden können.
Generell sollten Sie versuchen, die Systeme möglichst ähnlich zu halten, das heißt unter anderem, dass Transporte möglichst schnell durch die Systeme geschoben werden sollten. Auch Releasewechsel finden in der Reihenfolge der Systeme statt: erst das Entwicklungssystem, dann das Konsolidierungssystem und erst zuletzt das Produktionssystem.
Praktisch alle Objekte, die Sie im Rahmen des Customizings
anfassen, sind transportierbar. Entweder fragt das System
direkt beim Speichern nach einer Auftragsnummer, oder die
entsprechende Transaktion hat einen Transportanschluß, der
z.B. über ein Menü angesprochen werden kann. Nur in seltenen
Ausnahmefällen sollten Sie manuell Transporte mit der
Transaktion SE01
anlegen (müssen).
SE01
Transportaufträge verwalten (Alt)
Veraltete Transaktion, die nur noch vorhanden ist, um
manuell Transporte, Stücklisten usw. erstellen zu können.
In der Regel werden Sie die Transaktionen SE09 und SE10 verwenden. Nützlich
ist die Transaktion auch, wenn Sie sich einen
Transportauftrag, dessen Nummer bekannt ist, genauer
ansehen wollen; genauso die entsprechenden Protokolle.
SE06
Konfiguration Transportsystem & SystemänderbarkeitSie können Änderungen an Repository-Objekten oder mandantenübergreifendes Customizing in einem System verbieten, außerdem können Sie bei einem relativ einfachen Transportverbund die Systeme hier menügesteuert konfigurieren. Bei komplexen Systemverbünden müssen Sie die in Abschnitt 7.3, „Tabellen des Transportsystems“ angegebenen Tabellen manuell pflegen.
SE09 Customizing
OrganizerÜbersicht über Customizing-Aufträge. Hier können Aufträge freigegeben oder anderweitig verwaltet werden, man kann verschiedene Tools aufrufen und u.a. die Transportprotokolle ansehen.
SE10
Workbench Organizer
Übersicht über Workbench- und Customizing-Aufträge.
Ansonsten Funktionen wie unter SE09 angeben.
E071, TADIR
| SAP-Tabelle | Beschreibung |
|---|---|
TSYST | Systeme des Transportverbundes |
TDEVC | Development-Klassen |
T? | Belieferungs-Systeme |
T? | Transport-Layer |
Tabelle 7.1. Tabellen für die Transportsteuerung