SAP R/3 Basissystem

kurzgefaßt

Jochen Hein


          Auf der Fittel 18
          53347 Alfter
          Germany
          Telephon: +49 (0) 160 88 41 036
          e-Mail: 
        

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


Widmung und Danksagung

Dieses Werk ist allen Personen gewidmet, die Freie Software entwickeln, supporten, maintainen, dokumentieren oder benutzen. Es macht Spaß mit Euch allen zu arbeiten.

Inhaltsverzeichnis

1. Einleitung
2. Tipps und Tricks für Unix-basierte Systeme
2.1. Allgemeine Tipps
2.2. Nützliche Aliase
2.3. Useful Scripts
2.4. Useful SAP commands
2.5. Additional Unix commands
2.6. Der Dispatcher-Monitor dpmon
2.7. Unix-Kommandos die ich mir nicht merken kann...
3. Tips and Tricks for NT
3.1. Useful aliases
4. Useful Functions in SAP R/3
4.1. OK-Codes (Function Codes?)
4.2. OK-Codes bei der Batch-Input Verarbeitung
4.3. Benutzerparameter (Set/Get parameter)
4.4. Transaktionen zur Benutzerpflege
4.5. System Management
4.6. System Monitoring
4.7. Nützliche ABAP/4-Programme
4.8. Tabellenpflege
4.9. Logon-Groups - Lastverteilung und Ausfallsicherheit
5. Hintergrundverarbeitung
5.1. Voraussetzungen für die Hintergrundverarbeitung
5.2. Transaktionen für die Hintergrundverarbeitung
5.3. Reports und Varianten
5.3.1. Vorgefertigte Variablen in Varianten
5.4. Starten externer Programme
5.5. Berechtigungen für die Hintergrundverarbeitung
5.5.1. Berechtigungsklasse: Basis - Administration
5.6. Trouble-Shooting zur Hintergrundverarbeitung
5.7. Logische Dateinamen und Betriebssystem-Kommandos
5.7.1. Transaktionen und Tabellen
5.7.2. Variablen in Pfaden
5.7.3. Berechtigungen zum Dateizugriff
5.8. Events
5.9. Tipps zur Hintergrundverarbeitung
5.10. Hintergrundverarbeitung aus eigenen ABAPs steuern
5.11. SQL commands to manipulate jobs
6. Batch-Input
6.1. Transaktionen zu Batch-Input
6.2. Tipps für den Umgang mit Batch-Input
7. Transporte zwischen SAP-Systemen
7.1. Überblick
7.2. Transaktionen
7.3. Tabellen des Transportsystems
7.4. Profile und Berechtigungen
7.5. Das /usr/sap/trans-Verzeichnis
7.5.1. Heterogenous Systemlandscape
7.6. Using tp
7.6.1. Befehle
7.6.2. Unconditional-Modes
7.7. Typical tp usages
7.8. More tp options
7.9. Not so typical tp usage
7.10. R3trans usage
7.10.1. Steuerdatei
7.10.2. Examples of R3trans usage
7.11. Client Copy
8. Mandantenverwaltung
9. Development-Tools
9.1. ABAP™ Tipps und Tricks
9.1.1. Variable Titelzeilen beim Reporting
9.2. Befehle des ABAP-Editors
9.3. Modifikationen an SAP-Programmen
9.4. Erweiterungen zum SAP-Standard
9.4.1. Erweiterungen von SAP-Tabellen
9.4.2. User-Exits
9.4.3. Field-Exits
9.5. Berechtigungen
9.6. Namenskonventionen und Namensräume
9.7. Etwas ABAP-Geschichte
10. Sending mail from within SAP
10.1. sendmail configuration for SAP R/3
11. Datenbank Abhängigkeiten für Oracle
11.1. Umgebungsvariablen für Oracle
11.2. Wichtige Konfigurationsdateien
11.3. Verzeichnis-Layout
11.4. Monitoring
11.5. SAP Programme zur Datenbankverwaltung
11.6. Oracle-Programme zur Datenbankverwaltung
11.7. Useful SQL scripts
11.8. Troubleshooting
11.9. Oracle Tables/views
11.10. Tips zur Oracle-Verwaltung
11.10.1. Events in init.ora
11.11. Nützliche Oracle-Befehle
12. Tips for usind MaxDB
12.1. database tools for MaxDB
12.2. Useful SQL scripts
13. Nützliche Tipps und Tricks
13.1. Upgrades
13.2. Branchenpakete
A. Standard-Paßwörter des R/3-Systems
A.1. SAP Benutzer
A.2. Datenbank-Benutzer - Oracle
A.3. Datenbase User - MaxDB
A.4. Standard-Paßwörter für Informix
A.5. Datenbank-Benutzer - SAP-DB
A.6. Benutzer der Netweaver 04 Demo DVD
B. SAP Hinweise
C. GNU Free Documentation License
0. PREAMBLE
1. APPLICABILITY AND DEFINITIONS
2. VERBATIM COPYING
3. COPYING IN QUANTITY
4. MODIFICATIONS
5. COMBINING DOCUMENTS
6. COLLECTIONS OF DOCUMENTS
7. AGGREGATION WITH INDEPENDENT WORKS
8. TRANSLATION
9. TERMINATION
10. FUTURE REVISIONS OF THIS LICENSE
How to use this License for your documents
D. Auflösungen des Acronyms SAP
D.1. Deutsche Auflösungen
D.2. Englische Auflösungen
D.3. Französische Auflösungen
D.4. Italian
D.5. Portuguêse (came from Brasil)
D.6. Spanish
D.7. Andere Auflösungen
D.8. Auflösungen für ABAP
E. Fahrpläne
E.1. Erstellen einer Systemkopie
E.2. Systemcopy/Migration with R3load
14. Cheat-Sheet with useful backint commands
F. Regelmäßige Tätigkeiten
F.1. Tägliche Aufgaben
F.2. Wöchentlicher Kram
F.3. Monatliche Tätigkeiten
G. Erfahrungen aus der bisherigen Installation
G.1. Gute Erfahrungen
G.2. Schlechte Erfahrungen
G.3. Prämissen für ASAP
G.4. The Brief. If you haven't got one, invent one
H. Online-Resourcen
Literaturverzeichnis

Abbildungsverzeichnis

2.1. Useful shell functions
2.2. Usage examples
2.3. a Distfile for rdist
2.4. starting SAP script from cron
2.5. Crontab
2.6. Shell functions
2.7. Aufruf des Befehls dpmon
2.8. Shell-Skript für dpmon in einer komplexen Systemlandschaft
3.1. Excerpt from a ChangeLog
5.1. Trigger an event from the operating system level
5.2. A profile for sapevt
7.1. The TPPARAM file
7.2. Example samba configuration
7.3. Typical tp usage
7.4. R3trans Client Copy
7.5. Calling R3trans
7.6. Copying variants with R3trans
9.1. Variable Titelzeilen beim Reporting
9.2. Die Definition eines Field-Exits
10.1. Sendmail Example
10.2. Sendmail Feature
11.1. What tablespaces do have which extent-management
11.2. Resize of Online Redo Logs
11.3. Online Rebuild on Indices
E.1. Aufbau des SQL-Skriptes

Tabellenverzeichnis

2.1. predefined aliases
2.2. User-defines aliases
2.3. Aliase für die Systemverwalter
2.4. Useful commands
3.1. predefined aliases
3.2. User-defines aliases
4.1. OK-Codes im SAP-R/3
4.2. OK-Codes bei der Batch-Input Verarbeitung
4.3. Einige wichtige Benutzerparameter
4.4. Transaktionen zur Benutzerpflege
4.5. ABAPs zur Benutzerverwaltung
4.6. ABAPs zum SAPOffice
4.7. Funktionen zur Systemüberwachung
4.8. Transaktionen zum System-Monitoring
4.9. Nützliche ABAP/4-Programme
4.10. Transaktionen zur Tabellenpflege
7.1. Tabellen für die Transportsteuerung
7.2. The directory /usr/sap/trans
7.3. Buffer related tp commands
7.4. Befehle für TP
7.5. Unconditional Modes for tp Export
7.6. Unconditional Modes Import
7.7. Return codes of R3trans
7.8. Unconditional R3trans Modes for Export
7.9. Unconditional Modes for R3trans Import
8.1. Mandanten eines R/3 Systems
8.2. Transaktionen zur Mandantenverwaltung
8.3. Nützliche Programme zur Mandantenverwaltung
11.1. Transaktionen zur Datenbankverwaltung
A.1. Standard-SAP Benutzer
A.2. Oracle-Benutzer
A.3. User in MaxDB
A.4. Unix-Benutzer
A.5. SAP R/3 user
B.1. releaseunabhängige SAP-Hinweise
B.2. nützliche SAP-Hinweise für Release 3.0F
B.3. nützliche SAP-Hinweise für Release 4.0B
B.4. Hinweise zu Oracle
E.1. xxx
E.2. Checklist for R3load Export
E.3. Checklist for R3load Import

Beispiele

2.1. Auszug aus einem ChangeLog
9.1. Suchen einer Zeichenkette mit Sonderzeichen

Kapitel 1. Einleitung

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 erreichen.

Jochen Hein

Kapitel 2. Tipps und Tricks für Unix-basierte Systeme

2.1. Allgemeine Tipps

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.

2.2. Nützliche Aliase

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 sidadm angemeldet sind. Sie können (und sollten) weitere Aliase definieren. and should add more aliases to ˜/.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.

AliasDescription
cdexeChange to the exe-directory /sapmnt/SID/exe
cdarchChange to the saparch-directory /oracle/SID/saparch
cdDChange to the instance-directory /usr/sap/SID/DVEBMGS[0-9][0-9]
cdJCChange to the instance-directory /usr/sap/SID/JC[0-9][0-9]
cdSChange to the instance-directory /usr/sap/SID/SCS[0-9][0-9]
cdproChange to the profile-directory /sapmnt/SID/profile
cdgloChange to the global-directory /sapmnt/SID/global
cddumpDB2: 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

AliasDescription
cdtransChange to /usr/sap/trans
cdputChange to /usr/sap/put
sapdbasapdba -u / if you changed your database password.
brbackupbrbackup -u / if you changed your database password.
brarchivebrarchive -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 sidadm and orasid (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 sidadm id and a sidadm hostname from somewhere in your net where the .rhosts permits a login.

AliasDescription
sidadmrsh -l sidadm appl-server
orasidrsh -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


2.3. Useful Scripts

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 sidadm that I use. You may or may not want them.


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!

2.4. Useful SAP commands

CommandDescription
disp+work -VDisplay Kernel Version
rslgviewSyslog Viewer: need to check!
sapguiSAPGui for unix
dpmonAnzeige des Dispatcher-Monitors
sapevtSenden von Events an ein SAP-R/3-System
sapinfoAuslesen von Systeminformationen/Prüfen der Systemverfügbarkeit
saplicenseAnzeige und Ändern der SAP-Lizenz, you may also use SLICENSE instead.

Tabelle 2.4. Useful commands


Beispiele für rslgview

sapgui, saplogon-Beispiele?

2.5. Additional Unix commands

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

2.6. Der Dispatcher-Monitor dpmon

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).

dp pf=/usr/sap/SID/SYS/profile/SID_DVEBMGS00_hostname

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


2.7. Unix-Kommandos die ich mir nicht merken kann...

Realer Speicher: prtconf | grep Memory Swap: swap -l

Kapitel 3. Tips and Tricks for NT

Inhaltsverzeichnis

3.1. Useful aliases

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.

3.1. Useful aliases

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 sidadm. You may and should add more aliases to ~/.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.

AliasDescription
cdexeChange to the exe-directory /sapmnt/SID/exe
cdarchChange to the saparch-directory /oracle/SID/saparch
cdDChange to the work-directory /usr/sap/SID/DVEBMGS00

Tabelle 3.1. predefined aliases


AliasDescription
cdtransChange to /usr/sap/trans
cdputChange to /usr/sap/put
sapdbasapdba -u / if you changed your database password.
brbackupbrbackup -u / if you changed your database password.
brarchivebrarchive -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?

Kapitel 4. Useful Functions in SAP R/3

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.

4.1. OK-Codes (Function Codes?)

OK-Codes

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-CodeBeschreibung
/oÜbersicht der offenen Modi und die Möglichkeit einen bestehenden zu löschen oder einen neuen zu erzeugen.
/oTransaktionÖffnen eines neuen Modi mit der Transaktion transaktion
/nTransaktion Beenden der aktuellen Transaktion und starten der neuen Transaktion transaktion im aktuellen Mode. Achtung, nicht gespeicherte Daten gehen ohne Warnung verloren!
/*Transaktion 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!
/iModus 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).

4.2. OK-Codes bei der Batch-Input Verarbeitung

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ü System+Dienste+Batch-Input mit Hilfe der hier angegebenen Codes ausführen.

OK-CodeBeschreibung
/bendBeenden 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!

4.3. Benutzerparameter (Set/Get parameter)

Benutzerparameter

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 technische Info 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.

ParameterBedeutung
BILDownload-Bilanzversion
BUKBuchungskreis
GR8Download-Pfad
GR9Upload-Pfad
KPLKontenplan der Finanzbuchhaltung
WRKWerk

Tabelle 4.3. Einige wichtige Benutzerparameter


Was sind Varianten-Variablen?

GPA's und RFC-Transaktionen. Bei mir geht's erstmal nicht...

4.4. Transaktionen zur Benutzerpflege

Benutzerpflege

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.

TransaktionBeschreibung
SU01Pflege Benutzerstämme, mit Anzeige von Benutzer- und Profil-ÄnderungenBenutzerstamm
SU02Pflege von BerechtigungsprofilenBerechtigungsprofile
SU03Pflege von BerechtigungenBerechtigungen
SU22Anzeige von Berechtigungsprüfungen?
SU50BenutzerfestwerteBenutzerfestwerte wie Drucker, Sprache oder StartmenüStartmenü einrichten
SU51Benutzeradresse selbst pflegenBenutzeradresse
SU52Eigene BenutzerparameterBenutzerparameter pflegen, fremde werden mit der Transaktion SU01 gepflegt.
SU53Anzeige der Prüfwerte (geprüfte Berechtigungsobjekte)
SU54BenutzermenüBenutzermenü pflegen
SU55Benutzermenü startenBenutzermenü
SU56BenutzerpufferBenutzerpuffer (aktuelle Berechtigungen) analysieren

Tabelle 4.4. Transaktionen zur Benutzerpflege


ReportBeschreibung
RSUSR003Standard-Paßwörter
RSUSR005Kritische Berechtigungen
RSUSR006Gesperrte Benutzer und Falschanmeldungen
RSUSR008Kombinationen kritischer Transaktionen
  

Tabelle 4.5. ABAPs zur Benutzerverwaltung


ReportBeschreibung
RSSOINBOAnzahl SAPOffice Dokumente im Eingang
RSSOPRIVAnzahl SAPOffice Dokumente
RSSORE01Konsistenz-Check SAPOffice
RSSOTRCLLöschen SAPOffice Traces
  

Tabelle 4.6. ABAPs zum SAPOffice


4.5. System Management

System ManagementSystemüberwachung

Die aktuelle Transaktion findet man unter System -> Status. 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.

CCMSComputing Center Management System

DB13?

TransaktionBeschreibung
RZ03Control Panel
RZ04Pflege von Instanzen und Betriebsarten
RZ10Profil-Pflege
RZ11Attribute zu Profil-Parametern
SRZLAufruf des CCMS
SMLGPflege von Logon Groups
SU01Pflege Benutzerstammsätze
SU02Berechtigungsprofile
SU03Berechtigungen

Tabelle 4.7. Funktionen zur Systemüberwachung


4.6. System Monitoring

System Monitoring

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

TransaktionBeschreibung
AL11Anzeige von Unix-Dateien in verschiedenen Pfaden
OS01LAN check with ping (DB-Server, Applikationsserver, Frontend-Rechner
RZ03Alert-Monitor
SA38Starten von ABAPs
SM02Versenden von Systemnachrichten
SM04Benutzerübersicht, je Server und Speicherbedarf je Benutzer, Echo-Modus. Alle SAP-Benutzer auf einen Blick sieht man in der Transaktion SMLG.
SM13Steuerung des Verbuchers
SM21Systemlog
SM35Batch Input
SM35PBatch Input Reorganisation
SM37Job Übersicht
SM50Instance View
SM51Prozesse der aktuellen Instanz
SM56Status Nummernkreispuffer
SM66Globale Prozess-Übersicht Prozesse
SMGWGateway-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.
ST04Datenbank-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.
ST07Anwendungsmonitor
ST14Anwendungsanalyse
ST22Dump analysis
SRZLDirekter Aufruf des CCMS
TU02Anzeige von Profilparametern, der Datei initSID.ora 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.

Warnung

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.

4.7. Nützliche ABAP/4-Programme

ABAPBeschreibung
RDDPROTOAnzeige der Upgrade-Protokolle (ab Release 4.5x ersetzt durch /usr/sap/trans/upgrade/SID/REL/prosa/index.html)
RSBDCOS0Ausführen von Betriebssystemkommandos
RSLG0014Testprogramm: Schreiben von Systemlog-Einträgen
RSPARAMAnzeige der aktiven SAP Profile Parameter
RSPFPARAnzeige der aktiven SAP Profile Parameter
RSTRANSP?Transport von Varianten
RSUSR003Paßworte der SAP-Standardbenutzer prüfen.

Tabelle 4.9. Nützliche ABAP/4-Programme


4.8. Tabellenpflege

TabellenpflegeCustomizing

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.

TransaktionBeschreibung
SM30View-Pflege
SM31Tabellen-Pflege
SCU0Tabellenabgleich zwischen Systemen
SCU3Tabellen-Historie[1]
SE01Transporting tables and more
SE11Data Dictionary
SE12Data Dictionary (Anzeige)
SE16Inhalts-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

4.9. Logon-Groups - Lastverteilung und Ausfallsicherheit

Login-GroupsLastverteilungAusfallsicherheit

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 (Werkzeuge -> Administration -> Computing Center -> Management System -> Configuration -> Logon Groups).

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ü Gruppenliste -> Format -> Erweitert wird im Übersichtsbild eine ausführlichere Liste angezeigt, die wesentlich aussagekräftiger ist, als die kurze Liste. Mit dem Menüpfad Springen -> Benutzerliste wird eine Benutzerübersicht über alle Instanzen aufgebaut, und der Pfad Springen -> Lastverteilung 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.



[1] Der Parameter client/tabrec=Mandant muß in Instanzprofil gesetzt sein

Kapitel 5. Hintergrundverarbeitung

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 Programm -> Im Hintergrund starten, 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 Programm -> Im Hintergrund 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.

Tipp

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.

5.1. Voraussetzungen für die Hintergrundverarbeitung

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.

5.2. Transaktionen für die Hintergrundverarbeitung

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ü System -> Dienste -> Jobs enthalten. Sie können Ihre gerade laufenden Jobs mit einem Knopfdruck abbrechen und sehen eine Übersicht über die letzten abgebrochenen Jobs.

SM36 Job-Definition

Erstellen 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-Übersicht

Einplanen 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 Status prüfen schaut das System etwas genauer hin und korrigiert die Anzeige.

SM39 Performance-Analyse

Nützlich, um aktuelle und durchschnittliche Laufzeiten sowie Abweichungen zu ermittlen. Mit dem Button Ansicht 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 Prozesse 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-Übersicht

Springen zu diversen Funktionen wie Systemlog und mit Springen -> Traces zu den Developer-Traces. Praktischer Einstieg ins Monitoring.

SM61 Background Objects

Verwalten 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 Event

Auslö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 Hintergrundverarbreitung

Einfacher Test, ob die Hintergrundverarbeitung funktioniert. Unter Springen -> zusätzliche Tests werden weitere, intensivere Tests angeboten.

SM66 Globale Workprozeß-Übersicht

Aktuell 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 Monitor

Graphische Darstellung der Background-Workprozesse, deren vergangener und geplanter Belegung. Sprungbrett für diverse Job-Analysen über die Menüs Monitor und Jobs.

5.3. Reports und Varianten

Mit dem Menü Programm -> Im Hintergrund starten 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ü Springen -> Varianten kann man Varianten auswählen oder erzeugen. Bei der Funktion Programm -> Im Hintergrund ausführen 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.

5.3.1. Vorgefertigte Variablen in Varianten

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 Springen -> Benutzervariablen

Variablen werden in der Variantenpflege angelegt, indem man die Option Selektionsvariable anwählt. Im folgenden Fenster kann man die Variable genauer spezifizieren.

5.4. Starten externer Programme

Externe Programme werden unter Unix™ mit den Rechten des Benutzers sidadm 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.

Programme stehen entweder im Suchpfad den sidadm oder müssen mit dem vollen Pfad angegeben werden. Besser ist die Definition von logischen Kommandos mit der Transaktion SM49. 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, Springen -> Developer-Traces, 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.

5.5. Berechtigungen für die Hintergrundverarbeitung

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.

5.5.1. Berechtigungsklasse: Basis - Administration

S_BTCH_NAM

Der 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_ADM

Ja/Nein-Eintrag, der festlegt, ob ein Benutzer Jobs verwalten (und z.B. direkt starten darf). JA?

S_BTCH_JOB

Erlauben von Operationen auf Jobs, einschränkbar auf einzelne Aktionen (PROT, RELE, SHOW) und Job-Gruppen (was ist das?)

S_LOG_COM

Berechtigung 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

5.6. Trouble-Shooting zur Hintergrundverarbeitung

  • 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.

5.7. Logische Dateinamen und Betriebssystem-Kommandos

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).

5.7.1. Transaktionen und Tabellen

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.

5.7.2. Variablen in Pfaden

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?)

5.7.3. Berechtigungen zum Dateizugriff

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).

5.8. Events

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-Bezeichnungen

Vor der Verwendung muß ein Event definiert werden, dies geschieht mit dieser Transaktion.

SM64 Auslösen von Events

Vor der Verwendung muß ein Event definiert werden, dies geschieht mit dieser Transaktion.

SM36 Job-Definition

Erstellen eines Jobs und Zuordnung eines Events

SM37 Job-Übersicht

Zuordnung 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/SID/exe/sapevt \
    pf=/sapmnt/SID/profile/DEFAULT.PFL \
    Event
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.PFL

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 sapmsSID. Look at you central instance if in doubt.

SAPSYSTEMNAME = SID
rdisp/mshost = message server
rdisp/btcname = host_sid_system number
hermes09: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?

5.9. Tipps zur Hintergrundverarbeitung

Die Definition von Jobs ist für viele Fälle zu aufwendig. Mit der Transaktion SE38 AusführenIm Hintergrund Starten 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/SID/global/MandantJOBLG gespeichert. Es ist ziemlich unangenehm, wenn das Dateisystem voll ist.

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.

5.10. Hintergrundverarbeitung aus eigenen ABAPs steuern

Funktionsbausteine, pflegbar mit SE37, siehe auch Kapitel 9, Development-Tools.

Aufruf im ABAP mit CALL FUNCTION,

JOB_OPEN

Beginn eines Jobs

JOB_SUBMIT

Jobstep?

JOB_CLOSE

Ende eines Jobs

BP_JOB_*

Diverse Funktionsbausteine zur differenzierten Job-Steuerung.

BP_JOBLOG_READ

Lesen von Joblogs.

5.11. SQL commands to manipulate jobs

After the systemcopy it might be needed to avoid starting background jobs. You have different ways to achieve that:

  • Set the number of background processes to 0 (for all instances). This can be done with the profile parameter rdisp/wp_no_btc.

  • Stop the Scheduler for background jobs by setting the profile parameter rdisp/btctime to 0.

  • Remove the background jobs from the system:

    update sapr3.tbtco set status='P' where jobname not like 'EU%'
        and jobname not like 'RDDIMP%'
        and jobname not like 'SAP%'
        and status='S';
    
    delete from sapr3.tbtcs where jobname not like 'EU%'
        and jobname not like 'RDDIMP%'
        and jobname not like 'SAP%';

Kapitel 6. Batch-Input

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*.

6.1. Transaktionen zu Batch-Input

SHDB Batch-Input: Aufzeichnung

Manuelle Aufzeichnung von Batch-Input Mappen. Eine nette Hilfe, um zu wissen, wie man die Mappe mit einem ABAP erstellen kann.

SM35 Batch-Input: Monitoring

Die 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.

6.2. Tipps für den Umgang mit Batch-Input

  • 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).

  • Achten Sie darauf, dass Mappen zeitnah abgespielt werden. Nach einem Monat weiß keiner mehr, was in welcher Mappe steht und ob diese noch relevant ist oder nicht. Ernennen Sie Verantwortliche für die verschiedenen Module oder kümmern Sie sich selber monatlich darum.
  • Gelegentlich gibt es Fehler in den Programmen zur Batch-Input-Verarbeitung, diese sind besonders gefährlich, da häufig das Fehlen einer Transaktion nicht auffällt. Daher die entsprechenden SAP-Hinweise verfolgen bzw. Patches dazu einspielen.
  • Entweder Kontrollsummen (Transaktion 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.

Kapitel 7. Transporte zwischen SAP-Systemen

7.1. Überblick

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).

7.2. Transaktionen

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änderbarkeit

Sie 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.

7.3. Tabellen des Transportsystems

E071, TADIR

SAP-TabelleBeschreibung
TSYSTSysteme des Transportverbundes
TDEVCDevelopment-Klassen
T?Belieferungs-Systeme
T?Transport-Layer

Tabelle 7.1. Tabellen für die Transportsteuerung


7.4. Profile und Berechtigungen

Organizing transports.

7.5. Das /usr/sap/trans-Verzeichnis

The central point of the transport system is the directory /usr/sap/trans. It is shared between the SAP systems and contains all transports from all systems. The directories need to be writeable by all systems (i.e. the unix group sapsys). The directories are described in Tabelle 7.2, „The directory /usr/sap/trans.

DirectoryDescription
bin Otherwise (almost) empty directory with TPPARAM
bufferThe buffer for each SAP system involved
cofilesThe control files for the transports
dataThe datafiles of the transports
logAll Logfiles
sapnamesOne file for each SAP user creating transports
tmpTemporary files
EPSElectronic Parcel Service
listener.oraDatabase dependent (more?)

Tabelle 7.2. The directory /usr/sap/trans


The directory bin should be empty, except the TPPARAM file. This file contains a description, what systems exist and how the databases are accessible. Beside the real SAP systems, you may add dummy systems that are only a name. See Abbildung 7.1, „The TPPARAM file“ for details.

# Dummy system XXX
DUM/dummy=on

Abbildung 7.1. The TPPARAM file


7.5.1. Heterogenous Systemlandscape

If you have Unix and NT and need to share /usr/sap/trans, you have basically two options: You may either add a commercial NFS client or server to your NT or install samba on your Unix system. With samba the unix system looks like an NT server from the NT point of view. See Abbildung 7.2, „Example samba configuration“ for an example configuration.

[global]
   workgroup = SAPR3
; Options for handling file name case sensitivity and / or preservation
; Case Sensitivity breaks many WfW and Win95 apps
;   case sensitive = yes
    short preserve case = yes
    preserve case = yes

; Security and file integrity related options
   lock directory = /var/lock/samba
   locking = yes
   strict locking = yes
;   fake oplocks = yes
   share modes = yes
; Security modes: USER uses Unix username/passwd, SHARE uses WfW type passwords
;        SERVER uses a Windows NT Server to provide authentication services
   security = user
; Use password server option only with security = server
;   password server = <NT-Server-Name>

; encryption?
;============================ Share Declarations ==============================
[trans]
   comment = Global /usr/sap/trans
   path = /usr/sap/trans
   read only = no
   public = no

Abbildung 7.2. Example samba configuration


Netzwerklaufwerk verbinden

7.6. Using tp

You need to change into /usr/sap/trans/bin before calling tp. tp works with buffers; there is one buffer for each SAP system. Before you can import a transport into a system you must add it to the buffer with the command addtobuffer. See Abbildung 7.3, „Typical tp usage“ for a typical usage.

% cd /usr/sap/trans/bin
% tp addtobuffer transport SID
% tp import transport SID

Abbildung 7.3. Typical tp usage


Tranportorders have a common format: SIDKnumber. If number starts with a nine (9), that is a customer created transport. Otherwise it is an SAP transport. The SID is the SID of the original system.

There are loads of commands for tp. See Tabelle 7.3, „Buffer related tp commands“ for buffer related command.

tp commanddescription
showbuffer SID

Shows the buffer of system SID

addtobuffer tranport SID

Adds transport to the buffer of system SID

delfrombuffer tranport SID

Deletes transport from the buffer of the SAP system SID

cleanbuffer SID

Removes old entries from SIDs buffer

setstopmark SID

Fügt eine Markierung in den Buffer von System SID ein, bei der ein import oder put aufhört. Wenn keine derartige Marke vorhanden ist, dann fügen die Befehle import all und put temporär eine solche ein (und löschen diese nach erfolgreichem Import).

delstopmark SID

Entfernen der Stop-Marke aus dem Buffer

Tabelle 7.3. Buffer related tp commands


Achtung: Konsistenz!

getdbinfo, clearold

7.6.1. Befehle

tp commanddescription
addtobuffer transport SIDAdd the transport transport to buffer of system SID
import all/transport SID Import all or a single transport into SID. You may add special unconditional modes.
getobjlist transportdisplays a list of the objects in transport. The source system must be defined as a dummy system in the TPPARAM file.
locksys SIDLock users others than SAP* and DDIC out of the system, they get the message `put still running'. Be aware, that even logged in users may not start new jobs, but can still work.
unlocksys SIDUnlock the system SID
lock_eu SIDLock the development environment of system SID , so no abap or dictionary development can take place.
unlock_eu SIDUnlock the development environment of system SID (back to the state before lock_eu)
getdbinfo SIDDisplays informations about the database
mehr? 

Tabelle 7.4. Befehle für TP


7.6.2. Unconditional-Modes

Unconditional modes are added after the SID with umodes. You may add more than one u-mode by simply concatenating the numbers. For example, if you would like to use the u-modes 1 and 6, add the option u16 to the tp command.

7.6.2.1. Unconditional modes for tp export

u-modeDescription
1ignore wrong state of the command file
2 do not expand TADIR selections (check!)

Tabelle 7.5. Unconditional Modes for tp Export


7.6.2.2. Unconditional modes for tp import

u-modeDescription
0 do not remove the transport from the buffer and set unconditional mode 1, so the transport gets imported at the right time again.
1 ignore that the transport as already been imported
3 overwrite originals
6 overwrite objects in uncommited(?) repairs
8 ignore restrictions from the table class
9 ignore that the system is locked for this kind of transport (how can that happen?)

Tabelle 7.6. Unconditional Modes Import


7.7. Typical tp usages

Belieferungssysteme, automatischer Import, ZCUS

Steps beim Import, Reihenfolge und Idee, /$SYNC

7.8. More tp options

client= or client999, default is 000(yes? no, I think it the export client), Macht das etwas kaputt? weiß nicht.

use another profile with pf=, default= TPPARM (cwd)

Set parameters with "-D buffreset=true", welche Paramter erlaubt?

Passing options to tp or R3trans is sometimes syntactically complicated. The easiest way to do that is to create a new TPPARAM (probably as a copy from your existing configuration) and modify that accordingly.

For a client import we needed to modify tcs, here is what we did.

  • Copy TPPARAM to TPPARAM.clientimport

  • Insert the line r3transoptions = tcs=15000000 into the new file.

  • Call tp with the option pf=TPPARAM.clientimport

See OSS note 103582 for details.

7.9. Not so typical tp usage

Not so typical tp usage: backtransport, reference client

7.10. R3trans usage

tp calls internally the command R3trans which does the real work. Normally, there is not much need in using R3trans directly. The typical use is copying data between clients where the SAP client copy does not work. Cases are big tables and variants for reports.

R3trans has a couple of options that are useful, even if you do not want to copy some data. The syntax of R3trans is:

R3trans [options] [control file]

Valid options are:

  • -u unconditional mode concatenate options.

  • -v verbose

  • -w filename writes the log of the import into the file filename. Default is trans.log.

Return codes

Return codeDescription
0Everything is ok
4warning, which may be ignored
8problems
12severe problems, maybe the files were unreadable or writeable or problems with the database
16internal errors

Tabelle 7.7. Return codes of R3trans


R3trans has some restrictions, on what it is allowed to export or import. You may lift some of the restrictions by adding an unconditional mode with the option -u. Tabelle 7.8, „Unconditional R3trans Modes for Export“ and Tabelle 7.9, „Unconditional Modes for R3trans Import“ show the allowed unconditional modes for export and import.

u-modeDescription
1ignore the state of the change request
8 permit the selection of tables not allowed for R3trans

Tabelle 7.8. Unconditional R3trans Modes for Export


u-modeDescription
1 ignore that the transport has already been imported
2 overwrite originals
3 overwrite system dependent objects
6 overwrite repaired objects
8 ignore restrictions based on the table class and import all entries into the given client.

Tabelle 7.9. Unconditional Modes for R3trans Import


7.10.1. Steuerdatei

Was steht da drin?

7.10.2. Examples of R3trans usage

A typical R3trans usage is the copy of some tables between clients. Abbildung 7.4, „R3trans Client Copy“ shows ann example for copying some data from one client to another. You are responsible for preserving data integrity, R3trans has no real help for you.

source client=000
target client=100
select * from kna1

Abbildung 7.4. R3trans Client Copy


Calling R3trans

% R3trans -V -w /tmp/r3trans.log ./r3trans.control

Abbildung 7.5. Calling R3trans


Another typical R3trans usage is the copy of report variants between clients. Report variants are client dependent, but are not part of a client copy. So you must use R3trans to copy variants manually. See Abbildung 7.6, „Copying variants with R3trans for an example

source client=000
target client=100
select * from VARI
select * from VARID
select * from VARIT

Abbildung 7.6. Copying variants with R3trans


7.11. Client Copy

Transactions

transports and remote copy

Kapitel 8. Mandantenverwaltung

Jeder Benutzer meldet sich mit Namen und Paßwort auf einem Applikationsserver in einem bestimmten Mandanten an. Der Mandant dient z.B. zur Trennung von Konzernen auf einem System. Die Mandanten in Tabelle Tabelle 8.1, „Mandanten eines R/3 Systems“ existieren in jedem R/3 System.

MandanteBeschreibung
000Der Auslieferungsmandant
001Eine Kopie von Mandant 000
066Early-Watch Mandant

Tabelle 8.1. Mandanten eines R/3 Systems


Bei der Installation wird vor Beginn des Customizings der Mandant 000 bzw 001 in einen eigenen Mandanten kopiert, in dem dann das System an die eigenen Bedürfnisse angepaßt wird. Die meisten Einstellungen sind in jedem Mandanten getrennt vorzunehmen. Ausnahmen davon sind das Repository (SAP Data Dictionary und ABAPs) und mandantenübergreifende Tabellen.

Normale Anwender sollten aus Sicherheitsgründen keinen Zugriff auf Daten anderer Mandanten haben, das sind insbesondere Drucklisten und Betriebssystem-Dateien. Programmierer können jedoch in ABAP-Programmen mit dem SELECT-Zusatz CLIENT SPECIFIED auf Daten anderer Mandanten lesen. Der Systemverwalter kann außerdem fast alle Daten mit Hilfe von Datenbank-Tools lesen (und verändern).

TransaktionBeschreibung
SCC0Mandantenkopie
SCC1Mandantenkopie - Sonderselektionen
SCC2Mandantentransport
SCC3Mandantenkopie - Protokoll-Anzeige
SCC4Mandantenverwaltung (Pflege Tabelle T000)
SCC5Mandant löschen
SCC6Mandantenimport
SCC7Mandantenimport - Nachbereitung

Tabelle 8.2. Transaktionen zur Mandantenverwaltung


Abschließend noch einige Tips zu Mandanten-Kopien, viele weitere findet man in den entsprechenden SAP Hinweisen in SAPnet.

Bei den Funktionen »kopieren« und »löschen« im Zielmandant als Benutzer SAP* mit dem Paßwort PASS anmelden.
Die Programme praktisch immer im Hintergrund starten.
Bei Export nicht als SAP* anmelden.
Remote-Kopie: Repository Strukturen müssen gleich sein
Platzbedarf, Rollback-Segmente (Oracle), Laufzeiten, Archive-Logs

Für einige Sonderfunktionen stehen ABAPs zur Verfügung, die Tabelle Tabelle 8.3, „Nützliche Programme zur Mandantenverwaltung“ enthält eine unvollständige Übersicht.

ProgrammBeschreibung
RSCLTCOPKopieren von Tabellen
RSCCEXPTPflegen der Ausnahmetabelle

Tabelle 8.3. Nützliche Programme zur Mandantenverwaltung


Kapitel 9. Development-Tools

Nützlich: Die SAP-R/3 Anwendungen (nicht die Basis) liegt im ABAP/4-Sourcecode vor, eigene Analysen, Debugging, Reparaturen, Modifikationen und Erweiterungen sind möglich. Das ist in etwa das, was die Open-Source-Bewegung postuliert - SAP R/3 ist und bleibt aber kommerzielle Software.

Für jeden Entwickler ist einmalig eine Registrierung im OSS erforderlich. Ergebnis dieser Registrierung ist ein Schlüssel, der beim ersten Aufruf einer Entwicklungstransaktion erforderlich ist. Der Schlüssel ist je Benutzername unterschiedlich, aber für alle Mandanten und alle Systeme einer Installationsnummer gleich. Für die normale Entwicklung von Kundenobjekten sind keine weiteren Schlüssel notwendig, bei Reparaturen (Modifikationen) an SAP Objekten muß dieses Objekt im SAPnet registriert werden. SAP erhofft, damit den Überblick über Kundenmodifikationen zu behalten und einen besser angepaßten Support liefern zu können. Eine Übersicht über alle registrierten Objekte findet man im SAPnet, gelegentlich sollte man dort mal hereinschauen.

Praktisch alle Funktionen zur Anwendungsentwicklung sind in der ABAP/4-WorkbenchABAP/4-Workbench integriert; die einzelnen Funktionen können aber direkt per Transaktion aufgerufen werden. Eine Auswahl der wichtigsten Transaktionen folgt. An vielen Stellen ist die Navigation per Doppelklick implementiert, so dass Sie durch Klicken auf ein Objekt automatisch in der richtigen Transaktion landen.

SE01 XXX

Pflege und Anzeige von Transporten mit einigen nützlichen Funktionen. Wenn Sie sich gut auskennen und Probleme mit Transporten haben, dann finden Sie hier vielleicht die Lösung.

SE06 Systemänderbarkeit setzen

In einem Systemverbung mit einem Entwicklungs- und einem Produktionssystem sollten alle Änderungen an Repository-Objekten zunächst im Entwicklungssystem durchgeführt und getestet werden. Mit dieser Transaktion kann die Pflege von Repository-Objekten im Produktionsystem unterbunden werden (man kann zwar die Transaktion aufrufen und die Einstellung ändern, dieses wird jedoch protokolliert).

SE10 Workbench Organizer

Verwaltung der offenen und freigegebenen Customizing- und Workbench-Aufträge und -Aufgaben. Diese Transaktion gehört zum Transportsystem, siehe auch Kapitel 7, Transporte zwischen SAP-Systemen.

SE11 Data Dictionary

Einstieg in das Data-Dictionary: Pflege und Anzeige von Domänen, Strukturen, Tabellen, Matchcodes und mehr. Im Data Dictionary sind die Datenstrukturen und Datenelemente des SAP-R/3-Systems beschrieben.

SE12 Data Dictionary anzeigen

Einstieg in die Data-Dictionary Anzeigefunktion: Anzeige von Domänen, Strukturen, Tabellen, Matchcodes und mehr.

SE16 Tabellen Utility

Anzeige von Tabelleninhalten, dabei kann nach Feldinhalten selektiert werden, die Darstellung und Sortierung ist änderbar, in gewissen Fällen ist es möglich, Sätze hier zu ändern.

SE17 Tabellen Utility - Anzeige

Anzeige von Tabelleninhalten, analog zu SE16.

SE30 Performance-Analyse

Ausporbieren!

SE37 Funktionsbausteine

SAP stellt mehr als 10.000 Funktionsbausteine bereit, die SAP-intern verwendet werden, aber auch von Kunden benutzt werden können. Besonders nützlich sind hier RFC-fähige Funktionsbausteine, die via Remote-Function Calls aufgerufen werden können.

Vorteile? Nachteile? Suche? Test-Umgebung

SE38 ABAP/4 Editor

Der ABAP/4-Editor.

Externe Anbieter

SE41 Menüpainter

Menüpainter

SE43

Bereichsmenüs

SE51?

Screenpainter

SE93

Pflege von Transaktionen

SQ01?

ABAP/4-Query?

SQ02?

ABAP/4-Query

SE80? Workbench Organizer?

Navigating: Help -> technical -> double-click, /h, SQL-trace, system-trace

ABAP/4, LDB, Tables

SAP hat für kundeneigene Entwicklungen Namensräume reserviert, in denen Kundenobjekte nicht überschrieben werden. Für Relasewechsel machen Sie sich die Arbeit um einiges leichter, wenn Sie diese Namensräume beachten; manche Transaktionen erzwingen dies sogar. Namensräume sind z.B. im SAPnet-Hinweis 16446 dokumentiert.

Bearbeiten -> Anweisungsmuster -> CALL FUNCTION im ABAP Editor

Benutzervariablen in Varianten vom ABAP aus ändern/lesen:

VARI_USER_VARS_GET

Lesen der Variablenwerte

VARI_USER_VARS_SET

Setzen der Variablenwerde

VARI_USER_VARS_COPY

Kopieren der Variablenwerte

VARI_USER_VARS_DELETE

Löschen der Variablenwerte

VARI_USER_VARS_RENAME

Umbenennen der Variablenwerte

VARI_USER_VARS_DIALOG

Erfassen von Variablenwerten im Dialog

9.1. ABAP™ Tipps und Tricks

Verschiedene nützliche Ideen

9.1.1. Variable Titelzeilen beim Reporting

TOP-OF-PAGE.
    SY-TVARn = Variable.

Abbildung 9.1. Variable Titelzeilen beim Reporting


In den Textelementen (Titel) des ABAPs wird als Platzhalter &n... verwendet. Die Länge ist auf maximal 20 Stellen begrenzt.

9.2. Befehle des ABAP-Editors

ABAP-Editor

Leider mal wieder ein eigener Editor, Umschaltbar

A(TTACH) n

Der Text aus Zeile n wird als oberste Zeile angezeigt. Im Host-Modus können Sie dieses auch erreichen, indem Sie im Feld mit der Zeilennummer vor der Zeile ein Sternchen („*“) eingeben.

TOP bzw. B(OTTOM)

An den Andang bzw. das Ende des Programmes springen.

+ bzw. -

Zur nächsten bzw. vorherigen Seite blättern.

FIND Zeichenkette

Die Zeichenkette im Programm suchen. Dieser Befehl unterscheidet nicht zwischen Groß- und Kleinbuchstaben. Wenn die Zeichenfolge Leerzeichen oder Sonderzeichen enthält, müssen Sie sie in Sonderzeichen einschließen, die nicht in der Zeichenfolge selbst enthalten sind.

FIND /empty- /

Beispiel 9.1. Suchen einer Zeichenkette mit Sonderzeichen


Die Suchfunktion, die Sie mit Klick auf das Fernglas aufrufen können, hat eine Reihe von interessanten Optionen. Hier können Sie z.B. auch im Rahmenprogramm suchen und nicht nur im aktuellen Quelltext.

N(EXT)

Weitersuchen

R(EPLACE) suche ersetze

Zeichenfolge »suche« im ganzen Text durch die Zeichenfolge »ersetze« ersetzen. Wenn eine der beiden Zeichenfolgen Leerzeichen oder Sonderzeichen enthält, müssen Sie beide Parameter in Sonderzeichen einschließen (siehe FIND).

9.3. Modifikationen an SAP-Programmen

Modifikationen

SAP R/3 wird mit dem gesamten Quellcode der ABAP/4-Programme ausgeliefert, technisch kann also jeder Kunde diese Programme modifizieren. In einem produktiven System sollte mit Hilfe der Transaktion SE06 die Änderbarkeit von SAP-Objekten im Repository verhindert werden. Bei der Änderung eines Objektes wird ein Schlüssel verlangt, der im SAP-OSS zu bekommen ist (SSCR, ausgeschrieben?). Damit ist die Hotline in der Lage, mögliche Probleme zumindest ahnen zu können.

Grundsätzlich sollte man so wenig wie möglich modifizieren. Besser ist die Verwendung von User-Exits (Transaktion?), eigener ABAPs (evtl. Kopien von SAP-Programmen) und Append-Strukturen. Das teure an Modifikationen ist die Wartung bei Releasewechseln und der damit verbundene neue Test, nicht die erste Erstellung. Besonders wichtig ist die ausführliche Dokumentation der Modifikationen! Insbesondere sollte diese enthalten: Wer, wann und warum die Modifikation durchgeführt hat, welche Programme und Tabellen dabei angefaßt wurden und die entsprechenden OSS-Schlüssel. In den Programmen sollten die modifizierten bzw. eingefügten oder gelöschen (auskommentierten) Zeilen mit einem Kürzel markiert werden. Die Versionsverwaltung ist nützlich beim Releasewechsel, in den verschieden Fenstern kann man sich das Original-Programm, die neue Version und die modifizierten Versionen davon ansehen und mit Hilfe des Clipboards Code kopieren..

Wenn eine Modifikation notwendig ist, dann sollte man einige Regeln beachten: Je weniger Stellen im Programm modifiziert werden, desto besser. Verwenden Sie Includes oder Funktionsbausteine, um dort Ihre Logik unterzubringen. Gerade Funktionsbausteine haben den Vorteil, dass diese automatisch getestet werden können. Markieren Sie jede geänderte oder neue Zeile mit einem Kürzel, damit erkennen Sie sofort, dass diese Zeile aus einer Modifikation stammt.

Die Kosten und der Aufwand für eine Modifikation steckt nicht in der eigentlichen Entwicklung, sondern in der Dokumentation und der Arbeit, die bei jedem Releasewechsel aufgewendet werden muß. Behalten Sie im Auge, dass Modifikationen häufig noch in vielen Jahren aktiv sind und entsprechend dokumentiert werden müssen.

Modifikationen sollten möglichst schnell durch die Systeme transportiert werden. Damit ist der Test im Entwicklungssystem noch aktuell und bei Problemen allen beteiligten Personen präsent, dass eine Modifikation aktiv wird. Wenn eine Änderung lange herumliegt, kann es passieren, dass diese zu einem ungünstigen Zeitpunkt oder unerwünscht aktiv wird.

9.4. Erweiterungen zum SAP-Standard

Häufig erfüllt die SAP-Standard-Software nicht alle Anforderungen, aber doch sehr viele davon. In diesen Fällen kann es notwendig und sinnvoll sein, den SAP-Standard gezielt zu erweitern. Leider funktioniert das nur an den Stellen, die von SAP dafür vorgesehen wurden. Wenn Sie also eine Modifikation an einer Stelle vornehmen, von der Sie erwarten, dass auch andere Kunden dort eingreifen, dann wenden Sie sich mit einem Erweiterungswunsch an SAP.

Erweiterungen können an verschiedenen Stellen vorgenommen werden. Tabellen können mit Hilfe von Append-Strukturen um zusätzliche Felder erweitert werden, manche Programme haben INCLUDEs, in denen Kunden ergänzen dürfen, manche Programme sehen sogenannte User-Exits vor. Global können Field-Exits verwendet werden.

Auf den ersten Blick scheint es viel schneller zu gehen (und damit billiger zu sein), die passenden Tabelle bzw. das passende Programm einfach anzupassen. Spätestens beim nächsten Release-Wechsel schlägt diese Situation ins Gegenteil um. In der Zeit, wo Modifikationen abgeglichen werden, steht das System nicht in vollem Umfang zur Verfügung. Außerdem will jede Anpassung erneut getestet sein.

Auch die Lösung, das Programm als kundeneigenes Programm anzulegen ist nicht sinnvoll. Spätestens beim nächsten Put denkt keiner daran, dass hier Anpassungen notwendig sein könnten. Als Ergebnis kann man beliebig schwer zu findende Fehler haben.

9.4.1. Erweiterungen von SAP-Tabellen

Append-Strukturen

Wenn Sie Felder zu einer SAP-Tabelle hinzufügen wollen, dann sollten Sie das mit Hilfe einer Append-Struktur tun. Warum? Beim nächsten Put wird die Append-Struktur automatisch übernommen, es muß kein Modifikationsabgleich stattfinden und alle Daten bleiben erhalten.

Append-Strukturen können nur bei transparenten Tabellen verwendet werden. Mit Hilfe der Transaktion SE11 können Sie aus der Tabellen-Pflege in die Append-Strukturen wechseln. Halten Sie sich an die Namenskonvention, dass eigene Felder mit 'Z*' beginnen müssen, und Sie vermeiden in Zukunft Konflikte beim Put.

9.4.2. User-Exits

User-Exit

SAP R/3 bietet für viele Anwender fast alle Funktionen, die sie benötigen. Was ist jedoch mit zusätzlichen Funktionen, die in der Standardversion nicht vorhanden sind? Hier haben die Anwender eine Reihe von Möglichkeiten:

  • Mit einem eigenen Programm kann die Funktionalität ergänzt werden. Änderungen an Daten können mittels Batch-Input oder 'CALL TRANSACTION' durchgeführt werden.

  • Das SAP-Programm modifizieren. Bei jedem Releasewechsel muß die Modifikation neu angepaßt werden, wenn eine neue Version des Programmes geliefert wird. Außerdem lehnt SAP möglicherwiese den Anspruch auf Gewährleistung ab und die Modifikation muß im OSS registriert werden.

  • Das SAP Programm kopieren und selber pflegen. Bei einem Releasewechsel muß der Anwender die Anpassungen manuell wieder einpflegen, er ist komplett für die Aktualität verantwortlich.

  • SAP stellt an den notwendigen Stellen einen User-Exit zur Verfügung. Der Anwender kann dort die vorgesehenen Daten nach eigenem Gusto verändern. Für die Anzeige auf Dynpros müssen auch dort entsprechende Exits vorgesehen sein.

Derzeit sind an vielen notwendigen Stellen noch keine Exits vorgesehen, in der Zukunft sollte sich das aber noch verbessern. Mit der Transaktion CMOD wird ein Erweiterungsprojekt angelegt und die entsprechenden Exits dort aufgenommen. Programmcode wird in Funktionsbausteinen hinterlegt, die von den Standard-Programmen aufgerufen werden, wenn sie vorhanden und aktiviert sind.

9.4.3. Field-Exits

Field-Exit

Eine weitere Art, eigenen Code durch das R/3 System ausführen zu lassen sind Field-Exits. Mit der Transaktion CMOD und dort dem Menu Globale Erweiterungen -> Field-Exit werden diese Exits definiert. Für jedes Dynpro-Feld kann ein Exit angelegt werden.

In der Standard-Installation von R/3 werden keine Field-Exits abgearbeitet. Alleine die Prüfung, ob bei einem Dynpro-Feld ein Exit aktiv ist kann ein aktives System stark belasten. Wenn viele Exits implementiert werden und dort größere Funktionen implementiert werden, dann wird das noch schlimmer. Um Field-Exits zu aktivieren muß der Profil-Parameter abap/field-exit mit dem Wert yes angelegt werden und das System neu gestartet werden. Dieser Parameter ist je Dialoginstanz getrennt einstellbar, so dass Sie aktive Instanzen ohne Field-Exits betreiben können und diese nur dort aktivieren, wo es unbedingt erfordertlich ist.

Ein Field-Exit ist ein Funktionsbaustein, der vom R/3 System zum Zeitpunkt PAI (Process after Input) aufgerufen wird. Sie können mit einem Field-Exit Eingaben verarbeiten oder manipulieren, aber eine Vorschlagswerte in das Feld einfügen. Der Funktionsbaustein hat zwei Parameter, die Eingabe INPUT und die Ausgabe OUTPUT. Im einfachsten Fall muß nur die Eingabe in die Ausgabe übertragen werden, das Listing Abbildung 9.2, „Die Definition eines Field-Exits“ zeigt ein entsprechendes Beispiel.

...
   TRANSLATE INPUT USING 'XU'.
   OUTPUT = INPUT.
...  

Abbildung 9.2. Die Definition eines Field-Exits


Field-Exits können an vielen Stellen eine Modifikation des R/3 Systems ersetzen, insbesondere, wenn an der gewünschten Stelle kein User-Exit vorgesehen ist. Hier hat R/3 noch einigen Nachholbedarf. Field-Exits sind aber kein Wundermittel, sie haben eng gesteckte Grenzen.

9.5. Berechtigungen

Berechtigungen

Welche Berechtigungen sind erforderlich?

9.6. Namenskonventionen und Namensräume

Namensräume

SAP R/3 ist ein System, das immer weiter entwickelt wird. Um die Einführung von neuen Versionen auch dann so problemlos wie möglich zu halten sind Namensräume für Kunden reserviert. Wenn man eigene Programme, Tabellen oder Dynpros erstellt, dann sollte man diese in jedem Fall so benennen, dass diese nicht durch eine SAP Version überschrieben werden. In der Regel sind das Namen, die mit 'Y', 'Z' oder '9' beginnen. Genaueres finden Sie im entsprechenden Handbuch. Welches ist das?

9.7. Etwas ABAP-Geschichte

ABAP war früher (SAP R/2) die Abkürzung für "Allgemeiner Berichts- (und) Aufbereitungs-Prozessor". Heute steht ABAP für "Advanced Business (and) Application Programming".

SAP R/1 und später SAP R/2 waren Mainframe-basierte Systeme und in Assembler programmiert. Auswertungen waren eine Folge von Assembler-Makros und -Anweisungen. Die Namen der Makros begannen mit einem "Y", so dass sich auch der Name Y-ABAP dafür eingebürgert hat. In diesen Reports konnten nur Daten ausgewertet werden. Für Datenänderungen waren andere Assembler-Programme notwendig.

Die per Assembler erzeugte Ladephase der ABAPs wurde von einem Interpreter im Batch abgearbeitet. Im Online waren diese Auswertungen nicht lauffähig. Das Erzeugen der Listen und Extrakte erfolgte normalerweise in 2 Phasen:

  1. Phase:

    • Selektion: Daten wurden selektiert und auf eine sequentielle Datei geschrieben.

    • Sortierung: Die sequentielle Datei wurde sortiert.

  2. Aufbereitung: Die seq. Datei wurde gelesen, eventuell verdichtet und ausgegeben.

Das Erzeugen der Auswertungen war sehr aufwendig, es musste zunächst ein Job mit zwei Steps (siehe oben) erstellt werden, dieser musste dann aufgrund der Vorgaben der Anwender entsprechend parametrisiert werden und dann zu einer geeigneten Zeit (Auswertungen haben oft das System sehr belastet) gestartet werden. Der Anwender erhielt das Ergebnis in Form von gedruckten Listen.

Daher hat SAP im R/2 (ab Release 4.0 ?) ABAP/3 (bzw. ABAP/III) entwickelt. ABAP/3 Programme bestanden aus Befehlen, die bereits eine gewisse Ähnlichkeit mit ABAP/4 (bzw. COBOL) Befehlen hatten (GET xx., MOVE, COMPUTE, WRITE ...).

Die ABAP/3 Programme wurden durch einen Preprozessor in Assembler-Makros und -Anweisungen konvertiert. Auch diese Programme waren nur im Batch lauffähig ("2 phasiger" ABAP).

Ebenfalls ab R/2 Release 4.2(?) konnten ABAP/4 Programme ("einphasiger" ABAP) entwickelt werden. Diese Programme waren im Online und im Batch lauffähig. Es konnten jedoch nur Listen und Extrakte erzeugt werden.

Erst ab SAP R/2 Release 4.3 konnten in ABAP/4 auch Transaktionen mit Dynpros und Modulpools entwickelt werden. Ab diesem Zeitpunkt hat SAP selber begonnen, seine Anwendungen in ABAP zu entwickeln. Erstes Modul war RP, die Personalabrechnung.

Die Programmiersprache ABAP/4 wurde für R/3 erweitert und der Interpreter in C neu programmiert. Viele R/2 Programm kann man daher mit relativ geringem Aufwand nach R/3 portieren.

Wichtige Vorteile von ABAP/4 gegenüber anderen Programmiersprachen sind:

  • Integration ins SAP (das ist auch ein großer Nachteil)
  • Interpretation aufgrund des aktuellen Data-Dictionaries
  • Leistungsfähige Sprachelement
  • Per RFC Netzwerkfähig
  • Das Dynpro-Konzept und die Zeitpunkt-Zentriertheit.
  • Für Auswertungen, eigene Programme und Modifikationen wird dieselbe Programmiersprache verwendet.

Kapitel 10. Sending mail from within SAP

Office-Transactions, SO16 for config

10.1. sendmail configuration for SAP R/3

Did you ever wonder how to send and receive Internet-mail with your SAP R/3 system? Then this might be of help for you. You should first read the SAP documentation for the Internet Mail Gateway and come back later, since this file only describes the sendmail configuration.

From my experience, you should almost immediately remove your vendors version of sendmail and switch to the 'original' sendmail from Eric Allman. You may get it from http://www.sendmail.org. If you really want to know what to do with sendmail, get the 'sendail' book from O'Reilly.

The sendmail configuration is stored in a file called normally /etc/sendmail.cf, some people call it 'catastrophe file' due to its somewhat awkward syntax and high complexity. This is the reason to switch from your vendors version of sendmail to the original and to use the includes m4-configuration. There is a README in /usr/lib/sendmail-cf that describes the basic configuration.

This file describes only the additions needed to get SAP mail delivered, so you might want to read the above file as well.

First, you need to define a name for your SAP system. I use the system-id, appended with the local domain. For the purpose of this readme, the systems are called C11 and C12, the domain is example.org. Add MX records for the systems into your DNS, let them point to the mail gateway you are going to setup.

The basic idea is to generate a local delivery agent in the mail gateway for every SAP system that needs to get mail. This is done in two steps:

  • define a macro, that itself defines the delivery agents when called. I did this in a FEATURE macro (sapr3.m4)

  • in your configuration call the feature and define the delivery agents for each system. Call the macro SAPMAIL (defined by the feature above with the name of the SAP system and the mail configuration for that system as generated with mlsoadmin.

    # `Use the definition of the SAP mailer as a feature'
    FEATURE(`sapr3')
    # `define a mailer for each SAP system'
    SAPMAIL(`c11',`/usr/local/etc/C11_mailconfig')
    SAPMAIL(`c12',`/usr/local/etc/C12_mailconfig')
    # That's all folks
    

    This creates the mailers and adds the SAP admin user as a trusted user.

  • Generate the .cf-file and try the configuration as described in the sendmail book. Try a couple of different addresses and see how they are parsed. XXX give my examples here.

You may configure the deliver agents with a fews variables:

  • SAP_MAILER_PATH contains the path to mlsomail, if not defined /usr/local/bin/mlsomail is used. An example:

    # `change the path to mlsomail'
    define(`SAP_MAIL_PATH',`/sapmnt/C11/exe/mlsomail')
    

  • SAP_MAIL_DOMAIN may set the domain for the SAP systems. If not set, the usual DNS domain from the mail hub is used.

  • SAP_MAILER_FLAGS may contain special flags for the delivery agent. Default is DFPlLs, the contents of SAP_MAILER_FLAGS are appended. (is L really a good idea here? it may trash iso-latin-1)

Sample Configuration Abbildung 10.1, „Sendmail Example“

# `which operating system is used on the mail hub'
OSTYPE(`aix4')

# `Use the sap r/3 mailer'
FEATURE(`sapr3')

divert(6)
# `And now generate the mailers itself'
SAPMAIL(`c11',`/usr/local/etc/C11_mailconfig')
SAPMAIL(`c12',`/usr/local/etc/C12_mailconfig')

# `generate the normal mailers'
MAILER(local)
MAILER(smtp)
# end of story -- who told about sendmail being hard?

Abbildung 10.1. Sendmail Example


The feature definition Abbildung 10.2, „Sendmail Feature“

divert(`0')
# SAP R/3 internet mail configuration
# Copyright (C) 1998 by Jochen Hein <jochen@jochen.org>
# Version 0.1, 15. March 1998
divert(`-1')
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
#    must display the following acknowledgement:
#	This product includes software developed by the University of
#	California, Berkeley and its contributors.
# 4. Neither the name of the University nor the names of its contributors
#    may be used to endorse or promote products derived from this software
#    without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY JOCHEN HEIN ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# TODO:
# It might be wise to add U=sidadm:sapsys to the mailer deinition so that 
# mlsomail runs as that user 

# declare some variables the user might want to set:
# path to the mlsomail program
ifdef(`SAP_MAILER_PATH',,`define(`SAP_MAILER_PATH',`/usr/local/bin/mlsomail')')
#
# flags that are used in the F= option for the mailer
ifdef(`SAP_MAILER_FLAGS',,`define(`SAP_MAILER_FLAGS',`')')
#
# def. the domain that the SAP systems are in
ifdef(`SAP_MAIL_DOMAIN',,`define(`SAP_MAIL_DOMAIN',`$m')')

# create a mailer and the local rules to call them.  Usage is
# SAP MAIL(SAP_SYSTEM_ID,cfg-File created with mlsoadmin)
define(`SAPMAIL', `divert(7)
# the local delivery agent for the SAP R/3 system $1
Msap$1,P=SAP_MAILER_PATH,F=CONCAT(`DFPlLs',dnl
SAP_MAILER_FLAGS), S=10, R=20/40,T=DNS/RFC822/X-Unix,dnl
A=mlsomail $2 $u'
`divert(6)dnl
# Add the sap administrator ($1adm) as a trusted user
Ct$1adm'
`LOCAL_RULE_0'
# Additions to Ruleset 0: Select SAP system to send to
`R$+<@'$1`>	`$'`#'sap'$1`$:$1	Mail for SAP-R/3 system $1'
`R$+<@'$1`.SAP_MAIL_DOMAIN>	`$'`#'sap'$1`$:$1	Mail for SAP-R/3 system $1')

Abbildung 10.2. Sendmail Feature


Kapitel 11. Datenbank Abhängigkeiten für Oracle

Wo gibt es die Referenzkarte?

Rollback-Segmente sind etwas wirklich ekliges. Fragen Sie Ihren Oracle-Guru.

Passen Sie auf, dass das Verzeichnis $ORACLE_HOME/saparch stets genügend Freiplatz enthält. Ich habe hierfür einen Monitor aufgesetzt, der nötigenfalls einen brarchive startet. Voraussetzung ist natürlich ein Bandroboter oder cleverer Operator.

Tipp

Lesen Die den Hinweis zum aktuelles Patchset für Oracle. Dieser enthält gelegentlich Hinweise aus schwerwiegende Oracle-Fehler.

TransaktionBeschreibung
DB02Table/index analysis
DB03Parameter changes of Database
DB12Protokolle der Datensicherung anzeigen
DB13?DBA Planung (Jobs)
DB16Anzeige DB-Check-Meldungen
DB17Parameterpflege für DB-Check
ST04database performance analysis

Tabelle 11.1. Transaktionen zur Datenbankverwaltung


11.1. Umgebungsvariablen für Oracle

Die SAP-Benutzer müssen Zugriff auf die Oracle-Datenbank haben, dazu werden einige Umgebungsvariablen verwendet. Diese werden in der Datei ~/.dbenv.csh bzw. ~/.dbenv.sh gesetzt. Sind diese Variablen nicht vorhanden oder fehlerhaft, dann kann sich das SAP-System nicht an die Datenbank konnektieren.

ORACLE_HOME

Das Home-Verzeichnis des Oracle-Benutzers und der Datenbank. Alle für Oracle wesentlichen Verzeichnisse sind Unterverzeichnisse relativ zu diesem Verzeichnis. Für SAP-Systeme ist es das Verzeichnis /oracle/SID.

ORACLE_SID

Die Datenbank ID, bei SAP-Systemen ist die ORACLE_SID gleich der SID des zugehörigen SAP-R/3-Systems.

TNS_ADMIN

Verzeichnis in dem die Konfiguration des SQL*Net V2 Zugriffes zu finden ist. Ohne diese Informationen kann sich kein Programm an die Datenbank konnektieren. Für SAP-Datenbanken ist der Default /usr/sap/trans.

TWO_TASK

Mittels SQL*Net V2 auf eine entfernte Datenbank zugreifen. Normalerweise darf diese Variable nicht gesetzt sein. Bei Bedarf kann man diese jedoch verwenden, das Format ist T:Rechner:SID.

11.2. Wichtige Konfigurationsdateien

Was steht noch in /usr/sap/trans?

listener.ora

Gespeichert in /etc; es existiert ein symbolischer Link darauf in /usr/sap/trans. Wie erstellen? Der Programmname und die Doku steht im Installationshandbuch. Wird vom Listener gelesen und für den DB-Connect benötigt(?)

init_SID.ora

Enthält wichtige Oracle-Parameter wie Puffer, Rollback-Segmente, Pfade zu Control-Files usw. und ist im Verzeichne $ORACLE_HOME/dbs zu finden.

init_SID.sap

Enthält wichtige Parameter für die SAP-Programme sapdba, brbackup und brarchive.

11.3. Verzeichnis-Layout

Alle Daten und Programme, die zur Oracle-Datenbank gehören, liegen unterhalb des Pfades /oracle/SID. Laufen auf einem System mehrere Datenbank-Instanzen, die findet man für jede Instanz ein entsprechendes Verzeichnis. In /oracle/stage wird bei einem Releasewechsel oder Datenbank-Upgrade die Installation der neuen Programme vorbereitet.

/oracle/SID/sapdata*

Diese Verzeichnisse enthalten die Datafiles der Datenbank. Die Sicherung erfolgt mittels brbackup, eine Sicherung mit Betriebssystemmitteln ist nicht notwendig.

/oracle/SID/saparch

Hier werden die archivierten Redo-Logs gespeichert. Dieses Verzeichnis muß hinreichend groß sein, da die Datenbank mit »archiver stuck« stehenbleibt, wenn dieses Verzeichnis voll ist. Die Logs aus diesem Verzeichnis werden mittels brarchive auf Band gesichert.

/oracle/SID/sapbackup

Die Protokolle der Datensicherung mit brbackup werden hier gespeichert.

/oracle/SID/sapreorg

Temporär genutzter Platz beim Tablespace- oder Tabellen-Reorg. Achten Sie darauf, dass Sie hier genügend freien Speicherplatz haben, bevor Sie mit der Reorganisation beginnen.

/oracle/SID/saptrace

Im Unterverzeichnis background finden Sie das Alert-Log der Datenbank - bei Datenbank-Problemen kann dieses Log sehr hilfreich sein.

/oracle/SID/dbs

Die Datenbank-Konfiguration ist in der Datei initSID.ora festgelegt, die Konfiguration der SAP-Programme (brarchive, brbackup und sapdba) ist in der Datei initSID.sap enthalten.

11.4. Monitoring

Alert-Log: $ORACLE_HOME/saptrace/background/alert_SID.log, Insbesondere auf ORA-Meldungen achten, außerdem "Checkpoint not complete". Dafür kann man Shell-Skripte einsetzen... Wenn Trace-Dateien entstehen, dann sind auch die wichtig.

Die Datei startdb.log im Home-Verzeichnis des sidadm enthält möglicherweise Informationen, warum der Start der Datenbank fehlgeschlagen ist. Falls nicht, einfach die Datenbank mit dem Programm svrmgrl starten und auf die Meldungen achten.

SAP-Transaktion ST04 -> Goto -> Activity -> Database Log

Parameter Changes?

saparch, backup, reorg-Logs?

Wie heißt das Oracle-Tool, das Nobby mal benutzt hat?

Puffer

Database Activity? Performance Analyses

Missing Indices

Lock-Dateien: .lock.bra und .lock.brb

Tablespaces in Backup Mode?

grep nach ORA- im Alter-Log

11.5. SAP Programme zur Datenbankverwaltung

Eine Option, die den Programmen sapdba, brbackup und brarchive gemeinsam ist, ist die Option -u, gefolgt von der Zeichenkette Datenbankbenutzer/Datenbankpaßwort. Damit nicht jeder Unix-Benutzer das Paßwort lesen kann, kann ein sogenannter OPS$-User verwendet werden, als Option ist dann -u / anzugeben.

sapdba

Menügesteuerte Datenbankverwaltung, inklusive Datensicherung und Recovery. Die Optionen -check (Prüfen des Datenbankfreiplatzes und der maximalen Anzahl Extents), -next (automatisches Anpassen der Next-Extent-Größe von Tabellen) und -clean sollten regelmäßig aufgerufen werden. Die Protokolle mindestens des sapdba -check-Laufes sollte man sich ansehen.

Weitere sapdba-Optionen?

brbackup

Direkter Start der Datensicherung, Hilfe gibt's mit brbackup -h.

brarchive

Direkter Start der Archive-Sicherung, Hilfe gibt's mit brbackup -h. Empfehlung: zwei Kopien der Archive-Logs auf Band erstellen.

Die Protokolle der SAP-Programme findet man in den Verzeichnissen $ORACLE_HOME/saparch, $ORACLE_HOME/sapbackup und $ORACLE_HOME/sapreorg. Die Namenserweiterung gibt die Funktion an, die dieses Log erstellt hat, der Name ist mittels Zufallsgenerator vergeben. Man kann sich diese Protokolle bequem mit sapdba oder der Transaktion ???? ansehen. Ich bevorzuge ls -rtl und tail -f im entsprechenden Verzeichnis.

brarchive und brbackup erzeugen Lock-Dateien im Verzeichnis saparch (Dateiname .lock.bra) bzw. sapbackup (Dateiname .lock.brb). Wenn diese Dateien existieren, dann kann keine neue Sicherung gestartet werden, die Programme geben eine entsprechende Meldung aus. Nach einem Abbruch sind diese Dateien möglicherweise zu löschen.

11.6. Oracle-Programme zur Datenbankverwaltung

lsnrctrl [Kommando]

Starten, Stoppen oder Steuern des Oracle-Listeners. Ein Hilfetext wird mit dem Kommand help angezeigt, es kann ein Kommando direkt angegeben werden, andernfalls geht lsnrtcrl in den interaktiven Modus. Was tut der eigentlich?

tnsping SID

Prüfung, ob die Datenbank erreichbar ist(?)

exp bzw. imp

Export bzw. Import von Daten und Strukturen aus der Datenbank. Die Programme können interaktiv oder skriptgesteuert verwendet werden, schauen Sie für Details in die Oracle-Dokumentation. Intern werden diese Programme von sapdba zum Reorg verwendet, Sie können spezielle »Single-Task« Versionen erstellen, die etwas schneller sind (SAP-Hinweis?).

imp

Import eines Exportes in die Datenbank

svrmgrl bzw. svlgmrm

Kommandozeilen- bzw. Motif-Programm zur Datenbankadministration. Optionen?

sqlplus

Menügesteuertes Programm für SQL-Abfragen.

oerr ora nummer

Zeigt die Bedeutung der Oracle-Fehlermeldung an, also ein »Messages and Codes« online.

11.7. Useful SQL scripts

select substr(tablespace_name,1,20)
      Tablespace,initial_extent/(1024) "I-EX(KB)",next_extent/(1024)
      "N-EX(KB)", Min_extlen,extent_management,allocation_type from
      dba_tablespaces;

Abbildung 11.1. What tablespaces do have which extent-management


exit
connect internal;
alter system switch logfile;
alter database drop logfile group 11;
! rm /oracle/K22/origlogA/log_g11m1.dbf
! rm /oracle/K22/mirrlogA/log_g11m2.dbf
alter database add logfile group 11
    ( '/oracle/K22/origlogA/log_g11m1.dbf', 
      '/oracle/K22/mirrlogA/log_g11m2.dbf' )
    size 50M;

Abbildung 11.2. Resize of Online Redo Logs


alter index sapr3."VTBLII~0" rebuild online;

alter tablespace PSAPMSEGI coalesce;
alter index sapr3."MSEG~R" coalesce;
alter index sapr3."MSEG~R" rebuild online parallel 4 nologging storage
(initial 20400K next 20400K maxextents 505);

alter index sapr3."" rebuild online parallel 4 nologging ;

Abbildung 11.3. Online Rebuild on Indices


11.8. Troubleshooting

Wann ist was zugreifbar (mount)?

Rollback

Archiver Stuck

begin backup and powerfail

/usr/sap/trans missing, listener missing

unclean shutdown (possibly left running)

Recovery: Was kann sapdba und was nicht?

PSAPTEMP und Index-Reorg

11.9. Oracle Tables/views

v$recover_file, v$datafile, andere?

siehe Oracle Refcard/Buch

11.10. Tips zur Oracle-Verwaltung

export to /dev/null

11.10.1. Events in init.ora

Oracle does have bugs. Really. Sometime you have to patch your database software with opatch. Sometimes you can work around the bug with some special configuration parameters. Sometimes you have to do both.

The workaround is often the use of events in the init.ora file. Using events is tricky, as you must respect some restrictions:

  • All events must be at the end of the init.ora file. Otherwise they may not be active.

  • If you use more than one event, you must not have comments or empty lines between the events.

  • You must check, whether the correct events are active. Look into the Alert-Log of your database. And check the active events with the following SQL statement:

    select name,value from v$parameter2 where name  = 'event';

11.11. Nützliche Oracle-Befehle

ALTER SYSTEM SWITCH LOGFILE;

Log-File siwtchen. Wozu ist das gut?

SHUTDOWN;

Stoppen der Datenbank.

Kapitel 12. Tips for usind MaxDB

Wo gibt es die Referenzkarte?

12.1. database tools for MaxDB

dbmcli

Database Command Line

12.2. Useful SQL scripts

dbmcli -d SID -u control,control

db_state

backup_state

param_directput DATA_VOLUME_NAME_0001 filepath

param_directput LOG_VOLUME_NAME_0001 filepath

Kapitel 13. Nützliche Tipps und Tricks

  • Man sollte immer eine Platte, etwas Speicher und etwas CPU zum Tunen haben. Wirklich. Denn wenn man es braucht, dann ist es sehr dringend. Manche Systemverwalter fahren ganz bewußt ein System, das nicht bis ins letzte ausgereizt ist, damit man bei Bedarf die »Handbremse« lösen kann.
  • Achten Sie darauf, dass weder die Datenbank noch die Dateisysteme bis zum Rand gefüllt sind. Das ist in jedem Fall wirklich unangenehm.
  • Wird das System von mehreren Personen verwaltet? Dann führen Sie in jedem Fall eine ChangeLog-DateiChangeLog an zentraler Stelle. Und achten Sie darauf, dass alle sich dort verewigen. Das Führen eines ChangeLogs lohnt sich auch, wenn man alleine ist - man weiß sonst nicht, wann was war.
  • Automatisieren Sie mit Skripten, was geht. Datensicherung, Prüfungen, Überwachungen... Es sollte nicht passieren, dass ein System mehrfach aus demselben Grund nicht verfügbar ist.
  • Spielen Sie regelmäßig HotpackagesHotpackages und Kernel-PatchesKernel-Patches ein. Am besten legen Sie dafür bestimmte Termine fest, sonst unterbleibt das irgendwann. Schreiben Sie die passenden Hinweise zur regelmäßigen Kontrolle in Ihre Liste der regelmäßigen Tätigkeiten. Genauso für Datenbank-Patches bzw. bekannte Datenbank-Fehler.
  • Besorgen Sie sich eine SQL-ReferenzkarteSQL . In der Regel kommt man mit Open-SQL (ABAP-SQL) aus, aber gelegentlich ist es sehr praktisch, direkt mit der Datenbank zu arbeiten.

    Warnung

    Derartige Aktionen sollten Sie in jedem Fall sehr ausführlich dokumentieren. Ansonsten kann man irgendwann den Daten im System nicht mehr so recht trauen.

  • Wenn man häufiger mal das Abnahmesystem durch einen Kopie aus dem Produktionssystem neu aufbaut, dann kann es sinnvoll sein, die Lizenz für das Abnahmesystem in die Produktionsdatenbank einzustellen. Dann spart man sich einen Schritt bei den Nacharbeiten.

13.1. Upgrades

Upgrades
  • Vor dem Upgrade die gesamte Dokumentation lesen, die SAP Hinweise besorgen und bearbeiten und einen ausführlichen FahrplanFahrplan zum Abhaken erstellen. Beim letzten Upgrade standen bei mir sogar die Befehle komplett für Cut&Paste drin. Dann braucht man im Stress des Wochenendes nicht mehr lange nachzudenken und kann sich in Ruhe um eventuell auftauchende Probleme kümmern.
  • Den Ablauf des Upgrades im Testsystem testen, den Fahrplan überarbeiten und mit einer genaueren Zeitplanung versehen. Angepaßte Modifikationen in einem Transport sammeln, genauso später das Delta-Customizing.
  • Beginnen Sie rechtzeitig mit der Planung des Upgrades, informieren Sie die Anwenderfrühzeitig und beziehen Sie diese intensiv mit ein.
  • Genügend Zeit zum Testen und Anpassen des Customizings vorsehen. Abfragen des Status bei Anwendern bzw. Modulverantwortlichen, damit alle die Dringlichkeit spüren.
  • Sehr viel Zeit für den Modifikationsabgleich einplanen - wenn Sie viele Modifikationen haben, dann ist das vermutlich Ihr größtes Problem.
  • Bei größeren Datenumsetzungen während des Upgrades: Die benötigte Zeitdauer sollten Sie in einem Konsolidierungssystem (o.ä. mit Produktionsdaten und mit praktisch derselben Hardware) testen. Andernfalls können Sie keine Aussage über die benötigte Zeit machen.
  • Möglichst lange vor dem Upgrade die Befehle PREPARE und tp getopencorr SID ausführen, um eventuell zu ergreifende Maßnahmen noch in Ruhe durchführen zu können.
  • Sorgen Sie für genügend freien Plattenplatz - am besten etwas mehr als in der Dokumentation und den Hinweisen angegeben. Das gilt auch für den Freiplatz in der Datenbank. Nichts ist unangenehmer, als mitten im Upgrade eine Phase von zehn Stunden aus diesem Grund wiederholen zu müssen.
  • Überprüfen Sie die Strukturen in der Datenbank, die Transaktion DB02 sollte keine Fehler melden, genauso sapdba -check.
  • Wenn im System Modifikationen eingebaut sind (auch Vorab-Korrekturen aus dem SAPnet), dann sollten diese von Beginn an ausführlich dokumentiert werden. Mindestens: Wer, wann, warum, für welche Releases und welche Programme, Dynpros oder Tabellen? Nach einigen Jahren sind viele dieser Informationen nur noch sehr schwer zugänglich, wenn überhaupt.
  • Generieren Sie die RelaeseinfosReleaseinfos im System HilfeReleaseinfos und beachten Sie diese. Hier finden Sie diverse nützliche Informationen.
  • Benutzen Sie die Datei /usr/sap/put/upalert.log um sich z.B. via Handy, SMS oder Pager über den Stillstand des Upgrades informieren zu lassen. Wenn Sie das Upgrade-Programm auf einem Rechner starten, den Sie via Netzwerk Zugriff haben, dann können Sie den Upgrade weitgehen remote betreuen.

13.2. Branchenpakete

Zusätzlich zum R/3 gibt es von SAP und Fremdanbietern Branchenpakete, sogenannte Industrial Solutions™Industrial Solution (IS-PaketeIS-Paket). Diese setzen auf einem bestimmten SAP-Release auf, das vor der Installation verfügbar sein muß.

Ein Upgrade eines IS-Paktes kann innerhalb eines SAP-Releases erfolgen oder einen Releasewechsel des R/3-Systems erfordern. In diesem Fall muß der Upgrade des IS-Paketes in jedem Fall im Rahmen des Upgrades erfolgen. IS-Pakete enthalten nicht nur neue Programme oder Tabellen, sondern ändern auch den R/3-Standard. Bei Hotpackages bzw. Legal Change Patches ist daher die Freigabe für das entsprechende Branchenpaket abzuwarten.

  • Für Hotpackages und LCPs: die entsprechenden SAPnet-Hinweise merken und jeweils aktuell prüfen. Wenn ein ABAP-Programm sowohl durch ein IS-Paket als auch durch ein Support-Packages angefaßt wird, dann ist das Einspielen eines sogenannten Conflict Resolution TransportsConflict Resolution Transport (CRTCRT) notwendig.
  • Rechtzeitig mit der Upgrade-Planung und der Planung von Support-Packages beginnen. IS-Pakete werden i.d.R. nur für das aktuelle IS-Release mit CRTs versehen.
  • Bei größeren Installation kann und sollte man die IS-Benutzer auf einen eigen Applikationsserver packen. Damit sind dort die Puffer gut gefüllt, und auch die große CPU Last trifft dann nur diese Benutzer.
  • Release-Hinweise lesen und verstehen (IMG+Release-Notes sowie Hilfe+Releaseinfos).

Anhang A. Standard-Paßwörter des R/3-Systems

Standard-Paßwörter

Das SAP R/3-System wird mit einer Reihe von Standard-Benutzern ausgeliefert. Sie sollten diesen Benutzern unmittelbar nach der Installation neue Paßwörter geben, da diese Benutzer in der Regel recht weitgehende Berechtigungen haben.

A.1. SAP Benutzer

Das Programm RSUSR003 erzeugt eine Liste über die Standardbenutzer aller Mandanten. Dabei wird zu jedem Benutzer vermerkt, ob das Paßwort allgemein bekannt ist oder nicht. Zumindest gelegentlich sollte man diese Programm ruhig mal starten - allerdings sollten die Admin-Paßwörter dann z.B. in einem Tresor hinterlegt werden.

MandantBenutzer-NamePasswortBemerkungen
000SAP*06071992nach Neuinstallation
000DDIC19920706nach Neuinstallation
000TMSADMPASSWORDDas Passwort darf nicht geändert werden!. Näheres steht in OSS-Hinweis 139854.
001SAP*06071992nach Neuinstallation
001DDIC19920706nach Neuinstallation
066EARLYWATCHSUPPORTnach Neuinstallation
066SAP*06071992nach Neuinstallation
alleSAP*PASSnach Neuanlage des Mandanten
alleSAPCPICADMINwenn benötigt, bis 3.1x
alleISP_PILOTISP(?)Für Support im Branchenpaket IS-M

Tabelle A.1. Standard-SAP Benutzer


Tipp

Sie sollten den Benutzer SAP* in jedem Mandanten sperren, da er einer der Angriffspunkt gegen ein SAP R/3 System ist. Außerdem sollten Sie die Profil-Parameter login/no_automatic_user_sapstar und login/no_automatic_user_sap* auf den Wert '1' setzen. Damit wird auch in einem neu angelegten Mandant der Benutzer SAP* nicht implizit angelegt und bietet damit keinen Angriffspunkt. Ja, das ist etwas lästig, aber wie oft muß wirklich ein neuer Mandant angelegt werden? Und in diesen seltenen Fällen kann man in der Regel auch das System durchstarten um diesen Parameter temporär zu setzen. Als Ersatz sollten Sie jedoch einen Notfall-Benutzer anlegen (und dessen Namen und Paßwort im Tresor hinterlegen).

Bei den obigen Einstellungen können Sie den Benutzer SAP* löschen und stattdessen einen «Notfall«-Benutzer anlegen. SAP* ist in jedem Fall einer der ersten Angriffspunkte gegen ein SAP R/3 System.

Eigentlich kein Benutzer, aber vielleicht doch verwirrend ist der Benutzername UMPFEL. Dieser wird vom Tivoli Manager for R/3 verwendet um via RFC Systeminformationen auszulesen. Eigentlich ist für diese R/3-Funktion keine Benutzerkennung notwendig, und dadurch fühlt sich SAP ein wenig irritiert und schreibt in das Trace-File. Nicht einfach zu finden, und hoffentlich stellt Tivoli das mal ab.

A.2. Datenbank-Benutzer - Oracle

BenutzerPaßwortBemerkungen
systemmanagerder Datenbank-Verwalter
syschange_on_installder Datenbank-Verwalter
sapr3sapdiesem DB-Benutzer gehören alle R/3-Daten

Tabelle A.2. Oracle-Benutzer


Das Paßwort der Datenbank-Benutzer sollten Sie nur mit dem Kommando R3INST bzw. chdbpass ändern. Diese Kommandos generieren den internen Oracle-Benutzer (OPS$-User, identified externally), mit dem das R/3 System sich anmeldet, um das Paßwort des Datenbankbenutzers SAPR3 zu lesen.

Wenn Sie die Oracle Paßwörter ändern, dann müssen Sie möglicherweise in den anderen Systemen Ihres Systemverbundes OPS$-Benutzer anlegen, damit sich das Transportprogramm tp an die Zieldatenbank anmelden kann. Wie dieser Benutzer angelegt werden muß steht in verschiedenen SAP-Hinweisen (XXX welchen?).

Zentrale Funktionen, wie die Reparatur oder das Recovery einer Datenbank mit Hilfe von sapdba sind nur im (durch Paßwort gesicherten) Expertenmodus von sapdba möglich. Nach der Installation des Systems sollten Sie auch dieses Paßwort ändern.

Auf meinen Systemen sind fast alle diese Paßworte identisch - das Operating kann sich mittels sudo oder rlogin unter Unix anmelden und das System starten, stoppen oder sichern, ohne dass dieses «Master-Paßwort« bekannt ist.

A.3. Datenbase User - MaxDB

UsernamePasswordComments
controlcontrolControl-User
superdbaadminDatabase Manager

Tabelle A.3. User in MaxDB


A.4. Standard-Paßwörter für Informix

Informix hat keine eigene Benutzerverwaltung, es werden die Benutzer des Betriebssystems verwendet. Eine SAP R/3 Installation benötigt die Benutzer informix (der Datenbank-Administrator) und sapr3 (mit diesem Benutzer greift das R/3 System auf die Datenbank zu). Der Benutzer sapr3 ist der Eigentümer der Datenbanktabellen von R/3.

Es gibt keinen Experten-Modus im sapdba. Den Benutzer sapr3 verwendet man nie. Wenn man das Paßwort ändert, dann darf man nicht vergessen, dieses in der Tabelle SAPUSER zu hinterlegen. Außerdem sollte man verhindern, dass die Unix-Benutzer bzw. deren Paßwort expiren (das passiert in der Datei /etc/shadow).

A.5. Datenbank-Benutzer - SAP-DB

control/control (check: Christop Rohland cr@sap.com)

A.6. Benutzer der Netweaver 04 Demo DVD

UsernamePasswordDescription
nw4admnw4admSAP System Administrator
sqdnw4sqdnw4SAP Database Administrator
sqdsqdMaxDB Software Owner

Tabelle A.4. Unix-Benutzer


ClientUsernamePasswordDescription
000DDICNW4Data Dictionary User
000SAP*SAPSTARSAP Administrator
000DEVELOPERDEVELOPERDeveloper User
000J2EE_ADMINADMINJ2EE Administrator

Tabelle A.5. SAP R/3 user


Anhang B. SAP Hinweise

SAP-Hinweise sind eine sehr nützliche Informationsquelle. Trotz aller Suchfunktionen im SAPnet kommt es immer wieder vor, dass man den passenden Hinweis gerade nicht findet. In diesem Fall ist es nützlich, die Hinweisnummer schnell verfügbar zu haben. Beachten Sie, das permanent neue Hinweise dazukommen, alte ergänzt oder korrigiert werden oder durch neue ersetzt werden.

Beachten Sie, dass die hier aufgeführten Hinweise nur einen sehr kleinen Teil aus dem SAPnet widerspiegeln und häufig Datenbank-, Betriebssystem oder Release-Abhängig sind! Ergänzen Sie diese Liste nach Belieben!

83458 Apply hotpackages

Oracle errors, Oracle infos: rollback

Restore in Systemlandschaften Hinweise 434645 und 434647

HinweisBeschreibung
16083Regelmäßige Systemjobs
37104Fehleranalyse Hintergrundverarbeitung
53902Konflikte zwischen Support-Packages und Add-Ons
64016SAP R/3 Gateway
76829Möglichst keine Benutzernamen mit Wildcards ("*","_", ".", "%") verwenden
108799Workprozess-Aufteilung
118057Workprozess-Aufteilung

Tabelle B.1. releaseunabhängige SAP-Hinweise


HinweisBeschreibung
86006IS-M: erlaubte Hotpackages bzw. Legal Change Patches
113039Legal Change Patches

Tabelle B.2. nützliche SAP-Hinweise für Release 3.0F


HinweisBeschreibung
97630SPAM-Informationen
125510IS-M: Releaseplanung
125513IS-M: erlaubte Hotpackages bzw. Legal Change Patches
138558IS-M: Einspielen IS-M Patches und CRTs auf 4.0B

Tabelle B.3. nützliche SAP-Hinweise für Release 4.0B


HinweisBeschreibung
4157Oracle-Recovery. Ausdrucken und Aufheben!
43494Sammelhinweis brbackup, brarchive und brrestore.
60233Rollback-Segmente

Tabelle B.4. Hinweise zu Oracle


Anhang C. GNU Free Documentation License

Version 1.1, March 2000

Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

0. PREAMBLE

The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.

This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.

We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

1. APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you".

A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.

A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.

The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License.

The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License.

A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque".

Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only.

The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.

2. VERBATIM COPYING

You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.

You may also lend copies, under the same conditions stated above, and you may publicly display copies.

3. COPYING IN QUANTITY

If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.

If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.

It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

4. MODIFICATIONS

You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

  1. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.

  2. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five).

  3. State on the Title page the name of the publisher of the Modified Version, as the publisher.

  4. Preserve all the copyright notices of the Document.

  5. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.

  6. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.

  7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.

  8. Include an unaltered copy of this License.

  9. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.

  10. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.

  11. In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.

  12. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.

  13. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version.

  14. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section.

If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.

You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.

The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

5. COMBINING DOCUMENTS

You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice.

The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.

In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements."

6. COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.

You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

7. AGGREGATION WITH INDEPENDENT WORKS

A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document.

If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.

8. TRANSLATION

Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.

9. TERMINATION

You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

10. FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.

. How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

Copyright (c) YEAR YOUR NAME. 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 the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License".

If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST"; likewise for Back-Cover Texts.

If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

Anhang D. Auflösungen des Acronyms SAP

Die korrekte Auflösung ist »Systeme Anwendungen und Produkte in der Datenverarbeitung«. Unmittelbar nach der Gründung, in der Zeit von 1972 bis 1976 wurde »Systemanalyse und Programmentwicklung« verwendet.

D.1. Deutsche Auflösungen

  • SAPpel nich, dat geit

  • Sabbern, Angaffen, Panik

  • Sack Aus Plastik (die Taschen für die Lehrgangsunterlagen)

  • Sadomaso ArbeitsPlatz

  • Saftladen Als Produzent

  • Sag Adios Perle

  • Sag Amol Piep!

  • Sag Astalavista Produktpalette

  • Sammelstelle arbeitsloser Pädagogen

  • Sammelstelle arbeitsloser Physiker

  • Sammelstelle arbeitsloser Programmierer

  • Sammlung aktueller Probleme.

  • Sammlung aller Probleme

  • Sammlung alter Programme

  • Sanduhr-Anzeige-Programm

  • Sanfter Abschied vom Privatleben

  • Sardinen arbeiten produktiver

  • Sauber alles Plattmachen

  • Sauber am Po

  • Sauer Auf Plattner

  • Saufen Als Problembekämpfung

  • Sauhaufen am programmieren

  • Saumäßig aufwändige Programme

  • Saumäßig anstrengende Produkte

  • Saumäßig anstrengende Projekte

  • sauteuer, aber praktisch

  • Schafft Andauernd Probleme

  • Schafft Arbeits-Plätze

  • Schal-Anzeige-Programm (Windows Cursor Theme)

  • Scharlatane, Aasgeier, Pausenclowns

  • Scheffelt Allszus Penunze

  • Scheiß Abfall-Produkt

  • Scheiß AnwenderProgramm

  • Scheiß Aufs Privatleben

  • Scheiß Aufs Programm

  • Scheiße auf Platte

  • Scheiss Auf Private-Policy

  • Scheisshäuser, Aborte, Pissoirs

  • Scheitert Als Produkt

  • Scheitert Am Produktivbetrieb

  • scheitert am Projektleiter

  • Schieb es Auf Programmfehler

  • Schiere Anwender Provokation

  • Schießt Auf Programmierer

  • Schildbürger Anwender Programm

  • Schlafen anstatt Programmieren

  • Schlechter Als Perle (die Siemens Leute wissen warum...)

  • Schlechte Applikationen und Programme

  • Schlechtes ABAP Programm

  • Schleicht aber Permanent

  • Schlichtweg Außerordentlich Planlos

  • Schließlich Absolute Panik

  • Schließt Alle Programme

  • Schlimmer als Pornographie

  • Schlimmer Als PrePress

  • Schlimmes, Angst und Panik

  • Schlottern, Angst und Panik

  • Schmerzen Auf Probe

  • Schnell Ausgelastetes Programm

  • Schnell Auf Palme

  • Schneller arbeiten Penner

  • Schnellstmögliche Angestellten Pensionierung

  • Schon alles probiert?

  • Schrecken aller Programmierer

  • Schrecken, Aerger und Probleme

  • Schrecken, Angst und Panik

  • Schreibs Auf Papier

  • Schreien, Ausschalten, Pause

  • Schrott Aus Pakistan.

  • Schrott aussem Pfandhaus

  • Schwachsinn als Programm

  • Schwachsinn aus Prinzip

  • Schwanger Aus Protest

  • Schweiß, Angst und Panik

  • Schweiß, Angst, Panikausbrüche

  • Schwer Aus Passion

  • Schwere Aktien Pleite

  • Schwule Aktions Plattform

  • Sehr agressiver Parasit

  • Sehr andauernde Pause

  • Sehr Apprupter Programmabbruch

  • Seifenblase am Platzen

  • Seit Arbeitsbeginn Pannenbelastet

  • Sekt Aufs Projekt

  • Selbst Alles Programmieren

  • Selbst Aweng Probieren

  • Selbstbeherrschung Absolute Pflicht

  • Selbstständiges Arbeiten Problematisch

  • Selten ablauffähige Programme

  • Selten Alberner Programmcode

  • Selten Alles Problemlos

  • Selten Alles Paletti

  • Selten anschauliche Plausibilitäten

  • Selten am Platz

  • Selten Anwesender Papi

  • Semantisch abstraktes Pseudonym

  • Setzt Auf Patches

  • Setzt Auf's Personal (des Kunden)

  • Sex Am Pool

  • Sex, Angst und Panik

  • Sex A-Peal

  • Sexuell abartige Praktik

  • Sicher Absehbare Pleite

  • Sicher Alles Paletti

  • Sicher alles Plattmachen

  • Sicher alles Pustekuchen

  • Sichere ArbeitsPlätze (für Berater)

  • Sichern Abstürzen Pause

  • Sicherer Altersvorsorge Plan

  • Sicherer ArbeitsPlatz

  • Sicherheitsverwarung Ahnungsloser Programmierer

  • Sicherlich Allerbeste Planung

  • Sicherlich Am Preiswertesten

  • Sichert alle Pausen

  • Sichert Arbeits-Plätze

  • Sie arbeiten pausenlos.

  • Sieger aller Pannen

  • Siehe alles positiv.

  • Siehe Altes Programm

  • Siemens Anwender Panik (brach aus als SAP eingeführt wurde)

  • Siemens Arbeiter Pest

  • Siemens Aussichtslosestes Projekt

  • Sinnlos, ahnungslos, planlos

  • Simpel animierte Pfütze

  • Singles Auf Partnersuche

  • Skat am Pool

  • Sklaven Arbeiten Pausenlos

  • So a' pfundige (Firma)

  • Sofort Ausrede Parat

  • Sofort Ausweg Parat

  • Software Ante Portas

  • Software attraktiv und preiswert

  • Software aus Pakistan

  • Software aus Palästina

  • Software aus Pappe

  • Software aus Patches

  • Software aus Persien

  • Software aus Plastiktueten,

  • Software aus Polen

  • Software aus Polen, Runs 3 Times faster [over the border]

  • Software zur Ausbeutung des Proletariats

  • Sogar abgeschaltet phobienfördernd

  • Sogar Affen peinlich

  • Solvente Anwender Plechen?

  • so'n a Pech

  • so'n a Pfusch

  • so'n a Plausch

  • Sonntags auchmal Putten

  • Sonst Alles Paletti

  • Sony Advanced Playstation

  • Sorgen, Aerger, Probleme

  • Sorgen Angst und Panik

  • Souveränes Alptraum Programm

  • Spam Aktivation Programm

  • Spannung, Abenteuer und Phantastische Sachen

  • Speichermangel, Abstürze und Plattencrashs

  • SpeicherAufwäige Programmierung

  • Spielende Affen programmieren

  • Spitze aller Programmierkunst

  • Spitzenmäßig aufgeblähte Programme

  • Sprechblasen-assoziierte Produkte

  • Spring Aus Penthaus

  • Stark Alkoholisierte Programmierer

  • Starten, Abbrechen, Protokollieren

  • Starten Abwarten Pause

  • Starten - Ansehen - Psychatrie

  • Statt Arbeiten Papiersalat

  • Stehn Auf Pause

  • Steht auf Papier

  • StellenAbau Programmiert

  • Stellt Anwender (vor) Probleme

  • Stellt Admins (vor) Probleme

  • Stets Allohohl Penötigt

  • Stillstand als Planziel

  • Stinkt auch Politikern

  • Stirbt Am Probetag

  • Stoppt Alle Prozesse

  • Stoppt Alle Provisionsbemühungen

  • Ständig abstürzende Programme

  • Ständig andere Probleme

  • Ständig anders Programmier

  • Strafe aller Programmierer

  • Strafe für Alle Projektmitarbeiter

  • Stress, Alkohol, Panik

  • Stress, Alkohol, Psychatrie

  • Stress Angst & Panik

  • Stress für Alle Projektmitarbeiter

  • Studenten Aergern im Praxissemester

  • Subtiles Abkacken... Permanent

  • Such Anderswo Profis

  • Suche Anderes Programm

  • Suchen Abhaken (P)fluchen

  • Suchen, aber planlos

  • Suchen - Anklicken - Pause

  • Suizid Aufforderungs Programm

  • Summe aller Probleme

  • Super Albernes Programm

  • Super auf Powerpoint

  • Suppenküche arbeitsloser Physiker

  • Suuuper Anwendungs Programm

  • Sympathisches AnwenderProgramm

  • System Absturz Programmiert

  • SystemAnalyse und Problemerzeugung

  • Sächsisches ArbeitsbeschaffungsProgramm

  • Sämtliche Anwender Protestieren

  • ist einfach das Geräusch wenn der Anwender-PC aus dem Fenster geworfen wird ....SSSSSSSSSSSSAAAAAAAAAAAAPPPPPPPPPP..........!!!!!!!

D.2. Englische Auflösungen

In englischer Sprache wird man SAP wohl als »Systems, Applications and Products [in data processing]« auflösen.

  • (S)hit (A)nswers to (P)roblems in Dataprocessing

  • (S)ome (A)nswers to (P)roblems in Dataprocessing

  • (S)tart (A)dding (P)atches

  • After purchase: Such A Pain

  • Before you purchase: Solves All Problems

  • sadistic, ambiguous and pedantic

  • Salary Appreciation Program.

  • SAP Always Problems

  • Save and pray

  • save a penny, spend a pound

  • Scream And Puke?

  • scripts are painful

  • Scrollbars in All Places

  • Search And Prey

  • See After Playing

  • See Administrators Panic

  • Select another program

  • Self Applied Punishment

  • Sell And Pray

  • send another payment

  • sentence and punishment

  • Senseless, aimless, painfull

  • Set up And Pray

  • Several Additional Payments

  • Severe Arse Pain

  • sex and pleasure

  • Sex And Porn

  • Sex And Pornography

  • sex and power

  • Sexually Attractive People

  • shitty as possible

  • shoot again players

  • Shut up And Pay

  • Sick And Pain

  • simple and prosperous

  • Simple Application Program

  • simply a program

  • Sit And Play

  • sit and pray

  • slow and painful

  • smart and pretty

  • Smile and Pay

  • sodding awful program

  • Solve All Problems

  • Some Alternative Problems

  • Someone Always Pays

  • Something About Profits

  • Spend And Pray!

  • Spend A Penny, Save A Pound

  • Spend A Pound, Save A Penny

  • still abusive paper

  • Start and Pray

  • Stop All Production

  • Stop Any Production

  • stops all production

  • stone age program

  • strange and pointless

  • stressing acronym performance

  • Stress Anxiety & Panic

  • structural adjustment programme

  • Submit And Pray

  • such a panic

  • such a pity

  • such a pleasure

  • Sucks All Profits

  • sudden anxiety and panic

  • Suffer After Purchase

  • Suffer And Pay

  • sum of all problems

  • sun and pool

  • Sunday always Put

  • Sunshine And Paradise

  • sweat, anger and problems

  • syphon away profits

  • Systems Against People

D.3. Französische Auflösungen

  • sac à problèmes

  • sac à puces

  • sacrifice annoncé des programmeurs

  • saignant a point

  • salade a pharmaciens

  • sandales aux pieds

  • sans a prior i

  • sans activité professionnelle

  • sans apport personnel

  • sans aspect poétique

  • sans aucune pitié

  • sans aucune priorité

  • sans aucun problème

  • sans aucun progrès

  • sans avenir projeté/ proche

  • sans avis personnel

  • sans avoir peur

  • santé amour propriété

  • saucisse au poivre

  • sauver absolument le patron

  • sérénité a perpétuité

  • seulement avec préservatif

  • sexe a pile

  • sexe, alcool et plage

  • simple à planter

  • situation assez périlleuse

  • société a penser

  • soif a pleurerv

  • solution aux problèmes

  • soucis à perpétuité

  • souffrir avec plaisir

  • souhaite avoir un poste

  • souhaite avoir une prime

  • soumis a priorité

  • soupe aux poireaux

  • source d'accident de production

  • souriez attention photo

  • souvenir d'amour professionnel

  • suer au pénitencier

  • sueurs angoisses paniques

  • suite a prévoir

  • suppositoire atomique périmé

  • surf à poil

  • sursis avant problème

  • sus aux pirates

  • système a pistons

  • système a pognon

  • système à pompe

  • système au point

  • système avec papier

D.4. Italian

  • Salvati Appena Puoi

  • S.A. Pazzo (frei übersetzt Deppen-AG)

  • San Antonio Prega

  • Senza Alcuna Possibilità

  • Serve Anche Passione

  • Siamo A Pezzi

  • Sistema Altamente Pericoloso

  • Solo A Pagamento

D.5. Portuguêse (came from Brasil)

  • Sempre Acaba uma Pizza

  • Sonhando Alcançar o Paraíso

  • Sonhar Ainda é Permitido

  • Sua Animaçao vai Passar

D.6. Spanish

  • Siempre Algunas Porcherias

  • Sistema a Pedales

  • Sistema Automatico, Pero . . .

  • Solo Amigos de Pinto (applies only for Spain!)

  • Sonría al Progreso

  • Soy Argentino Perfecto

  • Suicídate Antes de Partir

D.7. Andere Auflösungen

  • (S)teeds (A)ndere (P)roblemen. (german = Immer weitere Problemen)

  • S.A. Pazzo (ital: Deppen AG)

  • Server Advertising Protokoll (NetWare)

  • Service Access Point (OSI)

  • scrimp alcaline phosphatase.

  • socialdemokratiska arbetareparti (Schwedisch)

  • Sony Advanced Playstation

  • South African Police

  • Sprookjes, Anekdoten & Probleme

  • Symbolic Assembler Program (IBM, IBM 704)

  • Schrik Angst en Paniek. (hollandisch)

D.8. Auflösungen für ABAP

Die ursprüngliche Auflösung (zu R/2-Zeiten) hieß »Allgemeiner Berichts Aufbereitungs Prozessor«. Heute heißt es »Advanced Business Application Programminglanguage«.

  • Alle besten Anwender Probleme

  • Alles blödsinn aber Prächtig

  • (a)lways (b)etter (a)lternatives (p)ossible.

  • Am besten anders Programmieren

  • Anfänger basteln an Programmen

  • Another Boat Another Problem

  • Another Bug, Another Problem

  • Anstrengende, besonders alberne Programmiersprache

  • (A)pplikations (b)asierendes (A)nwender (P)roblem

  • As Bad As Possible

Anhang E. Fahrpläne

Viele Aktionen, die man als Systembetreuer machen muß erstrecken sich über mehrere Tage oder sind relativ kompliziert. Dokumentation ist verstreut über verschiedene Handbücher, SAP-Hinweise, eigene Notizen und dem eigenen Kopf. In all diesen Fällen ist es sinnvoll, einen eigenen Fahrplan mit Terminen, Verantwortlichkeiten und Status anzulegen und diesen abzuarbeiten. Vorteil ist, dass man nicht mehr nachdenken muß, nichts vergißt und es im Zweifelsfall recht einfach wiederholen kann.

E.1. Erstellen einer Systemkopie

Gelegentlich ist es notwendig, ein zusätzliches Testsystem aufzubauen oder das Konsolidierungssystem neu aufzusetzen. In einigen Fällen wird man mit einer Mandanten-Kopie hinkommen, in anderen Fällen ist der produktive Mandant einfach zu groß dafür. In diesem Fall bleibt nur eine Systemkopie - außerdem ist das eine nette Übung für die Wiederherstellung der Datenbank.

Wichtige Anforderungen sind die Vorbereitung eines Release-Wechsels, die Euro-Umstellung oder die Vorbereitung und der Test von Migrationen. So oder so, diese Anforderung wird immer wieder auf uns zu kommen.

Unter /home/groups/sapadmin/K22/P33-Kopie liegen Skripte, Dateien, Infos.

SAP-Lizenz

Warnung

Dieser Fahrplan ist Oracle- und ADSM-spezifisch.

  • Plattenbereiche im Zielsystem auf die Größe des Quellsystems bringen.

  • Die betroffenen Anwender rechtzeitig und ausführlich informieren.

  • Jobs ausplanen und aufräumen lt. Hinweis 16083.

  • Alle Transporte freigeben. (Quell- und Zielsystem?)

  • Offline-Datensicherung. stop_sap P33; switch_logfiles.sh P33; offsite_brbackup P33; start_sap P33; sapcomm?

  • Erstellen des SQL-Skriptes mit dem die Control-Files im Zielsystem neu aufgebaut werden.

    
    #! /bin/ksh
    #
    # Erzeugen des SQL-Skriptes zum rename der Datenbank
    #
    # Aufruf als ora<sid> des Quell-Systems
    #
    SRC=P33
    DST=K22
    
    cd /usr/sap/trans/tmp
    
    # Erzeugen des Trace-Files
    svrmgrl <<EOF
    connect internal
    alter database backup controlfile to trace;
    EOF
    
    # Welchen Namen hat es denn?
    tracefile=`ls -t $ORACLE_HOME/saptrace/usertrace/*.trc | head -1`
    
    # Anpassen an das neue System
    sed -e '1,/^#/d' $tracefile | \
        sed -e 's/ REUSE / SET /' \
            -e 's/ NORESETLOGS / RESETLOGS /' \
            -e "s/$SRC/$DST/" \
    	-e 's/^RECOVER /#RECOVER /' \
    	-e 's/^ALTER SYSTEM /#ALTER SYSTEM /' \
    	-e 's/^ALTER DATABASE OPEN/#ALTER DATABASE OPEN/' \
        > ccf.sql.check
    
    

    Abbildung E.1. Aufbau des SQL-Skriptes


Vorbereiten backfm: Kopie der initP33.utl und der initP33.bki auf hermes05, anpassen an die dortigen Verzeichnisse und auf das Wiedereinlesen der OFFSITE-Sicherung.Hein23.07.1999ok
Stop ImporterHein03.08.1999ok
K22 in der /usr/sap/trans/bin/TPPARAM als Dummy-System definiertHein03.08.1999ok
Shutdown K22Hotline02.08.1999ok
OFFSITE-Sicherung K22Hotline02.08.1999ok
Die folgenden drei Punkte erledigt das Skript /home/groups/sapadmin/K22/P33-Kopie/kill-and-copyHein03.08.1999 
Löschen der alten K22-Daten   
Neuanlegen der Verzeichnisse für die Datafiles (backfm macht das nicht)   
Restore der Datensicherung: / sapmnt/K22/exe/backfm -p /oracle/K22/dbs/initP33.utl NEU: Das ist alles ein Skript.   
Umbenennen der Datenbank lt. Oracle: P33:  alter database SET DATABASE 'K22' ... RESETLOGS. Das SQL-Skript ccf.sql.check sollte das korrekt tun.Hein03.08.1999ok
Die Datenbank starten mit (ist das dokumentiert, dass das genau so notwendig ist?): svrmgrl connect internal startup nomount; alter database mount; alter database open resetlogs;   
Anlegen der OPS$-User im Oracle mit dem Skript /home/groups/sapadmin/scripts/chdbpass, sonst geht es nicht.Hein03.08.1999ok
Check der Datenbank mit sapdbaHein03.08.1999ok
Anlegen der OPS$-User für c11adm im Oracle mit dem Skript /home/groups/sapadmin/scripts/create_ops_user_c11adm.shHein03.08.1999ok
Die Tabelle DDLOG leeren: svrmgrl connect internal; truncate tabel sapr3.ddlog;   
000/hein: se06, neu kopiert aus vorhandenem System Achtung: lokale Programm-Objekte ($tmp) werden Originale   
Umbenennen der SAP-Instanz lt. SAP Hinweis 48585   
sm21 je Instanz einmal aufrufenHein03.08.1999ok
rz10, c11adm, spad; Jobs?   
rz04: Betriebsarten anlegen/anpassen   
smlg: Logon-Groups pflegen   
spad: Drucker dem richtigen Aufbereitungsserver zuordnen, alte Spool-Aufträge löschen, Konsistenz und Installation prüfen   
sm59: RFC-Destinationen?   
TemSe-Reorg und Konsistenzprüfung   
SICK   
sm65: Hintergrundverarbeitung prüfen Springen -> Zusätzliche Tests   
Nacharbeiten lt. Installationhandbuch (welche?)   
RSBTCDEL im Force-Modus starten (Jobs ohne Protokolle löschen)   
OSS1 prüfen   
Kopie Transportpuffer K22 -> K22.P33-Kopie, P33 -> K22Hein03.08.1999ok
Offline Datensicherung K22Hein03.08.1999ok
Nachfahren der ImporteSchultheis13.07.1999 
    
Jobs wieder einplanen   
    
Freigabe des SystemsSchultheis15.07.1999 

Tabelle E.1. xxx


Fragen

Wie geht das wirklich mit dem Oracle-Recovery?

Was ist bei den Transporten zu beachten und zu tun?

Wie ist das System hinterher umzubenennen? Siehe SAP-Hinweise. Welche?

After the systemcopy it might be needed to avoid starting background jobs. You have different ways to achieve that:

  • Set the number of background processes to 0 (for all instances). This can be done with the profile parameter rdisp/wp_no_btc.

  • Stop the Scheduler for background jobs by setting the profile parameter rdisp/btctime to 0.

  • Remove the background jobs from the system:

    update sapr3.tbtco set status='P' where jobname not like 'EU%'
        and jobname not like 'RDDIMP%'
        and jobname not like 'SAP%'
        and status='S';
    
    delete from sapr3.tbtcs where jobname not like 'EU%'
        and jobname not like 'RDDIMP%'
        and jobname not like 'SAP%';

E.2. Systemcopy/Migration with R3load

If you are going to change the operating system or database system underneath your SAP system, you are forced to do a heterogeneous system copy. You'll get the software kit from SAP, as well as the needed license key. At least for productive systems the migration must be done by a certified migration consultant.

Another reason for R3load is a complete reorganization of the database (including SYSTEM tablespace for Oracle). It is also the only way to change the datafile-layout during a systemcopy (backup/restore keeps the layout for Oracle).

TaskCommentsState
Check Free SpaceCheck that there is enough space in the filesystem to store the export (roughly 10% if the database size will be needed). 

Tabelle E.2. Checklist for R3load Export


TaskCommentsState
Prepare DBSIZE.TPLCopy the file DBSIZE.TPL from the export directory into your import directory. Adapt as needed (max file size seems to be 10G, check DBMIG.R3S). Also PSAPTEMP must be large enough (at least the size we had for the export) 

Tabelle E.3. Checklist for R3load Import


Simple Import/Export-Monitoring:

Kapitel 14. Cheat-Sheet with useful backint commands

BACKINT is a definition of a command line interface between brbackup, brarchive, and brrestore and an external backup tool. This chapter is based on my experience with Tivoli Data Protection for R/3 (also known as TSM or ADSM interface for R/3)

The configuration of the BACKINT interface is a so called utl-file. Sometimes you will find it in the exe-directory, sometimes in $ORACLE_HOME/dbs. In my last projekc it was stored in C:\ADSM\SID\initSID.utl.

You can copy the configuration from another system and use that for a system copy.

Useful commands (works only with the correct environment set - DSM_DIR and so on):

  • backint -p initSID.utl -f inquire

    • #NULL /oracle/SID/sapbackup/backSID.log All saved versions of the log

    • #NULL All Backup IDs

    • #BACKUPID List of saved files

  • backint -p initSID.utl -f restore #BACKUPID saved-file [new-file] With -i you can use a backup list, for example for a system copy which moves files to other disks

  • backint -p initSID.utl -f password Reset the password locally (needs corresponding task on TSM server)

  • backint -p initSID.utl -f backup

Nice frontend:

backfm -p initSID.utl

Anhang F. Regelmäßige Tätigkeiten

F.1. Tägliche Aufgaben

Prüfung Datensicherung

sapdba -check

ABAP-Kurzdumps

Verbuchungsabbrüche

Alert-Monitor, Cleanup data/work/global/andere Verzeichniss, Systemjobs prüfen(?)

F.2. Wöchentlicher Kram

  • Early Watch Alert

F.3. Monatliche Tätigkeiten

  • DB-Export/Verify prüfen

  • Benutzerlizenzen prüfen (Liste, Systemvermessung, ZSUSER20)

  • Hotpackages prüfen und einspielen

  • Kernel-Patches prüfen und einspielen

  • Überdenken Datenbank-Statistiken?

  • Datenbankwachstum?

  • Archivierung/Reorg durchführen bzw. Jobs prüfen

  • Aktuelle SAP-Hinweise zusammensuchen

  • TemSE/Spool Check

  • SPAD-Checks

  • Tuning? Sick? Systemlog?

  • Aufräumen der Transportpuffer mit tp cleanbuffer SID, danach starten von tp check all verbose und tp clearold all. Wichtig: Prüfen der Protokolle und Probleme bereinigen. Andernfall läuft das Verzeichnis /usr/sap/trans irgendwann voll.

Anhang G. Erfahrungen aus der bisherigen Installation

G.1. Gute Erfahrungen

  • Ein zentrales Verzeichnis für administrative Aufgaben, Skript, Dokumentationen, Transporte, Patches etc., z.B. unter /home/groups/sapadmin.

  • Führen von einem zentralen ChangeLog im administrativ genutzten Verzeichnis. Ebenso braucht man ein System-ChangeLog dort oder in einem anderen Verzeichnis.

  • Zentrale Sammlung von sequentiellen Dateien, z.B. unter /transfer.

  • NIS als zentrale Benutzerverwaltung, eventuell auch mehr.

  • Zentraler Mail-Hub: alle Mail ist dort zu finden.

  • User Private Groups und umask 002.

  • Gruppen für sapadmin, saptrans.

  • Einfaches Wechseln der User-ID mit sudo bzw. ssh.

  • Zentrales /usr/local für eigene Tools zur Systemverwaltung (bei AIX notwendig, bei Linux möglicherweise weit weniger wichtig).

  • Einfaches Monitoring mittels Skripten. Überwachung data/work/global; leeren aller tmp-Verzeichnisse

  • Early Watch und Early Watch Alert sind nützlich.

  • Viele Probleme sind in SAP-Hinweisen dokumentiert. Aktuelle Patches und Hotpackages einspielen vermindert i.d.R. die Anzahl der Modifikationen und Probleme.

  • Probleme direkt angehen und nicht ignorieren. Oft liest man etwas im Log, später wird's dann zu einem (zeitkritischen) Problem.

  • Monitoring ist nützlich. Big Brother, mon und mrtg sind hilfreich. Ein Fehler darf immer nur einmal auftreten.

  • Jedes System hat eine eigene Instanz-Nummer.

  • Bei mehreren Applikationsservern Logon-Groups einsetzen als HA für Arme.

  • Zeit, die in eine gute Infrastruktur (Basis) investiert wird, zahlt sich aus.

  • Besonders bei mehreren Systemverwaltern braucht man "Regeln zur Systemverwaltung" oder ein "Betriebsführungskonzept", auch wenn es nicht schriftlich dokumentiert ist.

  • samba ist in einer heterogenen Umgebung fast ein muß.

  • Nägel, Köpfe, Draufhauen. Oder: Wer und wann?

G.2. Schlechte Erfahrungen

Die Konsequenzen aus meinen Erfahrungen sind hier positiv (als Angriffsplan) formuliert.

  • Sofort Berechtigungskonzept beginnen, zentrale Verwaltung von SAP-Lizenzen, der Benutzerpflege und der Berechnung der Kosten (Lizenzen und Wartung). Regelmäßige Kontrolle, alle Änderungen an Benutzern erfordern Schriftform. Es gibt keine Benutzer mit der SAP_ALL-Berechtigung. Wechsel zwischen Abteilungen, Ein- und Austritte sollten den Benutzerverwalter rechtzeitig bekannt sein.

  • Archivierung gehört zum Projekt, nicht wenn man mal Zeit hat.

  • Regelmäßige Tätigkeiten sind wichtig. Dokumentieren und tun!

  • Einfaches Monitoring mittels Skripten ist schnell unübersichtlich. Speicherung von Daten zur Systemauslastung im Unix.

  • aktuelle Hinweise überfliegen -> keine Schlamperei bei regelmäßigen Tätigkeiten.

  • Monitoring-Skripte generieren zu viele Mails.

  • Fehlende Anwender/Modul-Liste bei Releasewechsel, Mail-Verteiler, Kommunikation in Projekten.

Schlecht: Hotline (weil sich nicht verantwortlich fühlend), Security (weil keine Policy festgelegt), Dokumentation (jeder macht es woanders, kein integraler Bestandteil der Projekte), /usr/sap/trans auf den HA-Maschinen, /usr/local auf hermes01, /migrate wegen Wechselspiel zwischen HSM und NFS.

G.3. Prämissen für ASAP

Nicht, dass ich Erfahrung damit hatte, aber wenn man nur ein wenig davon beherzigt, dann kann man sich das Leben ein wenig einfacher machen.

  • Das Steering Committee trifft alle wichtigen Entscheidungen innerhalb von zwei bis drei Tagen. Der Berater schlägt jeweils nur eine einzige Lösung vor - keine Alternativen.

  • Vor dem Projektstart sind Umfang und Ziele des Vorhabens (auf einer realistischen Basis) festgelegt.

  • Die wichtigsten Personen im Projektteam stehen dem Vorhaben hundertprozentig zur Verfügung. Aus jedem tangierten Prozeßbereich nimmt ein Vertreter am Projekt teil.

  • Das Unternehmen orientiert sich am R/3-Standard und sieht, soweit möglich, von Modifikationen ab.

  • Für die Systemadministration, die Altdatenübernahme und die Schnittstellen zu anderen Systemen steht ein Technikteam zur Verfügung.

  • Alle Parteien einigen sich darauf, dass das Einhalten des Fahrplans das oberste Ziel ist.

  • Das Team arbeitet in einem gemeinsamen Projektraum, um sich informell abstimmen zu können und auf diese Weise modulweise Teiloptimierungen zu vermeiden.

Es sollten viele Milestones mit knappen, nachprüfbaren und realistischen Terminen gesetzt werden. Bei Terminüberschreitungen läuft etwas falsch.

G.4. The Brief. If you haven't got one, invent one

Der folgende Auszug stammt aus [Dust or Magic]. Eigentlich geht es um Multimedia-Projekte und Werbung, aber etwas abgewandelt beschreiben die Punkt einige Richtlinien für einen erfolgreichen Projektstart.

A basic brief tells you five things:

  • Who your audience is.

  • What you are promising them.

  • What you want them to do about it.

  • The "One great thing" or "singleminded proposition": the message that will make them sit up and go "Wow!"

  • What your constraints are (i.e., how much time and money you've got, and what media).

Anhang H. Online-Resourcen

Die Usenet-Newsgroups comp.soft-sys.buisiness.sap (gegatete Mailingliste xxx) und de.alt.comp.sap-r3.

Mailing-Liste: , subscribe bei . High Traffic, selektierbar nach TOPIC. Anleitung kommt per Mail, englische Sprache.

Mailinglisten bei bosvm? d-sap-r3-l@bosm.de; Prüfen, irgendwo hab' ich's gelesen.

http://www.chscene.ch/ccc/ds/62/008_sapr3.html www.it-audit.de www.linuxfabrik.de www.sapbooks.com www.saplabs.com www.sappro.com Seit Anfang gibt es auch zwei amerikanische: SAP Technical Journal - http://www.saptechjournal.com SAP Professional - http://www.sappro.com

www.sap-ag.de

Die offizielle SAP-Website.

sapnet.sap-ag.de

Das SAPNet: Jede Menge SAP-Informationen für registrierte Kunden, OSS-Hinweissuche, Hotpackages, Dokumentationen und mehr. Ein Muß für jeden SAP-Kunden.

www.user-info.de

SAP Infos aus zweiter Hand, aber sehr nützlich.

www.sapfans.com

SAP Infos aus zweiter Hand, aber sehr nützlich.

Welcome to IDES

SAP Technical Journal

ABAP Hints & Tips

ABAP 4 U

ABAP 4 U

Hand-Crafted Software Home Page

Linuxfabrik homepage

E/3-Homepage

E/3-Homepage

ABAP Hints & Tips

Q&A DB Welcome

Welcome to mySAP.com

CT-Software GmbH: Tools for SAP R/3 ABAP/4

Das SAP Business Magazin: News aus IT, Wirtschaft, Politik, Technik, Management und Karriere...

Infos und Links zu SAP R/3

www.sap-links.de

A Homepage for SAP Professionals

SAPEdit External ABAP/4 Editor

Welcome to the SAP FAQ

SAP Assist - Assisting SAP Practitioners With Their Daily Activities

Tool Overview

Free Abaps

SAP R/3 archive searchable database

SAP Assist - Assisting SAP Practitioners With Their Daily Activities

SAP Fans Home Page: The SAP Fan Club and User Forum

SAP AG [Products]

SAP AG [Industries - SAP Media]

SAP AG [Homepage]

R/2online deutsch

SAPNet - - Online Correction Service

SAPNet Assistant

SAPNet Communication

SAPNet OSS/Notes

SAP AG [Homepage]

Die SAP-Info-Seite in Deutschland!

SAP Club - Offers Chat Rooms, Discussion Groups, Training and Free Email and other cool stuff to chill out

SAP R/3 FORUM

SAPNet

SAP Miscellaneous "Stuff"

SAP R/3 Listserv Signup

http://ftp.wustl.edu/doc/misc/org/cait/sap/Mailing-Lists/SAP-R3-L/WELCOME

TechWeb

SAP-FAQ - deutsche Version -

Staudt & Krämer WebTechnologies GbR

PBS-Online-Archive für SAP R/3

5.5 User Gruppen, Newsgruppen, List-Server und Hilfen der Anwender

SAP-Arbeitskreis Hochschulen e.V.

Es gibt doch sicher noch mehr URLs?

www.sapfans.com www.sapfaq.com www.sapmag.de www.sapassist.com www.abap4.net www.sapinfo.com

Seite http://www.sap-links.de oder http://www.sap-consulting.de . Das ganze

http://www.ssh.fi, add lsh-URL

http://www.gnu.org

sapmag?

Literaturverzeichnis

Bücher

ABAP/4. Die Programmiersprache des SAP-Systems R/3. Bernd Matzke. Addison-Wesley. 3827315530.

Administration des SAP-Systems R/3. Leitfaden zur Systembetreuung und -optimierung. Liane Will. Christiane Hienger. Frank Straßenburg. Rocco Hirmer. Addison-Wesley. 3827311365.

Die Technologie des SAP-Systems R/3. Basis für betriebswirtschaftliche Anwendungssysteme. Rüdiger Buck-Emden. Addison-Wesley. 3827313791.

SAP Business Workflow. Konzept, Anwendung, Entwicklung. Andreas Berthold. Ulrich Mende. Addison-Wesley. 3827316871.

SAP R/3 - Basissystem. CDI. Addison-Wesley. 3827314631.

SAP R/3 - Einführung. CDI. Addison-Wesley. 3827314674.

SAP R/3 - Finanzwesen. CDI. Addison-Wesley. 3827314658.

SAP R/3 - Gemeinkostencontrolling. CDI. Addison-Wesley. 382731464X.

SAP R/3 - Materialwirtschaft. CDI. Addison-Wesley. 3827314666.

SAP R/3 - Personalwirtschaft. CDI. Addison-Wesley. 3827314623.

SAP R/3 Der schnelle Einstieg. Herausgegeben von der CIMAP Consulting GmbH. Michael Ullrich. Addison-Wesley. 3827316464.

SAP R/3 dynamisch einführen. Das dynamische, DSDM-basierte Vorgehensmodell für SAP R/3-Projekte. Marcus Geiß. Roland Soltysiak. Addison-Wesley. 3827314569.

SAP R/3 prozeßorientiert anwenden. Iteratives Prozeß-Prototyping mit Prozeßketten. Gerhard Keller. . Addison-Wesley. 3827314968.

SAP R/3 Systeme effizient testen. Automatisiertes Testen von Geschäftsprozessen in R/3. Gerhard Oberniedermaier. Marcus Geiß. Addison-Wesley. 3827315611.

SAP R/3-Einführung mit ASAP. Technische Implementierung von SAP R/3 planen und realisieren. Hartwig Brand. Addison-Wesley. 3827313805.

SAP R/3-Performanceoptimierung. Analyse und Tuning von R/3-Systemen. Thomas Schneider. Addison-Wesley. 3827314003.

SAP R/3-Systemadministration. Basiswissen für das SAP R/3-Systemmanagement. Liane Will. Addison-Wesley. 3827313562.

A Holistic Approach to a Reliable Infrastructure for SAP R/3 on AIX. IBM. Oktober 2001.

Interessante Bemerkungen zu einem stabilen SAP Betrieb, bei IBM unter der Nummer SG24-5050-00 zu beziehen. Im Internet ist es hier zu finden.

Peopleware - Produktive Projects and Teams. Tom DeMarco. T. Lister. Dorset House Publishing. 0-932633-05-6. 1987.

Die deutsche Übersetzung heißt »Wie wartet auf Dich - der Faktor Mensch im DV-Management«. Unbedingt lesenswert.

The mythical Man-Month. Fred Brooks. Addison-Wesley. 0-201-83595-9. 1995.

Der Klassiker zur Terminplanung in Projekten.

Death March: managing »mission impossible« projects. The Complete Software Developer's Guide to Surviving »Mission Impossible« Projects. Edward Yourdon. Prentice Hall. 0-13-748310-4. .

Wie man Projekte übersteht, die unter massivem Druck durchgeführt werden. Lesenswert.

Dynamics of Software Development. Jim McCarthy. Microsoft Press. 1-555615-823-8. 1995.