Sie sind auf Seite 1von 324

BC425 Erweiterungen und Modifikationen

Erweiterungen und
Modifikationen
SAP AG 2002

System R/3
Systemanforderungen: SAP_ Basis 6.10 oder hher
2002/Q4
5005 9055

SAP AG BC425 0-1


Copyright

Copyright 2002 SAP AG. Alle Rechte vorbehalten.


Weitergabe und Vervielfltigung dieser Publikation oder von
Teilen daraus sind, zu welchem Zweck und in welcher Form
auch immer, ohne die ausdrckliche schriftliche Genehmigung
durch SAP AG nicht gestattet. In dieser Publikation enthaltene
Informationen knnen ohne vorherige Ankndigung gendert
werden.
Alle Rechte vorbehalten.

SAP AG 2001

Warenzeichenvermerke
Die von SAP AG oder deren Vertriebsfirmen angebotenen Software-Produkte knnen Software-
Komponenten auch anderer Software-Hersteller enthalten.
Microsoft, WINDOWS, NT, EXCEL, Word, PowerPoint und SQL Server sind
eingetragenen Marken der Microsoft Corporation.
IBM, DB2, OS/2, DB2/6000, Parallel Sysplex, MVS/ESA, RS/6000, AIX, S/390,
AS/400, OS/390 und OS/400 sind eingetragene Marken der IBM Corporation.
ORACLE ist eine eingetragene Marke der ORACLE Corporation.
INFORMIX-OnLine for SAP und INFORMIX Dynamic ServerTM sind eingetragene Marken
der Informix Software Incorporated.
UNIX, X/Open, OSF/1 und Motif sind eingetragene Marken der Open Group.
HTML, DHTML, XML, XHTML sind Marken oder eingetragene Marken des W3C, World Wide
Web Consortium, Massachusetts Institute of Technology.
JAVA ist eine eingetragene Marke der Sun Microsystems, Inc.
JAVASCRIPT ist eine eingetragene Marke der Sun Microsystems, Inc., verwendet unter der Lizenz
der von Netscape entwickelten und implementierten Technologie.
SAP, SAP Logo, R/2, RIVA, R/3, ABAP, SAP ArchiveLink, SAP Business Workflow,
WebFlow, SAP EarlyWatch, BAPI, SAPPHIRE, Management Cockpit, mySAP.com Logo und
mySAP.com sind Marken oder eingetragene Marken der SAP AG in Deutschland und vielen anderen
Lndern weltweit. Alle anderen Produkte sind Marken oder eingetragene Marken der jeweiligen
Firmen.

SAP AG BC425 0-2


Voraussetzungen fr Teilnehmer

z SAP50 - Basistechnologie
z BC400 - ABAP Workbench: Grundlagen
z BC402 - ABAP Programmiertechniken
z Erfahrung in Customizing-Projekten ntzlich

SAP AG 1999

SAP AG BC425 0-3


Zielgruppe

z Teilnehmer
Leiter des Projektteams
Mitarbeiter des Projektteams, das mit der Anpassung des
R/3 an die Unternehmensbedrfnisse beauftragt ist

z Dauer: 3 Tage

SAP AG 1999

Benutzerhinweise
Die Schulungsunterlagen bilden keine Selbstlernprogramme. Nur in Verbindung mit den
Erluterungen des Referenten/der Referentin haben Sie komplette Unterlagen. Auf Ihren Unterlagen
haben Sie Platz, um diese Zusatzinformationen zu notieren.

SAP AG BC425 0-4


Grobziel des Kurses

Dieser Kurs vermittelt Ihnen Kenntnisse zu:

z Anpassen des R/3 Standards an die


Kundenbedrfnisse durch
Personalisierungstechniken
Erweiterung des von SAP ausgelieferten
Standards
Modifikation des Standards und
Modifikationsabgleich

SAP AG 1999

SAP AG BC425 0-5


Einfhrung: Inhalt

z Grobziel des Kurses


z Lernziele des Kurses
z Inhaltsverzeichnis
z bersichtsdiagramm
z Gesamtunternehmensszenario
z Einfhrung des Kurses

SAP AG 1999

SAP AG BC425 1-1


Zielsetzungen des Kurses

Dieser Kurs ermglicht es Ihnen:


z nderungen am SAP Standard fachgerecht
durchzufhren.
z die verschiedenen nderungsmethoden bewerten
zu knnen und je nach Sachlage die richtige
auszuwhlen

SAP AG 2002

SAP AG BC425 1-2


Lernziele des Kurses

Am Ende des Kurses knnen Sie:

z einen berblick ber die verschiedenen


nderungsebenen des R/3-Systems geben
z Dictionary-Objekte erweitern, ohne sie zu
modifizieren
z Erweiterungen des R/3 Standards mit Hilfe von
Customer-Exits , Business Transaction Events
und Business Add Ins realisieren
z Modifikationen mit Hilfe des
Modifikationsassistenten durchfhren und
abgleichen

SAP AG 2002

SAP AG BC425 1-3


Inhaltsverzeichnis

Vorspann

Kapitel 1 Kursberblick

Kapitel 2 nderungen des SAP Standards

Kapitel 3 Personalisierung

Kapitel 4 Erweiterungen an Elementen des Dictionary


Kapitel 5 Erweiterungen ber Customer-Exits

Kapitel 6 Business Transaction Events

Kapitel 7 Business Add Ins


Kapitel 8 Modifikationen

Kapitel 9 Zusammenfassung

Kapitel 10 Anhang

Die bungen und Lsungen finden Sie am Ende des jeweiligen Kapitels
SAP AG 2002

SAP AG BC425 1-4


bersichtsdiagramm

R/3 Business Anwendungen


(SAP Standard)

Personali
Modifikation Erweiterung
sierung
z Transaktions z Modifikationsassistent z ABAP Dictionary
varianten Tabellen 4
z User-Exits Datenelemente

z Customer-Exits
Funktionsbaustein-Exits 5
Men-Exits
3 8 Dynpro-Exits

z Business Transaction
Events 6
z Business Add Ins
7

z berblick 2
SAP AG 2002

SAP AG BC425 1-5


Gesamtunternehmensszenario

z Als Mitarbeiter der EDV-Abteilung eines


Reiseveranstalters haben Sie die Aufgabe, von
Ihren Kundenberatern eingesetzte Programme
um Funktionalitt zu erweitern
z Dazu stehen Ihnen verschiedene Mglichkeiten
zur Verfgung, die Sie einsetzen knnen, ohne
den ausgelieferten Standard zu modifizieren

SAP AG 1999

SAP AG BC425 1-6


nderungen des SAP Standards

Inhalt:
z berblick ber die nderungsebenen
z Entscheidungsdiagramm
z nderungstechniken

SAP AG 1999
nderungen des SAP Standards: Lernziele des
Kapitels

Am Ende dieses Kapitels knnen Sie:

z erklren, auf welchen Ebenen Sie den von SAP


ausgelieferten Standard ndern knnen
z die geeignete Methode auswhlen, mit deren Hilfe
Sie den Standard verndern
z aufzhlen, welche Erweiterungstechniken Ihnen
zur Verfgung stehen und wie diese prinzipiell
arbeiten

SAP AG 1999
bersichtsdiagramm nderungen des Standards

R/3 Business Anwendungen


(SAP Standard)

Personali
Modifikation Erweiterung
sierung
z Transaktions z Modifikationsassistent z ABAP Dictionary
varianten Tabellen 4
z User-Exits Datenelemente

z Customer-Exits
Funktionsbaustein-Exits 5
Men-Exits
3 8 Dynpro-Exits

z Business Transaction
Events 6
z Business Add Ins
7

z berblick 2
SAP AG 2002
nderungsebenen

R/3 Business
Kunden-
Anwendungen
programme
(SAP Standard)

Eigenent-
Customizing Personalizing Modifikation Erweiterung
wicklung

Customizing ABAP
Workbench

SAP AG 2002

Sie knnen das R/3-System auf folgende Arten an Ihre Erfordernisse anpassen:
- Customizing: Einstellung der Geschftsprozesse und Funktionen entlang eines
Einfhrungsleitfadens. Mgliche nderungen sind damit vorgedacht und vororganisiert.
- Personalizing: Vernderung der globalen Anzeigeeigenschaften von Feldern (Vorbelegung,
Ausblendung), benutzerspezifische Menfhrung.
- Modifikation: nderungen an SAP Repository-Objekten beim Kunden. Liefert SAP eine
vernderte Version des Objektes aus, mu die Kundenversion mit der neuen SAP-Version
abgeglichen werden. Dies geschieht bis Release 4.0B manuell in den Upgrade-Utilities. Seit
Release 4.5A wird der Abgleich durch den Einsatz des Modifikationsassistenten weitgehend
automatisiert.
- Erweiterung: Erstellung kundeneigener Repository-Objekte, die in SAP Repository-Objekte
eingebunden werden.
- Eigenentwicklung: Erstellung kundeneigener Repository-Objekte unter Bercksichtigung der
Kundennamensrume.
Customizing und weitgehend auch Personalizing werden mit den Tools des Business Engineer
durchgefhrt, Eigenentwicklung, Erweiterungskonzept und Modifikation mit den Tools der ABAP
Workbench.
Originale und Kopien

Entwicklungssystem Folgesystem

Kundenobjekt Kundenobjekt

Original Kopie
Transport der
Entwicklung

SAP-Objekt SAP-Objekt SAP-Objekt

Original Kopie Kopie

SAP AG 2002

Ein Objekt kann nur in genau einem System original sein. Bei von SAP ausgelieferten Objekten
befindet sich das "Original-System" bei SAP selbst. In Ihrem Kundensystemen liegen diese Objekte
nur als Kopien vor. Dies gilt sowohl fr Ihr Entwicklungssystem als auch fr alle Ihre Folgesysteme.
Fhren Sie Eigenentwicklungen durch, sind Ihre Objekte original im Entwicklungssystem. Eine
Entwicklung ordnen Sie einem nderungsauftrag zu. Die entsprechende Aufgabe hat den Typ
"Entwicklung/Korrektur".
Mit Hilfe dieses Auftrags werden die Objekte vom Entwicklungssystem in die Folgesysteme
transportiert.
Korrekturen und Reparaturen

Entwicklungssystem Folgesystem

Kundenobjekt Kundenobjekt
korrigiertes
Kopie
Original
Transport
Korrektur der Korrektur

SAP-Objekt SAP-Objekt SAP-Objekt


korrigiertes modifizierte
Kopie
Original Kopie
Transport
Korrektur Reparatur der Reparatur

SAP AG 2002

Eine nderung des Originals wird als Korrektur bezeichnet. Dementsprechend zeichnet das System
diese nderungen in einem Auftrag mit Aufgaben vom Typ "Entwicklung/Korrektur" auf.
Wird hingegen eine Kopie gendert (ein Objekt nicht in seinem Originalsystem gendert), wird diese
nderung in einer Aufgabe vom Typ "Reparatur" aufgezeichnet. Eine Reparatur eines SAP-Objekts
wird als Modifikation bezeichnet.
Bei Reparaturen an Ihren eigenen Objekten (z.B. in Folge eines Notfalls im Produktivsystem) haben
Sie die Mglichkeit, die nderungen sofort auch an den Originalen im Entwicklungssystem
nachzuziehen. Es ist unbedingt erforderlich, da Sie nderungen an Kopien sofort auch am
Original vornehmen!!
Diese Mglichkeit besteht bei SAP-Objekten nicht, da sich die Originale nicht in einem Ihrer
Systeme befinden.
Modifikationen des Standards sollten nur dann vorgenommen werden, wenn sie fr die Optimierung
bestimmter Arbeitsablufe in einem Unternehmen unumgnglich sind. Auch sollten Sie sich darber
im Klaren sein, da ein gutes Hintergrundwissen ber die Aufbau- und Ablaufstruktur einer
Applikation als Grundlage fr die Beurteilung von Modifikationsmglichkeiten und fr sinnvolles
Modifikationsdesign bei nderungen des Standards unabdingbar ist.
Modifikationen beim Upgrade

Entwicklungssystem Folgesystem

Kundenobjekt Kundenobjekt
korrigiertes
Kopie
Original

SAP-Objekt SAP-Objekt SAP-Objekt


korrigiertes modifizierte
Kopie
Original Kopie
Transport
Modifikations des Abgleichs
abgleich

Upgrade Upgrade

SAP AG 2002

Spielen Sie ein Upgrade, ein Hot Package oder sonst einen Transportauftrag von SAP in Ihr System
ein, kann es zum Konflikt kommen.
Ein Konflikt tritt dann auf, wenn ein SAP-Objekt sowohl von Ihnen gendert, als auch von SAP neu
ausgeliefert wird: Das von SAP neu ausgelieferte Objekt wird aktives Objekt im Repository Ihres
R/3-Systems.
Wollen Sie Ihre nderungen retten, mssen Sie fr die entsprechenden Objekte einen
Modifikationsabgleich durchfhren. Bei vielen modifizierten SAP-Objekten kann es dabei zu
erheblichen Verzgerungen beim Einspielen eines Upgrades kommen.
Um zwischen Entwicklungssystem und Folgesystemen einen konsistenten Stand zu wahren, wird
dringend empfohlen, den Modifikationsabgleich nur im Entwicklungssystem durchzufhren. Die
Objekte des Abgleichs werden dann in die Folgesysteme transportiert.
Vorgehensweise bei Funktionalittsnderungen

Customizing
Gibt es eine Standardfunktionalitt,
die ber Customizing/Personalizing dem Customizing
Kundenwunsch angepat werden kann? Personalizing
Ja
Nein

Ist im SAP-Standard berhaupt Eigenentwicklung


eine hnliche Funktionalitt abgebildet? CSP-Lsung
Nein
Entwicklung

Ja
Ermglicht
die SAP-Applikation,
zustzliche Funktionalitt ber Erweite- Erweiterung
rungen einzubinden?
Ja
Nein Nein

Eigenentwicklung mit
Modifikation
SAP-Prog. als Vorlage
SAP AG 2002

Kann die Standardfunktionalitt nicht ber Customizing oder Personalizing dem Kundenwunsch
angepat werden, mu ein Entwicklungsprojekt gestartet werden oder, falls verfgbar, eine CSP
Lsung (CSP = Complementary Software Product) verwendet werden. Von SAP zertifizierte CSP-
Lsungen finden Sie im SAP Service Marketplace unter dem Alias /softwarepartner.
Im Entwicklungsprojekt betreiben Sie Eigenentwicklung, wenn im SAP-Standard keine hnliche
Funktionalitt vorhanden ist. Ansonsten setzen Sie durch Erweiterungen, User-Exits, Modifikationen
oder Kopie von SAP-Programmen auf SAP-Standard-Objekten auf.
Modifikationen sind problematisch, da nach einem Upgrade die neue SAP-Version mit der
modifizierten Kundenversion abgeglichen werden mu. Dies geschieht bis Release 4.0B manuell in
den Upgrade-Utilities. Seit Release 4.5A wird der technischen Abgleich weitgehend durch den
Modifikationsassistenten automatisiert.
Modifizieren Sie nur dann, wenn
y Customizing oder Personalizing Ihre Anforderung nicht umsetzen knnen
y Geeignete Erweiterungen oder User-Exits nicht vorgedacht sind
y das Kopieren des SAP-Objekts in den Kundennamensraum nicht sinnvoll ist.
Customizing

Vorgehensmodell Einfhrungsleitfaden
ASAP

Geschftsprozeszenarien Anwendungskomponenten Business-Objekte


Material- Purchase Purchase Schedule
wirtschaft
order order item lines

Purchase order
consignment

R/3
Bestands-
Einkauf
Informations- Lager- Time
fhrung system verwaltung
Purchase order

-Re
returnable packaging
Lieferanten- Bestell-
anforde- Bestellung Purchase order

mo feren
anfrage
rung
/-angebot
third party delivery

del z-
Prozemodell Unternehmensorganisation Objektorientiertes l
Datenmodell
Purchase Vendor Vendor Purchase
requisition inquiry quotation information

Shipping
notification

Purchase
order

Vendor
scheduling
agreement

Workflow und Organisation

SAP AG 1999

Der Business Engineer umfat alle Einfhrungswerkzeuge der SAP. Dazu gehren insbesondere:
y Referenzmodell
Alle Modelle, die R/3 beschreiben (Prozemodell, Datenmodell, Organisationsmodell)
y Einfhrungsleitfaden (Implementation Guide)
Liste aller Customizing-Aktivitten
Personalizing

Vereinfachung und Personalisierung der


Anwendung ist oftmals auerhalb der ABAP
Workbench mglich.

z Globale Anzeigeeigenschaften von Feldern


z SET/GET Parameter
z Variantentransaktionen
z Systemweite Table-Control-Einstellungen
z Personalisierte Mens
z Rollenbasiertes Men
z Favoriten
z Shortcuts auf Desktop

SAP AG 2002

Ziel des Personalizing ist die Beschleunigung und Vereinfachung der mit dem R/3 System zu
bearbeitenden Geschftsvorflle. Die Transaktionen der jeweiligen Anwendungen werden an die
betriebswirtschaftlichen Bedrfnisse des Unternehmens oder unterschiedlicher Benutzergruppen
angepat. Nicht bentigte Informationen und Funktionen in den Transaktionen werden ausgeschaltet.
ber globale Anzeigeeigenschaften knnen Felder auf Dynpros vorbelegt werden. In Transaktionen
knnen einzelne Felder, einzelne Spalten von Table Controls oder ganze Dynpros ausgeblendet
werden.
Mit Hilfe von Rollenbasierten Mens, eigenen Favoriten und Shortcuts auf dem Desktop kann die
Menfhrung
Mit Hilfe von Rollenbasierten Mens, eigenen Favoriten und Shortcuts auf dem Desktop kann die
Menfhrung auf die Bedrfnisse unterschiedlicher Benutzergruppen im Unternehmen ausgerichtet
werden.
ABAP Workbench nderungsebenen

R/3 Business Kunden-


Anwendungen programme
(SAP Standard)

Eigenent
Modifikation Erweiterung
wicklung
z ABAP Dictionary z Mit Aufruf von SAP
z Modifikationsassistent Tabellen Objekten
Datenelemente z Ohne Aufruf von SAP
z Programm- Objekten
Erweiterungen
Funktionsbaustein-Exits
Business Transaction
Events
Business Add Ins
z Men-Erweiterungen
Men-Exits
Business Add Ins
z Dynpro-Erweiterungen
Dynpro-Exits
Business Add Ins

z User-Exits
SAP AG 2002

Modifikationen sind nderungen an SAP-Objekten in Kundensystemen. Sie existieren:


y gefhrt durch User-Exits (fr Kunden reservierte Unterprogramme in Objekten des SAP-
Namensraums)
y hart an beliebigen Stellen in SAP-Repository-Objekten.
Bei Eigenentwicklung knnen aus kundeneigenen Programmen SAP-Repository-Objekte gerufen
werden. Beispiel: Ein Kunde erstellt ein Programm, das einen Funktionsbaustein von SAP ruft.
In den Erweiterungskonzepten ist die Rollenverteilung umgekehrt: Aus von SAP ausgelieferten
Programmen werden Repository-Objekte gerufen, die Sie als Kunde angelegt oder verndert haben.
Beispiel: Sie verwenden einen Funktionsbaustein-Exit, der von SAP gerufen wird. Erweiterungen
sind auf folgenden Ebenen mglich:
y im ABAP-Programm (Funktionsbaustein-Exit)
y in der GUI-Oberflche (Men-Exit)
y in Dynpros als Einblendung eines Subscreens in einem von SAP vorgedachten Bereich (Dynpro-
Exit)
y als Durchlaufen kundeneigener Programmstrecken bezogen auf ein Dynprofeld (Feld-Exit)
y in Tabellen oder Strukturen des ABAP Dictionary (Tabellenerweiterung).
Tabellenerweiterungen

ABAP
Dictionary Tabellendefinition YYFeld ZZFeld
Feld 1 Feld 2 Feld 3 Append-Struktur

Tabellendefinition YYFeld ZZFeld


Feld 1 Feld 2 Feld 3 CI_Incl CI_Include

Datenbank

Feld 1 Feld 2 Feld 3 YYFeld ZZFeld

SAP AG 1999

SAP bietet Ihnen zwei Mglichkeiten, Tabellen und Strukturen um Felder zu erweitern:
y Append-Strukturen
y Customizing-Includes ("CI-Includes")
Beide Techniken erlauben es, Felder an eine Tabelle anzuhngen, ohne die Tabelle selbst zu
modifizieren.
Eine Append-Struktur ist eine Struktur, die genau einer Tabelle zugeordnet ist. Es kann mehrere
Append-Strukturen zu einer Tabelle geben. Beim Aktivieren werden alle aktiven Append-Strukturen
zur Tabelle gesucht und an die Tabelle angehngt.
Append-Strukturen unterscheiden sich in der Art des Verweises zur zugehrigen Tabelle von
Include-Strukturen, zu denen auch die Customizing-Includes gehren. Um die Felder einer Include-
Struktur in eine Tabelle zu bernehmen, mu die Tabelle um eine Zeile der Form '.INCLUDE...'
erweitert werden. Der Verweis geht also in diesem Fall von der Tabelle aus. Eine Append-Struktur
hat dagegen einen Verweis zur zugehrigen Tabelle, welche selbst unverndert bleibt. Der Verweis
geht hier von der Append-Struktur aus.
Tabellenerweiterungen: SAP und Kunde

SAP Kunde

Tabelle Tabellenerweiterung Append-Struktur

Tabelle + Include- Tabellenerweiterung CI_Include


Anweisung

SAP AG 1999

Append-Strukturen erlauben es, Felder an eine Tabelle anzuhngen, ohne die Tabelle selbst zu
modifizieren. Tabellenerweiterungen ber Append-Strukturen mssen demnach nicht von der SAP-
Entwicklung vorgedacht sein. Eine Append-Struktur kann nur zu genau einer Tabelle gehren.
CI_Includes erlauben es demgegenber, die gleiche Struktur in mehreren Tabellen zu verwenden.
Die Include-Anweisung muss schon in der SAP-Tabelle oder -Struktur vorhanden sein. Im
Gegensatz zu Append-Strukturen mssen CI_Includes also von der SAP-Entwicklung vorgedacht
sein.
Programm-Erweiterungen: Funktionsweise

***
*** SAP
SAP program
program ***
***
*********************************
*********************************

PROGRAM
PROGRAM <name
<name of
of SAP
SAP program>.
program>.

<Aufruf der Erweiterung>


<Objekt im Kundennamensraum>

Customer-Exit Exit-Funktionsbaustein
Business Transaction Event Funktionsbaustein

Business Add In Methode

SAP AG 1999

Bei Programm-Erweiterungen ist das Ziel prinzipiell immer, ein Objekt im Kundennamensraum zu
rufen. Dazu gibt es verschiedene Techniken:
y Customer-Exits
Vom SAP Anwendungsprogramm wird ein spezieller Exit-Funktionsbaustein aufgerufen. Der
Funktionsbaustein ist Teil einer Funktionsgruppe, die vom System auf eine spezielle Weise
behandelt wird.
y Business Transaction Events
Vom SAP Anwendungsprogramm wird ein Funktionsbaustein im Kundennamensraum dynamisch
aufgerufen.
y Business Add Ins
Das Anwendungsprogramm ruft eine Methode einer Klasse oder Instanz einer Klasse auf. Diese
Klasse liegt im Kundennamensraum.
Programm-Erweiterungen: SAP und Kunde

SAP Kunde

Customer-Exit:
FB-Coding
Funktionsbaustein-Exit
Aufruf
Verwaltung Funktionsbaustein
Business Transaction Events im Kunden
Schnittstelle namensraum
Dokumentation

Business Add Ins Methode in


Kunden-Klasse

SAP AG 1999

Programm-Erweiterungen erlauben ihnen, zustzliche Programmlogik zu einem SAP


Anwendungsprogramm zu hinterlegen. Dazu bietet SAP zur Zeit die oben angegebenen Techniken.
Die Vorteile und Einschrnkungen der jeweiligen Erweiterungstechnik werden wir in den
entsprechenden Kapiteln nher betrachten.
Men-Erweiterungen: SAP und Kunde

SAP Kunde

Menu 1 Menu 2 Menu 3 Menu 1 Menu 2 Menu 3


Function
Function11 Function
Function11
Function
Function22 Function
Function22
Function
Function33 Function
Function33
Kundenfunktion

Funktionscode
Text
Erweiterung Men-Exits
(Ikonen)
Dokumentation

SAP AG 1999

Men-Erweiterungen erlauben Ihnen, zustzliche Men-Eintrge zu einem SAP Standard-Men


hinzuzufgen. Dazu bietet Ihnen das System zur Zeit zwei Mglichkeiten:
y Customer-Exits
y Business Add Ins
Die zustzlichen Men-Eintrge werden in die GUI-Oberflche eingemischt.
Beim Implementieren des Funktionscodes knnen sie den Text des Men-Eintrags ndern und -
abhngig davon, was der SAP Entwickler vorgesehen hat - Ikonen ndern.
Dynpro-Erweiterungen

SAP Kunde

SAP R/3 SAP R/3

Feld 1 Feld 1 Feld Z


Feld 2 Feld 2

Feld X
Feld Y

Subscreen-Bereiche
Dynpro-Exit Subscreen-Dynpros
Ablauflogik
Erweiterung Business Add In FB-Coding

Dokumentation

SAP AG 2002

Dynpro-Exits gehren zu den Customer-Exits und erlauben Ihnen, auf einem Dynpro eines SAP
Anwendungsprogramms zustzliche Objekte anzeigen zu lassen. Dazu mu der SAP Entwickler:
y die Subscreen-Bereiche definieren
y die entsprechenden Aufrufe in der Ablauflogik vorsehen
y den Rahmen fr den Datentransport zur Verfgung stellen
y den Dynpro-Exit in eine Erweiterung aufnehmen
y Dokumentation pflegen!
Ab SAP Web Application Server 6.20 knnen auch Business Add Ins Dynpro-Exits enthalten.
Sie knnen Dynpro-Exits implementieren, indem sie Subscreen-Dynpros anlegen, eventuell mit
Ablauflogik. Darber hinaus mssen sie den Datentransport implementieren.
Wie Sie Dynpro-Exits implementieren, wird im Kapitel "Erweiterungen ber Customer-Exits" fr
die "klassischen" sowie im Kapitel "Business Add Ins" fr die neuen Dynpro-Exits behandelt.
Modifikationen

SAP Kunde

SAP-Programm SAP-Programm
PROGRAM ... . PROGRAM ... .
... ...

*Original Coding.. *Original Coding..


... ...
... ...
... ...
* vom Kunden gendertes/hinzugefgtes
* Coding
... ...
*Original Coding.. *Original Coding..
... ...

SAP AG 1999

Bei einer Modifikation verndern Sie das von SAP ausgelieferte Objekt direkt.
Dies hat verschiedene Konsequenzen beim nchsten Upgrade. Wird das Objekt erneut ausgeliefert,
mssen sie entscheiden, ob in ihrem System das neue, von SAP ausgelieferte Objekt wirksam sein
soll oder das von ihnen vernderte gltig bleiben soll.
Bis Release 4.0B war die feinste Granularitt, auf der Modifikationen aufgezeichnet wurden, das
Repository-Objekt selbst, also zum Beispiel ein Include-Programm.
Seit Release 4.5A werden Modifikationen mit einer feineren Granularitt aufgezeichnet. Ermglicht
wird dies durch den Modifikationsassistenten, den wir im Kapitel "Modifikationen" kennenlernen
werden.
Damit einhergehend wurde auch der Modifikationsabgleich grundlegend berarbeitet. Wie
Modifikationen abgeglichen werden, sehen wir ebenfalls in diesem Kapitel.
nderungen des SAP Standards: Zusammenfassung
des Kapitels

Sie knnen nun:


z einen berblick ber die von SAP angebotenen
nderungsebenen geben
z entscheiden, welche Methode geeignet ist, wenn
Sie den SAP Standard ndern wollen
z erklren, warum SAP Erweiterungstechniken
anbietet, um den ausgelieferten Standard zu
verndern
z die von SAP angebotenen Erweiterungstechniken
aufzhlen

SAP AG 1999
Verwendete Daten
Erklrung der Symbole in den bungen und Lsungen
bungen
Lsungen

Lernziele

Unternehmensszenario

Tips & Tricks

Warnung und Achtung

Daten in den bungen


Art der Daten Daten im Schulungssystem
Tabellen SFLIGHT00 .. SFLIGHT18
Datenelemente S_CARRID00 .. S_CARRID18
Programm SAPBC425_EXIT_00 ..
SAPBC425_EXIT_18
Transaktionscode BC425_00 .. BC425_18
Programm SAPBC425_BOOKING_00 ..
SAPBC425_BOOKING_00
Personalisierung

Inhalt:
z Personalisierung von Transaktionen

SAP AG 2002

SAP AG BC425 3-1


Personalisierung: Lernziele des Kapitels

Am Ende dieses Kapitels knnen Sie:

z Transaktionen personalisieren indem sie


z Screen-Varianten anlegen
z Transaktionsvarianten anlegen
z Bildschirme mit Hilfe von GuiXT verndern

SAP AG 2002

SAP AG BC425 3-2


Personalisierung: Unternehmensszenario

z Ihre Endanwender nutzen nur einen geringen Teil


des im R/3 vorhandenen Funktionalitt. Um die
tgliche Arbeit zu erleichtern, sollte der
Arbeitsplatz entsprechend eingerichtet werden.
z Von ihrem Arbeitsplatz aus sollen Ihre Mitarbeiter
auch vereinfachte Transaktionen ausfhren
knnen. Diese sind in der Regel mit Hilfe von
Transaktionsvarianten realisiert.

SAP AG 1999

SAP AG BC425 3-3


bersichtsdiagramm Personalisierung

R/3 Business Anwendungen


(SAP Standard)

Personali
Modifikation Erweiterung
sierung
z Modifikationsassistent z ABAP Dictionary
z Transaktions
Tabellen 4
z User-Exits Datenelemente
varianten
z Customer-Exits
Funktionsbaustein-Exits
Men-Exits 5
3 8 Dynpro-Exits

z Business Transaction Events


z Business Add Ins 6

z berblick 2
SAP AG 2002

SAP AG BC425 3-4


Personalisierungsebenen

Unternehmen:
z Unternehmensstruktur
z Geschftsprozesse
TOP-DOWN Konfiguration

Rollenspezifische Benutzerrollen:
Konfiguration z Bereichsmens
z Rollenbasierte Mens
z Transaktionsvarianten
Rollenbasierte
Ber. Rollenbasierte TA
mens Mens
Mens varianten Persnliche
Konfiguration:
Persnliche Konfiguration z Favoriten
z Links
z Desktop-Links
Favoriten Links Desktop

SAP AG 2002

Das SAP System pat sich dem Arbeitsstil des Anwenders an: Beim Start des Systems werden dem
Benutzer nur noch die Funktionen angeboten, die fr seine tgliche Arbeit typisch sind.
berflssiges Navigieren durch nicht bentigte Funktionen entfllt. Konnten Benutzermens bisher
im Session Manager bzw. im Dynamischen Men im R/3 aufgerufen werden, so wird seit Release
4.6A jedem Benutzer nach der Anmeldung am R/3-System sein Rollenbasiertes Men in Form eines
Baumes ausgegeben.
Bei der Auswahl einer Funktion wird diese im gleichen Modus gestartet. An die Stelle des
Rollenbasierten Mens tritt dann die ausgefhrte Funktion. Beim Verlassen einer Transaktion oder
beim Start eines neuen Modus erscheint automatisch wieder das Rollenbasierte Men.
In der Rollenpflege (Transaktion PFCG) kann der Administrator die Menstruktur zu einer Rolle
bestehend aus Transaktionen, Reports und Internet/Intranet-Links zu einem Benutzermen
kombinieren. Die Struktur und Bezeichnung der enthaltenen Funktionen ist dabei frei whlbar.
Das Unternehmensmen steht ab Release 4.6A nicht mehr zur Verfgung.

SAP AG BC425 3-5


Transaktionsvarianten: Ziele

z Vereinfachung des Systems durch Ausblenden nicht


bentigter Funktionen
z Vorbelegung von Feldern
z Wegnahme der Eingabebereitschaft
z Ausblenden nicht bentigter Bildschirmelemente (Felder,
Subscreens, Screens)
z Standardvariante oder individuelle Variante
z WYSIWYG-Pflege durch spezielle Aufzeichnungsfunktion

SAP AG 2002

Sie knnen die Komplexitt des Systems reduzieren, indem Sie nicht bentigte Funktionen
ausblenden. Transaktionsvarianten bieten Ihnen die Mglichkeit, fr komplette Transaktionen diese
Komplexitt fr den Anwender zu reduzieren. Sie knnen
y Felder mit Werten vorbelegen. Diese Vorbelegung kann vom Anwender wieder berschrieben
werden.
y Bei Feldern, in denen der Anwender keine Eingabe mehr vornehmen muss, die
Eingabebereitschaft zurcknehmen;
y nicht bentigte Bildschirmelemente ausblenden. Das knnen Eingabefelder oder andere
Bildschirmelemente sein.
y Ganze Bildschirme ausblenden.
Die Pflege von Transaktionsvarianten werden wir im folgenden nher beleuchten.

SAP AG BC425 3-6


Transaktionsvarianten: Beispiel
100 100
Program Program

Abflugstadt Ankunftstadt New York


Ankunftstadt Abflugzeit
Abflugzeit
Button1
Button1 Button2
TA
200 Variante 200
Program Program

Fluggesellschaft Buchen
Fluggesellschaft
Verbindung Verbindung
Info
Flugdatum Flugdatum
Buchen
Bel. Pltze Bel. Pltze Info
Freie Pltze Freie Pltze
Flugpreis Flugpreis

z Felder mit Werten vorbelegen


z Felder ausblenden
z Dynpros ausblenden
SAP AG 1999

In diesem Beispiel sehen Sie zwei Dynpros einer SAP-Transaktion, die mit Hilfe einer
Transaktionsvariante umgestaltet werden sollen.
Dynpro 100 wird folgendermassen abgendert: Felder werden ausgeblendet; Feldattribute werden
gendert; Drucktasten werden ausgeblendet.
Dynpro 200 zeigt folgende nderungen: Drucktasten verschoben sowie Bild eingefgt (mit GuiXT).
Auf die Verwendung von GuiXT werden wir weiter unten eingehen.

SAP AG BC425 3-7


Transaktionsvarianten: Prinzip

Transaktions-Variante

Screen-Variante Screen-Variante Screen-Variante


Screen-Variante Screen-Variante
ztest_0100
Screen-Variante ztest_0200 ztest_0300
ztest_0100 ztest_0300
ztest_0100

SAP AG 1999

Eine Transaktionsvariante ist eine Referenz auf eine Menge von Screen-Varianten.
Zu einem Dynpro knnen sie beliebig viele Screen-Varianten anlegen. Aus diesen Screen-Varianten
wird die Transaktionsvariante zusammengesetzt.

SAP AG BC425 3-8


Transaktionsvarianten: Mglichkeiten

Standardvariante z Eine Standardvariante


oder
z beliebig viele individuelle
TA-Variante 1 Varianten

SAP z Standardvariante
Transaktion berblendet SAP Transaktion

TA-Variante 2 z sonst:
Variantentransaktionen

TA-Variante 3

SAP AG 1999

Zu einer SAP-Transaktion knnen sie verschiedene Arten von Transaktionsvarianten anlegen:


y eine Standard-Variante
y beliebig viele "normale" Transaktionsvarianten
Die Standard-Variante wird zur Laufzeit anstatt der von SAP ausgelieferten Transaktion ausgefhrt.
Dazu ist kein neuer Transaktionscode erforderlich.
Eine normale Transaktionsvariante wird ber einen eigenen Transaktionscode vom Typ
"Variantentransaktion" aufgerufen.

SAP AG BC425 3-9


Transaktionsvarianten anlegen

Transaktionsvarianten

Name der
Transaktion Transaktion
Variante
Name der
Varianten

Anlegen

z Werkzeuge AcceleratedSAP
Personalization Transaktionsvarianten
SAP AG 1999

Zum Anlegen von Transaktionsvarianten whlen Sie aus dem Eintrag AcceleratedSAP im SAP Men
die Komponente Personalization und dort Transaktionsvarianten. Sie gelangen in die Transaktion
zum Pflegen von Transaktionsvarianten.
Sie geben den Namen der Transaktion ein, fr die Sie eine Variante erstellen wollen. Der Name der
Variante muss eindeutig im System sein und im Kundennamensraum liegen.
ber den Menpunkt Springen knnen Sie whlen, ob sie eine mandantenabhngige oder eine
systemweite (mandantenunabhngige) Transaktionsvariante anlegen wollen.
Um den Variante anzulegen, whlen sie die entsprechende Drucktaste in der Drucktastenleiste

SAP AG BC425 3-10


Transaktionsvarianten: Felder bewerten
100
Program

Abflugstadt
Ankunftstadt
Abflugzeit

Button1 Button2

Abflugstadt Frankfurt
Ankunftstadt New York
Abflugzeit
Button1
Button2

Beenden u. Sichern Menfunktionen GuiXT

SAP AG 1999

Mit der Taste "Bildeingaben" wird die Transaktion im CALL-Modus gestartet.


Beim Auslsen eines Dialogs wird PAI des aktuellen Dynpros ausgelst. Das System sendet einen
weiteren Bildschirm, auf dem sie die auf dem Dynpro vorhandenen Felder bewerten knnen.
Beachten sie hierzu auch das Online-Handbuch zu Transaktionsvarianten.
Der bewertete Bildschirm wird beim Fortfahren als so genannte Screen-Variante abgelegt, worauf
auf der folgenden Seite nher eingegangen wird.

SAP AG BC425 3-11


Screen-Varianten

Name der
Screenvariante

Abflugstadt
Ankunftstadt
Frankfurt
New York
Kurztext
Abflugzeit
Button1
Button2 Feldattribute
setzen
Beenden u. Sichern Menfunktionen GuiXT

Menfunktionen
deaktivieren

SAP AG 1999

Eine Screen-Variante ist ein eigenstndiges Repository-Objekt mit einem im System eindeutigen
Namen. Der Name setzt sich zusammen aus
y Variantenname
y Mandant (nur bei mandantenabhngigen Transaktionsvarianten)
y Dynpronummer
Hier geben sie an, ob Feldinhalte in die Screen-Variante bernommen werden sollen. Fr die
einzelnen Felder knnen Sie verschiedene Attribute setzen: Sie knnen die Eingabebereitschaft eines
Feldes zurcknehmen oder es sogar unsichtbar machen. Eine detaillierte Auflistung der
Mglichkeiten finden Sie im Online-Handbuch zu Transaktionsvarianten.

SAP AG BC425 3-12


GuiXT

Abflugzeit
Button1 Pflegebild der
Button2
Screenvariante
Beenden u. Sichern Menfunktionen GuiXT

z Skript-Editor
z Skript wird als
Text-Datei gespeichert
z Skripte knnen
importiert werden

Bilddateien
SAP AG 1999

Das Zusatzwerkzeug GuiXT ermglicht ihnen eine flexiblere Gestaltung der einzelnen Bildschirme.
GuiXT bedient sich dabei einer Skript-Sprache, um
y Objekte auf dem Dynpro zu positionieren,
y Attribute zu setzen,
y Neue Objekte aufzunehmen
Durch Auswhlen der Drucktaste "GuiXT" erscheint ein Editor-Fenster, in dem sie das Skript
eingeben knnen. Sie knnen hier ebenfalls Bilddateien auswhlen, die auf ihrem lokalen Rechner
verfgbar sind.
Weiterhin knnen sie auf dem lokalen Rechner erstellte Skripte importieren, sowie dorthin
exportieren.

SAP AG BC425 3-13


GuiXT: Scriptsprache

// Version: 19990921151118 Kommentar

IMAGE (1,1) "C:\temp\sap.jpg" Bild einfgen

BOX (10,20) (16,44) "Frame" Rahmen einfgen

Element
POS [Element] [Element]+(10,0)
verschieben

POS [Bereich] [Bereich]+(10,0)


Drucktaste
mit Text und
Pushbutton (10,50) "Text" "SCMP"
Funktionscode

SAP AG 1999

Mit Hilfe der von GuiXT verwendeten Skript-Sprache knnen Sie das Layout eines Bildschirmbildes
beeinflussen. Sie knnen
y Objekte verschieben
y Bilder einfgen
y Drucktasten einfgen
y Wertehilfen einfgen
y Eingabeeigenschaften von Feldern beeinflussen
y Bildelemente lschen
Eine vollstndige Dokumentation von GuiXT erhalten Sie mit der Installation mitgeliefert. Weitere
Informationen finden Sie auf der Homepage des Herstellers von GuiXT (http://www.synactive.com).

SAP AG BC425 3-14


Transaktionsvarianten starten

Mglichkeiten zum Starten von Transaktionsvarianten


z Test-Umgebung
z Transaktions-Code
z aus Benutzer-Men

SAP AG 1999

Zum Starten einer Transaktionsvariante stehen ihnen folgende Mglichkeiten zur Verfgung:
y Testumgebung
y Transaktionscode vom Typ "Variantentransaktion"
y Benutzermen
In der Testumgebung der Transaktionsvarianten-Pflege knnen sie den Ablauf der Transaktion
testen. Dies ist vor allem fr Entwickler bestimmt, die die Transaktionsvariante anlegen.
Um eine Variantentransaktion in ein Benutzermen oder eine Rolle einhngen zu knnen, mssen
sie einen Transaktionscode vom Typ "Variantentransaktion" anlegen.

SAP AG BC425 3-15


Variantentransaktion anlegen

Transaktionspflege
Name des
Transaktionscodes
Transaktionscode__
Anlegen
Anzeigen ndern Anlegen
Transaktion anlegen

Transaktionscode
Transaktionsattribute

Dialogtransaktion
Reporttransaktion
OO-Transaktion
Variantentransaktion
Paramentertransaktion

SAP AG 2002

Um eine Transaktionsvariante aus einem Men zu starten, mssen sie einen Transaktionscode vom
Typ "Variantentransaktion" anlegen. Einen Absprung dazu finden sie direkt in der Pflege der
Transaktionsvarianten unter dem Menpunkt "Springen". Alternativ knnen sie direkt aus der ABAP
Workbench einen Transaktionscode anlegen. Beachten Sie hierbei, dass Sie das richtige Startobjekt
"Variantentransaktion" whlen.

SAP AG BC425 3-16


Personalisierung: Zusammenfassung des Kapitels

Sie knnen nun:


z Transaktionen personalisieren indem sie
z Screen-Varianten anlegen
z Transaktionsvarianten anlegen
z Bildschirme mit Hilfe von GuiXT verndern

SAP AG 2002

SAP AG BC425 3-17


bungen

Kapitel: Personalisierung
Thema: Anlegen eines Paketes

Fr eine geordnete Entwicklung bentigen Sie ein Paket

1-1 Legen Sie ein Paket an.


1-1-1 Das Paket soll den Namen ZBC425_## haben. (## = Gruppennummer).
1-1-2 Ordnen Sie das Paket einem nderungsauftrag zu.

SAP AG BC425 3-18


bungen

Kapitel: Personalisierung
Thema: Transaktionsvarianten

Am Ende dieser bungen knnen Sie:


Mit Hilfe von Screen Varianten und Transaktionsvarianten
eine Transaktion in der Bedienbarkeit wesentlich vereinfachen.

Ihre Anwender beklagen sich, da die Transaktion


BC425_TAVAR viel zu umstndlich zu bedienen ist (trotz Enjoy-
Initiative!) Eigentlich haben sie nur ein paar Felder auszufllen.
Viele weitere Felder sind hingegen berflssig. Helfen sie ihren
Anwendern, indem Sie die Transaktion in der Bedienung
vereinfachen.

1-1 Erzeugen sie eine Transaktionsvariante zu der Transaktion BC425_TAVAR.


1-1-1 Wie gelangen Sie in die Pflege von Transaktionsvarianten? Nehmen sie die
entsprechende Transaktion in ihre Favoriten auf.
1-1-2 Vergeben Sie einen Namen fr die Variante: ZBC425##
(## = Gruppennummer).

1-2 Durchlaufen Sie die Transaktion Bild fr Bild, und legen Sie jeweils fr die
einzelnen Bilder eine Screen-Variante an. Folgende Vernderungen sollen
vorgenommen werden:
1-2-1 Einstiegsbild: Die ersten beiden Felder mit "DE", "Frankfurt" vorbelegen
und die Eingabebereitschaft zurcknehmen.
1-2-2 Zweites Bild: Die Spalte "FLH" des Table Controls auf unsichtbar setzen.
Menfunktion "BACK" deaktivieren.
1-2-3 Drittes Bild: Men-Funktion "BACK" deaktivieren.

1-3 Legen sie einen Transaktionscode fr die Variante an. Name der Transaktion:
ZBC425##.

1-4 Nehmen sie die Variante in das von ihnen angelegte Bereichsmen auf.

1-5 Testen Sie Ihr Ergebnis.

SAP AG BC425 3-19


Lsungen

Kapitel: Personalisierung
Thema: Anlegen eines Paketes

1-1 Sie legen ein Paket an, indem Sie folgenden Menpfad aus dem SAP Men whlen:
Werkzeuge o ABAP Workbench o bersicht o Object Navigator
1-1-1 Alternativ knnen sie Transaktion SE80 whlen
1-1-2 Whlen Sie den Menpfad Workbench o Objekt bearbeiten
1-1-3 Auf der Registerkarte "Entwicklungskoordination" whlen Sie "Paket" und
tragen den Namen des anzulegenden Pakets in das Eingabefeld ein.
1-1-4 Whlen Sie "Anlegen".
1-1-5 Auf dem folgenden Bild tragen Sie einen aussagekrftigen Kurztext ein.
Ordnen Sie das Paket der Softwarekomponente HOME zu. Besttigen Sie
Ihre Eingabe.
1-1-6 Ordnen Sie auf dem nchsten Bild einen nderungsauftrag zu und
besttigen Sie die Eingabe.
1-1-7 Nun haben Sie ein Paket angelegt, dem Sie alle folgenden Entwicklungen
zuordnen werden.

SAP AG BC425 3-20


Lsungen

Kapitel: Personalisierung
Thema: Transaktionsvarianten

1-1 Erzeugen einer Transaktionsvariante zu der Transaktion BC425_TAVAR:


1-1-1 In die Pflege von Transaktionsvarianten knnen Sie ber verschiedene
Wege gelangen, zum Beispiel ber
SAP Men Werkzeuge Customizing IMG Projektbearbeitung.
Dort Springen SAP Referenz IMG anzeigen. Dort
Allgemeine Einstellungen Anzeigeeigenschaften von Feldern.
Selektieren Sie die Ausfhren-Ikone. Die Transaktion SHD0 wird gestartet.
Whlen Sie hier
System Benutzervorgaben Favoriten erweitern
um die Transaktion in Ihre Favoriten aufzunehmen.
1-1-2 Tragen Sie in das Feld "Transaktion" den Namen der Transaktion ein, von
der Sie eine Varianten erzeugen wollen. Tragen Sie in das Feld "Variante"
den Namen der Variante ein: ZBC425## (## = Gruppennummer).

1-2 Durchlaufen Sie die Transaktion Bild fr Bild. Tragen Sie in die Eingabefelder die
entsprechenden Werte ein. Verlassen Sie das Bild ber die entsprechende
Drucktaste. und legen Sie jeweils fr die einzelnen Bilder eine Screen-Variante an.
1-2-1 Einstiegsbild: Belegen Sie die ersten beiden Felder mit "DE", "Frankfurt"
vor. Verlassen Sie das Dynpro durch Bettigen der entsprechenden
Drucktaste. Auf dem nun erscheinenden Popup markieren Sie die
Ankreuzfelder "Feldwerte bernehmen" sowie die entsprechenden
Ankreuzfelder bei den entsprechenden Bildschirmobjekten. Vergeben Sie
einen Kurztext fr die Screen-Variante. Sichern Sie die Screen-Variante.
1-2-2 Zweites Bild: Verlassen Sie dieses Dynpro durch Auswahl der
entsprechenden Drucktaste. Auf dem nun erscheinenden Dialogfenster
markieren Sie wiederum "Werte bernehmen". Markieren Sie die Spalte
"FLH" des Table Controls als unsichtbar. Whlen Sie die Drucktaste
Menfunktionen aus und entmarkieren Sie den Funktionscode "BACK".
Sichern Sie die Screen-Variante.
1-2-3 Drittes Bild: Verlassen Sie dieses Dynpro mit der Funktion "Sichern".
Deaktivieren Sie die Menfunktion "BACK" analog zu 1-2-2. Sichern Sie
die Screen-Variante.
1-2-4 Es erscheint eine Liste mit einer Zusammenfassung aller angelegter Screen-
Varianten. Hier haben Sie nochmals die Gelegenheit, Ihre Eingaben zu
berprfen. Sichern Sie, um die Transaktionsvariante endgltig anzulegen.

1-3 Zum Anlegen eines Transaktionscodes fr die Variante knnen Sie entweder die
Transaktionscode-Pflege aufrufen. Oder Sie whlen aus der Transaktion SHD0 den

SAP AG BC425 3-21


Menpfad Springen Transaktionscode anlegen. Vergeben Sie als Namen
ZBC425##.

1-4 Gehen Sie in die Bereichsmen-Pflege (Transaktion SE43). Nehmen Sie dort Ihre
Transaktionsvariante in Ihr Bereichsmen ZBC425_## auf. Gehen Sie dabei vor,
wie in der bung zur Bereichsmen-Pflege beschrieben.

SAP AG BC425 3-22


Erweiterungen an Elementen des Dictionary

Inhalt:
z Append-Strukturen
z Customizing-Includes
z Texterweiterungen

SAP AG 2002

SAP AG BC425 4-1


Erweiterungen an Elementen des Dictionary:
Lernziele des Kapitels

Am Ende dieses Kapitels knnen Sie:

z Tabellen mit Hilfe von Append-Strukturen


erweitern
z Tabellen mit Hilfe von Customizing-Includes
erweitern
z Feldbezeichner und F1-Hilfe von Datenelementen
modifikationsfrei ndern

SAP AG 2002

SAP AG BC425 4-2


bersichtsdiagramm Erweiterung ABAP Dictionary

R/3 Business Anwendungen


(SAP Standard)

Personali
Modifikation Erweiterung
sierung
z Transaktions z Modifikationsassistent z ABAP Dictionary
varianten Tabellen 4
z User-Exits Datenelemente

z Customer-Exits
Funktionsbaustein-Exits
Men-Exits 5
3 8 Dynpro-Exits

z Business Transaction Events


z Business Add Ins 6

z berblick 2
SAP AG 2002

SAP AG BC425 4-3


Tabellenerweiterungen: Lernziele

Nach Behandlung dieses Themas knnen Sie:

z Tabellen mit Hilfe von Append-Strukturen


erweitern
z Tabellen mit Hilfe von Customizing-Includes
erweitern

SAP AG 2002

SAP AG BC425 4-4


Tabellenerweiterungen: berblick

z Es gibt zwei Mglichkeiten, Tabellen ohne zu modifizieren


um zustzliche Felder zu erweitern:
z Append-Struktur
z Eine Append-Struktur wird zu einer Tabelle angelegt
z Zu einer Tabelle sind beliebig viele Append-
Strukturen mglich
z Diese knnen wie jede andere Struktur verwendet
werden
z Customizing-Include
z mu vom SAP-Entwickler vorgedacht sein
z wird vom Kunden angelegt

SAP AG 1999

Tabellen und Strukturen lassen sich auf zwei verschiedene Arten um Felder erweitern:
Append-Strukturen dienen fr Erweiterungen, die nicht im Standard vorgesehen sind. Sie knnen
damit Kundenfelder an beliebige Tabellen oder Strukturen anhngen.
Eine Append-Struktur ist eine Struktur, die genau einer Tabelle oder Struktur zugeordnet ist. Es kann
zu einer Tabelle aber mehrere Append-Strukturen geben.
Falls der SAP-Anwendungsentwickler den Bedarf an zustzlichen Tabellenfeldern absieht, kann er
durch das Einfgen einer Customizing-Include-Anweisung fr den Kunden die Mglichkeit
schaffen, die Tabelle ohne Modifikation zu erweitern.
Ein Customizing-Include kann dabei in mehreren Tabellen oder Strukturen enthalten sein, so da
diese bei nderung des Includes konsistent erweitert werden.
Ein nicht existentes Customizing-Include verursacht keinen Fehler.

SAP AG BC425 4-5


Append-Strukturen

YYField ZZField

Tabelle Append-Struktur

Field1 Field2 Field3

Field1 Field2 Field3 YYField ZZField

SAP AG 1999

Append-Strukturen erlauben es, Felder an eine Tabelle anzuhngen, ohne die Tabelle selbst zu
modifizieren.
Eine Append-Struktur ist eine Struktur, die genau einer Tabelle zugeordnet ist. Es kann mehrere
Append-Strukturen zu einer Tabelle geben. Beim Aktivieren der Tabelle werden alle aktiven
Append-Strukturen zur Tabelle ermittelt und an die Tabelle angehngt. Wird eine Append-Struktur
angelegt oder gendert, so wird bei ihrer Aktivierung auch die Tabelle, der sie zugeordnet ist,
nachaktiviert und die nderungen werden auch dort wirksam.
Sie knnen in ABAP Programmen eine Append-Struktur wie jede andere Struktur referenzieren.
Beachten Sie: Wird eine Tabelle kopiert, an die eine Append-Struktur angehngt wurde, so werden
die Felder der Append-Struktur zu gewhnlichen Feldern der Zieltabelle.

SAP AG BC425 4-6


Append-Strukturen beim Upgrade

YYField ZZField

Tabelle Append-Struktur

Field1 Field2 Field3 Field4

Neue SAP-Version Aktivieren


wird importiert
Anhngen des Feldes
auf der Datenbank
Field1 Field2 Field3 Field4

Field1 Field2 Field3 YYField ZZField Field4

SAP AG 1999

Eine Append-Struktur wird vom Kunden im Kunden-Namensraum angelegt. Sie ist damit gegen ein
berschreiben beim Upgrade oder Releasewechsel geschtzt. Beim Upgrade wird die neue Version
der Standardtabelle eingespielt. Bei der Aktivierung derselben werden im ABAP Dictionary die
aktiven Append-Strukturen an die neue Standardtabelle angehngt.
Da die Feldreihenfolge im ABAP Dictionary seit Release 3.0 von der Feldreihenfolge auf der
Datenbank abweichen kann, ist beim Anhngen einer Append-Struktur bzw. beim Einfgen von
Feldern in eine bestehende Append-Struktur keine Umsetzung der Datenbanktabelle notwendig. Die
notwendige Strukturanpassung erfolgt vielmehr durch Anpassen des Datenbank-Katalogs (ALTER
TABLE). Beim Aktivieren im ABAP Dictionary wird die Definition der Tabelle verndert und das
neue Feld wird an die Datenbanktabelle angehngt.
Beachten Sie bei Append-Strukturen bitte auch folgende Punkte:
- Fr Pool- und Clustertabellen knnen keine Append-Strukturen angelegt werden.
- Kommt in einer Tabelle ein langes Feld (Datentyp LCHR oder LRAW) vor, so ist eine
Erweiterung mit Append-Strukturen nicht mglich. Denn solche langen Felder mssen in der
Feldliste stets an der letzten Position stehen, d.h. letztes Feld der Tabelle sein. Es knnen damit
keine Felder aus einer Append-Struktur angehngt werden.
- Wenn Sie eine SAP-Tabelle ber eine Append-Struktur erweitern, sollten die Felder in dieser
Append-Struktur im Kundennamensraum liegen, d.h. mit YY oder ZZ beginnen. Damit werden
Namenskollisionen mit von SAP in die Standardtabelle eingefgten neuen Feldern vermieden.

SAP AG BC425 4-7


Customizing-Includes

Customizing-Transaktion
oder SAP-Empfehlung

Customizing-Include
YYField ZZField

Tabelle A
Tabelle B
Field1 Field2 CI_Incl Field3
FieldL FieldM CI_Incl FieldN

Field1 Field2 Field3 YYField ZZField


FieldL FieldM FieldN YYField ZZField

SAP AG 1999

Im R/3-Standard knnen Tabellen und Strukturen ausgeliefert werden, die spezielle Include-
Anweisungen enthalten: Customizing-Includes. Dies ist in der Regel dann der Fall, wenn im
Standard schon mgliche Erweiterungen durch kundenspezifische Felder vorgesehen sind.
Im Gegensatz zu einer Append-Struktur kann ein Customizing-Include unter Umstnden in mehreren
Tabellen oder Strukturen enthalten sein, so da diese bei nderung des Includes konsistent bleiben.
Der Name eines Customizing-Includes beginnt mit 'CI_' und liegt im Kunden-Namensraum. Durch
diese Namenskonvention ist gewhrleistet, da ein nicht existentes Customizing-Include keine
Fehler verursacht. Customizing-Includes werden nicht mit dem R/3-Standard ausgeliefert.
Angelegt werden Customizing-Includes durch spezielle Customizing-Transaktionen. Einige sind
auch Bestandteil von SAP-Erweiterungen und knnen ber die Projektverwaltung angelegt werden
(siehe Kapitel 'Erweiterungen ber Customer-Exits').
Auch fr die Felder von Customizing-Includes ist der gleiche Namensraum wie fr Felder von
Append-Strukturen zu beachten, d.h. Feldnamen beginnen mit 'YY' oder 'ZZ'.
Beim Hinzufgen der Felder eines Customizing-Includes auf der Datenbank gelten die gleichen
Aussagen wie fr Append-Strukturen.

SAP AG BC425 4-8


Texterweiterungen: Lernziele

Nach Behandlung dieses Themas knnen Sie:

z Feldbezeichner und F1-Hilfe von Datenelementen


modifikationsfrei ndern

SAP AG 2002

SAP AG BC425 4-9


berblick Texterweiterungen

SAP Kunde

             
SAP R/3 SAP R/3
System Hilfe System Hilfe

Schlsselwort SAP Schlsselwort Kunde

? ?
SAP-Dokumentation SAP-Dokumentation
..... .....
..... .....
..... kundeneigene Dokumentation
.....

SAP AG 1999

Bei Texterweiterungen handelt es sich um kundeneigene Schlsselwrter und kundeneigene


Dokumentation zu Datenelementen.
Bei Texterweiterungen sind im Gegensatz zu Anwendungserweiterungen nach Aktivierung die
nderungen global fr alle betroffenen SAP-Anwendungen wirksam (globale Erweiterungen).

SAP AG BC425 4-10


Schlsselwrter

SAP Kunde

Globale
Datenelement
Erweiterungen
definieren
definieren

Schlsselwort Schlsselwort

kurz: kurz:
mittel: mittel:
lang: lang:
berschrift: berschrift:
Kurztext (bei F1): Kurztext (bei F1):

SAP AG 1999

Der SAP-Anwendungsprogrammierer legt bei der Definition eines Datenelements Schlsselwrter in


verschiedenen Lngen und einen Kurztext fest. Diese Schlsselwrter und Kurztexte knnen vom
Kunden ber die Projektverwaltung verndert werden.
Alle Dynprofelder, die den Schlsselworttext eines Datenelements bernehmen, knnen so mit
neuen Namen belegt werden.
Durch einen neuen Kurztext im Datenelement wird die F1-Hilfe auf das Dynprofeld dahingehend
gendert, da der Text fr die Feldbeschreibung mit dem neuen Kurztext erscheint.

SAP AG BC425 4-11


Texterweiterungen bearbeiten

       
Projektverwaltung
System Hilfe

Projekt

Globale Erweiterungen

Schlsselwrter Datenelemente

       
SAP R/3

       
SAP R/3
System Hilfe System Hilfe

Kundeneigene Schlsselwrter:
kurz: Kundendokumentation:
mittel:
lang:
berschrift: ?
Kundeneigener Kurztext:

SAP AG 1999

Texterweiterungen werden ber die Projektverwaltung (ABAP Workbench Hilfsmittel


Erweiterungen Projektverwaltung) bearbeitet.
ber Globale Erweiterungen gelangen Sie in die Erweiterungsfunktionen fr Schlsselwrter und
die Dokumentation zu Datenelementen.

SAP AG BC425 4-12


Voraussetzung fr Schlsselwortnderung

SAP

Screen-
Screen-Painter

Feldliste

    
Screen Painter: Feldliste
System Hilfe

. E A MOD
.
LFA1-LFNR
LFA1-LFNR
.
.
.

SAP AG 1999

Damit eine Schlsselwortnderung auf einem Dynpro wirksam wird, mu der SAP-
Anwendungsprogrammierer in der Feldliste das Attribut MOD
(Schlsselwortmodifikationskennzeichen) des betreffenden Feldes entsprechend gepflegt haben.
Fr das Attribut MOD gibt es folgende Mglichkeiten:
SPACE: das der Feldlnge am besten angepate Schlsselwort
1: kurzes Schlsselwort
2: mittleres Schlsselwort
3: langes Schlsselwort
4: Schlsselwort fr berschrift
V: variable Textbernahme aus Dictionary
F: fix, keine Textbernahme
Wurde ' F'eingetragen, dann wird das Schlsselwort hart auf dem Dynpro eingetragen und kann nicht
ersetzt werden. In den anderen Fllen zeigen alle Dynpros, die sich auf das betreffende Datenelement
beziehen, das genderte Schlsselwort.

SAP AG BC425 4-13


Schlsselwortnderungen und Releasewechsel

SAP Kunde
Release x.x Release x.x

     
SAP R/3

     
SAP R/3 System Hilfe
System Hilfe

Schlsselwort Kunde
altes Schlsselwort SAP

Release y.y

     
SAP R/3
Release y.y System Hilfe

    
SAP R/3
System Hilfe neues Schlsselwort SAP

neues Schlsselwort SAP


Restaurieren Kunde
Release x.x

     
SAP R/3
System Hilfe

Schlsselwort Kunde

SAP AG 1999

Nach einem Releasewechsel oder der Einspielung eines neuen Korrekturstandes ist eine
Restaurierung der Schlsselwrter immer dann erforderlich, wenn SAP vorhandene Schlsselwrter
nochmals ausliefert. Mchte der Kunde dann seine eigenen Schlsselwrter aus dem letzten Release
wiederhaben, whlt er den entsprechenden Menpunkt zum Restaurieren der Kundenschlsselwrter.
SAP empfiehlt, grundstzlich eine Restaurierung durchzufhren (Schlsselwortfortschreibung).
Die Restaurierung wird durch ein im Hintergrund laufendes Programm durchfhrt. Dieses Programm
untersucht alle vom Kunden angefaten Datenelemente und restauriert, wenn erforderlich, die
Schlsselwrter und den Kurztext.
Bei zentralen Schlsselwrtern wie BUKRS, MANDT usw. empfehlen wir, die Restaurierung zu
einer Zeit zu starten, zu der die Inhalte der Tabellen, die BUKRS und MANDT verwenden, nicht
gendert werden. Ansonsten kann die Aktivierung des Datenelements scheitern und es den Zustand
teilaktiv annehmen.

SAP AG BC425 4-14


SAP-Schlsselwrter restaurieren

SAP Kunde
Release x.x

     
SAP R/3
System Hilfe

Schlsselwort Kunde
Release x.x

     
SAP R/3
System Hilfe Restaurieren SAP

Schlsselwort SAP Release x.x

    
SAP R/3
System Hilfe

Schlsselwort SAP

SAP AG 1999

Mcht der Kunde eine Schlsselwortnderung wieder rckgngig machen, whlt er den
entsprechenden Menpunkt zum Restaurieren der SAP-Schlsselwrter.
Die Restaurierung wird durch ein im Hintergrund laufendes Programm durchgefhrt. Dieses
Programm untersucht alle vom Kunden angefaten Datenelemente und restauriert, wenn
erforderlich, die Schlsselwrter und den Kurztext.
Bei zentralen Schlsselwrtern wie BURKS, MANDT usw. empfehlen wir, die Restaurierung zu
einer Zeit zu starten, zu der die Inhalte von Tabellen, die BUKRS und MANDT verwenden, nicht
gendert werden.

SAP AG BC425 4-15


Erweiterte Dokumentation zu Datenelementen

SAP Kunde

Globale Erweiterungen
Datenelemente

Datenelemente

Dokumentation
Kundendokumentation

         
SAP R/3 SAP R/3
System Hilfe System Hilfe

SAP-Dokumentation: INCLUDE <SAP-Doku


<SAP-Doku>
>
Kundendokumentation:

SAP AG 1999

Bei Erweiterung der Datenelementdokumentation bernimmt der Kunde die SAP-Dokumentation als
Include-Baustein. Der Bezug zur SAP-Dokumentation geht damit nicht verloren. Auch nachfolgend
von SAP ausgelieferte Dokumentation wird bercksichtigt.
Bettigt der Kunde nach Aktivierung der Erweiterung der Datenelementdokumentation die F1-Taste
auf dem entsprechenden Dynprofeld, erscheint die kundeneigene Dokumentation ergnzend zur
SAP-Dokumentation.
Der Kunde kann sich eine Liste der vernderten Datenelemente ausgeben lassen und durch
Zeilenselektion die betreffende Dokumentation weiter berarbeiten.
Mchte der Kunde die ursprngliche Dokumentation ohne Erweiterung wieder herstellen, lscht er
einfach seine eigene Dokumentation.

SAP AG BC425 4-16


Kundeneigene Dokumentation

Globale Erweiterungen

Datenelemente

Kundendokumentation

   
      
SAP R/3 SAP R/3
System Hilfe System Hilfe

<Include auflsen>
INCLUDE <SAP-Doku>
Kundendokumentation:
Kundendokumentation:

SAP AG 1999

Der Kunde hat auch die Mglichkeit, die Datenelementdokumentation unabhngig von der SAP-
Dokumentation zu erstellen. Diese Variante wird jedoch nicht empfohlen, da der Bezug zur SAP-
Dokumentation verloren geht. Liefert SAP eine neue Version des betreffenden Dokuments aus,
entgehen dem Kunden mglicherweise wichtige Informationen.
Weiter kann der Kunde auch den Include-Baustein fr die SAP-Dokumentation aufgelst in seine
eigene Dokumentation bernehmen. Diese Variante sollte der Kunde aber nur whlen, wenn fr die
Verwendung im Kundensystem unbedingt inhaltliche nderungen der Originaldokumentation
erforderlich sind. Hierbei geht der Bezug zur SAP-Dokumentation nicht vllig verloren,
nachfolgende Versionen der SAP-Dokumentation werden jedoch ebenfalls nicht bercksichtigt.

SAP AG BC425 4-17


Texterweiterungen: Zusammenfassung

Kundeneigene
Kurztexte
Kundeneigene
Dokumentation

Kundeneigene
Schlsselwrter

     
SAP R/3
System Hilfe

Schlsselwort SAP

SAP AG 1999

Im Rahmen der Projektverwaltung kann der Kunde SAP-Anwendungen durch eigene


Schlsselwrter, Kurztexte und Dokumentation fr Datenelemente erweitern.
Diese Erweiterungen sind nach Aktivierung fr alle SAP-Anwendungen wirksam, die die
betroffenen Datenelemente verwenden.

SAP AG BC425 4-18


Erweiterungen an Elementen des Dictionary:
Zusammenfassung des Kapitels

Sie knnen nun:


z Tabellen mit Hilfe von Append-Strukturen
erweitern
z Tabellen mit Hilfe von Customizing-Includes
erweitern
z Feldbezeichner und F1-Hilfe von Datenelementen
modifikationsfrei ndern

SAP AG 2002

SAP AG BC425 4-19


bungen

Kapitel: Erweiterungen an Objekten des Dictionary


Thema: Tabellen-Erweiterungen

Am Ende dieser bungen knnen Sie:


Tabellen mit Hilfe von Append-Strukturen erweitern.

Sie sind Mitarbeiter in der EDV-Abteilung einer groen


Reiseagentur. Ihr Unternehmen hat R/3 im Einsatz. Im R/3
existiert eine Transaktion, die sie speziell in Fragen von
Flugreisen untersttzt. Unter anderem nutzen die Mitarbeiter in
ihrer Kundenberatung die Transaktion BC425_##, um sich
Flugdaten anzeigen zu lassen. Gerne htten sie noch mehr
Informationen zu einem Flug, zum Beispiel den Namen des
Piloten oder die Hauptmahlzeit.
Die Flugdaten sind in der Tabelle SFLIGHT## abgelegt. Diese
sollen sie um die zwei gewnschten Spalten erweitern, ohne die
Tabelle selbst zu modifizieren.

1-1 Welche Mglichkeiten bestehen, die Tabelle SFLIGHT## um zwei Felder zu


erweitern, ohne sie zu modifizieren.
1-1-1 Wie gehen Sie vor, um die Tabelle SFLIGHT## zu erweitern?
1-1-2 Erweitern Sie die Tabelle SFLIGHT## mit Hilfe einer modifikationsfreien
Technik.

1-2 Legen Sie eine Append-Struktur zur Tabelle SFLIGHT## an.


1-2-1 Nehmen sie zwei Felder in die Struktur auf:
Eines zur Aufnahme des Piloten-Namens (Zeichenkette der Lnge 25)
Eines zur Aufnahme der Mahlzeit (Zeichenkette der Lnge 20).
1-2-2 Typisieren Sie die Felder. Whlen sie die Ihnen am geeignetsten scheinende
Typisierungsform.
Sie werden diese Felder spter auf einem Dynpro
verwenden. Ein wenig Mehrarbeit an dieser Stelle erleichtert
Ihnen die Arbeit spter.

SAP AG BC425 4-20


Lsungen

Kapitel: Erweiterungen an Objekten des Dictionary


Thema: Tabellen-Erweiterungen

1-1 Append-Strukturen sind die einzige Mglichkeit, eine transparente Tabelle


(SFLIGHT## ist eine solche) zu erweitern, ohne sie zu modifizieren.
1-1-1 Wie gehen Sie vor, um die Tabelle SFLIGHT## zu erweitern? Mit Append-
Strukturen knnen Sie zwar genauso arbeiten wie mit "normalen"
Strukturdefinitionen. Angelegt werden sie aber aus einer Tabelle (oder
Struktur) heraus. Rufen Sie das ABAP Dictionary auf (Transaktion SE11
oder aus dem Object Navigator Einzelobjekte Dictionary-Objekte
bearbeiten). Geben Sie den Tabellennamen SFLIGHT## ein und whlen
Sie "Anzeigen".
1-1-2 Erweitern Sie die Tabelle SFLIGHT## mit Hilfe der Append-Technik. Das
detaillierte Vorgehen wird in den folgenden Punkten beschrieben:

1-2 Legen Sie die Append-Struktur ber Springen Append-Strukturen oder die
entsprechende Drucktaste an; bernehmen Sie den Namensvorschlag. Vergeben Sie
einen Kurztext fr die Append-Struktur und sichern Sie sie unter der von Ihnen
angelegten Entwicklungsklasse.
1-2-1 Nehmen sie zwei Felder in die Struktur auf: Die Feldnamen mssen mit YY
oder ZZ beginnen. Zum Beispiel YYPILOT und YYMEAL.
Eines zur Aufnahme des Piloten-Namens (Zeichenkette der Lnge 25)
Eines zur Aufnahme der Mahlzeit (Zeichenkette der Lnge 20).
1-2-2 Zum Typisieren der Felder legen Sie sinnvollerweise je ein Datenelement
an. Nutzen Sie dazu idealerweise die Vorwrtsnavigation. Geben Sie den
Namen Z_PILNAME## ein und doppelklicken Sie das Feld. Vergeben Sie
fr das Datenelement Kurztext und adquate Feldbezeichner. Legen Sie fr
die Mahlzeit ein Datenelement mit dem Namen Z_MEAL## an. Vergessen
Sie nicht, die Datenelemente zu aktivieren.

1-3 Aktivieren Sie die Append-Struktur. Falls dabei Fehler auftreten, knnen Sie nhere
Hinweise dazu dem Aktivierungsprotokoll entnehmen.

SAP AG BC425 4-21


Erweiterungen ber Customer-Exits

Inhalt:
z Einfhrung
z Erweiterungsverwaltung
z Funktionsbaustein-Exits
z Men-Exits
z Dynpro-Exits

SAP AG 1999

SAP AG BC425 5-1


Erweiterungen ber Customer-Exits: Lernziele des
Kapitels

Am Ende dieses Kapitels knnen Sie:

z die Komponenten einer Erweiterung aufzhlen


z ein Erweiterungsprojekt anlegen

z den Anschlu an Workbench Organizer und


Transportsystem erlutern
z die Begriffe Komponente, Erweiterung und
Erweiterungsprojekt unterscheiden
z ein Erweiterungsprojekt transportieren

SAP AG 1999

SAP AG BC425 5-2


bersichtsdiagramm Erweiterung Customer-Exits

R/3 Business Anwendungen


(SAP Standard)

Personali
Modifikation Erweiterung
sierung
z Transaktions z Modifikationsassistent z ABAP Dictionary
varianten Tabellen 4
z User-Exits Datenelemente

z Customer-Exits
Funktionsbaustein-Exits
Men-Exits 5
3 8 Dynpro-Exits

z Business Transaction Events


z Business Add Ins 6

z berblick 2
SAP AG 2002

SAP AG BC425 5-3


Customer-Exits: berblick

berblick
berblick

Erweiterungsverwaltung
Erweiterungsverwaltung

Funktionsbaustein-Exit
Funktionsbaustein-Exit

Men-Exit
Men-Exit

Dynpro-Exit
Dynpro-Exit

SAP AG 1999

SAP AG BC425 5-4


SAP-Anwendungserweiterung

SAP Kunde

Anwendungs-
entwickelt funktion benutzt

Komponenten der
definiert Anwendungs- bearbeitet
erweiterung

fat Anwendungs-
aktiviert
zusammen erweiterung

SAP AG 1999

Durch Anwendungserweiterungen kann eine Anwendungsfunktion vom Kunden erweitert werden.


Customer-Exits sind von der Anwendung vorgedacht und bestehen im allgemeinen aus mehreren
Komponenten.
Anwendungserweiterungen sind zunchst inaktiv und werden erst bei Bedarf vom Kunden bearbeitet
und aktiviert.
Eigenschaften der Erweiterungen durch Anwendungserweiterungen:
Je Erweiterung steht ein vorgedachter, genau abgegrenzter Leistungsumfang zur Verfgung.
Die Schnittstelle SAP/Kunde ist klar definiert.
Der Kunde bentigt keine tiefergehende Kenntnis der SAP-Anwendungsimplementierung.
Bei einem Upgrade ist kein Abmischen mit SAP-Weiterentwicklungen erforderlich.

SAP AG BC425 5-5


Kundenerweiterungsprojekt

SAP Kunde

Definition Definition
von von
SAP- Erweiterungs-
Erweiterungen projekten

SMOD CMOD

SAP AG 1999

Der SAP-Anwendungsprogrammierer stellt aus Funktionsbaustein-, Men- und Dynpro-Exits SAP-


Erweiterungen zusammen. Ihm steht dazu eine Verwaltungsfunktion zur Verfgung
(Transaktionscode SMOD).
Der Kunde bekommt ber einen Katalog einen berblick ber die existierenden SAP-Erweiterungen
und fat die von ihm gewnschten SAP-Erweiterungen zu einem Erweiterungsprojekt zusammen.
Dafr steht ihm eine eigene Verwaltungsfunktion zur Verfgung (Transaktionscode CMOD).

SAP AG BC425 5-6


Erweiterungen und Erweiterungsprojekte

Erweiterungsprojekt
E E
C C
C C C
E
C C C
C C C

E
C C C Erweiterungsprojekt
E
C C C

E Erweiterungsprojekt
C E E
C C C

E SAP Erweiterung C Komponente


SAP AG 1999

Funktionsbaustein-, Men- und Dynpro-Exits bilden die Komponenten einer SAP-Erweiterung. Eine
bestimmte Komponente kommt nur einmal in der Gesamtheit aller SAP-Erweiterungen vor
(Eindeutigkeit einer SAP-Erweiterung).
Die Kundenerweiterungsprojekte setzen sich aus SAP-Erweiterungen zusammen. Eine bestimmte
SAP-Erweiterung darf nur einmal in der Gesamtheit aller Kundenerweiterungsprojekte eingesetzt
werden (Eindeutigkeit eines Kundenprojektes).

SAP AG BC425 5-7


Customer-Exits: Erweiterungsverwaltung

berblick
berblick

Erweiterungsverwaltung
Erweiterungsverwaltung

Funktionsbaustein-Exit
Funktionsbaustein-Exit

Men-Exit
Men-Exit

Dynpro-Exit
Dynpro-Exit

SAP AG 1999

SAP AG BC425 5-8


Vorgehen bei SAP

Funktionsbaustein-Exits
Customer-Exits
in Anwendungsfunktionen
definieren Men-Exits

Dynpro-Exits

E
Komponenten zu C
SAP-Erweiterungen C
zusammenfassen C

SAP-Dokumentation:
Erweiterungen
dokumentieren

SAP AG 1999

Der SAP-Anwendungsprogrammierer plant mgliche Anwendungserweiterungen in seine


Anwendung ein und definiert die hierfr erforderlichen Komponenten. Diese Komponenten fat er
zu SAP-Erweiterungen zusammen.
Die SAP-Erweiterung dokumentiert er so, da der Kunde spter weitestgehend ohne Analyse der
Programm- und Dynpro-Sourcen die Erweiterung implementieren kann.

SAP AG BC425 5-9


Vorgehen beim Kunden

Erweiterungsprojekt
Erweiterungsprojekt
Erweiterungsprojekt
aus
aus SAP-Erweiterungen
SAP-Erweiterungen E E
aufbauen
aufbauen C C
C

Exit-Funktionsbausteine
Komponenten
Komponenten des
des
Erweiterungsprojekts
Erweiterungsprojekts Men-Eintrge
bearbeiten
bearbeiten

Subscreen-Dynpros

Kundendokumentation:
Kundendokumentation:
Erweiterungsprojekt
Erweiterungsprojekt
dokumentieren
dokumentieren

Erweiterungsprojekt
Erweiterungsprojekt aktivieren
aktivieren
aktivieren aktivieren

SAP AG 1999

Der Kunde whlt zunchst ber die Projektverwaltungsfunktion die SAP-Erweiterungen aus, die er
nutzen mchte und baut daraus ein Erweiterungsprojekt auf.
In einem weiteren Schritt bearbeitet er die einzelnen Komponenten (ebenfalls ber die
Projektverwaltungsfunktion) und dokumentiert das gesamte Erweiterungsprojekt.
Schlielich aktiviert er das Erweiterungsprojekt (und damit alle seine Komponenten).

SAP AG BC425 5-10


Kundenerweiterungsprojekt anlegen

Projektverwaltung von SAP Erweiterungen Name


Name des
des
Erweiterungsprojekts
Erweiterungsprojekts

Projekt Anlegen Anlegen


Anlegen
Teilobjekte
Attribute
Zuordnung Erweiterungen
Komponenten
Dokumentation

Anzeigen ndern Attribute Erweiterungsprojekt

Projekt <project>

Kurztext

SAP AG 1999

Der Kunde startet die Projektverwaltungsfunktion (Transaktion CMOD) und vergibt als erstes dem
Erweiterungsprojekt einen Namen. Es ist empfehlenswert, sich dazu eine Namenskonvention zu
berlegen. Diese kann z.B. darin bestehen, da man den Namen der Transaktion oder des
Modulpools in den Namen des Projekts aufnimmt. Der Projektname bezeichnet das
Erweiterungsprojekt eindeutig im System.
Anschlieend verzweigt der Kunde in die Projektattribute und gibt einen Kurztext fr das
Erweiterungsprojekt ein. Die brigen Attribute (Namens- und Zeitstempel fr anlegen und ndern,
Status) werden vom System vergeben.

SAP AG BC425 5-11


SAP-Erweiterungen Kundenprojekt zuordnen

Projektverwaltung von SAP Erweiterungen

Projekt Anlegen

Teilobjekte
Attribute
Zuordnung Erweiterungen
Komponenten
Dokumentation

Anzeigen ndern SAP Erweiterungen in Projekt

Erweiterung Kurztext

SAP AG 1999

ber die Projektverwaltung ordnet der Kunde SAP-Erweiterungen einem


Kundenerweiterungsprojekt zu. Dazu trgt er auf einem entsprechenden Bildschirm die Namen der
SAP-Erweiterungen ein.
ber eine Suchfunktion kann er sich zunchst einen katalogartigen berblick ber die existierenden
SAP-Erweiterungen verschaffen und sich mittels Objektauswahl die ihn interessierenden SAP-
Erweiterungen auswhlen.

SAP AG BC425 5-12


Komponenten bearbeiten

Projektverwaltung von SAP Erweiterungen


Function Builder

Projekt Anlegen Funktionsbaustein

Teilobjekte
Text ndern
Attribute
Zuordnung Erweiterungen Men-Text
Komponenten
Dokumentation
bernehmen
Anzeigen ndern
Screen Painter

SAP AG 1999

Der Kunde bearbeitet die Komponenten seines Erweiterungsprojektes ber die


Projektverwaltungsfunktion.
Je nachdem, ob es sich bei der Erweiterung um einen Funktionsbaustein, einen Meneintrag oder ein
Subscreen-Dynpro handelt, verzweigt er in den Function-Builder, in ein Dialogfenster zur
Texteingabe fr den Meneintrag oder in den Screen Painter.

SAP AG BC425 5-13


Erweiterungsprojekt aktivieren

Projektverwaltung von SAP Erweiterungen

Projekt Anlegen
Aktivieren
Teilobjekte
Attribute
Zuordnung Erweiterungen
Komponenten
Dokumentation

Anzeigen ndern

SAP AG 1999

Die Aktivierung eines Erweiterungsprojekts bezieht sich auf alle Komponenten. Nach erfolgreicher
Aktivierung bekommt das Projekt den Status aktiv.
Beim Aktivieren werden auch alle Programme, Dynpros und Menoberflchen, die zum Projekt
gehrige Komponenten enthalten, neu generiert (Programme erst, wenn sie gestartet werden). Nach
der Aktivierung sind die Erweiterungen in den Anwendungsfunktionen sichtbar.
Mit der Funktion Deaktivieren kann man die Aktivierung eines Erweiterungsprojekts wieder
zurcknehmen, es bekommt dann den Status inaktiv.

SAP AG BC425 5-14


Transport von Projekten

Entwicklungssystem Folgesystem

Erweiterungsprojekt
Erweiterungsprojekt
E Transport E E
E auftrag C C C
C C
C

SAP AG 1999

Um einen konsistenten Transport Ihres Erweiterungsprojekts zu gewhrleisten, sollten Sie sowohl


das Erweiterungsprojekt selbst als auch jede einzelne Komponente (Include-Programme, Subscreen-
Dynpros, Include mit Subscreen-Modulpools) einer oder mehreren Aufgaben innerhalb eines
nderungsauftrags zuordnen.

SAP AG BC425 5-15


Customer-Exits: Funktionsbaustein-Exit

berblick
berblick

Erweiterungsverwaltung
Erweiterungsverwaltung

Funktionsbaustein-Exit
Funktionsbaustein-Exit

Men-Exit
Men-Exit

Dynpro-Exit
Dynpro-Exit

SAP AG 1999

SAP AG BC425 5-16


berblick Funktionsbaustein-Exit

SAP Kunde
Funktionsbaustein-
Exit
festlegen aktivieren

Aufruf

Funktions-
baustein
Verwaltung
Schnittstelle Quelltext
Dokumentation

SAP AG 1999

Funktionsbaustein-Exits erlauben dem Kunden, in einer Anwendungsfunktion zustzliche Logik zu


implementieren. Der SAP-Anwendungsprogrammierer bestimmt, wo in einer Anwendungsfunktion
Funktionsbaustein-Exits festgelegt werden und welche Daten bergeben werden. Er legt die
zugehrigen Funktionsbausteine mit Kurztext, Schnittstelle und Dokumentation an, und er beschreibt
die fr einen Funktionsbaustein-Exit vorgesehene Funktionalitt in der zugehrigen SAP-
Dokumentation.
Den Quelltext der Funktionsbausteine legt der Kunde an, gegebenenfalls auch Dynpros,
Textelemente, eigene Includes zur Funktionsgruppe, etc.
Erst wenn das Erweiterungsprojekt, das den Funktionsbaustein als Komponente enthlt, vom Kunden
aktiviert wird, wird das ABAP-Programm durchlaufen. Vorher wirken sich Funktionsbaustein-Exits
nicht aus.

SAP AG BC425 5-17


Funktionsbaustein-Exit: Ablaufdiagramm

Anwendungsprogramm

X-Funktionsgruppe

Exit-Funktionsbaustein
EXIT_<prog_name>_001

CALL CUSTOMER-FUNCTION

Include im
Kundennamensraum

SAP AG 1999

In diesem Bild ist der Ablauf eines Programmes dargestellt, das eine Erweiterung in Form eines
Funktionsbaustein-Exits anbietet.
An einer vom SAP-Anwendungsentwickler definierten Stelle im Quelltext wird der Exit-
Funktionsbaustein aufgerufen. Innerhalb des Funktionsbausteins kann der Verwender mit Hilfe eines
Includes im Kundennamensraum Funktionalitt hinzufgen.

SAP AG BC425 5-18


Funktionsbaustein aufrufen und anlegen

PROGRAM
PROGRAM <program_name>.
<program_name>.

START-OF-SELECTION.
START-OF-SELECTION.
...
...

CALL CUSTOMER-FUNCTION 001


EXPORTING
....
IMPORTING
.... .
FUNCTION-POOL
FUNCTION-POOL XAAA.
XAAA.
...
...
FUNCTION
FUNCTION exit_<program_name>_001.
exit_<program_name>_001.
...
...

INCLUDE zxaaau01.

ENDFUNCTION.
ENDFUNCTION.

SAP AG 1999

Den Aufruf eines Funktionsbausteins legt der SAP-Anwendungsprogrammierer durch die ABAP-
Anweisung CALL CUSTOMER-FUNCTION nnn fest. Dabei bedeutet nnn eine dreistellige
Nummer. Der SAP-Anwendungsprogrammierer legt auch den zugehrigen Funktionsbaustein und
die Funktionsgruppe an.
Der Funktionsbaustein befindet sich in einer Funktionsgruppe, deren Name mit einem X beginnt (X-
Funktionsgruppe).
Der Name des Funktionsbausteins unterliegt folgender Namenskonvention:
- Prfix: EXIT
- Infix: Name des Programms, in dem der Funktionsbaustein aufgerufen wird
- Suffix: Dreistellige Nummer
- Zwischen Pr- und Infix sowie zwischen In- und Suffix befindet sich jeweils ein Unterstrich.
Erst nach Aktivierung des zugehrigen Erweiterungsprojekts wird die Anweisung CALL
CUSTOMER-FUNCTION auch ausgefhrt. Bei mehreren Aufrufen des gleichen Funktionsbausteins
bezieht sich die Aktivierung auf alle Aufrufe.

SAP AG BC425 5-19


Funktionsbaustein-Exits finden

z aus Anwendungsprogramm: z Suche ber Tools

System Status
Doppelklick auf Programmnamen
Anwendungs
Suchen nach Zeichenkette... hierarchie

call customer

 global in Programm prog


prog
Repository
CMOD
Infosystem

Hilfsmittel
SAP-Erweiterungen
IMG
Suche einschrnken
mit
*program_name*

Dokumentation
SAP AG 1999

Wie knnen sie erkennen, ob ein Anwendungsprogramm einen Funktionsbaustein-Exit anbietet? Das
ist eine zentrale Frage bei jeder Form der Erweiterung. Es gibt verschiedene Strategien, wie Sie
dieses Ziel erreichen knnen.
Um einen schnellen Eindruck zu erhalten, ob ein Anwendungsprogramm berhaupt einen
Funktionsbaustein-Exit bietet, knnen sie den auf der linken Seite aufgezeichneten Weg verfolgen:
Navigieren sie in das Programm und suchen sie nach einer spezifischen Zeichenkette. ber den
Menpfad System Status erhalten sie immer den Namen des Anwendungsprogramms. In unserem
Beispiel wre eine geeignete Zeichenkette "CALL CUSTOMER". Diese suchen Sie global im
Programm(!). Falls Ihre Suche an dieser Stelle nicht erfolgreich ist, knnen sie den Suchbereich
weiter fassen: Fhren sie eine Umfeldermittlung fr das entsprechende Programm durch und suchen
sie nach der spezifischen Zeichenkette im Umfeld des Programms.
In der rechten Hlfte des Bildes sind die Suchwerkzeuge angegeben, mit deren Hilfe Sie den Namen
der gesuchten Erweiterung herausfinden knnen. Im Repository Infosystem knnen sie die Suche mit
Hilfe von verschiedenen Kriterien einschrnken: Wichtige Kriterien sind:
y Entwicklungsklasse (Versuchen sie auch generische Eingaben)
y Technischer Name der Erweiterung

SAP AG BC425 5-20


Funktionsbaustein-Exit bearbeiten

Projektverwaltung von SAP Erweiterungen

Function Builder
Projekt Anlegen
FUNCTION exit_<prog_name>_001.
Teilobjekte
Attribute INCLUDE zxaaau01.
Zuordnung Erweiterungen
ENDFUNCTION.
Komponenten
Dokumentation

Anzeigen ndern

ABAP Editor

*INCLUDE zxaaau01

SAP AG 1999

Sie bearbeiten den Funktionsbaustein eines Funktionsbaustein-Exits ber die Projektverwaltung


(Transaktion CMOD).
ber die Drucktaste zum Bearbeiten der Komponenten gelangen sie direkt in den Editor des
Funktionsbausteins (Anzeigemodus).
Der Funktionsbaustein selbst darf nicht verndert werden. Insbesondere darf die Schnittstelle nicht
gendert werden. Jedoch enthlt er eine INCLUDE-Anweisung zu einem im Kundennamensraum
anzulegenden Include-Programm.
Nach Objektauswahl (Doppelklick) verzweigen sie in den Editor des Include-Programms, in dem sie
eigenen Quelltext erfassen knnen.

SAP AG BC425 5-21


Aufbau einer Funktionsgruppe

SAPLXAAA Programmname

LXAAATOP Globale Daten

LXAAAUXX Alle Funktionsbausteine

LXAAAU01 Funktionsbaustein #01

LXAAAU02 Funktionsbaustein #02

LXAAAF01 Unterprogramme

...
SAP AG 1999

Um zu verstehen, wie eine X-Funktionsgruppe arbeitet, mssen Sie zunchst den Aufbau einer
gewhnlichen Funktionsgruppe kennen:
y Eine Funktionsgruppe ist aufgebaut aus Includes. Das System verwendet fr verschiedene Objekte
eindeutig zugeordnete Includes. Zum Teil werden die Namen der Includes lediglich
vorgeschlagen, zum Teil knnen die Namen der Includes nicht gendert werden.
y Globale Daten werden in dem sogenannten TOP-Include abgelegt. Dieses Include wird beim
Anlegen einer Funktionsgruppe automatisch erzeugt.
y Funktionsbausteine werden in Includes mit fortlaufenden Nummern abgelegt, die ihrerseits alle
wieder in einem Include mit der Endung UXX liegen.
y Fr alle anderen Objekte (Unterprogramme, Module, Ereignisse, etc.) kann der Name des
jeweiligen Includes im Prinzip frei gewhlt werden. Es empfiehlt sich jedoch, die vorgeschlagenen
Namen zu bernehmen.

SAP AG BC425 5-22


Aufbau einer Exit-Funktionsgruppe

SAPLXAAA Programmname

LXAAATOP Globale Daten

LXAAATAP Globale Daten SAP

ZXAAATOP Globale Daten Kunde

LXAAAUXX Alle Funktionsbausteine

LXAAAU01 Funktionsbaustein #01

ZXAAAU01 Kundeneigener Quelltext

LXAAAU02 Funktionsbaustein #02

ZXAAAU02 Kundeneigener Quelltext

LXAAAF00 Quelltext-Vorschlag von SAP

...
SAP AG 1999

Die vom SAP-Anwendungsprogrammierer angelegte Exit-Funktionsgruppe enthlt Includes, deren


Name mit '
LX'beginnt, und solche, deren Name mit '
ZX'anfngt. Nur die Includes Z*, die im
Kunden-Namensraum liegen, drfen von Ihnen bearbeitet werden.
Innerhalb der Funktionsgruppe drfen keine weiteren Funktionsbausteine hinzugefgt werden.
Den Quelltext fr den Funktionsbaustein erfassen Sie im Include-Programm ZXaaaUnn.

SAP AG BC425 5-23


Exit-Funktionsgruppe: Globale Daten

FUNCTION-POOL
FUNCTION-POOL xaaa.
xaaa.
SAPLXAAA
INCLUDE
INCLUDE LXaaaTOP.
LXaaaTOP.
LXAAATOP INCLUDE
INCLUDE ZXaaaTOP.
ZXaaaTOP.

LXAAATAP TABLES:
TABLES: ...
...
DATA:
DATA: ...
...
ZXAAATOP

LXAAAUXX TABLES:
TABLES: ...
...
DATA:
DATA: ...
...
LXAAAU01

ZXAAAU01

LXAAAU02

ZXAAAU02

LXAAAF00

...
SAP AG 1999

Der SAP-Anwendungsprogrammierer kann globale Daten im Include LXaaaTAP festlegen.


Sie deklarieren ihre globalen Daten im Include ZXaaaTOP.
Die FUNCTION-POOL Anweisung befindet sich im Include LXaaaTOP und darf nicht gendert
werden. Daher mu bei Ausgabe von Nachrichten die Nachrichtenklasse in Klammern angegeben
werden (Beispiel: MESSAGE E500(EU)).

SAP AG BC425 5-24


Kundeneigener Quelltext

SAPLXAAA

LXAAATOP
FUNCTION
FUNCTION exit_<program_name>_001.
exit_<program_name>_001.
LXAAATAP
...
...
ZXAAATOP
INCLUDE
INCLUDE ZXaaaU01.
ZXaaaU01.
LXAAAUXX ...
...
ENDFUNCTION.
ENDFUNCTION.
LXAAAU01
*INCLUDE
*INCLUDE ZXaaaU01.
ZXaaaU01.
ZXAAAU01 DATA:
DATA: <lokale
<lokale Daten>.
Daten>.
LXAAAU02 FORM. ... ENDFORM.
FORM. ... ENDFORM.
MODULE.
MODULE. ...
... ENDMODULE.
ENDMODULE.
ZXAAAU02
GET
GET ...
...
LXAAAF00 AT
AT ...
...

...
SAP AG 1999

Die INCLUDE-Anweisung fr das Programm ZXaaaUnn ist in einem FUNCTION -


ENDFUNCTION-Block enthalten. Daher drfen hier weder Ereignisse noch Unterprogramme
(FORM) oder Module (MODULE) liegen. Diese mssen in separaten Includes angelegt werden, was
wir weiter unten sehen werden. Hier mit DATA vereinbarte Datendeklarationen gelten lokal in
diesem Funktionsbaustein.
Der SAP-Anwendungsprogrammierer kann einen Vorschlag fr den Quelltext mitgeben. In diesem
Fall wird ein Include LXaaFnn angelegt (dabei bedeutet nn die intern vergebene Nummer fr den
Funktionsbaustein im Include LXaaaUXX). Der Entwickler dokumentiert dieses Include innerhalb
der SAP-Erweiterung. Der Quelltext dieses Includes kann ber die Projektverwaltungsfunktion in
das kundeneigene Include ZXaaaUnn bernommen werden.
Sie knnen eigene Textelemente fr die Funktionsgruppe anlegen.

SAP AG BC425 5-25


Exit-Funktionsgruppe: Weitere SAP-Objekte

SAPLXAAA Programmname

LXAAATOP Globale Daten

...
LXAAAUXX Alle Funktionsbausteine

...
LXAAAF01 Unterprogramme

LXAAAO01 PBO-Module

LXAAAI01 PAI-Module

LXAAAE01 ABAP-Ereignisse

...

SAP AG 1999

Der SAP-Anwendungsentwickler kann von Ihnen aufrufbare Unterprogramme im Include LXaaaF01


vorschlagen.
Falls vorgesehen, gibt es weitere Includes, die jeweils spezifische Unterobjekte beinhalten:
y LX...F01 beinhaltet von SAP ausgelieferte Unterprogramme
y LX...E01 beinhaltet zu der X-Funktionsgruppe gehrende Ereignisse
y LX...O01 beinhaltet PBO-Module zu Dynpros, die ausgeliefert werden
y LX...I01 beinhaltet die zugehrigen PAI-Module

SAP AG BC425 5-26


Exit-Funktionsgruppe: Kunden-Objekte

SAPLXAAA Programmname

LXAAATOP Globale Daten

...
LXAAAUXX Alle Funktionsbausteine

...
ZXAAAZZZ Alle weiteren Kundenobjekte:

ZXAAAF01 Unterprogramme

ZXAAAO01 PBO-Module

ZXAAAI01 PAI-Module

ZXAAAE01 ABAP-Ereignisse

...
SAP AG 1999

Sie legen Unterprogramme, Module oder interaktive Ereignisse (AT) ber eigene Includes an, die
ber das Include ZXaaaZZZ eingebunden werden.
Die zustzlichen Includes unterliegen der folgenden Namenskonvention:
y ZXaaaFnn fr Unterprogramme
y ZXaaaOnn fr PBO-Module
y ZXaaaInn fr PAI-Module
y ZXaaaEnn fr Ereignisse

SAP AG BC425 5-27


Kundeneigene Dynpros

SAPLXAAA

LXAAATOP

... *INCLUDE
*INCLUDE ZXaaaU01.
ZXaaaU01.
...
...
LXAAAUXX CALL
CALL SCREEN
SCREEN 9000
9000
STARTING
STARTING AT
AT 55 5.
5.
LXAAAU01

ZXAAAU01 *INCLUDE
*INCLUDE ZXaaaO01.
ZXaaaO01.

MODULE
MODULE ...
... OUTPUT.
OUTPUT.
ZXAAAZZZ
ENDMODULE.
ENDMODULE.
ZXAAAO01
*INCLUDE
*INCLUDE ZXaaaI01.
ZXaaaI01.
ZXAAAI01
MODULE
MODULE ...
... INPUT.
INPUT.

ENDMODULE.
ENDMODULE.

SAP AG 1999

Mit CALL SCREEN knnen sie selbst angelegte Dynpros aufrufen. Die zugehrigen Includes fr
die PBO- und PAI-Module werden im Include ZXaaaZZZ angelegt.
Das Anlegen von kundeneigenen Dynpros und Modulen wird durch Vorwrtsnavigation untersttzt.
Das kundeneigene Dynpro erhlt dabei den Namen des Rahmenprogramms des Funktionsbausteins
(SAPLXaaa). Die PBO-Module befinden sich im Include ZXaaaO01, die PAI-Module im Include
ZXaaaI01.

SAP AG BC425 5-28


Zusammenfassung Funktionsbaustein-Exits

SAP Anwendungs-Programm X-Funktionsgruppe XAAA


ABAP ABAP Dynpros
***Global Data***
DATA: gl_field... 9000
CALL CUSTOMER- FUNCTION exit_prg_001.
FUNCTION 001 *IMPORTING i_vars
EXPORTING INCLUDE ZXaaaU01.
i_vars = gl_field.

ENDFUNCTION.
*INCLUDE ZXaaaU01

CALL SCREEN 9000.


9100
<zustzliche
Verarbeitungslogik>

Textelemente
GUI-Oberflche

SAP AG 1999

Sie knnen eine SAP-Anwendung an vorgegebenen Stellen durch zustzliche Verarbeitungslogik


erweitern.
Im Rahmen einer solchen Erweiterung knnen sie auch eigene Dynpros mit zugehriger
Verarbeitungslogik und GUI-Oberflche einbauen und kundeneigene Textelemente anlegen.

SAP AG BC425 5-29


Customer-Exits: Men-Exit

berblick
berblick

Erweiterungsverwaltung
Erweiterungsverwaltung

Funktionsbaustein-Exit
Funktionsbaustein-Exit

Men-Exit
Men-Exit

Dynpro-Exit
Dynpro-Exit

SAP AG 1999

SAP AG BC425 5-30


berblick Men-Exits

SAP Kunde

Menu 1 Menu 2 Menu 3 Menu 1 Menu 2 Menu 3


Function
Function11 Function
Function11
Function
Function22 Function
Function22
Function
Function33 Function
Function33
Kundenfunktion

SAP AG 1999

Men-Exits erlauben es ihnen, eigene Ablufe mit Meneintrgen in SAP-Mens zu verknpfen.


Der SAP-Anwendungsprogrammierer reserviert hierzu in der GUI-Oberflche bestimmte
Meneintrge. Sie knnen den Text zu einem reservierten Meneintrag spter selbst bestimmen.
Darber hinaus knnen Sie oft in einem dazugehrigen Funktionsbaustein-Exit auf die Auswahl
reagieren.
Die Men-Exits werden von ihnen aktiviert und sind ab diesem Zeitpunkt in dem SAP-Men
sichtbar. Beim Auswhlen des entsprechenden Menpunktes wird die vom SAP-
Anwendungsentwickler vorgesehene Funktionalitt abgespielt oder in einen Funktionsbaustein-Exit
verzweigt und damit die kundeneigene Funktionalitt abgespielt.

SAP AG BC425 5-31


Voraussetzung fr Men-Exits

SAP

Menu Painter

Menu 1 Menu 2 Menu 3


BACK Zurck
DISP Anzeigen
+ABC Kundenfunktion

SAP AG 1999

Zur Realisierung von Men-Exits mu der SAP-Anwendungsprogrammierer in der GUI-Oberflche


des Anwendungsprogrammes Funktionscodes vorsehen, die mit einem "+" beginnen.
Diese Funktionscodes sind zunchst inaktiv. Sie erscheinen nicht in der Oberflche. Erst wenn sie
einen solchen Funktionscode aktivieren, wird er auch sichtbar.

SAP AG BC425 5-32


Men-Exits bearbeiten

Projektverwaltung von SAP Erweiterungen

Projektverwaltung
Projekt Anlegen

Teilobjekte Men-Exit
Attribute SAPMabbc+abc
Zuordnung Erweiterungen
Komponenten
Dokumentation

Anzeigen ndern
Text ndern

Men-Text

bernehmen

SAP AG 1999

Sie bearbeiten Men-Exits ber die Projektverwaltung.


ber die Drucktaste zum Bearbeiten der Komponenten gelangen sie zu einem Dialogfenster, in dem
sie sprachenabhngig eine kundeneigene Bezeichnung fr den zustzlichen Meneintrag eingeben
knnen.
Die GUI-Oberflche selbst darf nicht verndert werden.

SAP AG BC425 5-33


Men- und Funktionsbaustein-Exits

PROGRAM
PROGRAM <program_name>.
<program_name>.
DATA
DATA ok_code
ok_code LIKE
LIKE sy-ucomm.
sy-ucomm.
...
...

CASE
CASE ok_code.
ok_code.
WHEN
WHEN DISP.
DISP.
...
...
WHEN +ABC.
CALL CUSTOMER-FUNCTION 001
EXPORTING
<i_variables>
IMPORTING
<e_variables>.

...
...
ENDCASE.
ENDCASE.

SAP AG 1999

Der SAP-Anwendungsprogrammierer bestimmt, wo im Programm zustzliche Funktionscodes


abgefragt werden und wie darauf reagiert werden soll, entweder durch einen Funktionsbaustein-Exit
oder durch eine bereits fest vorgegebene Funktionalitt.

SAP AG BC425 5-34


Zusammenfassung Men-Exits

Funktionsbaustein-
Exits

Zustzliche
Meneintrge

SAP R/3
System Hilfe
      
SAP
Anwendung

SAP AG 1999

Sie knnen aufgrund von reservierten Funktionscodes Men-Exits durchfhren. Die betreffenden
Funktionscodes legt der SAP-Anwendungsprogrammierer fest und ordnet sie Mens zu. Auerdem
sieht er in der Regel einen Funktionsbaustein-Exit vor.
Men-Exit und Funktionsbaustein-Exit gehren zur selben SAP-Erweiterung.
Den zustzlichen Funktionscodes knnen keine Drucktasten zugeordnet werden.
Sie knnen den Meneintrag ndern und den Funktionscode aktivieren.

SAP AG BC425 5-35


Customer-Exits: Dynpro-Exit

berblick
berblick

Erweiterungsverwaltung
Erweiterungsverwaltung

Funktionsbaustein-Exit
Funktionsbaustein-Exit

Men-Exit
Men-Exit

Dynpro-Exit
Dynpro-Exit

SAP AG 1999

SAP AG BC425 5-36


berblick Dynpro-Exit

SAP Kunde

SAP R/3 SAP R/3

Feld 1 Feld 1 Feld Z


Feld 2 Feld 2

Feld X
Feld Y

SAP AG 1999

Dynpro-Exits erlauben en ihnen, vom SAP-Anwendungsprogrammierer reservierte Bereiche


(Subscreenbereiche) eines Hauptdynpros selbst zu gestalten. In diesen Bereichen knnen
weitergehende Informationen angezeigt oder Daten erfat werden. Die hierzu ntigen Felder werden
von ihnen auf einem kundeneigenen Dynpro (Subscreen) gestaltet.

SAP AG BC425 5-37


Subscreens im R/3

Telefon
Telefax SAP R/3
Email
200 Name

Telefon
SAP R/3 Telefax
Email
abcd
Name 200

abcd SAP R/3

Name
Strae Strae
Wohnort
Land
Wohnort
Land
abcd
300 300
SAP AG 1999

Subscreens sind rechteckige Bereiche auf einem Dynpro, die fr die Anzeige anderer Dynpros zur
Laufzeit reserviert sind. Auf jedem Subscreen-Bereich kann zur Laufzeit ein anderes Dynpro (vom
Typ Subscreen) angezeigt werden.

SAP AG BC425 5-38


Aufruf eines normalen Subscreens

z Ablaufsteuerung des Hauptdynpros

PROCESS BEFORE OUTPUT.


MODULE ...
CALL SUBSCREEN abcd
INCLUDING sy-cprog 1234.

MODULE ...

PROCESS AFTER INPUT.


MODULE ...
CALL SUBSCREEN abcd.
MODULE user_command_0100.

SAP AG 1999

Zum Zeitpunkt, zu dem das Ereignis PBO prozessiert wird, wird fr jeden Subscreenbereich
entschieden, welches Dynpro angezeigt wird. Die allgemeine Syntax lautet:
CALL SUBSCREEN <subscreen-area> INCLUDING <prg> <dynpro_no>.
Die PAI- und PBO-Verarbeitung wird zu jedem Subscreen wie bei "normalen" Dynpros ausgefhrt.
Die Reihenfolge der "CALL SUBSCREEN"-Aufrufe in der Ablauflogik des Hauptdynpros bestimmt
die Reihenfolge, in der die Ablauflogik der einzelne Subscreen-Dynpros abgearbeitet wird.
Achtung:
- Die Funktionscode-Verarbeitung findet nur ber das Hauptdynpro statt!
- Subscreens drfen "ihrem" Befehlsfeld keinen Namen geben!
- Subscreens drfen keinen GUI-Status setzen!
- In der Ablaufsteuerung eines Subscreens darf nicht das Folgedynpro gesetzt werden!

SAP AG BC425 5-39


Definition eines Dynpro-Exits

Dynpro
Dynpro von
von
SAP
SAP Anwendungs-Programm
Anwendungs-Programm

SAP R/3
SAPLXAAA
Dynpro 1234

Kundenfeld1

abcd Kundenfeld2

PROCESS BEFORE OUTPUT.


...
CALL CUSTOMER-SUBSCREEN abcd
INCLUDING SAPLXAAA 1234.

...

SAP AG 1999

Fr ein Dynpro kann der SAP-Anwendungsprogrammierer mehrere Subscreenbereiche reservieren.


Der Subscreen wird innerhalb der Ablaufsteuerung des Hauptdynpros mit der Anweisung CALL
CUSTOMER-SUBSCREEN aufgerufen. Der Name des Subscreenbereichs mu ohne Hochkomma
angegeben werden. Die Funktionsgruppe, zu dem der gerufene Subscreen gehrt, mu statisch in
Hochkommata angegeben werden, die Dynpronummer kann durch die Verwendung von Feldern
variabel gehalten werden; sie mu immer vierstellig angegeben werden.
Der Aufruf des Dynpro-Exits ist zunchst inaktiv, d.h. er wird bei Prozessieren des Dynpros
bersprungen.
Erst wenn sie den Subscreen innerhalb eines Erweiterungsprojekts angelegt und das
Erweiterungsprojekt aktiviert haben, wird der Aufruf wirksam.
Sie legen den Subscreen in einer X-Funktionsgruppe an, die in der Regel auch Funktionsbaustein-
Exits enthlt.

SAP AG BC425 5-40


Aufruf eines Customer-Subscreens

SAP Anwendungs-Programm X-Funktionsgruppe XAAA


Dynpro Dynpro 1234

PROCESS BEFORE OUTPUT.


MODULE ...

CALL CUSTOMER-SUBSCREEN abcd PROCESS BEFORE OUTPUT.


INCLUDING SAPLXAAA 1234.
MODULE ... MODULE ...
MODULE ...

abcd
PROCESS AFTER INPUT. PROCESS AFTER INPUT.
MODULE ...
CALL CUSTOMER-SUBSCREEN abcd. MODULE ...
MODULE ...
MODULE ...

SAP AG 1999

An allen Stellen in der Ablaufsteuerung eines Dynpros, an denen zum PBO-Zeitpunkt der Aufruf
CALL CUSTOMER-SUBSCREEN <subscreen-area> INCLUDING <X-Function-
Pool> <dynpro_no>
erfolgt, wird ein Subscreen in den vom SAP-Anwendungsentwickler vorgesehenen Subscreenbereich
inkludiert. Dabei wird auch die zu PBO des Subscreens aufgerufenen Module abgearbeitet.
PAI des Subscreens wird erst dann prozessiert, wenn das rufende Dynpro zu PAI den Subscreen mit
CALL CUSTOMER-SUBSCREEN <subscreen-area>
aufruft.

SAP AG BC425 5-41


Datentransport zum Subscreen

SAP Anwendungs-Programm X-Funktionsgruppe XAAA


Dynpro ABAP ABAP Dynpro
***Global Data***
DATA: gl_field...

CALL CUSTOMER-
MODULE...
FUNCTION 001
EXPORTING
i_vars = gl_field. FUNCTION exit_prg_001.
*IMPORTING i_vars
CALL gl_var = i_vars.
CUSTOMER-
SUBSCREEN... ENDFUNCTION.

***Global
***Global Data***
DATA: gl_var...

abcd

SAP AG 1999

Die globalen Daten des rufenden Programms sind der den Subscreen enthaltenden X-
Funktionsgruppe nicht bekannt; sie werden explizit vom SAP-Anwendungsentwickler ber
Funktionsbaustein-Exits zur Verfgung gestellt.
Dazu werden in der Ablaufsteuerung des rufenden Programms Module aufgerufen, die
Funktionsbaustein-Exits enthalten, welche schlielich ber die Schnittstellenparameter die Daten
bergeben.
Die zu den Funktionsbaustein-Exits gehrenden Funktionsbausteine liegen in der gleichen X-
Funktionsgruppe, zu der auch der Subscreen gehrt.

SAP AG BC425 5-42


Datentransport vom Subscreen

SAP Anwendungs-Programm X-Funktionsgruppe XAAA


Dynpro ABAP ABAP Dynpro

abcd ***Global
***Global Data***
DATA: gl_var...
CALL
CUSTOMER-
SUBSCREEN...

MODULE... CALL CUSTOMER-


FUNCTION 002
IMPORTING
e_vars = gl_field. FUNCTION exit_prg_002.
*EXPORTING e_vars
e_vars = gl_var.

***Global Data*** ENDFUNCTION.


DATA: gl_field...

SAP AG 1999

Umgekehrt sind dem rufenden Programm auch nicht die globalen Daten der X-Funktionsgruppe
bekannt, die den Subscreen enthlt. Daher lt der SAP-Anwendungsprogrammierer die auf dem
Subscreen genderten Daten wieder ber einen Funktionsbaustein-Exit an das rufende Programm
zurckgeben.
Dazu wird zu PAI des Hauptdynpros ein Modul aufgerufen, das einen Funktionsbaustein-Exit
enthlt, welcher die Kundendaten ber die Schnittstellenparameter zurckgibt.

SAP AG BC425 5-43


Subscreens bearbeiten (1)

Projektverwaltung von SAP Erweiterungen

Projektverwaltung
Projekt Anlegen

Teilobjekte Dynpro-Exit

Attribute SAPMabbc1234_abcd_SAPLXaaa1234
Zuordnung Erweiterungen
Komponenten
Dokumentation

Anzeigen ndern
Screen Painter

SAP AG 1999

Sie bearbeiten Subscreens ber die Projektverwaltung.


Der technische Name eines Dynpro-Exits setzt sich zusammen aus dem Namen des rufenden
Programms, der vierstelligen Dynpronummer und dem Namen des Subscreenbereichs, gefolgt vom
Namen des Programms der X-Funktionsgruppe und der Nummer des Subscreens.

SAP AG BC425 5-44


Subscreens bearbeiten (2)

Komponenten
bearbeiten

Nein Ja
Dynpro
vorhanden?
Screen Painter

        
Dynpro Screen Painter
System Hilfe
anlegen?
Screen Painter
System Hilfe
   
Dynproattribute
System Hilfe
      
System Hilfe
        * SAPLXaaa Dynpro 0444
PROCESS BEFORE OUTPUT.
MODULE a .
Dynprotyp ...
PROCESS AFTER INPUT.
MODULE m.

Objekt auswhlen
Subscreen
*INCLUDE ZXaaaO01.
MODULE a OUTPUT.
...
SAP AG 1999

Den Subscreen selbst legen sie an, ebenso die dazugehrigen PBO- und PAI-Module. Die SAP-
Entwicklungsumgebung untersttzt das Anlegen durch Vorwrtsnavigation.
Zu beachten ist, da der Subscreen beim erstmaligen Anlegen auch als Dynprotypen Subscreen
erhlt.
In der X-Funktionsgruppe, zu dem der Subscreen und die Funktionsbaustein-Exits gehren, drfen
keine Schnittstellen gendert und auch keine eigenen Funktionsbausteine hinzugefgt werden.
Im brigen gelten die bei '
Aufruf eines Subscreens'angegebenen Einschrnkungen.

SAP AG BC425 5-45


Zusammenfassung Dynpro-Exit

kundeneigener
Subscreen
kundeneigene
Verarbeitung

Schnittstelle

Datenbergabe
SAP R/3
System Hilfe
       

Subscreenbereich

SAP AG 1999

Dynpro-Exits gestatten ihnen, vom SAP-Anwendungsprogrammierer vorgesehene Bereiche eines


Dynpros selbst zu gestalten, um Zusatzinformationen anzuzeigen oder Daten zu erfassen und zu
verarbeiten.
Fr den Kunden vorgesehene Subscreenbereiche werden mit der Anweisung CALL CUSTOMER-
SUBSCREEN zu den Zeitpunkten PBO und PAI in die Ablaufsteuerung des rufenden Dynpros
eingebunden.
Sobald der Kunde ein Erweiterungsprojekt aktiviert, das Subscreens als Komponenten enthlt, wird
das rufende Dynpro nachgeneriert und der Subscreen beim nchsten Aufruf der
Anwendungsfunktion angezeigt.

SAP AG BC425 5-46


Erweiterungen ber Customer-Exits :
Zusammenfassung des Kapitels

Sie knnen nun:


z Erklren, wie Erweiterungen mit Hilfe von
Customer-Exits arbeiten
z Programme mit Hilfe von Funktionsbaustein-Exits
erweitern
z Mens erweitern unter Verwendung von Men-
Exits
z Dynpros erweitern mit Hilfe von Dynpro-Exits
z Erklren, wie die verschiedenen
Erweiterungstypen zusammenspielen

SAP AG 1999

SAP AG BC425 5-47


bungen

Kapitel: Customer-Exits
Thema: Funktionsbaustein-Exit

Am Ende dieser bungen knnen Sie:


Eine Erweiterung mit Hilfe eines Funktionsbaustein-Exits
implementieren.

Ihre Mitarbeiter strt bei der verwendeten Transaktion


BC425_##, da sie fr Flge, die in der Vergangenheit liegen,
ohne Vorwarnung die Detailanzeige erhalten.
Passen Sie das Programm so an, da bei der Selektion eines
Fluges in der Vergangenheit eine entsprechende Warnmeldung
ausgegeben wird. Vermeiden Sie dabei mglichst, das Programm
zu modifizieren.

1-1 Untersuchen Sie die Transaktion auf Erweiterungsmglichkeiten.


1-1-1 Hat der SAP-Entwickler fr die angegebene Transaktion einen Customer-
Exit implementiert, den Sie zum Hinzufgen der gewnschten
Funktionalitt nutzen knnen?
1-1-2 Wie heit die zugehrige SAP-Erweiterung? Whlen Sie die Erweiterung
aus, mit deren Hilfe Sie eine zustzliche Prfung beim Verlassen des ersten
Dynpros der Transaktion implementieren knnen.

1-2 Implementieren Sie die Erweiterung.


1-2-1 Whlen Sie als Namen Ihres Erweiterungsprojekts TG##CUS1.
1-2-2 Programmieren Sie folgende Prfung:
berprfen Sie, ob das eingegebene Datum vor dem aktuellen Tagesdatum
liegt (also in der Vergangenheit). Falls ja, senden Sie eine Warnmeldung,
die einen entsprechenden Text enthlt.
1-2-3 Legen Sie eine geeignete Nachricht in der Nachrichtenklasse ZBC425_##
an oder verwenden Sie die Nachricht 011 aus der Nachrichtenklasse
BC425.
1-2-5 berprfen Sie das Ergebnis Ihrer Arbeit.

SAP AG BC425 5-48


bungen

Kapitel: Customer-Exits
Thema: Men-Exit

Am Ende dieser bungen knnen Sie:


Eine Erweiterung mit Hilfe eines Men-Exits in Kombination
mit einem Funktionsbaustein-Exit implementieren.

Ihre Mitarbeiter sind begeistert: Seit sie die neue Funktionalitt


zur Anzeige von Flugdetails in der Transaktion BC425_##
haben, unterlaufen ihnen wesentlich weniger Fehlgriffe. Aber der
Mensch ist bekanntlich unersttlich
Gerne htten sie in der Transaktion zur Anzeige von Flgen einen
Absprung, der es ihnen ermglicht, eine Liste mit den aktuellen
Buchungen zu dem angezeigten Flug auszugeben. Ein geeignetes
listenerzeugendes Programm verwenden sie schon immer,
muten es bisher aber stets separat aufrufen: Es hat den Namen
SAPBC425_BOOKING_##.

1-1 Untersuchen Sie die Transaktion BC425_##. Gibt es eine Mglichkeit, evtl. einen
Meneintrag, den man nutzen knnte, um ein Programm aus Ihrer Transaktion aus
aufzurufen?
1-1-1 Hat der SAP-Entwickler fr die angegebene Transaktion einen Customer-
Exit implementiert, den Sie zum Hinzufgen der gewnschten
Funktionalitt nutzen knnen?
1-1-2 Wie heit die zugehrige SAP-Erweiterung? Whlen Sie die Erweiterung
aus, mit deren Hilfe Sie eine Men-Erweiterung implementieren knnen.

1-2 Implementieren Sie die Erweiterung.


1-2-1 Whlen Sie als Namen Ihres Erweiterungsprojekts TG##CUS2.
1-2-2 Bearbeiten Sie die Komponenten der Erweiterung: Bei Auswahl des
zustzlichen Men-Eintrags soll das oben genannte Programm gestartet
werden. Bei Verlassen der Liste soll wieder zur Transaktion BC425_##
zurckgekehrt werden.
1-2-3 bergeben Sie die relevanten Parameter an das Programm
SAPBC425_BOOKING_##. Beachten Sie, welche Daten Ihnen im
Funktionsbaustein-Exit zur Verfgung stehen.

1-3 berprfen Sie das Ergebnis Ihrer Arbeit.

SAP AG BC425 5-49


bungen

Kapitel: Customer-Exits
Thema: Dynpro-Exit

Am Ende dieser bungen knnen Sie:


zustzliche Felder auf einem Dynpro einer SAP-Transaktion
anzeigen und diese mit Inhalten fllen.

"Es wre wirklich schn, wenn wir auf der Detailanzeige der
Transaktion BC425_## zur Anzeige von Flgen noch
zustzliche Daten angezeigt bekmen".
Sie stellen sich natrlich auch dieser Herausforderung und suchen
nach einer Lsung des Problems, ohne die Transaktion
modifizieren zu mssen. Sie suchen nach einer Mglichkeit, auf
dem zweiten Dynpro (Nummer 200) einige Felder hinzuzufgen.

1-1 Welche Mglichkeiten gibt es, auf einem Dynpro zustzliche Felder zu plazieren?
Untersuchen Sie Dynpro 200 der Transaktion BC425_## darauf, ob diese
Mglichkeit hier gegeben ist.
1-1-1 Existiert zum Erweitern des Dynpros ein Dynpro-Exit?
1-1-2 Wenn ja, wie lautet der Name der zugehrigen Erweiterung?

1-2 Implementieren Sie die Erweiterung, um folgendes zu erreichen (Name des


Projekts: TG##CUS3):
1-2-1 Das Dynpro soll um drei Felder erweitert werden. Es sollen erscheinen:
der Pilotenname
die Mahlzeit
die Anzahl der freien Pltze, die auf diesem Flug noch zur Verfgung
stehen.
1-2-2 Sorgen Sie fr den korrekten Datentransport auf das Subscreen-Dynpro.

1-3 berprfen Sie das Ergebnis Ihrer Arbeit.

SAP AG BC425 5-50


Lsungen

Kapitel: Customer-Exits
Thema: Funktionsbaustein-Exit

1-1 Auf folgende Weise knnen Sie die Transaktion daraufhin untersuchen, ob sie
Customer-Exits anbietet:
1-1-1 System o Status liefert den Namen des zugehrigen Programms
(SAPBC425_FLIGHT##)
1-1-2 Nun haben Sie mehrere Mglichkeiten, nach Customer-Exits zu suchen:
Entweder Sie suchen global im Programm nach der Zeichenkette CALL
CUSTOMER-FUNCTION oder Sie verwenden das Repository Infosystem,
um nach Erweiterungen zu suchen, die im technischen Namen der
Komponente den Programmnamen beinhalten (Suche einschrnken mit
*SAPBC425_FLIGHT##* im Komponentennamen).
Die von Ihnen gesuchte Erweiterung hat den Namen SBC##E01. Die
Dokumentation der Erweiterung deutet darauf hin, da sie fr zustzliche
Prfungen auf dem ersten Dynpro der Transaktion gedacht ist.

1-2 Zum Implementieren der Erweiterung whlen Sie die Transaktion CMOD.
1-2-1 Zur Transaktion CMOD gelangen Sie ber den Menpfad Werkzeuge o
ABAP Workbench o Hilfsmittel o Erweiterungen o Projektverwaltung.
Legen Sie hier ein Projekt mit dem Namen TG##CUS1 an und sichern Sie
Ihre Arbeit.
1-2-2 Nehmen Sie die gefundene Erweiterung SBC##E01 in Ihr Projekt auf.
1-2-3 Bearbeiten Sie die Komponente. Sie gelangen in den Function Builder in
den Quelltext des Exit-Funktionsbausteins. Legen Sie das Include per
Doppelklick an. Folgendermaen knnte der von Ihnen erfate Quelltext
aussehen:
IF flight-fldate < sy-datum.
MESSAGE w011(bc425) WITH sy-datum.
ENDIF.
1-2-4 Aktivieren Sie Ihr Include. Gehen Sie zurck zur Projektverwaltung und
aktivieren Sie Ihr Erweiterungsprojekt.

SAP AG BC425 5-51


Lsungen

Kapitel: Customer-Exits
Thema: Men-Exit

1-1 Gehen Sie zum Untersuchen der Transaktion vor wie in der letzten bung. Sinnvoll
ist das Suchen ber das Repository Infosystem.
1-1-1 Idealerweise verwenden Sie das Repository Infosystem, um nach einer
geeigneten Erweiterung zu suchen, die im technischen Namen der
Komponente den Programmnamen beinhalten (Suche einschrnken mit
*SAPBC425_FLIGHT##* im Komponentennamen)
1-1-2 Die von Ihnen gesuchte Erweiterung hat den Namen SBC##E02.

1-2 Zum Implementieren der Erweiterung whlen Sie die Transaktion CMOD.
1-2-1 Zur Transaktion CMOD gelangen Sie ber den Menpfad Werkzeuge o
ABAP Workbench o Hilfsmittel o Erweiterungen o Projektverwaltung.
Legen Sie hier ein Projekt mit dem Namen TG##CUS2 an und sichern Sie
Ihre Arbeit.
1-2-2 Nehmen Sie die gefundene Erweiterung SBC##E02 in Ihr Projekt auf.
Bearbeiten Sie die Komponenten. Vergeben Sie einen Mentext. Bearbeiten
Sie den Funktionsbaustein-Exit per Doppelklick. Legen Sie das Kunden-
Include per Vorwrtsnavigation an.
1-2-3 Der Quelltext des Includes sollte fr Gruppe 00 folgendermaen aussehen:
SUBMIT sapbc425_booking_00
WITH so_car = flight-carrid
WITH so_con = flight-connid
WITH so_fld = flight-fldate
AND RETURN.
Aktivieren Sie das Include-Programm. Aktivieren Sie das
Erweiterungsprojekt.

SAP AG BC425 5-52


Lsungen

Kapitel: Customer-Exits
Thema: Dynpro-Exits

1-1 Schauen Sie sich die Dynpros der Transaktion im Screen-Painter an. Sie stellen
fest, da Dynpro 200 der Transaktion BC425_## einen Dynpro-Exit bietet.
1-1-1 Untersuchen Sie die Ablauflogik der Dynpros nach der Zeichenkette CALL
CUSTOMER-SUBSCREEN. Sie stellen fest, da Dynpro 200 der Transaktion
BC425_## einen Dynpro-Exit bietet.
1-1-2 Den Namen der Erweiterung erhalten Sie, indem Sie beispielsweise im
Repository Infosystem suchen (siehe vorhergehende bungen). Der Name
der Erweiterung lautet SBC##E03.

1-2 Implementieren Sie die Erweiterung auf die gleiche Weise, wie in den vorigen
bungen beschrieben. Legen Sie in der Transaktion CMOD ein Projekt an mit dem
Namen TG##CUS3. Nehmen Sie die Erweiterung SBC##E03 in Ihr Projekt auf.
Bearbeiten Sie die Komponenten.
1-2-1 Zum Erweitern des Dynpros verwenden Sie den Dynpro-Exit. Per
Doppelklick auf die entsprechende Erweiterungskomponente legen Sie das
Dynpro 0500 an. Beachten Sie, da Sie den Dynprotypen "Subscreen"
whlen. bernehmen Sie die Felder aus der entsprechenden Struktur
SFLIGHT## des Dictionary. Um ein Feld fr die freien Pltze auf dem
Dynpro zu plazieren, haben Sie prinzipiell zwei Mglichkeiten:
Sie deklarieren eine entsprechende Variable im TOP-Include der X-
Funktionsgruppe, generieren das Programm. Danach knnen Sie dieses
Programm-Feld auf dem Dynpro plazieren. Generieren sie das Dynpro.
(Oder: Sie knnen Ihre Append-Struktur erweitern. Diese Mglichkeit
sollten Sie nicht in der bung nicht nutzen, da der Referent die Felder der
Append-Struktur mit einem Programm fllt. Die Erweiterung der Append-
Struktur knnte zu Fehlern in diesem Programm fhren.).
1-2-2 Fr den korrekten Datentransport verwenden Sie die Funktionsbaustein-
Exits. Legen Sie das Kunden-Include an und erfassen Sie folgenden
Quelltext (Beispiel fr Gruppe 00):
MOVE-CORRESPONDING flight TO sflight00.
seatsfree =
flight-seatsmax flight-seatsocc.
TOP-Include:
TABLES: sflight00.
DATA: seatsfree type s_seatsocc.
Aktivieren Sie die Programme. Aktivieren Sie das Erweiterungsprojekt.

1-3 Fhren Sie die Transaktion BC425_## aus und berprfen Sie das Ergebnis Ihrer
Arbeit.

SAP AG BC425 5-53


Business Transaction Events

Inhalt:
z Was sind Business Transaction Events?
z Verschiedene Arten von Schnittstellen
z Business Transaction Events verwenden
z Business Transaction Events finden
z Unterschiede Customer-Exits Business Transaction
Events

SAP AG 1999

SAP AG BC425 6-1


Business Transaction Events: Lernziele des
Kapitels

Am Ende dieses Kapitels knnen Sie:

z beschreiben, was ein Business Transaction Event


ist
z Programm-Erweiterungen mit Hilfe von Business
Transaction Events realisieren
z passende Business Transaction Events finden

SAP AG 1999

SAP AG BC425 6-2


bersichtsdiagramm Transaction Events

R/3 Business Anwendungen


(SAP Standard)

Personali
Modifikation Erweiterung
sierung
z Transaktions z Modifikationsassistent z ABAP Dictionary
varianten Tabellen 4
z User-Exits Datenelemente

z Customer-Exits
Funktionsbaustein-Exits
Men-Exits 5
3 8 Dynpro-Exits

z Business Transaction Events


z Business Add Ins 6

z berblick 2
SAP AG 2002

SAP AG BC425 6-3


BTE: Software-Auslieferungswege

z Auslieferungswege mit Customer-Exits

Customer-
SAP Kunde
Exits

z Auslieferungswege mit Business Transaction Events

Business
SAP IBU Partner Kunde Transaction
Events

SAP AG 1999

Die Software-Auslieferung stellt sich heute gegenber frher grundstzlich verndert dar: Frher
waren an der Auslieferung in der Regel nur zwei Teilnehmer involviert: SAP als Hersteller lieferte
die Software direkt an den Endkunden aus. Dieser konnte sie bei Bedarf mit Hilfe von Customer-
Exits erweitern.
Aufgrund einer starken Komponenten-Orientierung sind heute an der Software-Auslieferung
wesentlich mehr Teilnehmer beteiligt: SAP liefert den R/3-Standard als Grundlage an eine Industrial
Business Unit (IBU), die ihrerseits gekapselte Funktionalitt entwickelt und anbietet. Nchstes Glied
in der Auslieferungskette kann ein Partner-Unternehmen sein, das seinerseits eine CSP-Lsung auf
Basis von R/3 anbietet (CSP = Complementary Software Program). Das letzte Glied der
Auslieferungskette ist weiter der Endkunde.
Alle Beteiligten sind potentielle Verwender und Anbieter von Erweiterungen. Diesen Bedrfnissen
knnen Customer-Exits mit ihrer einmaligen Verwendbarkeit nicht gengen. Aus diesem Grund
wurde zu Release 4.0 eine neue Erweiterungstechnik geschaffen, die eine Mehrfachverwendung
einer Erweiterung zulsst.

SAP AG BC425 6-4


Business Transaction Events (BTE)

z Erweiterungsform, die im
Finanzwesen (FI) entwickelt wurde
z Vordefinierte Schnittstellen, an denen
der Verwender Erweiterungen
anhngen kann
z Unterscheide zwei Arten von
Schnittstellen:
Publish & Subscribe


Proze-Schnittstellen


SAP AG 1999

Business Transaction Events (kurz BTE) geben Ihnen die Mglichkeit, Zusatzkomponenten,
beispielsweise in Form von Funktionsbausteinen, an das SAP-Standardsystem anzubinden.
Hierfr stehen Ihnen zwei Arten von Schnittstellen zur Verfgung:
Publish & Subscribe-Schnittstellen
Diese sollen darber informieren, da bestimmte Ereignisse in der SAP Standardanwendung
stattgefunden haben und die dadurch erzeugten Daten der externen Software verfgbar machen. Die
externe Software gibt dem SAP Standardsystem keine Daten zurck.
Proze-Schnittstellen
Sie dienen dazu, Geschftsprozesse einer anderen Steuerung zu unterwerfen, die mit dem
Standardsystem nicht zu realisieren sind, d.h. Proze-Schnittstellen greifen aktiv in den Standard-
Prozess ein und liefern der SAP-Anwendung Daten zurck.
Es ist mglich, verschiedene externe Entwicklungen an das SAP Standardsystem anzubinden. Die
Zusatzentwicklungen werden i.a. mit Hilfe der ABAP Workbench vorgenommen.

SAP AG BC425 6-5


BTE: Mgliche Szenarien (1)

SAP-Transaktion

Schnittstellen

Datenflu

Add-on-Komponente eines Partners

SAP AG 1999

Das obige Beispiel bezieht sich auf Publish & Subscribe-Schnittstellen. Der Datenflu geht dabei nur
in eine Richtung - von der SAP-Applikation zu der Zusatzkomponente.
Der SAP-Anwendungsentwickler stellt zu bestimmten Zeitpunkten in einer Transaktion
Schnittstellen zur Verfgung, an denen ein Partner oder Kunde zustzliche Logik hinterlegen kann.
Im einfachsten Fall wird eine solche Schnittstelle nur von einem Partner oder dem Kunden selbst
genutzt. Dies wrde dem Fall entsprechen, der auch bei Customer-Exits (siehe Kapitel "Vorgedachte
Erweiterungen") behandelt wurde.

SAP AG BC425 6-6


BTE: Mgliche Szenarien (2)

SAP-Transaktion

Schnittstellen

Datenflu
Beide zustzlichen
Produkte existieren,
Add-on-Komponente von Partner A ohne sich gegenseitig
zu behindern.
Add-on-Komponente von Partner B

SAP AG 1999

Auch dieses Szenario bezieht sich wieder nur auf Publish & Subscribe-Schnittstellen.
Im Gegensatz zu Customer-Exits bieten Business Transaction Events die Mglichkeit, da eine
Schnittstelle mehr als einmal fr zustzliche Logik verwendet wird.
Ist dies der Fall, mu der Anwender entscheiden, welche Erweiterung er zu einem gegebenen
Zeitpunkt ausfhren will.
Die beiden Erweiterungen existieren also nebeneinander, ohne sich gegenseitig zu behindern; zur
Laufzeit wird jedoch nur jeweils eine Erweiterung abgearbeitet.

SAP AG BC425 6-7


P/S- und Prozess-Schnittstellen
z P/S-Schnittstellen z Prozess-Schnittstellen

IBU IBU
Partner Partner
1 1
SAP-Transaktion

SAP-Transaktion
Partner Partner
2 2
Kunde Kunde

IBU IBU
Partner Partner
1 1
Partner Partner
2 2
Kunde Kunde

Auslsen einer oder mehrerer Genau eine Add-on-Komponente


zustzlicher Operationen wird durchlaufen

SAP AG 2002

Publish & Subscribe Schnittstellen:


y Wenn das Ereignis ausgelst wird, knnen eine oder mehr zustzliche Operationen gestartet
werden. Sie beeinflussen das R/3-Standardprogramm nicht.
y Auch mehr als zwei Operationen behindern sich nicht gegenseitig.
y Add-on-Komponenten knnen nur Daten importieren.
y Mgliche Anwendungen: Zustzliche Prfungen (Berechtigungen, vorhandene Duplikate, etc.)
Proze-Schnittstellen:
y Im Gegensatz zu Publish & Subscribe Schnittstellen ist bei Proze-Schnittstellen vorgesehen, da
Daten sowohl in die eine als auch in die andere Richtung ausgetauscht werden knnen. Das hat
Konsequenzen fr die Menge der Zustze, die an eine Schnittstelle angebunden werden knnen.
y Wenn das Ereignis ausgelst wird, kann ein Proze im Standardprogramm nur durch einen
anderen Proze ersetzt werden.
y Verwenden Sie z.B. ein Add-On eines Partner-Unternehmens, das eine Proze-Schnittstelle
verwendet, wird zur Laufzeit diese Erweiterung abgespielt. Mchten Sie ebenfalls die gleiche
Schnittstelle nutzen, wird zur Laufzeit die Erweiterung des Partners verworfen und Ihre eigene
abgespielt.

SAP AG BC425 6-8


BTE Funktionsweise: Ablaufdiagramm

Anwendungsprogramm Aktive Implementierung

Funktionsbaustein
BTE:
OPEN_FI_PERFORM_<nr>
Funktionsbaustein im
Kundennamensraum

CALL FUNCTION

CALL FUNCTION

SAP AG 1999

In diesem Bild ist der Ablauf eines SAP-Programmes dargestellt. Das Programm enthlt eine
Erweiterung in Form eines Business Transaction Events. Im SAP-Programm wird ein
Funktionsbaustein aufgerufen, der die aktiven Implementierungen der Erweiterung ermittelt und
abarbeitet. Die Namen dieser Funktionsbausteine beginnen mit "OPEN_FI_PERFORM_" bzw.
"OUTBOUND_CALL_").
Der Funktionsbaustein OPEN_FI_PERFORM_<nr> oder OUTBOUND_CALL_<nr> ("Service-
Funktionsbaustein") ermittelt alle aktiven Implementierungen zu der entsprechenden Erweiterung
und stellt sie in eine interne Tabelle. Die Abarbeitung der so ermittelten Funktionsbausteine erfolgt
in der Reihenfolge, die durch diese interne Tabelle vorgegeben ist. Hier werden gegebenenfalls auch
etwaige Bedingungen bercksichtigt, unter denen der Funktionsbaustein im Kundennamensraum
abgearbeitet wird. Als Bedingung kann beispielsweise das Land oder die Applikation angegeben
werden. Diese Bedingungen werden auch als Filterwerte bezeichnet.

SAP AG BC425 6-9


BTE: Aufrufendes Programm

REPORT
REPORT <program_using_bte>.
<program_using_bte>.

START-OF-SELECTION.
START-OF-SELECTION.
...
...
CALL FUNCTION
OPEN_FI_PERFORM_00001350_E 1
EXPORTING
<i_variables>.

FUNCTION-POOL
FUNCTION-POOL <sap_fp>.
<sap_fp>.
...
...
FUNCTION
FUNCTION open_fi_perform_00001350_e.
open_fi_perform_00001350_e.
...
...
LOOP
LOOP AT
AT itab
itab into
into wa.
wa.
CALL FUNCTION wa-fb_name 2 FB_NAME
EXPORTING
00001350 Z_FUBA001
<i_variables>.
00001350 /ABC/FUBA002
ENDLOOP.
ENDLOOP.
... 00001350 /CUSNR/FUBA003
...
ENDFUNCTION.
ENDFUNCTION.

SAP AG 1999

In diesem Bild ist die Syntax dargestellt, mit deren Hilfe eine Programm-Erweiterung an einem
Business Transaction Event aufgerufen wird.
Im SAP Anwendungsprogramm wird der Funktionsbaustein "OPEN_FI_PERFORM_<...>" (oder
OUTBOUND_CALL_<...>") aufgerufen. Das Anwendungsprogramm bergibt diesem Service-
Funktionsbaustein an der Schnittstelle Daten. Die Schnittstelle ist vom SAP-Entwickler vorgedacht.
Der Service-Funktionsbaustein sucht nach aktiven Implementierungen und stellt diese in eine interne
Tabelle. In einer Schleife werden die gefundenen implementierenden Funktionsbausteine
abgearbeitet.

SAP AG BC425 6-10


Business Transaction Events: SAP und Kunde

SAP Kunde

definieren Event Produkt anlegen

FB ber Produkt
registrieren dem Event zuordnen
Funktions-
baustein
SAMPLE_INTERFACE_<n> kopieren
anlegen Quelltext
aktivieren

SAP AG 1999

Business Transaction Events erlauben dem Verwender, hnlich wie Funktionsbaustein-Exits, in einer
Anwendungsfunktion zustzliche Programmlogik zu implementieren. Der SAP-
Anwendungsentwickler bestimmt, wo in einer Anwendungsfunktion solche Events festgelegt
werden und welche Daten bergeben werden. Er legt einen Musterfunktionsbaustein mit Kurztext,
Schnittstelle und Dokumentation an, und er beschreibt die fr diesen Event mgliche Funktionalitt
in der zugehrigen SAP-Dokumentation.
Zunchst vergibt der SAP-Anwendungsentwickler eine achtstellige Event-Nummer, die den BTE
qualifiziert. Diese Nummern sollten einer bestimmten Konvention gehorchen. Zum Beispiel sollen
die 5. und 6. Stelle mit Zeitpunkten im gleichen Programm identisch sein.
Der SAP-Entwickler registriert den Event und legt einen Muster-Funktionsbaustein
sample_interface_<n> an, der die Schnittstelle fr den Verwender festlegt.

SAP AG BC425 6-11


Business Transaction Events suchen

z direkt aus Anwendung: z Suche ber Tools

Business Transaction
Events
IMG
System o Status
oDoppelklick auf Programmnamen

Suchen nach Zeichenkette... zum Beispiel:

OPEN_FI_PERFORM Finanzwesen
 global in Programm prog
prog Grundeinstellungen
BTE verwenden
o SAP Referenz-IMG
Umfeld
Finanzwesen Infosystem
Grundeinstellungen o entsprechende
BTE verwenden Anwendungs-
komponente
Umfeld auswhlen
Infosystem
o Dokumentation

SAP AG 1999

Um einen direkten Eindruck zu erhalten, ob eine Anwendungstransaktion Business Transaction


Events anbietet, knnen sie den in der linken Seite skizzierten Weg befolgen: Suchen sie im
Quelltext des Anwendungsprogramms nach der Zeichenkette "OPEN_FI_PERFORM". Die
Nummer, die den Namen des Funktionsbausteins komplettiert, ist gleichzeitig die Nummer des
Events.
Im SAP Customizing Einfhrungsleitfaden finden Sie zum Beispiel unter den Grundeinstellungen
des Finanzwesens den Eintrag "Business Transaction Events verwenden". Dieser fhrt Sie zu der
Transaktion FIBF, in der Sie smtliche Aktionen ausfhren, die fr das Nutzen eines BTE
notwendig sind.
Hier finden sie unter dem Menpunkt "Umfeld" auch Suchfunktionen, mit deren Hilfe sie die
geeigneten Business Transaction Events identifizieren knnen. Aus der angezeigten Liste knnen Sie
direkt in die Dokumentation des Events verzweigen.

SAP AG BC425 6-12


BTE: Dokumentation

Event ... Einstellungen Umfeld


Infosystem(P/S)
Infosystem(P/S)
SAP Business Framework: Business Transaction Events
Infosystem(Prozesse)
Infosystem(Prozesse)

Business Transaction Events: P/S Schnittstellen


z Musterbaustein
Key Beschreibung z Schnittstelle
z Dokumentation
*** Liste selektierter Events ***

SAP AG 1999

In der Service-Transaktion FIBF finden Sie im Menpunkt "Umfeld" zwei Programme, mit deren
Hilfe sie nach BTEs suchen knnen. Dabei knnen sie ber verschiedene Parameter das
Suchergebnis einschrnken.
In einer Liste werden ihnen die gefundenen BTEs angezeigt. Von dieser Liste ausgehend knnen sie
folgende Aktionen ausben:
y Musterfunktionsbaustein anschauen (In den Function Builder navigieren, z.B. zum Kopieren des
Musterbausteins)
y sich die Schnittstelle anzeigen lassen
y die Dokumentation studieren
Aus der Dokumentation muss eindeutig hervorgehen, wie sie die Erweiterung einsetzen knnen und
welchen Beschrnkungen sie unterliegt.

SAP AG BC425 6-13


BTE: Funktion des Produkts

z Produkt fat Erweiterungen


zusammen
Kunde
z kann als Ganzes
SAP-Transaktion

aktiviert/deaktiviert werden

Produkt
Kunde

ON
Kunde

OFF

SAP AG 1999

Ebenfalls in der Service-Transaktion FIBF knnen sie ein Produkt anlegen. Produkte dienen dem
Zweck, mehrere Erweiterungen zusammenzufassen.
Es knnen Produkte zu verschiedenen Auslieferungsschichten angelegt werden. Diese definieren
eine Reihenfolge in der Abarbeitung der Implementierungen eines Business Transaction Events.
Produkte knnen nur als Ganzes ein- bzw. ausgeschaltet werden. Damit kann der Verwender steuern,
welche Erweiterungen durchlaufen werden sollen und welche nicht. Darber hinaus ist auf diese
Weise die Integritt der gesamten Erweiterung sichergestellt.

SAP AG BC425 6-14


Implementieren eines BTE

z Funktionsbaustein
Function Builder kopieren in
Kundennamensraum
Funktionsbaustein SAMPLE_INTERFACE_<n>_E z Quelltext
z Aktivieren
Z_*

Event ... Einstellungen Umfeld z Produkt anlegen


...
...
SAP Business Framework: Business Transaction Events
Produkte
Produkte eines
eines Partners
Partners
P/S-Bausteine
P/S-Bausteine eines
eines Kunden
Kunden
Proze-Bausteine
Proze-Bausteine

Event ... Einstellungen Umfeld z Funktionsbaustein


...
...
SAP Business Framework: Business Transaction Events
zuordnen
Produkte
Produkte
P/S-Bausteine
P/S-Bausteine ...einer
...einer SAP-Anw.
SAP-Anw.
Proze-Bausteine
Proze-Bausteine ...eines
...eines Partners
Partners
...eines
...eines Kunden
Kunden

SAP AG 1999

Alle Verwaltungsaktivitten zum Nutzen eines Business Transaction Events knnen Sie ber die aus
dem Customizing zugngliche Transaktion FIBF abwickeln.
Zunchst whlen Sie eine Schnittstelle, an der ein eigener Funktionsbaustein aufgerufen werden soll.
Die Taste "Schnittstelle" zeigt die Parameterstruktur des ausgewhlten Interfaces. Desweiteren
informieren Sie sich in der Dokumentation, welche Aktivitten die Schnittstelle bereitstellt.
Kopieren Sie in der ABAP Workbench den Funktionsbaustein sample_interface_<n> in den
Kundennamensraum (z_*) in eine kundeneigene Funktionsgruppe. Die Schnittstelle darf nicht
verndert werden. Sie knnen den Baustein mit beliebigem Quelltext fllen. Allerdings drfen Sie
kein COMMIT WORK verwenden! Vergessen Sie nicht, den Funktionsbaustein zu aktivieren!
Legen Sie ein Produkt im erwhnten Verwaltungsbild an.
Ordnen Sie Ihren Funktionsbaustein und das Produkt der entsprechenden Event-Nummer zu.

SAP AG BC425 6-15


Customer-Exits vs. BTE: Unterschiede

Business
Customer-Exits Transaction
Events

Quelltext

Mens

Dynpros

Tabellen

Verwaltungs
ebene
mehrfach
verwendbar
mandanten
abhngig

filterabhngig

SAP AG 1999

Im Gegensatz zu Customer-Exits ist die Verwendung von Business Transaction Events


mandantenabhngig. Das fhrt dazu, da der gleiche Event in verschiedenen Mandanten zu
unterschiedlichen Zwecken verwendet werden kann.
Darber hinaus knnen BTEs mehrfach verwendet werden.
Bei Publish & Subscribe-Schnittstellen hat der Anwender dann die Wahl, welche Erweiterung er
ausfhren will.
Bei Proze-Schnittstellen wird in der Reihenfolge SAP-Anwendung - Add-On - Kunde genau eine
Komponente ausgefhrt.

SAP AG BC425 6-16


Business Transaction Events: Zusammenfassung
des Kapitels

Sie knnen nun:


z Beschreiben, wie Business Transaction Events
arbeiten
z Programm-Erweiterungen mit Hilfe von Business
Transaction Events inplementieren
z Business Transaction Events zu einem
Anwendungsprogramm finden
z Erklren, wie sich Business Transaction Events
von Customer-Exits unterscheiden

SAP AG 1999

SAP AG BC425 6-17


Business Add-Ins

Inhalt:
z Implementieren von Business Add-Ins
z Definition von Business Add-Ins
z Dynpro-Erweiterungen mit Business Add-Ins

SAP AG 2002

SAP AG BC425 7-1


Business Add-Ins: Lernziele des Kapitels

Am Ende dieses Kapitels knnen Sie:

z Programme funktional mit Business Add-Ins


erweitern
z Business Add-Ins anlegen, um sie in der
Software-Entwicklungskette nachfolgenden R/3-
Verwendern zur Verfgung zu stellen
z Dynpro-Erweiterungen mit Business Add-Ins
realisieren

SAP AG 2002

SAP AG BC425 7-2


Business Add-Ins: Unternehmensszenario

z Eine Transaktion der Flugverwaltung soll


funktional erweitert werden. Dazu stellt der SAP-
Entwickler ein BAdI bereit.
z Des weiteren werden sie selbst ein Business Add
In definieren und in einem Programm verwenden.

SAP AG 2002

SAP AG BC425 7-3


bersichtsdiagramm Add Ins

R/3 Business Anwendungen


(SAP Standard)

Personali
Modifikation Erweiterung
sierung
z Transaktions z Modifikationsassistent z ABAP Dictionary
varianten Tabellen 4
z User-Exits Datenelemente

z Customer-Exits
Funktionsbaustein-Exits
Men-Exits 5
3 8 Dynpro-Exits

z Business Transaction Events


6
z Business Add Ins
7

z berblick 2
SAP AG 2002

SAP AG BC425 7-4


Business Add Ins: Motivation

z Nachteile bisheriger Erweiterungstechniken:


nur einfach verwendbar (Customer-Exits)


keine Dynpro-Erweiterungen (BTEs)




keine Men-Erweiterungen (BTEs)




keine Verwaltungsebene (BTEs)




z Anforderungen an neue Erweiterungstechnik:


Mehrfach verwendbar


Alle Erweiterungsarten (Programm / Men / Dynpro)




Verwaltungsebene


Mit modernsten Techniken implementiert




SAP AG 1999

SAP AG BC425 7-5


Software-Auslieferungswege

z frher

Customer-
SAP Kunde
Exits

z heute

SAP IBU Partner Kunde


Business
Add
Erweiterung von ABAP: Ins
ABAP Objects

SAP AG 1999

SAP AG BC425 7-6


Interfaces: Lernziele

Nach Behandlung dieses Themas knnen Sie:

z Erlutern, was ein Interface in ABAP Objects ist

SAP AG 2002

SAP AG BC425 7-7


Objekte

Schnittstelle

Private ffentliche
Komponenten Attribute
Flug Fluggesellschaft
Flugnummer
Kunde
Adresse ffentlicher
Zugriff
Passagier-
liste ffentliche
Methoden
z BUCHEN
FLUG

SAP AG 1999

Eine Klasse ist eine abstrakte Beschreibung eines Objekts. Ein Objekt existiert nur zur Laufzeit eines
Programms. Wenn hier von Objekten die Rede ist, so ist je nach Kontext auch die abstrakte
Beschreibung, also die Klasse gemeint.
Ein Objekt (beschrieben durch die Klasse) besteht im wesentlichen aus zwei Schichten - Innen und
Auen:
- ffentliche Komponenten: Die nach auen sichtbaren Komponenten des Objektes, z.B.
Attribute und Methoden. Die ffentlichen Komponenten sind von allen Verwendern direkt
verwendbar. Die ffentlichen Komponenten eines Objektes bilden die Schnittstelle dieses
Objektes.
- Private Komponenten: Diese Komponenten sind nur innerhalb des Objektes sichtbar. Dabei
handelt es sich wiederum um Attribute, Methoden, etc..
Ziel der Objektorientierung ist, da eine Klasse ihre eigene Konsistenz sicherstellen kann. Daher
sind im allgemeinen die Daten 'intern', d.h. private Attribute. Die internen (privaten) Attribute einer
Klasse knnen nur durch Methoden dieser Klasse manipuliert werden. Im allgemeinen werden als
ffentliche Komponenten nur Methoden angeboten, die dann die Daten manipulieren und die
Konsistenz des Objektes sicherstellen.
Daneben hat ein Objekt eine Identitt, die es eindeutig von anderen Objekten mit den gleichen
Attributen und Methoden unterscheidet.

SAP AG BC425 7-8


Instanzen von Funktionsgruppen als Objekte

Funktionsgruppe 1 Funktionsgruppe 2

Funktions- Daten Funktions- Daten


baustein baustein
... ...

ABAP- Programm mit Daten

CALL FUNCTION ...

Interner Modus eines ABAP-Programms


Externer Modus

SAP AG 1999

Vor Release 4.0 waren in ABAP die zu Funktionsgruppen zusammengefaten Funktionsbausteine


die nchste Annherung an Objekte.
Beim Aufruf eines Funktionsbausteins wird eine Instanz seiner Funktionsgruppe mit ihren Daten in
den Speicherbereich des internen Modus dazugeladen. Eine Instanz ist ein echtes Software-Objekt.
Ein ABAP-Programm kann durch den Aufruf von Funktionsbausteinen aus verschiedenen
Funktionsgruppen mehrere Instanzen laden (pro Funktionsgruppe allerdings nur hchstens eine!).
Der wesentliche Unterschied zwischen echter Objektorientierung und Funktionsbausteinen besteht
darin, da ein Programm zwar mit den Instanzen mehrerer Funktionsgruppen auf einmal arbeiten
kann, aber nicht mit mehreren Instanzen einer einzigen Funktionsgruppe. Ein Programm will
beispielsweise mehrere unabhngige Zhler oder mehrere Auftrge zugleich behandeln. Fr diesen
Zweck mte die Funktionsgruppe, in der die entsprechende Funktionsbausteine liegen, speziell
programmiert werden, um eine Instanzverwaltung bereitzustellen, wobei die verschiedenen Instanzen
z.B. durch Nummern unterschieden werden.

SAP AG BC425 7-9


Klassen verallgemeinern Funktionsgruppen

n. Instanz, Klasse 1 n. Instanz, Klasse m


1. Instanz, Klasse 1 1. Instanz,
Daten DatenKlasse m
Schnitt-
...
Daten Funktions- Daten
...

baustein Daten
...

stelle Daten
...

Schnitt- Schnitt-

stelle
...

stelle
...

ABAP-Programm mit Daten

Interner Modus eines ABAP-Programms

SAP AG 1999

In der Praxis ist es sehr umstndlich, eine Instanzenverwaltung innerhalb von Funktionsgruppen
durchzufhren. Daher liegen im allgemeinen die Daten beim aufrufenden Programm, und die
Funktionsbausteine arbeiten auf diesen Daten. Dies wirft verschiedene Probleme auf. Beispielsweise
mssen alle Verwender die gleichen Datenstrukturen verwenden wie die Funktionsgruppe selbst.
Wenn man die interne Datenstruktur einer Funktionsgruppe ndern will, sind sehr viele Verwender
betroffen, und es ist hufig schwierig, die Implikationen von nderungen vorherzusagen.
Ein weiteres Problem ist, da alle Verwender Kopien der Daten haben und es bei nderungen sehr
schwierig ist, diese konsistent zu halten (Frage: Wer hat wo eine Kopie von was gespeichert?).
Das Arbeiten mit globalen Daten in Funktionsgruppen ist dagegen gefhrlich, da beim Ablauf
komplexer Transaktionen kaum kontrolliert werden kann, wann welche Funktionsgruppe geladen
wird.
Diese Probleme werden durch die Einfhrung von Klassen gelst. Daten und Funktionalitt werden
statt in Funktionsgruppen in Klassen definiert. Ein ABAP-Programm kann mit beliebig vielen
Laufzeitinstanzen der gleichen Vorlage arbeiten: Statt eine einzige Laufzeitinstanz einer
Funktionsgruppe implizit durch den Aufruf eines Funktionsbausteins in den Speicher zu laden,
erzeugt ein ABAP-Programm die Laufzeitinstanzen von Klassen explizit. Die einzelnen
Laufzeitinstanzen stellen eindeutig identifizierbare Objekte dar und werden durch Objektreferenzen
adressiert.

SAP AG BC425 7-10


Interfaces

z Definition einer Schnittstelle ohne Implementierung


z Interfaces werden von Klassen implementiert
z Einheitlicher Zugriff ber Interface-Referenzen

Interface

SAP AG 1999

Interfaces werden unabhngig von Klassen definiert.


Sie knnen Deklarationen von Attributen, Methoden, enthalten.
Interfaces knnen von Klassen implementiert werden.
Diese Klassen haben nach auen eine einheitliche Schnittstelle und verpflichten sich, die
Funktionalitt eines Interfaces durch Implementierung seiner Methoden bereitzustellen.
Im Programm knnen Referenzvariablen mit Bezug auf Interfaces typisiert werden, es gibt aber
keine Instanzen von Interfaces.
Interfacereferenzen knnen statt dessen auf Objekte unterschiedlicher Klassen zeigen.

SAP AG BC425 7-11


BAdIs implementieren: Lernziele

Nach Behandlung dieses Themas knnen Sie:

z Business Add Ins zur Realisierung von


Programmerweiterungen einsetzen

SAP AG 2002

SAP AG BC425 7-12


Business Add Ins: Architektur

SAP IBU Partner Kunde

Generierte
BAdI-
Klasse

SAP
Programm
Implemen
tierung

Software
produkt
Implemen
BAdI-Interface tierung

SAP AG 2002

Im Gegensatz zu Customer-Exits tragen Business Add Ins der vernderten Software-


Auslieferungslandschaft Rechnung. Im oberen Teil des Bildes ist die typische
Auslieferungslandschaft dargestellt: Sie besteht nicht mehr nur aus Anbieter und Verwender. Es
knnen mehrere Zwischenanbieter in der Software-Auslieferungskette enthalten sein.
Der untere Teil des Bildes stellt prinzipiell dar, wie Business Add Ins arbeiten: Ein
Anwendungsprogramm der SAP stellt die Erweiterungsmglichkeit zur Verfgung. Dazu gehrt
zumindest ein Interface und eine dieses Interface implementierende BAdI-Klasse. Das Interface wird
auch vom Verwender implementiert.
Die wesentlichen Strken dieses Konzeptes liegt in der Mehrfachverwendbarkeit: Ein BAdI kann
mehrfach implementiert werden, auch von in der Software-Auslieferungskette weiter rechts
stehenden Gliedern.
Darber hinaus kann mit Hilfe von Business Add Ins jedes Mitglied der Software-Auslieferungskette
Erweiterungen anbieten.

SAP AG BC425 7-13


Business Add Ins: Komponenten

Eigensch.
BAdI
INTERFACE
<badi-interface>.
Mehrfach verwendbar DATA: a1 ...
Filterabhngig
METHODS m1
EXPORTING
FCodes e_par1
e_par2 Generierte
Programm Funktionscode IMPORTING BAdI-
<prog> +ABC i_par1. Klasse
METHODS m2 ...

ENDINTERFACE.

Subscreens

Rufendes Programm Dyn-Nr Subscr-Bereich Besc


<prog> 0200 ABCD Scr..

SAP AG 2002

In einem Business Add In sind die Komponenten der Erweiterung zusammengefasst. Ein Business
Add In kann folgende Erweiterungsmglichkeiten anbieten:
y Programmerweiterung: Im Business Add In sind die Schnittstellen fr die
Programmerweiterungen in Form von Methoden eines Interfaces definiert. Dieses Interface wird
bei der Implementierung der Erweiterung verwendet. Das SAP Programm ruft die Interface-
Methoden der generierten BAdI-Klasse auf.
y Men-Erweiterung: Analog zu Customer-Exits knnen in einem BAdI Funktionscodes eingetragen
sein. Die entsprechenden Men-Eintrge sind in der CUA-Definition vorhanden und werden durch
die Implementierung des BAdIs sichtbar.
y Dynpro-Erweiterung: Analog zu Customer-Exits knnen in einem BAdI Dynpro-Erweiterungen
definiert sein, die Sie implementieren knnen.
Bei der Definition eines BAdI werden mehrere Komponenten angelegt:
y Interface
y generierte Klasse (BAdI-Klasse), die das Interface implementiert
Die generierte Klasse (BAdI-Klasse) hat folgende Aufgaben:
y Filterung: Falls ein BAdI nur unter bestimmten Bedingungen ausgefhrt werden soll, sorgt die
BAdI-Klasse dafr, dass nur die gltigen Implementierungen aufgerufen werden.
y Steuerung: Die BAdI-Klasse ruft die aktiven Implementierungen auf.

SAP AG BC425 7-14


Business Add Ins: Ablaufdiagramm
Anwendungsprog.
Service-Klasse
CL_EXITHANDLER

1 Abarbeiten aktiver
Implementierungen

Instanz von
BAdI-Klasse BAdI: Instanz von
<badi-class> Implement.
Implement. Klasse

SAP AG 2002

In diesem Bild ist der Ablauf eines Programmes dargestellt, das einen BAdI-Aufruf enthlt. Um die
Mglichkeiten und Grenzen von Business Add Ins zu verstehen, kann dieses Bild verwendet werden.
Nicht dargestellt: Im Deklarationsteil muss eine Referenzvariable mit Bezug auf das BAdI-Interface
deklariert sein.
In einem ersten Schritt wird eine Objektreferenz erzeugt. Das bernimmt die von SAP ausgelieferte
Service-Klasse CL_EXITHANDLER. Auf die genaue Syntax gehen wir auf einer anderen Folie ein.
Damit sind die Voraussetzungen geschaffen, um die Methoden der Programmerweiterung
aufzurufen.
Bei der BAdI-Definition wird die sogenannte BAdI-Klasse generiert, die das Interface
implementiert. In dem mit (2) gekennzeichneten Aufruf wird die Interface-Methode der BAdI-Klasse
aufgerufen. Die BAdI-Klasse sucht ihrerseits alle zu dem Business Add In vorhandenen aktiven
Implementierungen und ruft die implementierten Methoden auf.

SAP AG BC425 7-15


Business Add Ins: Aufrufendes Programm

REPORT
REPORT <program_using_badi>.
<program_using_badi>.
Instanz von
DATA: r_var
r_var <badi-class>
badi-class>
TYPE REF TO <badi
<badi-
-interface>.
interface>.
START-OF-SELECTION.
START-OF-SELECTION.

CALL METHOD 1
cl_exithandler=>get_instance
CHANGING
instance = r_var
r_var.
. r_var

CALL METHOD r_var


r_var->method
->method 2
EXPORTING
<i_variables>
IMPORTING
<e_variables>.

END-OF-SELECTION.
END-OF-SELECTION.

SAP AG 2002

Hier ist die Syntax dargestellt, die der Aufruf eines Business Add Ins erfordert. Die numerierten
Kreise korrespondieren mit den Aufrufen auf dem letzten Bild.
Zunchst muss eine Referenzvariable definiert sein mit Referenz auf das BAdI-Interface. Der Name
der Referenz-Variablen muss nicht notwendigerweise den Namen des BAdIs beinhalten.
In einem ersten Aufruf (1) wird eine Objektreferenz erzeugt. Diese erzeugt eine Instanz der
generierten BAdI-Klasse. Mit dieser Objektreferenz sind nur die Methoden des Interfaces
ansprechbar .
Mit Hilfe dieser Objekt-Referenz knnen nun die mit der Erweiterung zur Verfgung gestellten
Methoden aufgerufen werden (2).

SAP AG BC425 7-16


Business Add Ins implementieren: Einstieg

Business Add-Ins: Einstieg Implementierungspflege

Name der
Implementierungsname <impl>
Implementierung
Anzeigen ndern Anlegen
Anlegen

Business Add Ins: Auswahl Def


Definitionsname <badi>

SAP AG 1999

Zum Implementieren von Business Add Ins verwenden sie die Transaktion SE19 (Werkzeuge -->
ABAP Workbench --> Hilfsmittel --> Business Add Ins --> Implementierung).
Vergeben Sie einen Namen fr ihre Implementierung und whlen Sie "Anlegen". Sie gelangen auf
ein Popup, wo sie den Namen des Business Add Ins angeben. Danach gelangen sie auf das
Pflegebild zum Implementieren des Business Add Ins.
Alternativ knnen sie auch ber die Transaktion zum Definieren von Business Add Ins, SE18, zu
deren Implementierung gelangen. Im Men finden sie einen Eintrag "Implementierung", unter dem
sie sich einen berblick ber die vorhandenen Implementierungen verschaffen knnen. Ausserdem
knnen sie hier neue Implementierungen anlegen.

SAP AG BC425 7-17


BAdIs implementieren: Methoden

Eigensch. Interface FCodes


Interfacename <badi-interface>
Name der implementierenden Klasse <impl-class>

Methode Beschreibung
<method> Methode des BAdI

Class Builder: Editieren Methode <badi-interface>~<m...>

METHOD <badi-interface>~<method>.

*...

ENDMETHOD.

SAP AG 2002

Der Name der implementierenden Klasse kann prinzipiell frei gewhlt werden. Es empfiehlt sich
jedoch, die vorgeschlagene Namenskonvention zu beachten. Der vorgeschlagene Name setzt sich
zusammen aus
y Namensraumprfix, Y oder Z
y CL_ (steht fr Klasse)
y IM_ (steht fr Implementierung)
y Name der Implementierung (ohne Namensraumprfix)
Durch Doppelklick auf den Namen der Methode gelangen Sie in den Editor zum Implementieren der
Methode.
Im letzten Schritt mssen die Objekte aktiviert werden.

SAP AG BC425 7-18


BAdIs implementieren: private Methoden

Class Builder: Editieren Methode <badi-interface>~<m...>

METHOD <badi-interface>~<method>.

CALL METHOD <priv_method> EXPORTING ... .

ENDMETHOD.
Class Builder: Klasse <impl-class> ndern

Eigensch. Methoden Events

Parameter Ausnahmen
Methode Art Beschreibung
<priv_method> new method in Implementation

SAP AG 2002

Sie knnen in der implementierenden Klasse private Methoden anlegen, die sie aus der Interface-
Methode heraus aufrufen.
Dazu bearbeiten Sie die implementierende Klasse direkt im Class Builder. Hier legen Sie die private
Methode inklusive Schnittstelle an. Geben sie an, welche Sichtbarkeit die Methode haben soll und
implementieren Sie sie.

SAP AG BC425 7-19


BAdIs implementieren: Aktivieren

Business Add-Ins: Einstieg Implementierungspflege

Implementierungsname <impl>

z Aktivieren
Anzeigen ndern Anlegen
z Aktivierung
zurcknehmen

SAP AG 1999

Mit den entsprechenden Ikonen knnen sie die Implementierung eines Business Add Ins aktivieren.
Ab diesem Zeitpunkt werden die Methoden der Implementierung durchlaufen, wenn das
entsprechende aufrufende Programm ausgefhrt wird.

Deaktivieren der Implementierung bewirkt, dass die Methoden entsprechend nicht mehr aufgerufen
werden. Die entsprechenden Aufrufe im Anwendungsprogramm werden noch durchlaufen.
Allerdings findet die Instanz der Adapterklasse keine aktive Implementierung mehr. Im Gegensatz
zum Aufruf "CALL CUSTOMER-FUNCTION" wird trotz fehlender Implementierung der Aufruf
"CALL METHOD CL_EXITHANDLER=>GET_INSTANCE" ausgefhrt. Das gleiche gilt fr den
Methodenaufruf, der die Methode der Adapterklasse ruft.

Eine Aktivierung oder Deaktivierung kann nur im Originalsystem der Implementierung


modifikationsfrei durchgefhrt werden. Sie mssen die Aktivierung/Deaktivierung in die
nachgelagerten Systeme transportieren.

Zu einem Business Add-In, welches nur eine Implementierung haben kann, knnen mehrere
Implementierungen in einem System existieren. Es kann aber jeweils nur eine aktiv sein.

SAP AG BC425 7-20


BAdI: Funktionscodes - berblick

SAP Kunde

Menu 1 Menu 2 Menu 3 Menu 1 Menu 2 Menu 3


Function
Function11 Function
Function11
Function
Function22 Function
Function22
Function
Function33 Function
Function33
Kundenfunktion

SAP AG 1999

Analog zu Customer-Exits knnen sie auch bei Business Add Ins Men-Erweiterungen nutzen. Dazu
mssen folgende Voraussetzungen vorliegen:
y Der Entwickler des zu erweiternden Programms muss die Erweiterung vorgedacht haben.
y Die Men-Erweiterung muss in einer BAdI-Implementierung implementiert sein.

SAP AG BC425 7-21


BAdI: Funktionscodes - Voraussetzung

SAP

Menu Painter

Menu 1 Menu 2 Menu 3


BACK Zurck
DISP Anzeigen
+XXX Kundenfunktion

SAP AG 1999

Funktionscodes von Men-Erweiterungen beginnen mit "+" (Plus-Zeichen).


Erst das Vorhandensein einer aktiven Implementierung eines Business Add In, welches die
entsprechende Erweiterung enthlt, lsst den zustzlichen Men-Punkt zur Laufzeit in der Anzeige
erscheinen.

SAP AG BC425 7-22


BAdI: Funktionscodes - Einschrnkung

Eigensch. Interface FCodes

Programm Funktionscode Beschreibung


/namespace/... +xxx

Eigensch.

Mehrfach verwendbar

Filterabhngig

SAP AG 2002

Funktionscodes knnen nur zu einfach nutzbaren Business Add Ins existieren. Das Business Add In
darf darber hinaus nicht filterabhngig sein.
Diese Einschrnkungen sind notwendig, um Konflikte von mehreren Implementierungen zu
vermeiden ("Welcher Meneintrag soll zur Anzeige gebracht werden?").

SAP AG BC425 7-23


BAdI: Funktionscodeverarbeitung im Programm

PROGRAM
PROGRAM <program_using_badi>.
<program_using_badi>.
DATA
DATA ok_code
ok_code LIKE
LIKE sy-ucomm.
sy-ucomm.
DATA:
DATA: r_var
r_var TYPE
TYPE REF
REF TO
TO <badi-interface>.
<badi-interface>.
...
...

CASE
CASE ok_code.
ok_code.
WHEN
WHEN DISP.
DISP.
...
...
WHEN +XXX.
CALL METHOD r_var
r_var-><
-><method
method>
>
EXPORTING
<i_variables>
IMPORTING
<e_variables>.

ENDCASE.
ENDCASE.

SAP AG 2002

Wird im Anwendungsprogramm der Meneintrag ausgewhlt, zu dem der Funktionscode "+<exit>"


gehrt, wird der entsprechende Methodenaufruf abgearbeitet.
Der Methodenaufruf und die Menerweiterung gehren also unmittelbar und untrennbar zusammen.
Das erste wrde ohne das zweite keinen Sinn ergeben. Aus diesem Grund ist es wichtig, dass diese
beiden Erweiterungskomponenten in einer Erweiterung dem Business Add In zusammengefasst
sind.

SAP AG BC425 7-24


Definition von BAdIs: Lernziele

Nach Behandlung dieses Themas knnen Sie:

z Ein Business Add In definieren


z Ein Programm schreiben, das eine Erweiterung
mit Hilfe eines BAdIs anbietet

SAP AG 2002

SAP AG BC425 7-25


BAdI Definition: Einstieg

Business Add-Ins: Einstieg Definitionspflege

Name der
Definitionsname__ BAdI Definition
Anzeigen ndern Anlegen
Anlegen

SAP AG 1999

Zum Anlegen eines BAdIs verwenden Sie den BAdI Builder (Werkzeuge --> ABAP Workbench -->
Hilfsmittel --> Business Add-Ins --> Definition) oder den Transaktionscode SE18.

SAP AG BC425 7-26


BAdI Definition: Eigenschaften

Eigensch. Interface FCodes

Programm Funktionscode Beschreibung

Eigensch.

Mehrfach verwendbar

Filterabhngig Filtertyp__ <filter_type>

SAP AG 2002

Unter den Eigenschaften knnen sie zwei wichtige Eigenschaften des Business Add Ins festlegen:
y Mehrfach verwendbar
y Filterabhngig
Markieren Sie das Ankreuzfeld "Mehrfach verwendbar", kann es zu dem Business Add In mehrere
aktive Implementierungen geben. Die Reihenfolge der Abarbeitung dieser Implementierungen ist
hierbei nicht definiert. Im umgekehrten Fall (nicht mehrfach verwendbar) knnen ebenfalls mehrere
Implementierungen nebeneinander existieren. Es kann allerdings in diesem Fall nur eine aktive
Implementierung geben.
Die Filterabhngigkeit eines Business Add In ermglicht Ihnen, den Aufruf der Erweiterung von
bestimmten Randbedingungen abhngig zu machen. Der Filtertyp muss in Form eines
Datenelementes oder einer im ABAP Dictionary vorhandenen Struktur angegeben werden. Die
Wertetabelle der Domne, auf die sich das Datenelement bezieht, gibt die fr die Implementierung
sinnvollen Werte vor. Bei einer Struktur als Filtertyp gilt diese Aussage entsprechend fr die
Einzelfelder der Struktur.
Beim Aufruf der Erweiterungs-Methode muss in diesem Fall ein Filterwert an der Schnittstelle
mitgegeben werden.

SAP AG BC425 7-27


BAdI Definition: Funktionscodes

Eigensch. Interface FCodes

Programm Funktionscode Beschreibung


/namespace/... +xxx

Eigensch.

Mehrfach verwendbar

Filterabhngig

SAP AG 1999

Sie knnen in einer Business-Add-In-Definition auch Funktionscodes aufnehmen, analog zu Men-


Exits bei den Customer-Exits). Dazu geben sie den Programmnamen und den Funktionscode sowie
eine Kurzbeschreibung auf dem entsprechenden Tabstrip an.
Einschrnkungen:
y Es knnen zur Zeit keine BAdIs angelegt werden, die nur aus Men-Erweiterungen
(Funktionscodes) bestehen.
y Die Aufnahme von Men-Erweiterungen schliesst die Mehrfachverwendbarkeit und die
Filterabhngigkeit aus.

SAP AG BC425 7-28


BAdI Definition: Interface-Methoden

Eigensch. Interface FCodes

Interfacename <badi-interface>

Class Builder: Interface <badi-interface> ndern

Eigensch. Methoden Events

Parameter Ausnahmen
Methode Art Beschreibung
<method1> Methode der Erweiterung
<method2> Methode 2 der Erweiterung

SAP AG 2002

Das System schlgt ihnen einen Namen fr das Interface und die generierte BAdI-Klasse vor. Der
Name des Interfaces ist hierbei nderbar und kann theoretisch von ihnen frei gewhlt werden. Es
empfiehlt sich jedoch, auf Grund der bersichtlichkeit den vorgeschlagenen Namen beizubehalten.
Der Name der generierten Klasse setzt sich zusammen aus den folgenden Komponenten:
y Namensraum-Prfix
y CL_ (fr Klasse allgemein)
y EX_ (steht fr "Exit")
y Name des Business Add Ins (ohne Namensraum-Prfix)
Durch Doppelklick auf den Namen des Interfaces gelangen sie in den Class-Builder, wo sie die
Methoden des Interfaces definieren knnen.
Zu einem BAdI-Interface knnen mehrere Interface-Methoden gehren.

SAP AG BC425 7-29


BAdI Definition: Methoden-Schnittstellenparameter

Class Builder: Interface <badi-interface> ndern

Eigensch. Methoden Events

Parameter Ausnahmen
Methode Art Beschreibung
<method> methode des BAdI

Eigensch. Methoden Events

Methoden Ausnahmen
Parameter Art Type Beschreibung
Importing
Exporting
Changing

SAP AG 2002

Im Class Builder knnen sie alle gewohnten Aktivitten ausfhren. Sie knnen unter anderem
y Interface-Methoden definieren
y Schnittstellenparameter der Methoden definieren
y Attribute des Interfaces vereinbaren
Bei filterabhngigen Business Add Ins mssen sie bei jeder Methode einen Import-Parameter flt_val
definieren! Ansonsten vereinbaren sie die Schnittstellenparameter, die fr die Verwendung der
Erweiterung notwendig sind.

SAP AG BC425 7-30


BAdI Definition: Interface aktivieren

Class Builder: Interface <badi-interface> ndern

Eigensch. Methoden Events


Aktivieren
Parameter Ausnahmen
Methode Art Beschreibung
<method> methode des BAdI

SAP AG 2002

Wenn sie die Bearbeitung des Interfaces abgeschlossen haben, aktivieren sie es. Dadurch wird die
BAdI-Klasse des Business Add Ins generiert!
nderungen am Interface ziehen eine automatische Nachgenerierung der BAdI-Klasse nach sich.
Im Einstiegsbild der Business Add In-Pflege knnen sie die BAdI-Klasse auch explizit generieren
(unter Hilfsmittel --> Neugenerierung).

SAP AG BC425 7-31


BAdI Definition: Aufruf im Programm

REPORT
REPORT <program_using_badi>.
<program_using_badi>.
Instanz von
DATA: r_var
r_var
TYPE REF TO <badi
<badi-
-interface>.
interface>. 1 <badi-class>
badi-class>

START-OF-SELECTION.
START-OF-SELECTION.

CALL METHOD
cl_exithandler=>get_instance 2
CHANGING
r_var
instance = r_var
r_var.
.

CALL METHOD r_var


r_var-><
-><method
method>
>
EXPORTING 3
<i_variables>
IMPORTING
<e_variables>.

END-OF-SELECTION.
END-OF-SELECTION.

SAP AG 2002

Um eine Methode eines Business Add Ins in einem Anwendungsprogramm aufrufen zu knnen,
mssen sie drei Anweisungen in ihr Programm aufnehmen:
Deklarieren sie eine Referenzvariable (1) mit Referenz auf das BAdI-Interface (In unserem Beispiel
"r_var").
Der Aufruf der statischen Methode GET_INSTANCE der Service-Klasse CL_EXITHANDLER (2)
liefert eine Instanz des fraglichen Objektes zurck. Implizit wird hierbei ein Down-Cast
durchgefhrt, so da nur die Interface-Methoden des Objekts mit der Referenz-Variable (hier:
"r_var") ansprechbar sind.
Nun knnen sie die Methoden des BAdI aufrufen (3). Geben Sie die Schnittstelle korrekt an.

SAP AG BC425 7-32


Aufruf eines filterabhngigen BAdIs

REPORT
REPORT <program_using_badi>.
<program_using_badi>.
Instanz von
DATA:
DATA: r_var
r_var
TYPE
TYPE REF
REF TO
TO <badi-interface>.
<badi-interface>.
1 <badi-class>
badi-class>

START-OF-SELECTION.
START-OF-SELECTION.

CALL
CALL METHOD
METHOD
cl_exithandler=>get_instance
cl_exithandler=>get_instance 2
CHANGING
CHANGING
instance r_var
instance == r_var.
r_var.

CALL METHOD r_var


r_var-><
-><method
method>
>
EXPORTING 3
flt_val = <filterwert>
<i_variables>
IMPORTING
<e_variables>.
END-OF-SELECTION.
END-OF-SELECTION.

SAP AG 2002

Bei filterabhngigen Business Add Ins mssen sie den Parameter flt_val mit einem entsprechenden
Wert versorgen.

SAP AG BC425 7-33


BAdI Screen Erweiterung anlegen: Lernziele

Nach Behandlung dieses Themas knnen Sie

z Ein Programm erstellen, das eine Screen-


Erweiterung mit Hilfe von Business Add-Ins anbietet

SAP AG 2002

SAP AG BC425 7-34


BAdI Screen-Erweiterung: Prinzip

SAP AnwProg Badi-Klasse Implement. Programm


SET INSTANCE
<badi-class> (Funktionsgruppe)
GET INSTANCE

PBO. GET DATA PBO.


PUT DATA

Statisches
Attribut:
Attribut:
Dynpro-
Dynpro-Instanz
abcd PAI.
PUT DATA
PAI.
GET DATA

PUT DATA GET DATA

Implement. Klasse

Instanz-Attribute:
Instanz-Attribute:
Dynpro-
Dynpro-Daten

SAP AG 2002

Die ABAP Virtual Machine kennt keine klassengebundenen Dynpros. Als Trger von Dynpros
knnen somit nur "klassische" Programme (Typ 1, F, M) verwendet werden. Dynpro-Erweiterungen
mssen diesen Umstand bercksichtigen.
Analog zu Customer-Exits reserviert der Anbieter bei BAdI-Dynpro-Erweiterungen auf dem Dynpro
des Anwendungsprogrammes einen Subscreen-Bereich, der mit einem Subscreen des
Implementierers belegt wird. Die Kommunikation erfolgt hier jedoch nicht mehr direkt zwischen
Anwendungsprogramm und Trgerprogramm des Subscreens. Sie erfolgt ber die generierte BAdI-
Klasse.
Auf den folgenden Graphiken wird diese Kommunikation Schritt fr Schritt abgebildet.

SAP AG BC425 7-35


BAdI Screen-Erweiterungen: Komponenten

BAdI INTERFACE IF_EX_<badi>.


Eigensch.
DATA: gl_
gl_dat...
dat...

Mehrfach verwendbar METHODS put_


put_data
IMPORTING
Filterabhngig <data
<data>.
>.

METHODS get_
get_data
FCodes EXPORTING
<data
<data>.
>.
Programm Funktionscode
<prog> +ABC METHODS ...
ENDINTERFACE.

Subscreens

Rufendes Programm Dyn-Nr Subscr-Bereich Besc


<prog> 0200 ABCD Bla..

SAP AG 2002

Enthlt ein BAdI eine oder mehrere Screen-Erweiterungen, kann es nicht als mehrfach verwendbar
gekennzeichnet sein. Enthlt es zustzlich noch Men-Erweiterungen, ist auch die Filterabhngigkeit
ausgeschlossen.
Auf der Karteikarte "Subscreens" ist das rufende Programm, die Dynpro-Nummer sowie der
Subscreen-Bereich angegeben. Der Name des implementierenden Programms und die Nummer des
Subscreen-Dynpros wird hingegen erst vom Implementierer angegeben.

SAP AG BC425 7-36


BAdI Screen-Erweiterung: Aufrufe im Anw.prog. I

z PBO:
z Instanz erzeugen
z Instanz bekannt machen, damit
Implementierer darauf zugreifen kann
z Programmname und Dynpronummer der
Implementierung beschaffen
z Daten zur Verfgung stellen
z Subscreen aufrufen

SAP AG 2002

Um eine Dynpro-Erweiterung ber ein Business Add-In anbieten zu knnen, mssen im


Anwendungsprogramm folgende Schritte implementiert werden:
y Instanz der BAdI-Klasse erzeugen.
y Eine Referenz auf diese Instanz in der BAdI-Klasse ablegen.
y Daten, die der Erweiterung zur Verfgung gestellt werden sollen, der BAdI-Klasse bergeben
y Programmname und Dynpronummer des Erweiterungs-Dynpros beschaffen.
y Schlielich wird das Subscreen-Dynpro aufgerufen

SAP AG BC425 7-37


BAdI Screen-Erweiterung: Aufrufe im Anw.prog. II

z PAI:
z Subscreen aufrufen
z Daten zurcknehmen

SAP AG 2002

Bei PAI des Hauptdynpros mssen je nach Design der Erweiterung vom Implementierer genderte
Daten in das Anwendungsprogramm zurckgenommen werden. Dazu dient ein weiterer
Methodenaufruf.

SAP AG BC425 7-38


Screen-Erweiterung I: Instanz erzeugen

SAP Anwendungs-Programm CL_EXITHANDLER


Dynpro ABAP
DATA: exit
TYPE REF TO
<badi-interface>.

MODULE... CALL METHOD


MODULE... cl_exithandler
cl_exithandler
MODULE... =>get
=>get_
_instance
CHANGING
MODULE... Badi-Klasse
instance = exit.
exit.
<badi-class>
CALL
SUBSCREEN...

abcd

SAP AG 2002

Im ersten Schritt wird analog zu den funktionalen Erweiterungen eine Instanz der BAdI-Klasse
erzeugt. Das geschieht durch den Aufruf der Factory-Methode "get_instance" der Klasse
CL_EXITHANDLER.
Die mit dem Interface typisierte Referenzvariable zeigt auf die Instanz der BAdI-Klasse.

SAP AG BC425 7-39


Screen-Erweiterung II: Instanz bekanntmachen

SAP Anwendungs-Programm CL_EXITHANDLER


Dynpro ABAP
DATA: exit
TYPE REF TO
<badi-interface>.

MODULE...
MODULE... CALL METHOD
MODULE... cl_exithandler
cl_exithandler
MODULE... =>set
=>set_
_instance_
instance_for Badi-Klasse
_subscreens
EXPORTING
<badi-class>
CALL
instance = exit.
exit.
SUBSCREEN...

abcd

SAP AG 2002

Die Implementierung wird spter ebenfalls auf die Instanz der BAdI-Klasse zugreifen mssen.
Darum ist es notwendig, diese Instanz zu "publizieren". Dies geschieht durch die bergabe der
Referenzvariable an ein Attribut der generierten BAdI-Klasse, die diese Interfacereferenz wiederum
an die BAdI-Klasse weitergibt.
Die bergabe erfolgt durch den Aufruf von
CALL METHOD cl_exithandler=>set_instance_for_subscreens

SAP AG BC425 7-40


Screen-Erweiterung IV: Daten bereitstellen

SAP Anwendungs-Programm CL_EXITHANDLER


Dynpro ABAP
DATA: exit
TYPE REF TO
<badi-interface>.

MODULE...
MODULE...
MODULE... CALL METHOD
exit->
exit->put
put_
_data
MODULE... Badi-Klasse
EXPORTING
<daten
<daten>
> <badi-class>
CALL
SUBSCREEN...

daten

abcd

SAP AG 2002

Um der Implementierung Daten zur Verfgung zu stellen, mssen diese in zwei Schritten bergeben
werden:
Daten bergeben an BAdI-Klasse. In der Implementierung dieser Methode werden die bergebenen
Daten in globalen Attributen gespeichert. Es ist dringend anzuraten, hierzu Beispiel-Coding zur
Verfgung zu stellen. Die bergabe erfolgt ber den Aufruf der im BAdI definierten Methode.
Die so in der BAdI-Klasse in globalen Attributen abgelegten Daten werden automatisch in globale
Attribute der implementierenden Klasse weitergereicht, falls eine aktive Implementierung existiert.

SAP AG BC425 7-41


Screen-Erweiterung III: Prog.name und
Dynpronummer beschaffen
SAP Anwendungs-Programm CL_EXITHANDLER
Dynpro ABAP
DATA: exit
TYPE REF TO
<badi-interface>.

MODULE...
MODULE...
MODULE... CALL METHOD
cl_exithandler
cl_exithandler
MODULE... Badi-Klasse
=>get
=>get__prog_and_
prog_and_dynp
dynp
_for_
for_subscr <badi-class>
CALL
EXPORTING
SUBSCREEN... ...
IMPORTING
called_
called_program =..
called_
called_dynpro =..

abcd

SAP AG 2002

Vor der Anweisung CALL SUBSCREEN in der Ablauflogik des Trgerdynpros mssen die
Variablen fr Programmname und Dynpro-Nummer mit den Daten erweiternden Subscreen-Dynpros
versorgt werden.
Der Methodenaufruf
CALL METHOD cl_exithandler=>get_prog_and_dynp_for_subscr
ermittelt dazu das aufzurufende Subscreendynpro.
Falls noch keine aktive Implementierung existiert, wird ein leeres Dummy-Subscreen-Dynpro (0200)
aus einer existierenden Dummy-Funktionsgruppe (SAPLSEXM) ermittelt. Dieses Dynpro wird dann
mit der Anweisung
CALL SUBSCREEN <prog> <dynnr>.
aufgerufen.
Ist jedoch eine aktive Implementierung zu der verwendeten BAdI-Definition vorhanden, wird das bei
der Implementierung angegebene Subscreen-Dynpro aus dem angegebenen Programm verwendet.

SAP AG BC425 7-42


Screen-Erweiterung V: Subscreen rufen

SAP Anwendungs-Programm CL_EXITHANDLER Implementierendes


Programm
Dynpro ABAP
Dynpro
DATA: exit
TYPE REF TO
<badi-interface>.

MODULE...
MODULE...
MODULE...
MODULE... Badi-Klasse
<badi-class>
CALL SUBSCREEN abcd
INCLUDING prog
dynnr.
dynnr.
daten

abcd

SAP AG 2002

Schlielich erfolgt im Anwendungsprogramm der Aufruf des Subscreen-Dynpros. Falls keine aktive
Implementierung existiert, ermittelt die BAdI-Umgebung automatisch ein leeres Default-Subscreen-
Dynpro, das angezeigt wird.

SAP AG BC425 7-43


Screen-Erweiterung VI: Subscreen-Daten
zurcknehmen
SAP Anwendungs-Programm CL_EXITHANDLER Implementierendes
Programm
Dynpro ABAP
Dynpro
DATA: exit
TYPE REF TO
<badi-interface>.

abcd
CALL SUBSCREEN abcd
INCLUDING prog Badi-Klasse
dynnr.
dynnr.
<badi-class>

daten

MODULE... CALL METHOD


exit->
exit->get
get_
_data
IMPORTING
<daten
<daten>
>

SAP AG 2002

Sollen nach Verlassen des Dynpros Daten von der Implementierung zurckgenommen werden, muss
eine weitere Methode aufgerufen werden.

SAP AG BC425 7-44


BAdI Screen Erweiterung implementieren:
Lernziele

Nach Behandlung dieses Themas knnen Sie

z Ein BAdI-Screen-Erweiterung implementieren

SAP AG 2002

SAP AG BC425 7-45


BAdI-S-E implementieren: Schritte

z Programm anlegen (Funktionsgruppe)


z Subscreen-Dynpro anlegen
z PBO:
z Instanz der Adapterklasse beschaffen
z Daten aus Adapterklasse beschaffen
z PAI:
z Genderte Daten in Adapterklasse zurckschreiben

SAP AG 2002

Um eine BAdI-Dynpro-Erweiterung zu implementieren, mssen folgende Schritte durchlaufen


werden:
y Anlegen der Implementierung zur BAdI-Definition. Hier wird das Programm angegeben, welches
das Subscreen-Dynpro enthlt sowie die Nummer des Subscreen-Dynpros.
y Anlegen des in der BAdI-Implementierung angegebenen Programms
y Anlegen und Gestalten des Subscreen-Dynpros
y Das implementierende Programm muss sich die Instanz der BAdI-Klasse beschaffen
y Von der Anwendung an die BAdI-Klasse bergebene Daten knnen danach beschafft werden.
Falls vorgesehen ist, dass Daten zurckgegeben werden, muss bei PAI des Subscreen-Dynpros eine
Methode aufgerufen werden, die die genderten Daten an die BAdI-Klasse zurckgibt.

SAP AG BC425 7-46


BAdI-S-E implemetieren: Instanz beschaffen

SAP AnwProg CL_EXITHANDLER Implementierendes Programm


Dynpro ABAP Dynpro
DATA: exit1
TYPE REF TO
<badi-interface>.

PBO.

CALL METHOD MODULE...


Badi-Klasse cl_exithandler
cl_exithandler
<badi-class> =>get
=>get_
_instance_
instance_for
_subscreens
IMPORTING
daten instance = exit1.

abcd

SAP AG 2002

Zur Beschaffung der Referenz auf die Instanz der BAdI-Klasse stellt die Klasse
CL_EXITHANDLER die Methode GET_INSTANCE_FOR_SUBSCREENS zur Verfgung.
Die bergabe erfolgt durch den Aufruf von
CALL METHOD cl_exithandler=>get_instance_for_subscreens
Damit kann im implementierenden Programm auf die Interface-Methoden und Attribute der BAdI-
Klasse zugegriffen werden.

SAP AG BC425 7-47


BAdI-S-E implemetieren: Daten beschaffen

SAP AnwProg CL_EXITHANDLER Implementierendes Programm


Dynpro ABAP Dynpro
DATA: exit1
TYPE REF TO
<badi-interface>.

PBO.

MODULE...
Badi-Klasse CALL METHOD MODULE...
<badi-class> exit1->get
exit1->get_
_data
IMPORTING
<daten
<daten>.
>.
daten

abcd

SAP AG 2002

Das Implementierende Programm beschafft sich die Daten von der BAdI-Klasse durch Aufruf der
entsprechenden Interface-Methode. In der Methode mssen die in globalen Attributen in der BAdI-
Klasse gespeicherten Daten an die Schnittstelle bergeben werden.

SAP AG BC425 7-48


BAdI-S-E implemetieren: Daten zurckschreiben

SAP AnwProg CL_EXITHANDLER Implementierendes Programm


Dynpro ABAP Dynpro
DATA: exit1
TYPE REF TO
<badi-interface>.

PBO.

Badi-Klasse
<badi-class>

daten PAI.

CALL METHOD MODULE...


exit1->put
exit1->put_
_data
abcd EXPORTING
<daten
<daten>.
>.

SAP AG 2002

Ist die nderung von Daten vorgesehen, werden die genderten Daten anlog zur Beschaffung wieder
in die globalen Attribute der Instanz der BAdI-Klasse zurckgeschrieben. Dies erfolgt durch Aufruf
der entsprechenden BAdI-Methode.

SAP AG BC425 7-49


BAdIs: Weitere Anmerkungen: Lernziele

Nach Behandlung dieses Themas knnen Sie:

z Erklren, was erweiterbare Filtertypen sind


z Default- und Beispiel-Coding erlutern

SAP AG 2002

SAP AG BC425 7-50


Erweiterbare Filtertypen: Voraussetzungen

Filtertyp
<DE>
<DE>

Domne
Domne

Wertetabelle
Wertetabelle Texttabelle
Texttabelle
Feldname Key Typ Feldname Key Typ
... <DE> ... <DE>
... ... language SPRAS
... ...

mandanten
unabhngig

Auslieferungsklasse:
"E" oder "S"

SAP AG 1999

Die Zuordnung des Attributs erweiterbar unterliegt folgenden Einschrnkungen:

Die Domne, auf die sich der erweiterbare Filtertyp bezieht, mu folgende Eigenschaften haben:

Sie ist mit einer mandantenunabhngigen Wertetabelle verbunden. Diese Wertetabelle hat
genau ein Schlsselfeld, das das Datenelement des Filtertypen als Feldtypen hat.

Sie hat eine Texttabelle mit zwei Schlsselfeldern. Ein Schlsselfeld hat den Filtertyp als
Feldtypen und ein Schlsselfeld ist ein Sprachenfeld. Zur Kenntlichmachung als Textfeld mu
es in dieser Tabelle ein Feld geben, das die Zeichenfolge '
TEXT'oder ' TXT'als Teilstring
enthlt. Im Dictionary mu die Texttabelle der Wertetabelle zugeordnet sein.

Die Auslieferungsklasse beider Tabellen mu "E" oder "S" sein.

Alle Filterwerte, die im Rahmen eines erweiterbaren filterabhngigen Business Add-Ins angelegt
werden, drfen in der Wertetabelle noch nicht vorkommen und werden beim Sichern in die
Wertetabelle aufgenommen. Entsprechend werden Sie beim Lschen der Implementierung oder des
gesamten Business Add-Ins aus der Wertetabelle entfernt. Gleiches gilt fr die Texttabelle.

SAP AG BC425 7-51


Defaultimplementierung
z Wird durchlaufen, falls keine
Programm-Erweiterung aktive Implementierung
aufrufen vorhanden
z Vom Anbieter angelegt
Aktive Nein
Implementierung
vorhanden?

Ja Default Nein
Implementierung
Implementierung vorhanden?
ausfhren
Ja

Default-
Implementierung
ausfhren

SAP AG 1999

Eine Default-Implementierung wird immer dann durchlaufen, wenn zu einem Business Add In keine
aktive Implementierung existiert. Die Default-Implementierung wird vom Anbieter der Erweiterung
angelegt.
Sie legen eine Default-Implementierung in der BAdI-Definition an unter Springen --> Default-
Coding. Das System erzeugt automatisch eine Klasse mit einem vorgegebenen Namen.
Implementieren Sie die Methoden so, dass das gewnschte Default-Verhalten erzeugt wird.
Darber hinaus besteht die Mglichkeit, eine Beispielimplementierung anzulegen. Hierbei handelt es
sich um Kopiervorlagen, die in die Methoden der Implementierungen eingebunden werden knnen.
Beispielimplementierungen knnen Sie unter dem Men Springen --> Beispiel-Coding anlegen. Das
System legt dabei eine Klasse an, die die Methoden des Interfaces implementiert. Dem
Implementierer wird das Beispiel-Coding als Kopiervorlage angeboten.

SAP AG BC425 7-52


Vergleich mit anderen Erweiterungstechniken

z Erweiterungsmglichkeiten:
Business Business
Customer-Exits Transaction Add
Events Ins

Quelltext

Mens

Dynpros

Tabellen

Verwaltungs
ebene
mehrfach
verwendbar

filterabhngig

SAP AG 2002

Business Add Ins sind die natrliche Erweiterung der bisher verfgbaren Erweiterungstechniken.
Von Customer-Exits wurden die Verwaltungsschicht bernommen ebenso wie die Verfgbarkeit der
unterschiedlichen Erweiterungskomponenten.
Von Business Transaction Events wurde die Idee der Mehrfachverwendbarkeit aufgegriffen und mit
einem konsequent objektorientierten Ansatz verwirklicht.
Die objektorientierte Implementierung der neuen Technik bietet bisher undenkbare Anstze. So kann
man sich vorstellen, eine Erweiterung des Objekts "Beleg" anzubieten. Fr jeden einzelnen Beleg
knnte man auf diese Weise eine neue Instanz der Erweiterung anbieten.

SAP AG BC425 7-53


BAdI-Definition: Namenskonventionen

z BAdI-Definition
<badi> oder Z<badi> oder /../<badi>


(frei whlbar; Namensrume beachten)


z Interface
IF_EX_<badi> oder ZIF_EX_<badi> oder /../IF_EX_<badi>


(frei whlbar; Namensrume beachten)


z Methoden
Namen beliebig


z Generierte BAdI-Klasse (Adapter-Klasse)


CL_EX_<badi> oder ZCL_EX_<badi> oder /../CL_EX_<badi>


(nicht nderbar)

SAP AG 1999

SAP AG BC425 7-54


BAdI-Implementierung: Namenskonventionen

z BAdI-Implementierung
<impl> oder Z<impl> oder /../<impl>


(frei whlbar; Namensrume beachten)


z Interface
IF_EX_<badi> oder ZIF_EX_<badi> oder /../IF_EX_<badi>


(von BadI-Definition vorgegeben)


z Methoden
von BAdI-Definition vorgegeben


z Implementierende Klasse
CL_IM_<impl> oder ZCL_IM_<impl> oder /../CL_IM_<impl>


(frei whlbar; Namensrume beachten)

SAP AG 1999

SAP AG BC425 7-55


Business Add Ins finden

z direkt aus Anwendung: z Suche ber Tools


System o Status
oDoppelklick auf Programmnamen

Suchen nach Zeichenkette... Anwendungs


hierarchie
CL_EXITHANDLER

 global in Programm prog


prog

o Doppelklick auf Referenzvariable Repository


Infosystem
Doppelklick auf Interface o Class Builder

o Verwendungsnachweis Interface
IMG
o CL_EX_<BAdI-Name>

o SE18: <BAdI-Name>
o Dokumentation
o Dokumentation

SAP AG 2002

Das Suchen von Business Add Ins kann mit verschiedenen Strategien geschehen:
Sie knnen im interessierenden Anwendungsprogramm nach der Zeichenkette
"CL_EXITHANDLER" suchen. Falls ein Business Add In aufgerufen wird, muss die Methode
"GET_INSTANCE" dieser Klasse aufgerufen werden.
Konsequente Vorwrtsnavigation unter Bercksichtigung der Namenskonventionen fhrt sie zur
Definition des Business Add Ins. Dort finden sie die Dokumentation und auch einen Leitfaden zum
Implementieren des Business Add Ins.
Verwenden sie die Anwendungshierarchie, um die Anwendungskomponenten einzuschrnken.
Verzweigen sie in das Repository Infosystem, wo sie unter "Erweiterungen --> Business Add Ins"
das entsprechende Suchprogramm finden.
Alternativ stehen ihnen gegebenenfalls Eintrge im Einfhrungsleitfaden in der entsprechenden
Komponente zur Verfgung.

SAP AG BC425 7-56


Business Add-Ins: Zusammenfassung des Kapitels

Sie knnen nun:


z Programme funktional mit Business Add-Ins
erweitern
z Business Add-Ins anlegen, um sie in der
Software-Entwicklungskette nachfolgenden R/3-
Verwendern zur Verfgung zu stellen
z Dynpro-Erweiterungen mit Business Add-Ins
realisieren

SAP AG 2002

SAP AG BC425 7-57


bungen

Kapitel: Business Add Ins


Thema: Business Add Ins verwenden

Am Ende dieser bungen knnen Sie:


eine Erweiterung mit Hilfe von Business Add Ins
implementieren

Die Kundenbetreuer des Reisebros wollen, da die Liste der


Buchungen, deren Aufruf Sie in der bung zu Men-Exits
implementiert haben, mehr Informationen beinhaltet. Sie wollen
neben den Kundennummern auch die Namen der entsprechenden
Kunden auf der Liste sehen.

1-1 berprfen Sie, ob das Programm SAPBC425_BOOKING_##


(## = Gruppennummer) Erweiterungsmglichkeiten bietet.
1-1-1 Untersuchen Sie das Programm nach Erweiterungsmglichkeiten.
1-1-2 berprfen Sie, ob eine angebotene Erweiterungsmglichkeit geeignet ist,
auf der Liste zustzliche Informationen auszugeben.

1-2 Implementieren Sie die gefundene Erweiterung. Name der Implementierung:


ZBC425IM##.
1-2-1 Welche Daten werden an den Schnittstellen der Methoden bergeben? Sind
hier schon Felder vorhanden, die auf der Liste angezeigt werden sollen?
1-2-2 Die Informationen zu Kunden befinden sich in der Tabelle SCUSTOM.
Beschaffen Sie den Namen des jeweiligen Kunden ber die entsprechende
Kundennummer. Geben Sie den Namen aus.

1-3 Formatieren Sie die Liste.


1-3-1 Wie knnen Sie die vertikale Linie versetzen, so da die zustzlichen Felder
innerhalb des Rahmens angezeigt werden?
1-3-2 Ist die Methode CHANGE_VLINE zum ndern der Position der vertikalen
Linie geeignet? Falls ja, nutzen Sie sie entsprechend.

1-4 berprfen Sie das Ergebnis Ihrer Arbeit.

SAP AG BC425 7-58


bungen

Kapitel: Business Add Ins


Thema: Business Add In anlegen

Am Ende dieser bungen knnen Sie:


Ein Business Add In anlegen und in einem Programm mit
Hilfe der BAdI-Technik eine Erweiterung anbieten

Sie entwickeln selbst Zusatzkomponenten zu dem R/3-System. In


diesem Zusammenhang wollen Sie in einem Programm eine
Erweiterung anbieten, die nachgelagerte Softwareschichten
implementieren knnen.
Sie liefern ein Programm aus, welches eine Liste von
Flugverbindungen ausgibt. Mit Hilfe eines Business Add Ins
wollen Sie Ihren Kunden folgende Erweiterungsmglichkeit
bieten: Bei einem Doppelklick auf eine Zeile sollen weitere
Aktionen implementiert werden knnen. Ihre Kunden sollen die
Mglichkeit haben, eine Verzweigungsliste aufzubauen.
Im zweiten Teil der bung testen Sie Ihre Erweiterung: Auf
dieser Verzweigungsliste sollen zu einer Flugverbindung alle
Flge ausgegeben werden.

1-1 Erzeugen Sie ein Programm, das eine Liste von Fluggesellschaften ausgibt.
1-1-1 Kopieren Sie dazu das Programm SAPBC425_TEMPLATE auf den Namen
ZBC425_BADI_##.
1-1-2 Ordnen Sie Ihr Programm Ihrer Entwicklungsklasse und einem
nderungsauftrag zu.

1-2 Legen Sie ein Business Add In an.


1-2-1 Der Name des BAdI sei ZBC425##.
1-2-2 Legen Sie eine Methode an. Definieren Sie die Schnittstelle.
1-2-3 Welche Parameter mssen Sie an der Schnittstelle bergeben?

1-3 Bereiten Sie das Programm soweit vor, da ein Verwender bei Doppelklick auf eine
Zeile die Mglichkeit erhlt, eine Verzweigungsliste auszugeben.
1-3-1 Implementieren Sie das Ereignis AT LINE-SELECTION.
1-3-2 Fgen Sie in das Programm die Anweisungen ein, die zum Aufruf eines
Business Add Ins notwendig sind: Deklarieren Sie eine Referenzvariable;
Instanziieren Sie ein Objekt der BAdI-Klasse; Implementieren Sie den
Aufruf der BAdI-Methode an der geeigneten Stelle im Programm.

SAP AG BC425 7-59


1-4 Implementieren Sie die Erweiterung (Name der Implementierung: ZB425##IM).
1-4-1 Bei Doppelklick auf eine Zeile der Liste des Anwendungsprogramms soll
eine Verzweigungsliste ausgegeben werden. Auf der Verzweigungsliste
sollen die Flugtermine zu der selektierten Flugverbindung ausgegeben
werden. Die Flugtermine sind in der Tabelle SFLIGHT## enthalten.
1-4-2 Lesen Sie die relevanten Daten aus der Tabelle SFLIGHT## per Array-
Fetch in eine interne Tabelle. Geben Sie anschlieend ausgewhlte Felder
der internen Tabelle aus.
1-4-3 Welche Variablen (Attribute der implementierenden Klasse) mssen Sie
vereinbaren? Wie vereinbaren Sie eine Interne Tabelle? Wo knnen Sie
einen Tabellentypen vereinbaren?

1-5 berprfen Sie das Ergebnis Ihrer Arbeit.

SAP AG BC425 7-60


bungen

Kapitel: Business Add In


Thema: Screen-Erweiterung implementieren

Am Ende dieser bungen knnen Sie:


Dynpro-Erweiterungen mit Hilfe von Business Add-Ins
implementieren.

Zum Erfassen und ndern von Flugdaten verwenden Sie eine


eigene Transaktion. Diese Transaktion bietet nur die Standard-
Eingabefelder. Ihr Unternehmen will weitere Daten zu einem
Flug erfassen. Dazu bietet diese Transaktion eine
Erweiterungsmglichkeit, die Sie implementieren.

1-1 Untersuchen Sie, ob das Programm SAPBC425_FLIGHT_CHNG## eine


Erweiterungsmglichkeit anbietet, mit deren Hilfe Sie die Erfassungsmaske
erweitern knnen.

1-2 Suchen Sie nach Business Add Ins, mit deren Hilfe Sie die oben genannten
Anforderungen implementieren knnen.
1-2-1 Suchen Sie in der Anwendungshierarchie
1-2-2 Suchen Sie im Repository Infosysten
1-2-3 Suchen Sie im Einfhrungsleitfaden
1-2-4 Falls Sie ein BAdI finden: Lesen Sie die Dokumentation und beurteilen Sie,
ob das BAdI fr Ihre Erweiterung brauchbar ist.

1-3 Implementieren Sie die Erweiterung.


1-3-1 Legen Sie eine Funktionsgruppe ZBC425IM## an. Sie bentigen diese
Funktionsgruppe zum Anlegen eines Subscreen-Dynpros.
1-3-2 Legen Sie ein Subscreen-Dynpro beliebiger Nummer an.
1-3-3 Platzieren Sie die gewnschten Felder auf dem Dynpro.
1-3-4 Programmieren Sie die Ablauflogik des Subscreen-Dynpros. Zum Zeitpunkt
PBO mssen Sie sich die Instanz der BAdI-Klasse beschaffen sowie die
Daten, die von der SAP-Anwendung bergeben werden.
Zum Zeitpunkt PAI mssen die genderten Daten an die SAP-Anwendung
zurckgegeben werden.

1-4 Legen Sie eine BAdI-Implementierung an. Die Implementierung soll den Namen
ZBC425SIN## haben.
1-4-1 Implementieren Sie die Interface-Methoden.
SAP AG BC425 7-61
1-4-2 Nehmen Sie die notwendigen Einstellungen auf der Karteikarte "Subscrens"
vor.
1-4-3 Aktivieren Sie die Implementierung

1-5 Testen Sie die erweiterte Anwendung.

SAP AG BC425 7-62


Lsungen

Kapitel: Business Add Ins


Thema: Business Add Ins verwenden

1-1 So berprfen Sie, ob das Programm SAPBC425_BOOKING_##


(## = Gruppennummer) Erweiterungsmglichkeiten bietet:
1-1-1 Aus der Listenanzeige: Setzen Sie den Cursor auf die Liste und whlen Sie
F1 Technische Info. Doppelklicken Sie den Programmnamen (Sie
knnen auch direkt in den ABAP Editor einsteigen.). Suchen Sie im
Programm nach der Zeichenkette CL_EXITHANDLER. Doppelklicken Sie
den bergabeparameter exit_book. Doppelklicken Sie das Interface, durch
das exit_book typisiert wird. Sie gelangen in den Class Builder. Fhren Sie
einen Verwendungsnachweis fr das Interface in Klassen durch. Es wird
Ihnen eine Klasse CL_EX_BADI_BOOK## angezeigt. Der Name des
Business Add In ist somit BADI_BOOK##.
1-1-2 Rufen Sie die Transaktion SE18 (BAdI Definition) auf. Lesen sie die
Dokumentation zu dem BAdI.

1-2 Implementieren der Erweiterung: Aus der Transaktion SE18 verzweigen Sie ber
Implementierung Anlegen in die Transaktion zum Anlegen der
Implementierungen von BAdIs. Name der Implementierung: ZBC425IM##.
1-2-1 Die Schnittstellenparameter knnen Sie anzeigen lassen, indem Sie in der
Transaktion SE18 die Methode doppelklicken. Im Class Builder stellen Sie
den Cursor auf die gewnschte Methode und whlen "Parameter". Die
bergabestruktur enthlt die Felder nicht, die Sie auf der Liste anzeigen
wollen. Sie mssen die entsprechenden Daten nachlesen.
1-2-2 Durch Doppelklick auf den Methodennamen gelangen Sie in den Editor. Im
folgenden ein Vorschlag fr die Implementierung der Methoden
(Gruppe 00):
METHOD if_ex_badi_book00~output.
DATA:
name TYPE s_custname.
SELECT SINGLE name
FROM scustom
INTO name
WHERE id = i_booking-customid.
WRITE: name.
ENDMETHOD.

SAP AG BC425 7-63


1-3 Zum Formatieren der Liste steht Ihnen die Methode change_vline zur Verfgung.
Hier knnen Sie die rechte Randlinie der Liste versetzen.
1-3-1 Der Parameter c_pos bestimmt die Position der rechten vertikalen Linie.
1-3-2 Die Methode kann auf folgende Weise implementiert werden:
METHOD if_ex_badi_book00~change_vline.
c_pos = c_pos + 25.
ENDMETHOD.

SAP AG BC425 7-64


Lsungen

Kapitel: Business Add Ins


Thema: Business Add Ins anlegen

1-1 Kopieren sie das Vorlagen-Programm wie in der bung angegeben.

1-2 Zum Anlegen von Business Add Ins starten Sie die Transaktion SE18 (In der
ABAP Workbench: Hilfsmittel Erweiterungen Business Add Ins
Definition).
1-2-1 Als Namen des BAdI whlen Sie ZBC425##. Vergeben Sie einen Kurztext
und sichern Sie Ihre Eingaben.
1-2-2 Whlen Sie die Karteikarte "Interface". Doppelklick auf den Namen des
Interfaces. Sie gelangen in den Class Builder. Tragen sie den Namen einer
Methode ein. Vergeben Sie einen Kurztext. Whlen sie die Drucktaste
"Parameter", um die Schnittstelle zu definieren.
1-2-3 Definieren Sie zwei Importing-Parameter, die mit S_CARR_ID
(Fluggesellschaft) und S_CONN_ID (Verbindungs-Nummer) typisiert sind.
Aktivieren Sie das Interface. Damit wird auch die Adapter-Klasse generiert.

1-3 Quelltext des Programmes mit Business Add In:


*&---------------------------------------------------------*
*& Report SAPBC425_TEMPLATE*
*&---------------------------------------------------------*
REPORT sapbc425_badi.

DATA:
wa_spfli TYPE spfli,
it_spfli TYPE TABLE OF spfli WITH KEY carrid connid.

* Reference Variable for BAdI


DATA:
exit_ref TYPE REF TO zif_ex_bc42500.

* Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK carrier
WITH FRAME TITLE text-car.
SELECT-OPTIONS: so_carr FOR wa_spfli-carrid.
SELECTION-SCREEN END OF BLOCK carrier.
SAP AG BC425 7-65
*&----------------------------------------------------------*
*& Event START-OF-SELECTION
*&----------------------------------------------------------*
START-OF-SELECTION.

CALL METHOD cl_exithandler=>get_instance


CHANGING
instance = exit_ref.

SELECT *
FROM spfli
INTO CORRESPONDING FIELDS OF TABLE it_spfli
WHERE carrid IN so_carr.
*&----------------------------------------------------------*
*& Event END-OF-SELECTION
*&----------------------------------------------------------*
END-OF-SELECTION.

LOOP AT it_spfli INTO wa_spfli.

WRITE: / wa_spfli-carrid,
wa_spfli-connid,
wa_spfli-countryfr,
wa_spfli-cityfrom,
wa_spfli-countryto,
wa_spfli-cityto,
wa_spfli-deptime,
wa_spfli-arrtime.

HIDE: wa_spfli-carrid,
wa_spfli-connid.

ENDLOOP.

CLEAR wa_spfli.

*&----------------------------------------------------------*
*& Event AT LINE-SELECTION.
*&----------------------------------------------------------*
SAP AG BC425 7-66
AT LINE-SELECTION..

CHECK NOT wa_spfli-carrid IS INITIAL.

CALL METHOD exit_ref->lineselection


EXPORTING
i_carrid = wa_spfli-carrid
i_connid = wa_spfli-connid.
clear wa-spfli.

1-4 Implementieren Sie das Business Add In. Aus der Transaktion SE18 whlen Sie
Implementierungen Anlegen. Vergeben Sie den Namen ZBC425##_IM fr die
Implementierung. Whlen Sie die Karteikarte "Interface" und doppelklicken Sie
den Namen der Methode. Sie gelangen in den Editor. Hier erfassen Sie den
Quelltext:
METHOD zif_ex_bc42500~lineselection.

DATA:
it_flights TYPE TABLE OF sflight00,
wa_flights TYPE sflight00.

FORMAT COLOR COL_HEADING.


WRITE: / text-hea, i_carrid, i_connid.
FORMAT COLOR COL_NORMAL.

SELECT *
FROM sflight00
INTO CORRESPONDING FIELDS OF TABLE it_flights
WHERE carrid = i_carrid AND
connid = i_connid.

LOOP AT it_flights INTO wa_flights.


WRITE: / wa_flights-fldate,
wa_flights-planetype,
wa_flights-price CURRENCY wa_flights-currency,
wa_flights-currency,
wa_flights-seatsmax,
wa_flights-seatsocc.
ENDLOOP.
ENDMETHOD.
Aktivieren Sie die Implementierung.

SAP AG BC425 7-67


Lsungen

Kapitel: Business Add Ins


Thema: Screen-Erweiterungen

1-1 So untersuchen Sie, ob das Programm SAPBC425_FLIGHT_CHNG## eine


Erweiterungsmglichkeit anbietet, mit deren Hilfe Sie die Erfassungsmaske
erweitern knnen:
1-1-1 Whlen Sie System o Status, um den Programmnamen herauszufinden.
Doppelklicken Sie den Programmnamen. Whlen Sie Springen o
Objektkatalogeintrag. Hier finden Sie die Information, welchem Paket die
Anwendung zugeordnet ist. Doppelklick auf den Paketnamen liefert Ihnen
die Information, welcher Anwendungskomponente dieses Paket zugeordnet
ist.

1-2 Suchen Sie im Repository Infosystem oder ber die Anwendungshierarchie nach
passenden Business Add Ins, wobei das Paket und die Anwendungskomponente des
Anwendungsprogramms als Selektionskriterium dienen.
1-2-1 Im Repository Infosystem finden Sie BAdIs unter Erweiterungen o
Business Add Ins o Definition.
1-2-2 In der Anwendungshierarchie markieren Sie die Anwendungskomponente.
Hiernach whlen Sie die Drucktaste "Infosystem" um zum Repository
Infosystem zu gelangen. Damit sind alle Pakete der markierten
Anwendungskomponente als Selektionskriterien eingetragen.
1-2-3 Als Suchergebnis erhalten Sie eine Liste von BAdIs. Markieren Sie das zu
untersuchende BAdI BC425_##FLIGHT2 und whlen Sie "Anzeigen". Sie
befinden sich nun im BAdI Builder, wo Sie die Dokumentation des BAdIs
vorfinden. Machen Sie sich mit der Dokumentation vertraut.

1-3 Implementieren Sie die Erweiterung.


1-3-1 Legen Sie die Funktionsgruppe ZBC425IM## im Object Navigator an.
Dazu lassen Sie sich die Objektliste Ihres Paketes anzeigen. Rechte
Maustaste auf den Paketnamen o Anlegen o Funktionsgruppe. Tragen
Sie in das Feld Name ZBC425IM## ein; vergeben Sie einen Kurztext.
Sichern Sie Ihre Eingabe und ordnen Sie einen nderungsauftrag zu.
1-3-2 Legen Sie ein Subscreen-Dynpro beliebiger Nummer in der
Funktionsgruppe an. Rechte Maustaste auf die Funktionsgruppe o
Anlegen o Dynpro. Vergeben Sie einen Kurztext und whlen Sie
Dynprotyp "Subscreen".
1-3-3 Starten Sie den Layout-Editor. Whlen Sie Springen o Sekundrfenster o
Dict/Programmfelder. Geben Sie die Dictionary-Struktur an und whlen Sie

SAP AG BC425 7-68


"Holen aus Dict". Markieren Sie die gewnschten Felder und besttigen Sie
die Eingabe. Platzieren Sie die Felder auf dem Dynpro.
1-3-4 Navigieren Sie zur Ablauflogik des Subscreen-Dynpros. Folgende Module
sollten mindestens in der Ablauflogik aufgerufen werden:


352&(66%()25(287387

02'8/(JHWBLQVWDQFH
02'8/(JHWBGDWD


352&(66$)7(5,1387

02'8/(SXWBGDWD



 
,1&/8'(/=%&B,02
 
 
0RGXOHJHWBLQVWDQFH287387
 
02'8/(JHWBLQVWDQFH287387

&$//0(7+2'FOBH[LWKDQGOHU !JHWBLQVWDQFHBIRUBVXEVFUHHQV
&+$1*,1*
LQVWDQFH UBYDU
(;&(37,216
27+(56 
,)V\VXEUF!
0(66$*(,'V\PVJLG7<3(V\PVJW\180%(5V\PVJQR
:,7+V\PVJYV\PVJYV\PVJYV\PVJY
(1',)

(1'02'8/(JHWBLQVWDQFH287387
 
0RGXOHJHWBGDWD287387
 
02'8/(JHWBGDWD287387

&$//0(7+2'UBYDU!JHWBGDWD
,03257,1*
HBFRQQ VG\QBFRQQ

(1'02'8/(JHWBGDWD287387
 
,1&/8'(/=%&B,0,
 
 
0RGXOHSXWBGDWD,1387
 
WH[W

SAP AG BC425 7-69


 
02'8/(SXWBGDWD,1387

&$//0(7+2'UBYDU!SXWBGDWD
(;3257,1*
LBFRQQ VG\QBFRQQ

(1'02'8/(SXWBGDWD,1387

 
,1&/8'(/=%&B,0723
 
)81&7,21322/NDXUDBLPBEF0(66$*(,'

7$%/(6
VG\QBFRQQ

'$7$
UBYDU7<3(5()72LIBH[BEFBIOLJKW


1-4 Legen Sie eine BAdI-Implementierung an. Aus der Definition whlen Sie
Implementierung o Anlegen. Vergeben Sie den Namen ZBC425SIN## fr die
Implementierung und besttigen Sie Ihre Eingabe.
1-4-1 Whlen Sie die Karteikarte "Interface" und doppelklicken Sie die Methoden,
um in den Editor zu gelangen.

METHOD if_ex_bc425_##flight2~get_data .
MOVE-CORRESPONDING wa TO e_conn.
ENDMETHOD. "IF_EX_BC425_##FLIGHT2~GET_DATA

METHOD if_ex_bc425_##flight2~put_data .
MOVE-CORRESPONDING i_conn TO wa.
ENDMETHOD. " IF_EX_BC425_##FLIGHT2~PUT_DATA

1-4-2 Auf der Karteikarte "Subscreens" tragen Sie den Namen des Programms
Ihrer Funktionsgruppe SAPLZBC425IM## sowie die Nummer des von
Ihnen angelegten Subscreen-Dynpros ein.
1-4-3 Aktivieren Sie die Implementierung ber Implementierung o Aktivieren
oder die entsprechende Drucktaste.

1-5 Fhren Sie die Anwendung aus und berprfen Sie, ob Ihre Erweiterung
durchlaufen wird.

SAP AG BC425 7-70


Modifikationen

Inhalt:
z Was sind Modifikationen
z Durchfhren von Modifikationen
z Modifikationsassistent
z Modification Browser
z User Exits
z SAP Note Assistant
z Modifikationsabgleich

SAP AG 2002

SAP AG BC425 8-1


Modifikationen: Lernziele des Kapitels

Am Ende dieses Kapitels knnen Sie:

z beschreiben, was eine Modifikation ist


z die wichtigsten Regeln beim Modifizieren
aufzhlen
z Modifikationen mit Hilfe des
Modifikationsassistenten durchfhren
z User-Exits zum Implementieren von
Erweiterungen einsetzen
z Hinweise mit dem Note Assistant einpflegen
z Modifikationen abgleichen

SAP AG 2002

SAP AG BC425 8-2


bersichtsdiagramm Modifikationen

R/3 Business Anwendungen


(SAP Standard)

Personali
Modifikation Erweiterung
sierung
z Transaktions z Modifikationsassistent z ABAP Dictionary
varianten Tabellen 4
z User-Exits Datenelemente

z Customer-Exits
Funktionsbaustein-Exits
Men-Exits 5
3 8 Dynpro-Exits

z Business Transaction Events


z Business Add Ins 6

z berblick 2
SAP AG 2002

SAP AG BC425 8-3


Originale und Kopien

Entwicklungssystem Folgesystem

Kundenobjekt Kundenobjekt

Original Kopie
Transport der
Entwicklung

SAP-Objekt SAP-Objekt SAP-Objekt

Original Kopie Kopie

SAP AG 2002

Ein Objekt kann nur in genau einem System original sein. Bei von SAP ausgelieferten Objekten
befindet sich das "Original-System" bei SAP selbst. In Ihrem Kundensystemen liegen diese Objekte
nur als Kopien vor. Dies gilt sowohl fr Ihr Entwicklungssystem als auch fr alle Ihre Folgesysteme.
Fhren Sie Eigenentwicklungen durch, sind Ihre Objekte original im Entwicklungssystem. Eine
Entwicklung ordnen Sie einem nderungsauftrag zu. Die entsprechende Aufgabe hat den Typ
"Entwicklung/Korrektur".
Mit Hilfe dieses Auftrags werden die Objekte vom Entwicklungssystem in die Folgesysteme
transportiert.

SAP AG BC425 8-4


Korrekturen und Reparaturen

Entwicklungssystem Folgesystem

Kundenobjekt Kundenobjekt
korrigiertes
Kopie
Original
Transport
Korrektur der Korrektur

SAP-Objekt SAP-Objekt SAP-Objekt


korrigiertes modifizierte
Kopie
Original Kopie
Transport
Korrektur Reparatur der Reparatur

SAP AG 2002

Eine nderung des Originals wird als Korrektur bezeichnet. Dementsprechend zeichnet das System
diese nderungen in einem Auftrag mit Aufgaben vom Typ "Entwicklung/Korrektur" auf.
Wird hingegen eine Kopie gendert (ein Objekt nicht in seinem Originalsystem gendert), wird diese
nderung in einer Aufgabe vom Typ "Reparatur" aufgezeichnet. Eine Reparatur eines SAP-Objekts
wird als Modifikation bezeichnet.
Bei Reparaturen an Ihren eigenen Objekten (z.B. in Folge eines Notfalls im Produktivsystem) haben
Sie die Mglichkeit, die nderungen sofort auch an den Originalen im Entwicklungssystem
nachzuziehen. Es ist unbedingt erforderlich, da Sie nderungen an Kopien sofort auch am
Original vornehmen!!
Diese Mglichkeit besteht bei SAP-Objekten nicht, da sich die Originale nicht in einem Ihrer
Systeme befinden.
Modifikationen des Standards sollten nur dann vorgenommen werden, wenn sie fr die Optimierung
bestimmter Arbeitsablufe in einem Unternehmen unumgnglich sind. Auch sollten Sie sich darber
im Klaren sein, da ein gutes Hintergrundwissen ber die Aufbau- und Ablaufstruktur einer
Applikation als Grundlage fr die Beurteilung von Modifikationsmglichkeiten und fr sinnvolles
Modifikationsdesign bei nderungen des Standards unabdingbar ist.

SAP AG BC425 8-5


Modifikationen beim Upgrade

Entwicklungssystem Folgesystem

Kundenobjekt Kundenobjekt
korrigiertes
Kopie
Original

SAP-Objekt SAP-Objekt SAP-Objekt


korrigiertes modifizierte
Kopie
Original Kopie
Transport
Modifikations des Abgleichs
abgleich

Upgrade Upgrade

SAP AG 2002

Spielen Sie ein Upgrade, ein Hot Package oder sonst einen Transportauftrag von SAP in Ihr System
ein, kann es zum Konflikt kommen.
Ein Konflikt tritt dann auf, wenn ein SAP-Objekt sowohl von Ihnen gendert, als auch von SAP neu
ausgeliefert wird: Das von SAP neu ausgelieferte Objekt wird aktives Objekt im Repository Ihres
R/3-Systems.
Wollen Sie Ihre nderungen retten, mssen Sie fr die entsprechenden Objekte einen
Modifikationsabgleich durchfhren. Bei vielen modifizierten SAP-Objekten kann es dabei zu
erheblichen Verzgerungen beim Einspielen eines Upgrades kommen.
Um zwischen Entwicklungssystem und Folgesystemen einen konsistenten Stand zu wahren, wird
dringend empfohlen, den Modifikationsabgleich nur im Entwicklungssystem durchzufhren. Die
Objekte des Abgleichs werden dann in die Folgesysteme transportiert.

SAP AG BC425 8-6


Modifikationen durchfhren: Lernziele

Nach Behandlung dieses Themas knnen Sie:

z Beschreiben, was beim Durchfhren von


Modifikationen zu beachten ist.

SAP AG 2002

SAP AG BC425 8-7


Registrierung der Modifikation im SSCR

Repository Browser: Einstieg


System Hilfe
      
Kundensystem Objektliste

       
Objekt registrieren
System Hilfe

Program programname
Bitte geben Sie den Schlssel fr
das Objekt ... ein:

OSS: Registrierung von SAP-Objekten


SAPNet
R/3-Frontend
System Hilfe
      
PgmID/OBJ/Name R3TR PROG programname

Schlssel 07319180563614231463

SAP AG 2002

Die Registrierung erfolgt bei nderung einer SAP-Source und manueller nderung eines SAP-
ABAP-Dictionary-Objekts durch einen registrierten Entwickler. Ausgenommen von der
Registrierung sind Matchcodes, Datenbankindizes, Puffereinstellungen, Kundenobjekte,
Vorabkorrekturen und Objekte, die aufgrund automatischer Generierungen (z.B. aus dem
Customizing) gendert werden. Wird das Objekt zu einem spteren Zeitpunkt nochmals gendert, so
wird der Schlssel nicht mehr abgefragt. Ist eine Registrierung eines Objektes einmal erfolgt, so
bleibt der zugehrige Schlssel lokal gespeichert und wird bei spteren nderungen automatisch
abgerufen, gleichgltig welcher der registrierten Entwickler die nderung durchfhrt. Diese
Schlssel bleiben bis auf weiteres auch ber Release-Wechsel hinweg gltig.
Welchen Nutzen haben Sie vom SSCR (SAP Software Change Registration)?
Schnelle Fehlerbehebung und damit hohe Verfgbarkeit bei modifizierten Systemen
Smtliche vernderte Objekte werden von SAP protokolliert. Auf Basis dieser Information knnen
Mitarbeiter des SAP First Level Customer Service sehr schnell potentielle Fehlerursachen
lokalisieren und beseitigen. Dadurch wird die Verfgbarkeit Ihres R/3 Systems weiter erhht.
Zuverlssiger Betrieb
Mit der Notwendigkeit einer Registrierung verringert sich die Wahrscheinlichkeit von
unbeabsichtigten Modifikationen. Dies ermglicht einen zuverlssigen Betrieb Ihrer R/3
Standardsoftware.
Vereinfachung der Upgrades
Upgrades und Releasewechsel werden durch die geringere Anzahl an Modifikationen in hohem
Mae erleichtert.

SAP AG BC425 8-8


Aufnahme einer registrierten Modifikation

ABAP Editor
z Zu durchlaufende Schritte:
Programm z SSCR-Schlssel
z Nummer des
SSCR Schlssel
nderungsauftrags

Warnung
Sie reparieren ein
SAP Objekt
Aufgabe
Reparaturkennzeichen
nderungssperre
nderungsauftrag
Importsperre
Auftrag
Versionierung
SAP AG 2002

Wollen sie ein Repository-Objekt der SAP ndern, fordert der Workbench Organizer folgende
Angaben von Ihnen:
y SSCR-Schlssel
y nderungsauftrag
Wie sie den SSCR-Schlssel erhalten, haben wir oben gesehen. Fahren sie mit der Absicht fort, das
Objekt zu ndern, mssen einige nun folgende Warn-Dialoge besttigt werden. Sie haben hier noch
die Gelegenheit, die Aktion abzubrechen.
Der Workbench Organizer fordert nun, wie bei kundeneigenen Objekten, einen nderungsauftrag an.
Das Objekt wird automatisch einer Aufgabe vom Typ Reparatur zugeordnet. Der nderungsauftrag
dient folgenden Zwecken:
y nderungssperre
Nach Zuordnung zur Aufgabe kann nur noch der Inhaber der Aufgabe das Objekt ndern
y Importsperre
Das Objekt kann durch einen Import (Upgrade, Support Package) nicht berschrieben werden
y Versionierung
Es wird eine Version des Objektes erstellt (siehe unten)

SAP AG BC425 8-9


Aktionen bei Modifikationsende

Dokumentation

nderungssperre
geht an Auftrag ber
Aufgabe freigeben
Importsperre
geht an Auftrag ber

nderungssperre
aufgehoben

Importsperre
Auftrag freigeben
aufgehoben

Versionierung

Transportverzeichnis
SAP AG 2002

Ist die Entwicklung abgeschlossen, gibt der Entwickler die Aufgabe frei. Der Entwickler wird
aufgefordert, seine nderungen zu dokumentieren. Die Objekte und die nderungssperren gehen
von der Aufgabe an den nderungsauftrag ber. Besttigt der Entwickler die Reparatur, geht auch
die Importsperre an den Auftrag ber. Besttigt der Entwickler die Reparatur nicht bei Freigabe der
Aufgabe, bleibt die Importsperre auf die Objekte bestehen. Nur der Entwickler selbst kann
nachtrglich diese Sperre entfernen!
Ist das Projekt abgeschlossen, wird der nderungsauftrag freigegeben. Die Sperren auf die Objekte
des nderungsauftrags werden entfernt. Dies gilt fr die nderungssperren und auch fr die
Importsperren.
Bei Freigabe des nderungsauftrags werden die Objekte aus der R/3 Datenbank kopiert und in
einem Verzeichnis auf Betriebssystemebene abgelegt. Von dort werden sie vom Administrator in die
Folgesysteme importiert.
Nach dem Import in das Qualittssicherungssystem mu der Entwickler seine Modifikationen testen
und die Importprotokolle des Auftrags kontrollieren.

SAP AG BC425 8-10


Versionen

SAP-Objekt
Erstes Sichern
Kopie Vollversion

Rckwrtsdelta

Auftragsfreigabe
SAP-Objekt
modifizierte
Kopie

Reparatur

SAP AG 2002

Bei der Freigabe des nderungsauftrags wird fr alle Objekte des nderungsauftrags eine
Vollversion auf die Versionsdatenbank geschrieben.
Wird in der Folge ein Repository-Objekt nochmals bearbeitet, so wird mit der Freigabe des
nderungsauftrags der aktuelle Stand zur Vollkopie und die Differenz zwischen neuem und altem
Stand als Rckwrtsdelta auf der Versionsdatenbank abgelegt.
Bei Aufnahme eines Repository Objektes in eine Aufgabe wird berprft, ob die aktuelle Version
gleich der Vollkopie in der Versionsdatenbank ist. Wenn nicht wird eine Vollkopie des Objekts
hergestellt. Dieser Mechanismus findet bei der ersten nderung an einem SAP-Objekt Anwendung,
da SAP keine Versionen ihrer Repository Objekte ausliefert.
Die Versionen eines Repository Objektes in der Versionsverwaltung sind Grundlage des
Modifikationsabgleiches. Zur Abgleichsuntersttzung speichert die Versionsverwaltung, ob eine
Version durch SAP oder durch Kunden erzeugt wurde.

SAP AG BC425 8-11


Kritische Erfolgsfaktoren Modifikation (1)

REPORT sapabap.
z Kapseln statt streuen IF sy-tabix = 1.
*#SD_001...#Insertion
CALL FUNCTION Z_FM
CHANGING
REPORT sapabap. counter = count
IF sy-tabix = 1. TABLES
*#SD_001...#Insertion itab = tab.
count = count + 1. ENDIF.
LOOP AT tab
WHERE f1 < 10. FUNCTION z_fm.
.... counter = counter + 1.
ENDLOOP. LOOP AT itab
ENDIF. WHERE f1 < 10.
....
ENDLOOP.
Streuen ENDFUNCTION.

Kapseln

SAP AG 2002

Kapseln Sie kundeneigenen Quelltext in Modularisierungseinheiten, statt lngere Passagen in SAP


Quelltext einzustreuen (z.B. Aufruf von Kunden-Funktionsbausteinen in Programm-Quelltext,
Aufruf von Kunden-Subscreens fr zustzliche Felder auf Dynpros).

SAP AG BC425 8-12


Kritische Erfolgsfaktoren Modifikation (2)

z Schmale Schnittstellen beim Kapseln


z Standardisierte Inline-Dokumentation (von
Modifikationsassistent untersttzt)
z Fhren eines Modifikations-Logbuchs (mit
Modification Log als Grundlage)
z Alle Reparaturen besttigen (vor Release 4.5A) und
Auftrge freigeben, die Reparaturen enthalten

SAP AG 2002

Achten Sie auf schmale Schnittstellen beim Kapseln der kundeneigenen Teile eines Programms.
Definieren Sie einen unternehmensweiten Standard, der die Gestaltung der Dokumentation im
Quelltext regelt (vgl. folgende Folien).
Fhren Sie eine Liste aller Modifikationen (Modifikationslogbuch, vgl. folgende Folien).
Alle Auftrge, die Reparaturen enthalten, mssen vor dem Einspielen eines Upgrades oder eines
Support Packages freigegeben werden, damit die relevanten Kundenversionen auf die
Versionsdatenbank geschrieben werden (beim Abgleich werden Versionen verglichen!) .
Vor Einfhrung des Modifikationsassistenten: mussten alle Reparaturen vor dem Upgrade besttigt
werden (solange eine Reparatur nicht besttigt war, unterlagen die relevanten Objekte einer
Importsperre!)

SAP AG BC425 8-13


Kritische Erfolgsfaktoren Modifikation (3)

z Modifizieren Sie keine Dictionary-Objekte der


zentralen Basis (Ausnahme: OSS-Hinweis oder
Aufforderung durch SAP-Hotline)
z Legen Sie keine Funktionsbausteine in SAP-
Funktionsgruppen an ( Release < 4.5A)
z Lschen Sie keinen Quelltext - kommentieren Sie ihn
aus

SAP AG 2002

Modifikationen an Dictionary-Objekten der Basis des R/3-Systems (ABAP Workbench, etc) gehen
beim Austausch-Upgrade verloren, ohne da whrend des Upgrades eine Abgleichmglichkeit
besteht. Hierdurch knnen Tabelleninhalte verlorengehen.

SAP AG BC425 8-14


Modifikations-Logbuch: Beispiel

Objekttyp (Programm, Dynpro, GUI Status, ...) PROG


Objektname SAPMV45A
Routine SAVE_DOC
Themenbereich SD_001
Auftragsnummer der Reparatur DEVK900023
nderungsdatum 01.02.1999
Name nderer Smith
Name Verantwortliche(r) Carpenter
Vorabkorrektur (ja/nein) nein
SAPNet Hinweisnummer
Gltig bis Release
Aufwand fr Wiedereinbau in Stunden 4

SAP AG 2002

SAP empfiehlt, eine Liste aller Modifikationen (also nderungen an Repository-Objekten des SAP
Namensraums) zu fhren.
Die Liste kann folgende Spalten enthalten:
y Objekttyp (Programm, Dynpro, GUI Status, ...)
y Objektname
y Routine (falls erforderlich)
y Themenbereich gem Fach- oder DV-Konzept
y Reparaturnummer
y nderungsdatum
y Name des nderers
y Vorabkorrektur (ja/nein)
y SAP Hinweisnummer, gltig bis Release x.y
y geschtzter Aufwand fr den Wiedereinbau der Modifikation whrend des Abgleichs.

SAP AG BC425 8-15


Modifikationsassistent: Lernziele

Nach Behandlung dieses Themas knnen Sie:

z Modifikationen fachgerecht mit Hilfe des


Modifikationsassistenten durchfhren
z erlutern, wie der Modifikationsassistent arbeitet

SAP AG 2002

SAP AG BC425 8-16


Modifikationsassistent: Ziele

Modifikationsabgleich erleichtern

z feinere Granularitt
z Module
z Routinen
z Funktionsbausteine

z nderung auf separater Software-Schicht durch


"Modifikations-Exits"

SAP AG 2002

Ziel des Modifikationsassistenten ist es, den Modifikationsabgleich zu erleichtern. Das wird dadurch
erreicht, dass eine Aufzeichnung der nderungen mit einer feineren Granularitt geschieht. Frher
war die Granularitt beispielsweise auf Include-Programm-Ebene beschrnkt. Heute werden
nderungen feiner aufgezeichnet. Die Granularitt ist nun das Unterprogramm oder Modul.
Erreicht wird dies unter anderem dadurch, dass die nderungen (Modifikationen) auf einer separaten
Schicht registriert werden. Dies ermglicht neben der feineren Aufzeichnung auch das Rcksetzen
der nderungen, da das Original nicht gendert wird.

SAP AG BC425 8-17


Modifikationsassistent: Funktionsweise

Modifikationen

Source Generieren Load

SAP AG 2002

Der Modifikationsassistent zeichnet die nderungen auf einer separaten Ebene auf. Die
ursprngliche Source eines Objektes bleibt dabei unverndert. Erst beim Generieren der Load
werden die Modifikationen bernommen, sodass das ausfhrbare Objekt aus Teilen des
ursprnglichen SAP-Programms und den Modifikationen erzeugt wird.

SAP AG BC425 8-18


Modifikationsabgleich gestern und heute

z GESTERN:
z Granularitt bei Konflikten : Include-Source
z Modifikationsabgleich zeilenweise
z Jede Modifikation mu manuell in die neue
SAP-Version eingemischt werden ( CUT & PASTE )

z HEUTE (MIT MODIFIKATIONSASSISTENT):


z Granularitt bei Konflikten: Baustein (z.B. Unterprogramm )
z Modifikationsabgleich pro Baustein ("Modifikations-Exit")
z Wiedereinspielen von Modifikationen weitestgehend
automatisiert

SAP AG 2002

Wurde frher ein Include durch eine Modifikation gendert, und dieses Include wurde von SAP neu
eingespielt, kam es zum Modifikationsabgleich. Der Modifikationsabgleich musste dabei zeilenweise
durchgefhrt werden. Das System bot wenig Untersttzung beim Abgleich.
Mit dem Modifikationsassistent hat sich die Situation grundlegend gendert: Die Granularitt der
nderungsaufzeichnung wurde verfeinert. Zum Beispiel wird ein Unterprogramm whrend einer
Modifikation gendert, der Rest des Includes bleibt unangetastet. Wird das Include neu ausgeliefert,
untersucht das System, ob das Unterprogramm ebenfalls neu ausgeliefert wurde. Ist das nicht der
Fall, knnen die eigenen nderungen automatisch in die neue Version bernommen werden.

SAP AG BC425 8-19


Modifikationsassistent: Softwareschichten

SAP Partner Kunde

Originale Modifikationsschicht Modifikationsschicht

SAP AG 2002

Die Originale der Vorgnger-Softwareschicht plus die eigenen Modifikationen bilden das Original
fr nachgelagerte Software-Nutzer

SAP AG BC425 8-20


Modifikationsassistent: Untersttzte Werkzeuge

z ABAP Editor
z Modifikationsmodus
z Screen Painter
z Layout
z Ablauflogik
z Menu Painter
z Textelemente
z Class Builder
z Function Builder
z Hinzufgen von Funktionsbausteinen
z Kompatible Erweiterung der Schnittstelle
z Dictionary
z Append-Strukturen werden registriert
z Datenelemente: Feldbezeichner berlagern
z Dokumentation
z Doku-Objekte berlagern

SAP AG 2002

Der Modifikationsassistent untersttzt die wichtigsten Werkzeuge der ABAP Workbench:


Im ABAP Editor knnen Sie Quelltext im so genannten Modifikationsmodus bearbeiten. Dieser
Modus bietet nur eine eingeschrnkte Editiermglichkeit. Sie knnen Quelltext kontrolliert
hinzufgen, ersetzen oder als Kommentar kennzeichnen.
nderungen im Screen Painter werden ebenfalls aufgezeichnet. Dies bezieht sich sowohl auf das
Layout als auch auf die Ablauflogik.
nderungen im Menu Painter und an Textelementen werden vom Modifikationsassistenten
aufgezeichnet ebenso wie das Hinzufgen von Funktionsbausteinen in eine existierende
Funktionsgruppe.
Das Anlegen von Append-Strukturen zu einer Tabelle wird ebenfalls vom Modifikationsassistenten
aufgezeichnet, um Konflikte frhzeitig zu vermeiden.

SAP AG BC425 8-21


Modifikationsassistent: Voraussetzungen

z R/3 Profile Parameter


z eu/controlled_modification

Modifikationsassistent
Das Transportobjekt unterliegt dem
Modifikationsassistenten

...Editierfunktionen eingeschrnkt...

ber die Modifikationsikone knnen die


Abschnitte gendert werden...

SAP AG 2002

Wollen sie ein SAP-Objekt ndern, mssen sie die oben aufgefhrten Informationen hinterlegen:
y SSCR-Schlssel
y nderungsauftrag
Darber hinaus informiert sie das System, dass das Objekt dem Modifikationsassistenten unterliegt.
Das heisst, dass nur ein eingeschrnkter Editiermodus zur Verfgung steht.
ber den Profilparameter eu/controlled_modification kann der Modifikationsassistent fr das ganze
R/3-System an oder ausgeschaltet werden. Wir empfehlen, immer mit dem Modifikationsassistenten
zu arbeiten.
Ausschalten knnen sie den Modifikationsassistenten ebenfalls fr einzelne Repository-Objekte. Ab
diesem Zeitpunkt werden nderungen nicht mehr in dieser feinen Granularitt registriert.

SAP AG BC425 8-22


Ikonen des Modifikationsassistenten

Einfgen

Ersetzen

Lschen

Modifikation zurcknehmen

Modifikationsbersicht

SAP AG 2002

Im so genannten Modifikationsmodus steht Ihnen nur eine eingeschrnkte Funktionalitt zur


Verfgung. Diese knnen sie ber die entsprechenden Drucktasten erreichen. Im Editor knnen sie
zum Beispiel:
y Einfgen
Das System generiert einen Kommentarrahmen, innerhalb dessen sie Quelltext einfgen knnen
y Ersetzen
Positionieren sie den Cursor auf eine Zeile und bettigen sie die Drucktaste "Ersetzen". Dadurch
wird die entsprechende Zeile als Kommentar gekennzeichnet und eine eingabebereite Zeile
erzeugt. Wollen sie mehrere Zeilen ersetzen, markieren sie diese zunchst als Block
y Lschen
Markieren sie eine Zeile oder einen Block Quelltext. Die Zeilen werden als Kommentar
gekennzeichnet.
y Modifikationen zurcknehmen
Damit knnen sie smtliche zu diesem Objekt gehrenden Modifikationen zurcknehmen
y Modifikationsbersicht anzeigen
Hier erhalten sie einen berblick ber die zu diesem Objekt gehrenden Modifikationen

SAP AG BC425 8-23


Beispiel: ABAP Editor

ABAP Editor

PROGRAM <SAP-Program>.
Einfgen
...
*{INSERT DEVK900023 1

*}
Ersetzen
*{REPLACE DEVK900023 2
*\WRITE: / sy-uname COLOR COL_KEY.
WRITE: / sy-uname COLOR COL_NORMAL.
*}
Lschen
*{DELETE DEVK900023 3
*\WRITE: / sy-uname COLOR COL_KEY.
*\
*}
...

SAP AG 2002

Die Grafik zeigt das Ergebnis von nderungen, die mit Hilfe des Modifikationsassistenten
durchgefhrt wurden.
Der Modifikationsassistent generiert automatisch einen Kommentar-Rahmen, der die entsprechende
Aktion beschreibt. Der Kommentar enthlt ausserdem die Nummer des nderungsauftrags, dem die
nderung zugeordnet wird und eine Nummer, die zu internen Verwaltung bentigt wird.

SAP AG BC425 8-24


Modifikationsbersicht

ABAP Editor

PROGRAM <SAP-Program>.

...
*{INSERT DEVK900023 1

*}

Modifikationsbersicht 2
*{REPLACE DEVK900023
*\WRITE: / sy-uname COLOR COL_KEY.
WRITE: / sy-uname COLOR COL_NORMAL.
SAP Program
*}

... ohne Modularisierungseinheit

SAP Program SMITH 01.02.1999 DEVK900023

Unterprogramme

DO_SOMETHING SMITH 01.02.1999 DEVK900023

SAP AG 2002

Mit der Ikone "Modifikationsbersicht" knnen sie sich einen berblick ber die in diesem
Programm gemachten Modifikationen verschaffen.
Die Darstellung ist gegliedert in die verschiedenen Modularisierungseinheiten. Das entspricht der
Struktur, mit der der Modifikationsassistent die Modifikationen aufzeichnet.

SAP AG BC425 8-25


Zurcksetzen auf Original

ABAP Editor

PROGRAM <SAP-Program>.

...
*{INSERT DEVK900023 1

*}

*{REPLACE DEVK900023 2
*\WRITE: / sy-uname COLOR COL_KEY.
WRITE: / sy-uname COLOR COL_NORMAL.
*}
ABAP Editor
...

PROGRAM <SAP-Program>.

...

WRITE: / sy-uname COLOR COL_KEY.


...
SAP AG 2002

Um eine Modifikation rckgngig zu machen, stellen Sie den Cursor auf die entsprechende
Modifikation. Danach bettigen Sie die Drucktaste zum Zurcknehmen der Modifikation.
Die Aufzeichnungen zu den Modifikationen werden dabei gelscht. Eine Rcknahme dieser
Lschung ist nicht mglich.

SAP AG BC425 8-26


Modification Browser

Modification Browser

Standard-Selektionen
letzter nderer
Entwicklungsklasse
Auftrag/Aufgabe
modifizierte Objekte
mit Modifikationsassistent
ohne Modifikationsassistent
mit Modifikationsassistent

Datenelemente

S_CARR_ID SMITH 01.02.1999 DEVK900023

Domnen
Programme
Funktionsbausteine
SAP AG 2002

Der Modification Browser bietet ihnen eine bersicht ber alle im System vorhandenen Objekte, die
modifiziert wurden. Es wird dabei unterschieden zwischen Modifikationen mit und ohne
Modifikationsassistent.
Im Einstiegsbild des Modification Browsers knnen Sie die Selektion nach verschiedenen Kriterien
einschrnken. Dadurch knnen sie ganz spezifisch Modifikationen aus einem bestimmten Gebiet
suchen.
Der Modification Browser stellt die Treffermenge in einer baumartigen Liste zur Verfgung. Die
Objekt sind geordnet nach
y Modifikationsart (mit/ohne Assistent)
y Objektart (PROG, DOMA, DTEL, TABL, ...)
Neben der reinen Anzeigefunktionalitt knnen Sie im Modification Browser auch ganze Gruppen
von Modifikationen zurcknehmen. Dazu markieren Sie den gewnschten Teilbaum und whlen die
Drucktaste Rcksetzen auf Original.

SAP AG BC425 8-27


User-Exit: Lernziele

Nach Behandlung dieses Themas knnen Sie:

z Erklren, was User-Exits sind


z Beschreiben, wie Sie User-Exits im System
auffinden

SAP AG 2002

SAP AG BC425 8-28


User-Exit: Aufbau eines Modulpools

Programm SAPMV45A

*Include MV45ATOP *Include MV45AO01


*Include MV45AI01

Besondere
Besondere
Include-Programme
Include-Programme

*weitere Includes

*Include MV45AFZB

SAP AG 2002

Ein Modulpool ist organisiert als Zusammenfassung von Include-Programmen. Diese Organisation
dient vor allem der bersichtlichkeit. Dabei ist die Organisation hnlich der von Funktionsgruppen.
Insbesondere die Namenskonvention, mit der die letzten drei Buchstaben des Include-
Programmnamens den Inhalt bezeichnen, ist bei Modul-Pools und Funktionsgruppen identisch.
Das Rahmenprogramm enthlt in der Regel die Include-Anweisungen fr alle zu dem Modulpool
gehrenden Include-Programme.
Die im Bild als besondere Include-Programme gekennzeichneten Programme sind lediglich als
solche vereinbart (technisch kein Unterschied!). Diese Programme werden nur genau ein Mal
ausgeliefert.

SAP AG BC425 8-29


User-Exit

Programm SAPMV45A
*SAP Includes
z leere Unterprogramme
*Include MV45AFZB
*User-Exits Release 3.1G

FORM userexit_test.
z Includes nur 1x
ENDFORM. ausgeliefert
z berwiegend in SD
z technisch:
FORM userexit_two.
ENDFORM.
Modifikation

*Include MV45AFZC
*User-Exits Release 4.0A

SAP AG 2002

User-Exits sind eine ursprnglich im Vertriebs-Modul (SD) entwickelte Erweiterungsmglichkeit.


Ziel war es dabei, die Schwierigkeiten des Modifikationsabgleichs zu umgehen.
Die Verwendung eines User-Exits ist eine Modifikation, da Objekte im SAP Namensraum gendert
werden.
Der SAP Anwendungsentwickler legt ein spezielles Include in einem Modulpool an. Dieses Include
beinhaltet eine oder mehrere Unterprogramme, die der internen Namenskonvention
userexit_<name> gengen. Der Aufruf dieser Unterprogramme ist bereits im Programm
implementiert. blicherweise wird mit globalen Variablen gearbeitet.
Ein auf diese Weise angelegtes Include-Programm wird von SAP nach seiner ersten Auslieferung
nicht mehr gendert; falls zu einem neuen Release neue User-Exits ausgeliefert werden sollen,
werden sie in einem neuen Include-Programm angelegt.

SAP AG BC425 8-30


User-Exit: Beispiel

***INCLUDE MV45AFZB .

************************************************************
* This include is reserved for user modifications *
* Forms for sales document processing *
* The name of modification modules should begin with ZZ. *
************************************************************
*
*&----------------------------------------------------------------*
*& Form USEREXIT_FILL_VBAP_FROM_HVBAP
*&----------------------------------------------------------------*
* This Userexit can be used to fill addtional data into VBAP*
* from the main item (HVBAP), i.e. this Userexit is called *
* when an item is entered with reference to a main item. *
* This form is called from form VBAP_FUELLEN_HVBAP. *
*-----------------------------------------------------------------*
FORM userexit_fill_vbap_from_hvbap.
* VBAP-zzfield = HVBAP-zzfield2.
ENDFORM.

SAP AG 2002

User-Exits sind im wesentlichen vom SAP-Entwickler zur Verfgung gestellte, leere


Unterprogramme, die Sie mit ihrem eigenen Quelltext fllen knnen.
Ziel dabei ist, jegliche Modifikation vom eigentlichen Programm fernzuhalten und in eigene Includes
auszulagern. Dazu legt der SAP-Entwickler verschiedene Includes an, die der Namenskonvention fr
Includes von Programmen und Funktionsgruppen gengen. Die letzten beiden Buchstaben des
Includenamens deuten auf das vom Kunden zu verwendende Include hin: Hier steht in der Regel ein
"Z".
Beispiel: Programm SAPMV45A
Include MV45AFZB
Diese Namenskonvention gewhrleistet, da das Include in der Folge nicht mehr vom SAP-
Entwickler angefat wird. Aus diesem Grund werden solche Includes beim Modifikationsabgleich
nicht angeboten.
Sollen zum nchsten Release von SAP weitere User-Exits ausgeliefert werden, werden diese in neue
Includes, die der selben Namenskonvention gehorchen, zusammengefat.

SAP AG BC425 8-31


Verwenden von User Exits

z aus Anwendungsprogramm z mit Hilfe von Tools

User-Exits

System o Status
oDoppelklick auf Programmnamen

Suchen nach Zeichenkette...


IMG
perform userexit

 global in Programm prog


prog

o SAP Referenz-IMG
Vertrieb
Systemanpassung
User-Exits
Vertrieb
Systemanpassung o entsprechende
User-Exits Komponente

o entsprechende
auswhlen

Komponente
auswhlen

SAP AG 2002

Die verwendbaren User-Exits finden Sie im SAP-Referenz-Einfhrungsleitfaden.


Dort erhalten Sie auch die Dokumentation, zu welchem Zweck der jeweilige SAP-
Anwendungsentwickler den entsprechenden User-Exit vorgesehen hat.
Fhren Sie die im Einfhrungsleitfaden angegebenen Schritte aus.

SAP AG BC425 8-32


SAP Note Assistant: Lernziele

Nach Behandlung dieses Themas knnen Sie

z Hinweiskorrekturen mit Hilfe des SAP Note Assistant


in ein SAP System einspielen
z Die Vorteile des SAP Note Assistant benennen
z Mit dem SAP Note Assistant eingepflegte
Hinweiskorrekturen abgleichen

SAP AG 2002

SAP AG BC425 8-33


SAP Note Assistant: Prinzip

FRHER

Release Release
Hinweis
Hinweis Manuell
08154711
n-1 n
Hinweis SSCR
08154711
08154711

Modifikations-
abgleich manuell

HEUTE

Note Release Release


Hinweis
Hinweis Assistant n n+1
08154711
Hinweis
08154711
08154711

Modifikations-
abgleich
automatisch
SAP AG 2002

Vor Einfhrung des SAP Note Assistant muten Sie alle Hinweise, die eine Korrektur an Objekten
Ihres SAP Systems erforderten, manuell in das System einpflegen. Neben der Fehleranflligkeit hatte
dieses Verfahren weitere Nachteile: Das manuelle ndern eines SAP Objektes erfordert die Eingabe
eines Registrierungsschlssels fr das Objekt. Die Abhngigkeit der Fehlerkorrektur von bereits im
System vorhandenen Fehlerkorrekturen muss der Entwickler selbst aus dem Hinweistext
herauslesen. Schlielich muss die eingepflegte Fehlerkorrektur beim Einspielen von Support
Packages oder Upgrades manuell abgeglichen werden.
Der SAP Note Assistant dient dazu, die meisten der oben angefhrten Nachteile auszumerzen: Die
Eingabe eines Registrierungsschlssels ist nicht notwendig. Der SAP Note Assistant spielt die
Hinweiskorrekturen automatisch mit Hilfe des Modifikationsassistenten in das System ein.
Abhngigkeiten von anderen Hinweisen werden automatisch erkannt. Falls noch nicht im System
eingepflegt, fordert Sie der SAP Note Assistant dazu auf, diese Hinweise in das System einzuspielen.
Und: Hinweise besitzen eine Gltigkeit. Beim Einspielen von Support Packages und Upgrades prft
das System, ob die Hinweiskorrektur noch Gltigkeit besitzt. Falls nicht, kann die Korrektur per
Knopfdruck zurckgesetzt werden.

SAP AG BC425 8-34


SAP Note Assistant: Vorteile

z SAP Hinweise automatisch einspielen


z Beschrnkt auf Korrekturen an ABAP Quelltext
z Abhngigkeiten automatisch behandeln
z Mit anderen SAP Hinweisen
z Mit Support Packages
z Mit Modifikationen
z berblick ber alle in das SAP System eingespielte Hinweise
z Untersttzung von Modifikationsabgleich nach Upgrade oder
Support Packages

z Achtung: Korrektur einzelner Fehler!


Wichtig!
Kein Ersatz fr Support Packages!

SAP AG 2002

Das Ziel des SAP Note Assistant ist es, Sie beim Einspielen von Hinweiskorrekturen in Ihr SAP
System zu untersttzen. Dabei erfolgt das Einspielen in der Regel automatisch. Das manuelle
Einpflegen von Quelltext entfllt , was zu einer deutlich reduzierten Fehleranflligkeit fhrt. Darber
hinaus entfllt das Registrieren der zu korrigierenden Objekte im SAP Software Change Registration
(SSCR).
Der SAP Note Assistant bietet Ihnen mehrere Vorteile. Neben dem erwhnten automatischen
Implementieren von Programmkorrekturen ohne SSCR-Schlssel werden Abhngigkeiten zwischen
verschiedenen Hinweisen vom SAP Note Assistant erkannt. Wenn der in einem Hinweis
beschriebene Fehler bereits in einem Support Package behoben wurde, erkennt das der SAP Note
Assistant ebenfalls und markiert den Hinweis als obsolet. An dem zu korrigierenden Objekt
durchgefhrte Modifikationen werden registriert, was dazu fhrt, dass spter beim
Modifikationsabgleich diese Objekte besonders gekennzeichnet sind.
Ntzliches Merkmal des SAP Note Assistant ist die Mglichkeit, sich einen berblick ber alle im
System eingespielten Hinweiskorrekturen zu verschaffen.
Wenn nach dem Upgrade oder dem Einspielen von Support Packages der Modifikationsabgleich
ansteht, werden die Hinweiskorrekturen in einer eigenen Kategorie aufgefhrt. Die im nun aktuellen
Stand obsolet gewordenen Hinweiskorrekturen sind besonders gekennzeichnet, was eine
berfhrung des Objektes in den Standard erleichtert.
Bitte beachten Sie: Der SAP Note Assistant erleichtert Ihnen das Einpflegen einzelner
Fehlerkorrekturen. Er ist aber nicht dafr gedacht, das Einspielen von Support Packages zu ersetzen!

SAP AG BC425 8-35


SAP Note Assistant: Arbeitsschritte

SAP Hinweise
Herunterladen
Aktualisieren
SAP Note Assistant

Hinweis-Browser Einbauen Korrekturanleitung


Manuelle
Upgrade Ausweichlsung
Details
Spezielle Version des
Split Screen Editors

Modification Modification
Browser (SE95) Adjustment (SPAU)

SAP AG 2002

Sie knnen mit Hilfe des SAP Note Assistant existierende SAP Hinweise vom SAP Service
Marktplatz herunterladen. Im Hinweis-Browser finden Sie einen berblick ber alle in Ihrem
System eingebauten Hinweise. Dort finden Sie auch einen Absprung zum Modifikationsbrowser, der
Ihnen einen berblick ber alle mit einem Hinweis korrigierten Objekte gibt. Mit Hilfe der
Statusangabe knnen Sie feststellen, welche Hinweise einbaubar, eingebaut, oder obsolet sind.
Nachdem Sie den Hinweis sorgfltig gelesen haben, knnen Sie ihn nach der Korrekturanleitung
einbauen. Der SAP Note Assistant ermittelt, ob der Hinweis automatisch einbaubar ist, was zu einer
grne Ampel vor den einzubauenden Objekten fhrt. Falls Konflikte beim Einbau erkannt, werden,
weil der SAP Note Assistant beispielsweise den Kontext-Block nicht findet, knnen Sie mit Hilfe
einer speziellen Version des Splitscreen-Editors den Einbau manuell vornehmen.

SAP AG BC425 8-36


SAP Note Assistant: Arbeitsvorrat

berblick
Note Assistant: Arbeitsvorrat Benutzer XXX

Laden
SAP-Hinweise
inkonsistent

0000222111 Hinweistext Prfen


neu
0000444321 Hinweistext Bearbeitungs-
0000383446 Hinweis status

In Bearbeitung
Einbauen
0000333443 Text
0000383446 Fehler im Programm ABC
Protokoll

SAP AG 2002

Sie rufen die Transaktion SNOTE durch direktes Eingeben des Transaktionscodes in das Ok-Code-
Feld auf. Damit gelangen Sie auf einen Bildschirm mit einer Liste von Hinweisen, die verschiedenen
Knoten zugeordnet sind. Sie sehen
y Hinweise, die Ihnen als Bearbeiter zugeordnet sind;
y Alle neuen Hinweise;
y Alle Hinweise, die sich in einem inkonsistenten Zustand befinden.
Einbaubare Hinweise sind mit einer entsprechenden Ikone gekennzeichnet (Im Menpfad
Hilfsmittel Farblegende knnen Sie sich ber die Bedeutung der verschiedenen Ikonen
informieren). Im obigen Beispiel finden wir weiterhin einen neuen Hinweis, der als obsolet oder
nicht einbaubar gekennzeichnet ist. Ursache ist eine fehlende Korrekturanleitung (Der Hinweis ist
rein informativer Natur) oder ein Gltigkeitszeitraum, der nicht mit dem Systemrelease und Patch-
Level bereinstimmt.

SAP AG BC425 8-37


SAP Note Assistant: Hinweise laden

Problem berblick

Note Assistant Laden


Hinweis suchen z Voraussetzungen
Hinweis lesen prfen
z Hinweis einbauen Prfen
z Hinweis registrieren
Option 1:
Direktes Bearbeitungs-
Herunterladen status

DB Einbauen

He Op
run tio
n b:
Da terla 2a: n 2 en Protokoll
tei d t i o d
sy en Op chla
ste au o
m f H

SAP AG 2002
Dateisystem

Sie knnen SAP-Hinweise aus dem SAP Service Marketplace oder dem SAPNet - R/3 Frontend in
Ihr System laden. Dies kann direkt per RFC-Verbindung (Hinweis-Download) oder per Filetransfer
(Hinweis-Upload) geschehen.
Beim Hinweis-Download knnen Sie den Hinweis im Note Assistant aus dem SAPNet - R/3
Frontend direkt in Ihr System laden.
Fr den Hinweis-Upload mssen Sie einen Hinweis zunchst aus dem SAP Service Marketplace
herunterladen und auf der Festplatte Ihres PC abspeichern. Anschlieend fhren Sie vom Note
Assistant aus einen Upload des Hinweises per Filetransfer durch.

SAP AG BC425 8-38


SAP Note Assistant: Hinweis-Browser

berblick

Laden

Prfen

Bearbeitungs-
status

Einbauen

Protokoll

SAP AG 2002

SAP AG BC425 8-39


SAP Note Assistant: Hinweis einbauen

berblick
Note Assistant: Arbeitsvorrat Benutzer XXX

Laden
SAP-Hinweise
inkonsistent

0000222111 Hinweistext Prfen


neu
0000444321 Hinweistext Bearbeitungs-
0000383446 Hinweis
Folgende Hinweise werden eingebaut: status
Einbau von Hinweis 0427325000 Version 001
In Bearbeitung
REPS BC426_01E01
Einbauen
0000333443 Text
nderungsbernahme mglich
0000383446 Fehler im Programm ABC
REPS BC426_01F01 Protokoll
nderungsbernahme mglich

Rahmenprogramm

SAP AG 2002

Nachdem Sie den Hinweis sorgfltig gelesen haben, knnen Sie den Hinweis einbauen. Das System
prft automatisch die Voraussetzungen und Abhngigkeiten von anderen Hinweisen. Falls
vorausgesetzte Hinweise noch nicht in Ihrem System registriert sind, sendet der SAP Note Assistant
eine Liste mit noch einzubauenden Hinweisen.

SAP AG BC425 8-40


SAP Note Assistant: Weitere Merkmale

z Split Screen Editor


z Diverse Protokolliermglichkeiten:
z Anzeige des Implementierungsstatus
z Action Log

z Hinweiseinbau zurcknehmen

SAP AG 2002

SAP AG BC425 8-41


SAP Note Assistant: Hinweise mit Abhngigkeiten

berblick
Note Assistant: Arbeitsvorrat Benutzer XXX

Laden
SAP-Hinweise
inkonsistent

0000222111 Hinweistext Prfen


Laden Sie folgende Hinweise in Ihr System:
neu
0000444321 Hinweistext Bearbeitungs-
0000153222
0000383446 Hinweis status
0000173333
In Bearbeitung
0000234432
Einbauen
0000333443 Text
0000383446 Fehler im Programm ABC
Protokoll

SAP AG 2002

Wenn ein Hinweis andere Hinweise als Voraussetzung hat, ermittelt der Note Assistant beim Einbau
die vorausgesetzten Hinweise und ldt sie in Ihr System. Er zeigt den von Ihnen ausgewhlten
Hinweis sowie alle zustzlichen Hinweise auf einem Dialogfenster, der Hinweisqueue, an. Die
Hinweise mssen in der angegebenen Reihenfolge implementiert werden.
Sie haben folgende Mglichkeiten:
y Mehrere Hinweise auf einmal einbauen
Wenn Sie diese Option whlen, baut das System mglichst viele der angegebenen Hinweise
nacheinander ein. Das System kann nur dann mehrere Hinweise auf einmal einbauen, wenn alle
Korrekturen aus den Hinweisen unverndert bernommen werden knnen. Falls in den
betroffenen Includes eigene Modifikationen vorliegen, kann es sein, dass das System einzelne
nderungen nicht einfgen kann. Diese Hinweise baut das System immer einzeln ein, damit Sie
Ihre Modifikationen abgleichen knnen.
y Jeden Hinweis einzeln einbauen
Das System baut die angegebenen Hinweise einzeln ein. Hierbei knnen Sie im Detail
nachvollziehen, welche Quelltextnderung zu welchem der angegebenen Hinweise gehrt und die
Quelltextnderung modifizieren, falls ntig.
y Hinweiseinbau abbrechen
Das System nimmt keine Quelltextnderung vor.

SAP AG BC425 8-42


SAP Note Assistant: Modifikationsabgleich

berblick
Modifikationsabgleich

Laden
Modifikationen und Erweiterungen
Hinweiskorrekturen
Prfen
0000222111 Hinweistext
0000123456 Text
Bearbeitungs-
0000333221 Hinweiskurztext status

Einbauen

Protokoll

Abgleich
SAP AG 2002

Ein Support Package enthlt eine Sammlung von Fehlerkorrekturen. Support Packages knnen Sie
nur als Ganzes und nur in einer festgelegten Reihenfolge in Ihr System einspielen. Jede Korrektur,
die in einem Support Package enthalten ist, wird in einem Hinweis dokumentiert.
Nach dem Einspielen eines Support Package gibt es die folgenden Flle:
y Korrektur durch Hinweis eingebaut und im Support Package enthalten (Ampel ohne Farben):
Beim Einspielen eines Support Package prft das System automatisch, ob Sie einzelne
Korrekturen aus dem Support Package bereits zuvor durch Hinweise in Ihr System eingebaut
haben. Beim Modifikationsabgleich werden diese Hinweise mit einer Ampel ohne Farben
angezeigt und dadurch als obsolet gekennzeichnet. Die enthaltenen Objekte mssen Sie auf SAP-
Original zurcksetzen.
y Hinweis eingebaut, aber nicht im Support Package enthalten (gelbe Ampel)
Das System prft, ob Korrekturen, die Sie zuvor durch einen Hinweis eingebaut haben, durch ein
Support Package berschrieben werden, das diese Korrekturen nicht enthlt. Diese
Hinweiskorrekturen mssen Sie anschlieend erneut einbauen. Das System zeigt diese Hinweise
beim Modifikationsabgleich (Transaktion SPAU) mit einer gelben Ampel an. Auch in Ihrem
Arbeitsvorrat werden diese Hinweise unter dem Status inkonsistent als erneut einzubauen
angezeigt.
y Hinweis noch eingebaut, obwohl Teile im Support Package enthalten (grne Ampel)
Ein Hinweis enthlt z.B. mehrere Korrekturanleitungen unterschiedlicher Gltigkeitsdauer. Beim
Einspielen des Support Package wird eine Korrekturanleitung obsolet, die andere Anleitung bleibt
weiterhin gltig. In diesem eher seltenen Fall erscheint der Hinweis mit einer grnen Ampel.

SAP AG BC425 8-43


Manuelles Erfassen von Hinweiskorrekturen

z Programm SCWN_REGISTER_NOTES
z Hinweise eintragen
z Hinweise werden geladen
z Gltigkeit wird geprft
z Einbau wird geprft

z Vorteile:
z Anzeige im Hinweis-Browser
z Abhngigkeiten werden korrekt angegeben
z Korrekturen finden sich bei Modifikationsabgleich in der
Kategorie Hinweiskorrekturen.

SAP AG 2002

Wenn Sie vor Installation des SAP Note Assistant bereits Korrekturen aus Hinweisen in Ihr SAP
System eingebaut haben, knnen Sie diese Tatsache dem Note Assistant nachtrglich bekannt geben.
Dies ist wichtig, da der Note Assistant nicht automatisch erkennen kann, ob eine Hinweiskorrektur
manuell ohne Verwendung des Note Assistant in Ihr System eingebaut wurde. Die Registrierung hat
folgende Vorteile:
y Alle Hinweise, die in Ihr System eingebaut sind, werden im Hinweis-Browser angezeigt.
y Wenn ein manuell ohne den Note Assistant eingebauter Hinweis Voraussetzung fr einen Hinweis
ist, den Sie mit dem Note Assistant einbauen mchten, erkennt der Note Assistant, dass der
vorausgesetzte Hinweis bereits eingebaut ist, und fordert nicht, ihn erneut einzubauen.
y Die manuell eingebauten Hinweise werden im Modifikationsabgleich bei zuknftig
einzuspielenden Support Packages oder Upgrades in der Kategorie Hinweiskorrekturen angezeigt.
Das System ermittelt fr diese Hinweise, ob sie erneut einzubauen oder auf Original
zurckzusetzen sind.
Um Hinweise manuell zu registrieren, starten Sie das Programm SCWN_REGISTER_NOTES. Auf
dem Selektionsbild des Programms geben Sie die Nummern der als vollstndig eingebaut zu
registrierenden Hinweise ein. Das System ldt die Hinweise und prft, ob die Hinweise fr Ihr
Release und Support Package Level gltig sind. Weiter prft das Programm, ob die Hinweise bereits
im Note Assistant als eingebaut registriert sind.

SAP AG BC425 8-44


Modifikationsabgleich: Lernziele

Nach Behandlung dieses Themas knnen Sie:

z Die verschiedenen Schritte des


Modifikationsabgleichs nennen
z aufzhlen, welche Objekte wann abgeglichen
werden mssen
z erklren, wie der Modifikationsabgleich in den
Folgesystemen durchgefhrt wird

SAP AG 2002

SAP AG BC425 8-45


Abzugleichende Objekte

Abgleich
Abgleich erforderlich
erforderlich

neu von SAP eingespielt

vom Kunden modifiziert

SAP AG 2002

Die Menge der abzugleichenden Objekte wird ermittelt aus der Menge der neu in das System
eingespielten Objekten. Diese wird verglichen mit der Menge der modifizierten Objekten.
Die Schnittmenge dieser Objektmengen muss nach Einspielen eines Upgrades oder Support
Packages abgeglichen werden.

SAP AG BC425 8-46


Modifikationsabgleich: SPDD und SPAU

SAP Standard Rckkehr zum


Kunden
SAP-Standard
Version
Transaktionen:
Vergleichen SPDD
SPAU
Abgleich

SAP AG 2002

Whrend des Modifikationsabgleichs werden ABAP Repository Objekte von vor dem Upgrade (alte
Version) mit solchen von nach dem Upgrade (neue Version) verglichen. Die Transaktionen SPDD
und SPAU untersttzen Sie whrend des Abgleichs
Sie mssen die Transaktion SPDD zum Abgleich von Dictionary Objekten nicht aufrufen, wenn
- Sie keine nderungen an SAP Standard Objekten des Dictionary vorgenommen haben
- Sie nur Kundeneigene Objekte in dem System hinzugefgt haben. Nur genderte SAP Objekte
mssen nachbearbeitet werden.
Alle anderen ABAP Repository Objekte werden mit Hilfe der Transaktion SPAU abgeglichen. Das
Upgrade-Programm R3up teilt Ihnen mit, die Transaktion am Ende des Upgrades zu starten. Wenn
der Upgrade beendet ist, haben Sie 30 Tage Zeit, die Transaktion SPAU zu verwenden. Nach dieser
Zeit mssen Sie fr jedes Objekt, das Sie abgleichen wollen, wieder einen SSCR-Schlssel
beantragen.
Die Transaktion SPAU ermittelt, welche Objekte modifiziert wurden und gleichzeitig mit dem
aktuellen Upgrade eingespielt wurden. Der Modifikationsabgleich bietet Ihnen nun die Mglichkeit,
Ihre Modifikationen in das neue R/3 Release zu bernehmen.

SAP AG BC425 8-47


Objekte des Modifikationsabgleichs

SPDD SPDD

ABAP-Programme
Oberflchen
Domnen
Dynpros
Datenelemente
Suchhilfen
Tabellen
Views
Sperr-Objekte

SAP AG 2002

Die Transaktion SPDD fhrt Sie beim Modifikationsabgleich fr folgende Objekte des ABAP
Dictionary:
Domnen
Datenelemente
Tabellen (Strukturen, transparente Tabellen, Pool- und Cluster-Tabellen einschlielich ihrer
technischen Einstellungen)
Diese 3 Objekt-Typen werden direkt im Anschlu an den Import der Dictionary-Objekte abgeglichen
(vor dem Hauptimport). Zu diesem Zeitpunkt hat noch keine Generierung von importierten Objekten
stattgefunden. Kundenmodifikationen an solchen Objekten mssen vor der Generierung
durchgefhrt werden, da es sonst zu Datenverlust kommen knnte.
nderungen an anderen Objekten des ABAP Dictionary wie Sperrobjekten, Matchcodes und Views
knnen keinen Datenverlust nach sich ziehen. Darum werden diese Objekte erst nach dem
Hauptimport und der Generierung im Rahmen der Transaktion SPAU abgeglichen. Mit der
Transaktion SPAU gleichen Sie insgesamt folgende Objekttypen ab:
y ABAP-Programme, Oberflchen (Mens), Dynpros, Matchcode-Objekte, Views, Sperrobjekte

SAP AG BC425 8-48


Abgleich-Transport zwischen Systemen

Release i Release i-1

Release i-1
Modifikationsabgleich

SPDD Auftrag mit abgeglichenen


Transport-Auftrag Objekten wird beim
Upgrade fr diese
SPAU Systeme verwendet
Transport-Auftrag

SAP AG 2002

Whrend des Modifikationsabgleichs sollten Sie Ihre Objektbearbeitung ber zwei verschiedene
nderungsauftrge handhaben: einer fr den SPDD-Abgleich und einer fr den SPAU-Abgleich.
Diese zwei nderungsauftrge knnen dann in die nachgelagerten R/3-Systeme transportiert werden.
Damit ist gewhrleistet, da die eigentliche Abgleicharbeit nur in Ihrem Entwicklungssystem
durchgefhrt werden mu.
Whrend der ADJUSTCHK-Phase beim Upgrade von nachgelagerten Systemen werden Ihnen die
exportierten Abgleiche aus dem ersten System-Upgrade angezeigt und Sie entscheiden, ob sie
akzeptiert werden. Wenn Sie hier aus dem ersten System exportierte Abgleiche akzeptieren, werden
diese in den aktuellen Upgrade integriert. Danach wird geprft, ob alle im aktuellen R/3-System
gefundenen Modifikationen ber die whrend des ersten System-Upgrades erstellten
nderungsauftrge abgedeckt sind. Ist dies der Fall, mssen beim aktuellen Upgrade keine
Abgleiche vorgenommen werden.
Hinweis: Fr einen effektiven Ablauf dieses Prozesses ist es notwendig, da alle Systeme Ihrer
Landschaft einen identischen Zustand aufweisen. Dies ist z.B. dann gewhrleistet, wenn alle
Modifikationen zunchst im Entwicklungssystem durchgefhrt und dann in die nachgelagerten
Systeme transportiert wurden, bevor im Entwicklungssystem der Upgrade durchgefhrt wurde. Die
Voraussetzung wre auch dann erfllt, wenn das Entwicklungssystem vor dem Upgrade als Kopie
des Produktionssystems erstellt wurde und danach keine Modifikationen im Produktivsystem mehr
durchgefhrt wurden.

SAP AG BC425 8-49


Modifikationsabgleich: Einstieg

Modifikationsabgleich: Objektauswahl

Standard-Selektionen
letzter nderer
Entwicklungsklasse
Auftrag/Aufgabe
modifizierte Objekte
mit Modifikationsassistent
ohne Modifikationsassistent
mit Modifikationsassistent

Upgrades und Patches Datenelemente


noch zu bearbeiten
S_CARR_ID SMITH 01.02.1999
alle Objekte
Domnen
Programme
Funktionsbausteine
SAP AG 2002

Beim Start des Modifikationsabgleichs (Transaktion SPAU) knnen Sie auf einem Selektionsbild die
Treffermenge einschrnken. Hier knnen Sie whlen, ob Sie alle abzugleichenden Objekte sehen
wollen oder nur die, die noch bearbeitet werden mssen. Sie knnen die Selektion mit Hilfe der
folgenden Kriterien einschrnken:
y letzter nderer
y Entwicklungsklasse
y Auftragsnummern / Aufgabennummern
Das System zeigt Ihnen eine Liste mit den abzugleichenden Objekten an. Die Liste ist sortiert nach
y mit / ohne Modifikationsassistent
y Objektart

SAP AG BC425 8-50


Ikonen des Modifikationsabgleichs

automatischer Abgleich

halbautomatischer Abgleich

manueller Abgleich

Objekt abgeglichen

Original wiederhergestellt

SAP AG 2002

Die Ikonen vor den einzelnen Objekten, die zum Abgleich bestimmt sind, zeigen an, wie der
Abgleich durchgefhrt werden kann. Der Abgleich kann durchgefhrt werden
y automatisch
Das System stellt keine Konflikte fest. Die nderungen knnen automatisch bernommen werden.
Dazu whlen Sie entweder die entsprechende Ikone oder den Meneintrag aus.
y halbautomatisch
Die einzelnen Werkzeuge bieten eine Untersttzung beim Abgleich an. Beim Abgleich von
Programmen wird der Split-Screen-Editor aufgerufen, in dem Sie nderungen bernehmen
knnen.
y manuell
Sie mssen Ihre Modifikationen ohne besondere Untersttzung durch das System bearbeiten. Der
Modifikationsabgleich bietet einen Absprung in das entsprechende Werkzeug an.
Abgeglichene Objekte werden durch den grnen Haken gekennzeichnet.
Wenn Sie den neuen SAP-Standard bernehmen wollen, whlen sie "Rcksetzen auf Original".
Damit entfllt etwaige Abgleicharbeit zuknftig.

SAP AG BC425 8-51


Modifikationen: Zusammenfassung des Kapitels

Sie knnen nun:


z beschreiben, was eine Modifikation ist
z die wichtigsten Regeln beim Modifizieren
aufzhlen
z Modifikationen mit Hilfe des
Modifikationsassistenten durchfhren
z User-Exits zum Implementieren von
Erweiterungen einsetzen
z Hinweise mit dem Note Assistant einpflegen
z Modifikationen abgleichen

SAP AG 2002

SAP AG BC425 8-52


bungen

Kapitel: Modifikationen
Thema: Modifikationen durchfhren

Am Ende dieser bungen knnen Sie:


Modifikationen mit Hilfe des Modifikationsassistenten
durchfhren.
Ungefhrte Modifikationen durchfhren.

Sie wollen zustzlich zu dem groen Funktionsumfang des R/3


noch weitere Funktionalitt implementieren.
Seltener kommt es vor, da fehlerhafte Funktionalitt ausgeliefert
wird. Dies erfordert das Einfgen von Korrekturen noch bevor
das entsprechende Support Package eingespielt werden kann.
Einige Modifikationen werden vom Modifikations-Assistenten
untersagt. Sollen sie trotzdem durchgefhrt werden, besteht die
Mglichkeit, den Modifikationsassistenten abzuschalten.

1-1 Modifizieren Sie Objekte des R/3. Verwenden Sie dabei soweit wie mglich den
Modifikationsassistenten. Im folgenden sind die Objekte angegeben, die Sie
verndern sollen:

1-2 Modifizieren Sie das Programm SAPBC425_BOOKING_##.


1-2-1 Erweitern Sie die berschrift dahingehend, da die Spalte mit den
Kundennamen auch eine berschrift erhlt.
1-2-2 Legen Sie eine neue Variable zum Zhlen der Datenstze an. Geben Sie den
Zhler in der letzten Spalte der Liste aus.
1-2-3 Lesen Sie zustzlich die Felder LUGGWEIGHT und WUNIT der Tabelle
SBOOK und geben Sie diese auf der Liste aus.

1-3 Modifizieren Sie das Programm SAPBC425_FLIGHT##.


1-3-1 ndern Sie das Layout des Dynpro 0100: Fgen Sie einen Rahmen um die
drei Eingabefelder ein. Legen Sie eine Drucktaste an und ordnen Sie ihr den
Funktionscode MORE zu.

1-4 Modifizieren Sie das Datenelement S_CARRID##.


1-4-1 ndern Sie die Feldbezeichner in:
kurz: "Flugges"
mittel: "Flugunternehmen".

SAP AG BC425 8-53


1-4-2 Modifizieren Sie die Dokumentation zu diesem Datenelement. Erfassen Sie
einen aussagekrftigen Text.

1-5 berprfen Sie Ihre Modifikationen im Modification Browser.

SAP AG BC425 8-54


bungen

Kapitel: Modifikationen
Thema: Modifikationsabgleich

Am Ende dieser bungen knnen Sie:


Modifikationen abgleichen

Nach dem Einspielen eines Support Packages oder eines


Upgrades mssen die im System vorgenommenen
Modifikationen abgeglichen werden.

1-1 Gleichen Sie die von Ihnen vorgenommenen Modifikationen mit den neu in das
System eingespielten Objekten ab.

SAP AG BC425 8-55


bungen (optional)

Kapitel: Modifikationen
Thema: SAP Note Assistant: Hinweise einpflegen

Am Ende dieser bungen knnen Sie:


Hinweise mit Hilfe des SAP Note Assistant in das SAP
System einspielen

Das Programm SAPBC426_## besteht aus einem Selektionsbild,


auf dem Sie eine Fluggesellschaft eingeben knnen. Details des
Flugs werden auf einer Liste ausgegeben. Aber die Liste ist
fehlerhaft: Sie zeigt nur die Fluggesellschaft. Darber hinaus
fehlen einige Drucktasten in der Drucktastenleiste.
Die Fehler sind bereits in einem Hinweis korrigiert. Hinweis
4273250## fgt fehlende Informationen auf der Liste hinzu.
Hinweis 4277060## fgt das fehlende Feld "Maximale
Belegung" in die Liste ein.
Korrigieren Sie die Fehler, indem Sie die relevanten Hinweise in
das System einspielen.

1-1 Rufen Sie den SAP Note Assistant auf.


1-1-1 Machen Sie sich mit dem User Interface vertraut.
1-1-2 Wofr stehen die Ikonen?
1-1-3 ndern Sie den Bearbeitungsstatus der zu Ihrer Gruppe ## gehrenden
Hinweise auf "In Bearbeitung".
1-1-4 Lesen Sie Hinweis 4273250## sorgfltig.

1-2 Untersuchen Sie, ob der Hinweis die von Ihnen entdeckten Fehler korrigiert.
1-2-1 Rekonstruieren Sie den Fehler im System. Starten Sie dazu das Programm
SAPBC426_##.
1-2-2 Ist der Hinweis fr Ihr System gltig? Schauen Sie dazu in der
Korrekturanleitung nach.
1-2-3 Welche Objekte werden mit dieser Korrekturanleitung korrigiert? In
welcher Modularisierungseinheit befinden sich diese?
1-2-4 An welchen Stellen im Programm werden die Korrekturen eingefgt?
Vergleichen Sie den in der Korrekturanleitung angegebenen Kontextblock
mit dem Quelltext des Programms.

SAP AG BC425 8-56


1-2-5 Nachdem Sie sichergestellt haben, dass der Hinweis die Programmfehler
korrigiert, knnen Sie ihn implementieren. Legen Sie dazu einen neuen
nderungsauftrag an.

1-3 In einem Dialogfenster werden alle Objekte angezeigt, die mit dem Hinweis
korrigiert werden.
1-3-1 Welche Bedeutung haben die Ampelsymbole?
1-3-2 Lassen Sie sich die nderungen im Splitscreen-Editor anzeigen.
1-3-3 Stellen Sie sicher, dass die korrigierten Objekte keine Syntaxfehler
beinhalten.
1-3-4 Fahren Sie mit der Implementierung fort.

1-4 Nachdem Sie die Korrekturen implementiert haben: Testen Sie das Programm
SAPBC426_## und stellen Sie fest, ob die ursprnglichen Fehler behoben sind.

1-5 Deimplementieren Sie Hinweis 4273250##


1-5-1 Besttigen Sie das Deimplementieren.
1-5-2 Welchen Implementierungsstatus hat der Hinweis in Ihrem Arbeitsvorrat
nach der Deimplementierung?
1-5-3 berprfen Sie, ob das Programm in seiner Ursprungsversion luft.

1-6 Implementieren Sie Hinweis 4277060##.


1-6-1 Lesen Sie den Hinweis sorgfltig. Stellen Sie sicher, dass der Hinweis die
von Ihnen entdeckten Fehler behebt.
1-6-2 Ist der Hinweis fr Ihr System gltig?
1-6-3 Welche Voraussetzungen gelten fr diesen Hinweis? Diese finden Sie im
Kopf der Korrekturanleitung.
1-6-4 Welche Objekte werden mit der Korrekturanleitung korrigiert?
1-6-5 Nachdem Sie sichergestellt haben, dass der Hinweis die Programmfehler
korrigiert, knnen Sie ihn implementieren.
1-6-6 In einem Dialogfenster wird Ihnen die Hinweis-Queue angezeigt. Lesen Sie
vorausgesetzten Hinweise und stellen Sie sicher, dass die Fehler korrigiert
werden.

1-7 Wurden die Fehlerkorrekturen korrekt durchgefhrt?


1-7-1 Fhren Sie das Programm SAPBC426_## aus.
1-7-2 Welche Schritte sind im dem Protokoll des Note Assistant enthalten? Fgen
Sie Ihre Kommentare hinzu.
1-7-3 Rufen Sie den Modification Browser auf. Hier sehen Sie alle durch
Hinweiskorrekturen korrigierten Objekte. Informieren Sie sich in der
Versionsverwaltung ber die von Ihnen durchgefhrten nderungen.

SAP AG BC425 8-57


1-8 Nachdem Sie sichergestellt haben, dass Sie alle Fehler korrigiert haben, ndern Sie
den Bearbeitungsstatus der Hinweise, die Sie bearbeitet haben, auf "Erledigt". Wo
finden Sie die Hinweise jetzt?

1-9 Geben Sie Ihren nderungsauftrag frei.

SAP AG BC425 8-58


bungen (optional)

Kapitel: Modifikationen
Thema: SAP Note Assistant: Modifizieren

Am Ende dieser bungen knnen Sie:


Programme modifizieren
berschriften modifizieren
Dynpros modifizieren

Das Programm SAPBC426_## bietet nicht alle Optionen, die in


Ihrem Unternehmen bentigt werden. Neben den angezeigten
Daten will Ihr Unternehmen auch die belegten Pltze neben der
maximalen Belegung sehen. Darum mssen Sie ein weiteres Feld
in die Liste aufnehmen und die entsprechende berschrift
erzeugen. Bei einem Doppelklick auf eine Listenzeile erhalten Sie
die Daten des entsprechenden Fluges in einem separaten Fenster.
Fgen Sie das neue Feld auf der Liste hinzu. Pflegen Sie die
berschrift. Erzeugen Sie zwei neue Felder auf dem Anzeige-
Dynpro fr die Flugdaten.
Beachten Sie, dass das Programm SAPBC426_## einen Fehler
enthlt: Das Anzeige-Dynpro fr die Flugdaten enthlt keien
"Zurck"-Taste, um den Bildschirm zu verlassen. SAP Hinweis
4274230## bietet einen Workaround. Dieser Hinweis wird in
der nchsten bung eingepflegt.

1-1 Modifizieren Sie das Programm SAPBC426_##:


1-2-1 Fgen Sie das Feld seatsocc zu der Liste hinzu. Sie finden die Ausgabe in
dem Unterprogramm display_flights.
1-2-2 Sichern Sie Ihre Modifikation. Prfen Sie das Programm.

1-2 Modifizieren Sie die Listenberschrift.


1-2-1 Fgen Sie in der berschrift den Text "Belegte Pltze" hinzu.
1-2-2 Sichern Sie die Modifikationen. Prfen Sie das Programm.

1-3 Modifizieren Sie ein Dynpro.


1-3-1 Das Dynpro, auf dem die Flugdaten angezeigt werden, ist Teil des
Programms SAPMBC425_##. Starten Sie den Object Navigator zum
Bearbeiten dieses Programms.
1-3-2 ndern Sie Dynpro 100: Fgen Sie das Feld fr die belegten Pltze hinzu
(Struktur SDYN_CONN00).
SAP AG BC425 8-59
1-3-3 Sichern Sie Ihre Modifikationen und aktivieren Sie das Dynpro.
1-3-4 Starten Sie das Programm und berprfen Sie, ob die von Ihnen
hinzugefgten Felder auf dem Dynpro erscheinen.
1-3-5 berprfen Sie im Modification Browser, ob Ihre Modifikationen korrekt
aufgezeichnet wurden.

1-4 Geben Sie Ihren nderungsauftrag frei.

SAP AG BC425 8-60


bungen (optional)

Kapitel: Modifikationen
Thema: SAP Note Assistant: Hinweise einpflegen II

Am Ende dieser bungen knnen Sie:


Hinweise halbautomatisch einpflegen
Korrekturen mit dem Split-screen Editor des Note Assistant
einpflegen.

Wenn Sie mehr als einen Flug auf der Ergebnisliste des
Programms SAPBC426_## auswhlen und "Buchungsliste"
whlen, erscheint eine Liste von Buchungen. Bedingt durch einen
Programmfehler werden allerdings keine Buchungen angezeigt.
Bei Doppelklick auf eine Zeile der Liste erscheint ein Dynpro mit
Flugdaten. Hier fehlt die "Zurck"-Taste.
Korrigieren Sie die Fehler durch Einpflegen eines Hinweises.

1-1 Lassen Sie sich Hinweis 4274230## anzeigen und lesen ihn sorgfltig. Werden
die von Ihnen entdeckten Fehler durch den Hinweis korrigiert?
1-1-1 Stellen Sie den Fehler im System nach.
1-1-2 Welche Objekte werden durch den Hinweis korrigiert?

1-2 Nachdem Sie sichergestellt haben, dass die Hinweiskorrekturen die Fehler
korrigiert, knnen Sie den Hinweis implementieren.
1-2-1 Ein Dialogfenster mit den zu korrigierenden Objekten erscheint. Was
bedeutet das gelbe Ampelsymbol? Wie fahren Sie fort?
1-2-2 Lassen Sie sich die nderungen im Split-screen Editor anzeigen.
Verwenden Sie den Editor, um manuell Blcke einzufgen. In der Online-
Hilfe zum Split-screen Editor erhalten Sie weitere Bedienhinweise.
1-2-3 Fgen Sie den einzufgenden Block an der richtigen Stelle ein.
1-2-4 Ist das Programm syntaktisch korrekt? Fahren Sie mit dem Implementieren
fort.
1-2-5 Da Sie manuelle nderungen vorgenommen haben, erscheint ein
zustzliches Dialogfenster zum Besttigen, dass der Hinweis komplett
implementiert wurde. Wozu ist das notwendig?

1-3 berprfen Sie die Protokolle fr die Hinweise. Welche Unterschiede gibt es
zwischen der Implementierung der Hinweise von bung 1 und bung 3?

1-4 Testen Sie das Programm. Sind die Fehler nun beseitigt?
SAP AG BC425 8-61
1-5 Nachdem Sie sichergestellt haben, dass alle Fehler korrigiert sind, ndern Sie den
Bearbeitungsstatus des Hinweises auf "Erledigt".

1-6 Geben Sie Ihren nderungsauftrag frei.

SAP AG BC425 8-62


bungen (optional)

Kapitel: Modifikationen
Thema: Modifikationsabgleich

Am Ende dieser bungen knnen Sie:


Modifikationen nach dem Einspielen von Support Packages
abgleichen

Sie haben Hinweise als Vorabkorrekturen in Ihr System


eingespielt. Auch haben Sie eigene Modifikationen
vorgenommen. Hinweise sind immer auch in Support Packages
enthalten und werden als Teil derselben ausgeliefert. Wenn Sie
ein Support Package einspielen, werden mglicherweise ein Teil
der Hinweiskorrekturen und Modifikationen berschrieben.
Darum mssen Sie einen Modifikationsabgleich durchfhren.

1-1 Starten Sie den Modifikationsabgleich ber SAP Men o ABAP Workbench o
Hilfsmittel o Wartung o Upgrade Utilities o Abgleich Programme oder
Transaktion SPAU.
1-1-1 Geben Sie Ihren Benutzernamen in das Feld "letzter nderer" ein. Fhren
Sie das Programm aus.
1-1-2 Schauen Sie sich die Objekte in den verschiedenen Kategorien an. Welche
Bedeutung haben die Ikonen?

1-2 Gleichen Sie die Modifikationen ab. Gehen Sie dabei von oben nach unten vor:
1-2-1 Beginnen Sie mit den Objekten in der Kategorie "Hinweiskorrekturen".
1-2-2 Falls der Abgleichmodus nicht bestimmt wurde, starten Sie die Berechnung
durch Doppelklick auf das Fragezeichen neu.
1-2-3 Legen Sie bei Bedarf einen neuen nderungsauftrag an.
1-2-4 Fahren Sie mit der Kategorie "Mit Modifikationsassistent" fort.
1-2-5 Bearbeiten Sie zum Schluss die Kategorie "Ohne Modifikationsassistent".

1-3 Nachdem Sie alle Objekte abgeglichen haben, geben Sie Ihren nderungsauftrag
frei.

SAP AG BC425 8-63


Lsungen

Kapitel: Modifikationen
Thema: Modifikationen durchfhren

1-1 Modifizieren von Objekten des R/3. Verwenden Sie den Modifikations-Assistenten.

1-2 Modifizieren des Programms SAPBC425_BOOKING_##.


1-2-1 Die berschrift knnen sie entweder direkt von der Liste ausgehend
(System Liste Listberschrift) oder aus dem Editor heraus ndern.
1-2-2 Sie knnen eine neue Variable direkt im SAP-Programm anlegen.
Verwenden Sie die Einfge-Funktion des Modifikations-Assistenten.
Idealerweise halten Sie die nderungen lokal im Unterprogramm
data_output. Geben Sie den Zhler mit aus.
Alternativ knnen Sie diese Funktionalitt auch in der Erweiterung
implementieren, was keine Modifikation verursachen wrde.
1-2-3 Lesen von zustzlichen Feldern LUGGWEIGHT und WUNIT der Tabelle
SBOOK und Ausgabe derselben auf der Liste:
Erweitern Sie das SELECT-Statement um diese beiden Felder. Geben Sie
die Felder im Unterprogramm data_output aus.

1-3 Modifizieren des Programms SAPBC425_FLIGHT##.


1-3-1 Zum ndern des Layouts des Dynpro 0100 verwenden Sie den Screen-
Painter.

1-4 Modifizieren des Datenelements S_CARRID##.


1-4-1 Rufen Sie die Pflegetransaktion fr Datenelemente auf. Stellen sie den
Cursor auf das entsprechende Objekt und whlen Sie die
Modifikationsikone. In dem folgenden Dialogfenster knnen Sie neuen Text
eingeben.
1-4-2 Whlen Sie die Drucktaste "Dokumentation" und erfassen Sie neuen Text.

1-5 Zum berprfen der Modifikation whlen Sie den Modification Browser
(Transaktion SE95). Schrnken Sie die Selektion ber den Benutzernamen oder
ber den nderungsauftrag/Aufgabe ein.

SAP AG BC425 8-64


Lsungen

Kapitel: Modifikationen
Thema: Modifikationsabgleich

1-1 Starten Sie den Patch Manager (Transaktion SPAM). Unter dem Menpfad Zustze
Modifikationen abgleichen rufen Sie die Transaktion SPAU auf. Hier knnen
Sie die Modifikationen abgleichen.

SAP AG BC425 8-65


Lsungen

Kapitel: Modifikationen
Thema: SAP Note Assistant: Hinweise einpflegen

1-1 Rufen Sie den SAP Note Assistant auf. Geben Sie dazu den Transaktionscode
SNOTE in das Eingabefeld ein.
1-1-1 Machen Sie sich mit dem User Interface vertraut. Untersuchen Sie dazu die
Meneintrge.
1-2-2 Wofr stehen die Ikonen? Unter Hilfsmittel o Farblegende erhalten Sie
nhere Informationen.
1-2-3 ndern Sie den Bearbeitungsstatus der zu Ihrer Gruppe ## gehrenden
Hinweise auf "In Bearbeitung". Dazu stellen Sie den Cursor auf den
Hinweis und whlen Hinweis o Bearbeitungsstatus setzen.
1-2-4 Lesen Sie Hinweis 4273250## sorgfltig. Dazu stellen Sie den Cursor auf
den Hinweis und whlen Hinweis o Hinweis anzeigen.

1-3 Untersuchen Sie, ob der Hinweis die von Ihnen entdeckten Fehler korrigiert.
Diese Information finden Sie im Hinweistext.
1-2-6 Rekonstruieren Sie den Fehler im System. Starten Sie dazu das Programm
SAPBC426_##, z.B. ber die Transaktion SA38.
1-2-7 Schauen Sie in der Korrekturanleitung nach, fr welche Release-Stnde und
Support Package Levels der Hinweis gltig ist.
1-2-8 Welche Objekte mit dieser Korrekturanleitung korrigiert werden und in
welcher Modularisierungseinheit sich diese befinden, entnehmen Sie der
Korrekturanleitung am Ende des Hinweises.
1-2-9 Um herauszufinden, an welchen Stellen im Programm die Korrekturen
eingefgt werden, vergleichen Sie den in der Korrekturanleitung
angegebenen Kontextblock mit dem Quelltext des Programms.
1-2-10 Sie starten die Implementierung des Hinweises, indem Sie den Cursor auf
die Hinweisnummer stellen. Danach whlen Sie Hinweis o
Hinweis einbauen. Legen Sie einen neuen nderungsauftrag an, wenn das
System Sie auffordert, einen nderungsauftrag einzugeben.

1-3 In einem Dialogfenster werden nun alle Objekte angezeigt, die mit dem Hinweis
korrigiert werden.
1-3-5 Die Bedeutung der Ampelsymbole:
Grne Ampel: Die Korrekturen knnen unverndert eingebaut werden.
Gelbe Ampel: Die Korrekturen knnen eingeschrnkt eingebaut werden.
Bevor Sie den Einbau besttigen, sollten Sie die Korrekturen anpassen, um
SAP AG BC425 8-66
eine korrekte bernahme der Objektnderungen zu gewhrleisten. Wenn
Sie auf den Objektnamen oder auf das Ampelsymbol klicken, gelangen Sie
in den Splitscreen-Editor, in dem Sie den Quelltext editieren knnen.
Rote Ampel: Die Objektnderungen knnen nicht bernommen werden.
1-3-6 Lassen Sie sich die nderungen im Splitscreen-Editor anzeigen, indem Sie
das Ampelsymbol klicken.
1-3-7 Stellen Sie sicher, dass die korrigierten Objekte keine Syntaxfehler
beinhalten, indem Sie die "Syntaxprfung der Rahmenprogramme"
durchfhren.
1-3-8 Fahren Sie mit der Implementierung fort.

1-4 Nachdem Sie die Korrekturen implementiert haben: Testen Sie das Programm
SAPBC426_## und stellen Sie fest, ob die ursprnglichen Fehler behoben sind.
Fhren Sie dazu das Programm nochmals aus.

1-5 Deimplementieren Sie Hinweis 4273250##. Whlen Sie dazu Hinweis o


Hinweiseinbau zurcknehmen
1-5-4 Besttigen Sie das Deimplementieren.
1-5-5 Der Hinweis hat den Status "Einbaubar" sowie "In Bearbeitung".
1-5-6 Starten Sie das Programm SAPBC426_## erneut.

1-6 Implementieren Sie Hinweis 4277060## analog zur obigen Vorgehensweise.


1-6-7 Lesen Sie den Hinweis sorgfltig. Stellen Sie sicher, dass der Hinweis die
von Ihnen entdeckten Fehler behebt.
1-6-8 Die Gltigkeit des Hinweises ist im Kopf der Korrekturanleitung
angegeben.
1-6-9 Welche Voraussetzungen fr diesen Hinweis gelten, finden Sie im Kopf der
Korrekturanleitung.
1-6-10 Welche Objekte mit der Korrekturanleitung korrigiert werden, finden Sie im
Kopf der Korrekturanleitung.
1-6-11 Nachdem Sie sichergestellt haben, dass der Hinweis die Programmfehler
korrigiert, knnen Sie ihn wie oben implementieren.
1-6-12 In einem Dialogfenster wird Ihnen die Hinweis-Queue angezeigt. Nachdem
Sie die vorausgesetzten Hinweise gelesen haben, knnen Sie mit dem
Einbau fortfahren.

1-7 Um zu analysieren, ob die Fehlerkorrekturen korrekt durchgefhrt wurden, starten


Sie das Programm.
1-7-4 Fhren Sie das Programm SAPBC426_## aus.
1-7-5 ber Springen o Protokoll lassen Sie sich das Einbauprotokoll anzeigen
lassen. Ihre Kommentare fgen Sie ber Notiz o Anlegen hinzu.
1-7-6 Rufen Sie den Modification Browser ber Umfeld o Modification Browser
auf. Hier sehen Sie alle durch Hinweiskorrekturen korrigierten Objekte. Die
Versionsverwaltung erreichen Sie ber Hilfsmittel o Versionen.

SAP AG BC425 8-67


1-8 ndern Sie den Bearbeitungsstatus der Hinweise ber Hinweis o
Bearbeitungsstatus setzen. Der Hinweis verschwindet aus der Liste und kann ber
den Hinweisbrowser angezeigt werden.

1-9 Geben Sie Ihren nderungsauftrag im Transport Organizer (Transaktion SE09)


frei.

SAP AG BC425 8-68


Lsungen

Kapitel: Modifikationen
Thema: SAP Note Assistant: Modifizieren

1-2 Modifizieren Sie das Programm SAPBC426_## wie folgt:


1-2-3 Fgen Sie das Feld seatsocc zu der Liste hinzu. Modifizieren Sie das
Unterprogramm display_flights.

FORM display_flights.

LOOP AT it_sflight INTO wa_sflight.

WRITE: / mark AS CHECKBOX INPUT ON,


wa_sflight-carrid,
wa_sflight-connid,
wa_sflight-fldate,
wa_sflight-price CURRENCY wa_sflight-currency,
wa_sflight-currency,
*{ REPLACE T70K904063 1
*\ wa_sflight-seatsmax.
wa_sflight-seatsmax,
wa_sflight-seatsocc.
*} REPLACE

ENDLOOP.

ENDFORM. " DISPLAY_FLIGHTS

1-2-4 Sichern Sie Ihre Modifikation. Prfen Sie das Programm.

1-2 Modifizieren Sie die Listenberschrift.


1-2-3 Pflegen Sie die berschrift, indem Sie auf der Liste System o Liste o
Listberschrift whlen.
1-2-4 Sichern Sie die Modifikationen. Prfen Sie das Programm.

1-3 Modifizieren Sie ein Dynpro.


1-4-1 Das Dynpro, auf dem die Flugdaten angezeigt werden, ist Teil des
Programms SAPMBC425_##. Starten Sie den Object Navigator zum
Bearbeiten dieses Programms.
1-4-2 ndern Sie Dynpro 100: Fgen Sie das Feld fr die belegten Pltze hinzu
(Struktur SDYN_CONN00, Feld SEATSOCC).
1-4-3 Sichern Sie Ihre Modifikationen und aktivieren Sie das Dynpro.
SAP AG BC425 8-69
1-4-4 Starten Sie das Programm und berprfen Sie, ob die von Ihnen
hinzugefgten Felder auf dem Dynpro erscheinen.
1-4-5 Starten Sie den Modification Browser aus dem Object Navigator ber
Umfeld o Modification Browser. Auf dem Selektionsbild geben Sie als
letzen nderer Ihren Benutzernamen ein.

1-4 Geben Sie Ihren nderungsauftrag im Transport Organizer frei.

SAP AG BC425 8-70


Lsungen

Kapitel: Modifikationen
Thema: SAP Note Assistant: Hinweise einpflegen II

1-1 Lassen Sie sich Hinweis 4274230## wie oben beschrieben anzeigen und lesen ihn
sorgfltig. Die Fehler werden durch den Hinweis korrigiert.
1-1-3 Stellen Sie den Fehler im System nach, indem Sie das Programm
SAPBC425_## starten.
1-1-4 Welche Objekte durch den Hinweis korrigiert werden, entnehmen Sie der
Korrekturanleitung. Sie finden diese am Ende des Hinweistextes.

1-2 Nachdem Sie sichergestellt haben, dass die Hinweiskorrekturen die Fehler
korrigiert, knnen Sie den Hinweis implementieren.
1-2-6 Ein Dialogfenster mit den zu korrigierenden Objekten erscheint. Das gelbe
Ampelsymbol bedeutet, dass Teile nicht automatisch eingebaut werden
knnen. Klicken Sie auf das Ampelsymbol, um in den Split-screen Editor zu
gelangen.
1-2-7 Stellen Sie den Cursor auf die Kopfzeile des einzufgenden Blocks in der
rechten Bildschirmhlfte. Whlen Sie "Markieren". Whlen Sie "Kopieren
in Puffer".
1-2-8 Stellen Sie den Cursor auf die Stelle in der linken Bildschirmhlfte, wo der
Block eingefgt werden soll. Whlen Sie "Einsetzen Puffer". Whlen Sie
"bernehmen".
1-2-9 Zurck auf dem Dialogfenster: Prfen Sie die Rahmenprogramme durch
Auswahl der entsprechenden Drucktaste. Das Programm sollte syntaktisch
korrekt sein. Fahren Sie mit dem Implementieren fort, indem Sie das Fenster
besttigen.
1-2-10 Da Sie manuelle nderungen vorgenommen haben, erscheint ein
zustzliches Dialogfenster zum Besttigen, dass der Hinweis komplett
implementiert wurde. Besttigen Sie das Dialogfenster mit "Ja". Falls Sie
"Nein" whlen, wird der Hinweis als inkonsistent eingebaut gekennzeichnet.

1-3 berprfen Sie die Protokolle fr die Hinweise: Stellen Sie den Cursor auf den
Hinweis und whlen Sie Springen Protokoll. Der manuelle Einbau wird
protokolliert.

1-4 Testen Sie das Programm. Die Fehler sollten nun beseitigt sein.

1-5 ndern Sie den Bearbeitungsstatus des Hinweises auf "Erledigt".

1-6 Geben Sie Ihren nderungsauftrag im Transport Organizer frei.

SAP AG BC425 8-71


Lsungen

Kapitel: Modifikationen
Thema: Modifikationsabgleich

1-1 Starten Sie den Modifikationsabgleich ber SAP Men o ABAP Workbench o
Hilfsmittel o Wartung o Upgrade Utilities o Abgleich Programme oder
Transaktion SPAU.
1-1-1 Geben Sie Ihren Benutzernamen in das Feld "letzter nderer" ein. Fhren
Sie das Programm aus.
1-1-2 Schauen Sie sich die Objekte in den verschiedenen Kategorien an. Die
Bedeutung der Ikonen entnehmen Sie bitte der Dokumentation des
Modifikationsabgleichs.

1-2 Gleichen Sie die Modifikationen ab. Gehen Sie dabei von oben nach unten vor:
1-2-6 Beginnen Sie mit den Objekten in der Kategorie "Hinweiskorrekturen".
1-2-7 Falls der Abgleichmodus nicht bestimmt wurde, starten Sie die Berechnung
durch Doppelklick auf das Fragezeichen neu.
1-2-8 Legen Sie bei Bedarf einen neuen nderungsauftrag an.
1-2-9 Fahren Sie mit der Kategorie "Mit Modifikationsassistent" fort.
1-2-10 Bearbeiten Sie zum Schluss die Kategorie "Ohne Modifikationsassistent".

1-3 Nachdem Sie alle Objekte abgeglichen haben, geben Sie Ihren nderungsauftrag
im Transport Organizer frei.

SAP AG BC425 8-72


Zusammenfassung

Inhalt:
z Zusammenfassung
z Bewertung der verschiedenen Erweiterungstechniken

SAP AG 2002

SAP AG BC425 9-1


Zusammenfassung: Lernziele des Kapitels

Am Ende dieses Kapitels knnen Sie:

z die wesentlichen Inhalte dieses Kurses


zusammenfassen
z beschreiben, wie Sie bei nderungen am SAP
Standard vorgehen sollten
z die Vor- und Nachteile von Modifikationen
aufzhlen
z die Alternativen zu Modifikationen nennen

SAP AG 2002

SAP AG BC425 9-2


Vermeidung des Abgleichs

z SAP Erweiterungskonzept:
zkeine nderung von SAP Objekten
zkein Abgleich whrend des Upgrades

z Einspielen von Support Packages via Online


Correction Services (OCS)

z Rckkehr auf den SAP Standard


Versionsdatenbank und Eintrge im WBO und
Transportsystem bleiben erhalten

SAP AG 1999

Unterlassen Sie mglichst nderungen an SAP-Objekten, damit kein Modifikationsabgleich


notwendig ist.
Mit dem Einsatz von Programmerweiterungen und Appends zu SAP-Tabellen haben Sie die
Mglichkeit, Erweiterungen an SAP-Objekten vorzunehmen, ohne da diese nderungen von der
SAP bei einem Upgrade berschrieben werden knnen.
Zur Vermeidung von manuell einzugebenden Vorabkorrekturen gibt es ab Release 3.0 Online
Correction Services, die das automatische Einspielen und Zurcknehmen von Hot Packages und
Patches ermglichen.

SAP AG BC425 9-3


Tabellenerweiterungen

ABAP
Dictionary Tabellendefinition YYFeld ZZFeld
Feld 1 Feld 2 Feld 3 Append-Struktur

Tabellendefinition YYFeld ZZFeld


Feld 1 Feld 2 Feld 3 CI_Incl CI_Include

Datenbank

Feld 1 Feld 2 Feld 3 YYFeld ZZFeld

SAP AG 1999

SAP bietet Ihnen zwei Mglichkeiten, Tabellen und Strukturen um Felder zu erweitern:
y Append-Strukturen
y Customizing-Includes ("CI-Includes")
Beide Techniken erlauben es, Felder an eine Tabelle anzuhngen, ohne die Tabelle selbst zu
modifizieren.
Eine Append-Struktur ist eine Struktur, die genau einer Tabelle zugeordnet ist. Es kann mehrere
Append-Strukturen zu einer Tabelle geben. Beim Aktivieren werden alle aktiven Append-Strukturen
zur Tabelle gesucht und an die Tabelle angehngt.
Append-Strukturen unterscheiden sich in der Art des Verweises zur zugehrigen Tabelle von
Include-Strukturen, zu denen auch die Customizing-Includes gehren. Um die Felder einer Include-
Struktur in eine Tabelle zu bernehmen, mu die Tabelle um eine Zeile der Form '.INCLUDE...'
erweitert werden. Der Verweis geht also in diesem Fall von der Tabelle aus. Eine Append-Struktur
hat dagegen einen Verweis zur zugehrigen Tabelle, welche selbst unverndert bleibt. Der Verweis
geht hier von der Append-Struktur aus.

SAP AG BC425 9-4


Funktionsbaustein-Exit: Ablaufdiagramm

Anwendungsprogramm

X-Funktionsgruppe

Exit-Funktionsbaustein
EXIT_<prog_name>_001

CALL CUSTOMER-FUNCTION

Include im
Kundennamensraum

SAP AG 1999

In diesem Bild ist der Ablauf eines Programmes dargestellt, das eine Erweiterung in Form eines
Funktionsbaustein-Exits anbietet.
An einer vom SAP-Anwendungsentwickler definierten Stelle im Quelltext wird der Exit-
Funktionsbaustein aufgerufen. Innerhalb des Funktionsbausteins kann der Verwender mit Hilfe eines
Includes im Kundennamensraum Funktionalitt hinzufgen.

SAP AG BC425 9-5


BTE Funktionsweise: Ablaufdiagramm

Anwendungsprogramm Aktive Implementierung

Funktionsbaustein
BTE:
OPEN_FI_PERFORM_<nr>
Funktionsbaustein im
Kundennamensraum

CALL FUNCTION

CALL FUNCTION

SAP AG 1999

In diesem Bild ist der Ablauf eines SAP-Programmes dargestellt. Das Programm enthlt eine
Erweiterung in Form eines Business Transaction Events. Im SAP-Programm wird ein
Funktionsbaustein aufgerufen, der die aktiven Implementierungen der Erweiterung ermittelt und
abarbeitet. Die Namen dieser Funktionsbausteine beginnen mit "OPEN_FI_PERFORM_" bzw.
"OUTBOUND_CALL_").
Der Funktionsbaustein OPEN_FI_PERFORM_<nr> oder OUTBOUND_CALL_<nr> ("Service-
Funktionsbaustein") ermittelt alle aktiven Implementierungen zu der entsprechenden Erweiterung
und stellt sie in eine interne Tabelle. Die Abarbeitung der so ermittelten Funktionsbausteine erfolgt
in der Reihenfolge, die durch diese interne Tabelle vorgegeben ist. Hier werden gegebenenfalls auch
etwaige Bedingungen bercksichtigt, unter denen der Funktionsbaustein im Kundennamensraum
abgearbeitet wird. Als Bedingung kann beispielsweise das Land oder die Applikation angegeben
werden. Diese Bedingungen werden auch als Filterwerte bezeichnet.

SAP AG BC425 9-6


Business Add Ins: Ablaufdiagramm
Anwendungsprog.
Service-Klasse
CL_EXITHANDLER

1 Abarbeiten aktiver
Implementierungen

Instanz von
BAdI-Klasse BAdI: Instanz von
<badi-class> Implement.
Implement. Klasse

SAP AG 2002

In diesem Bild ist der Ablauf eines Programmes dargestellt, das einen BAdI-Aufruf enthlt. Um die
Mglichkeiten und Grenzen von Business Add Ins zu verstehen, kann dieses Bild verwendet werden.
Nicht dargestellt: Im Deklarationsteil muss eine Referenzvariable mit Bezug auf das BAdI-Interface
deklariert sein.
In einem ersten Schritt wird eine Objektreferenz erzeugt. Das bernimmt die von SAP ausgelieferte
Service-Klasse CL_EXITHANDLER. Auf die genaue Syntax gehen wir auf einer anderen Folie ein.
Damit sind die Voraussetzungen geschaffen, um die Methoden der Programmerweiterung
aufzurufen.
Bei der BAdI-Definition wird die sogenannte BAdI-Klasse generiert, die das Interface
implementiert. In dem mit (2) gekennzeichneten Aufruf wird die Interface-Methode der BAdI-Klasse
aufgerufen. Die BAdI-Klasse sucht ihrerseits alle zu dem Business Add In vorhandenen aktiven
Implementierungen und ruft die implementierten Methoden auf.

SAP AG BC425 9-7


berblick Men-Exits

SAP Kunde

Menu 1 Menu 2 Menu 3 Menu 1 Menu 2 Menu 3


Function
Function11 Function
Function11
Function
Function22 Function
Function22
Function
Function33 Function
Function33
Kundenfunktion

SAP AG 1999

Men-Exits erlauben es ihnen, eigene Ablufe mit Meneintrgen in SAP-Mens zu verknpfen.


Der SAP-Anwendungsprogrammierer reserviert hierzu in der GUI-Oberflche bestimmte
Meneintrge. Sie knnen den Text zu einem reservierten Meneintrag spter selbst bestimmen.
Darber hinaus knnen Sie oft in einem dazugehrigen Funktionsbaustein-Exit auf die Auswahl
reagieren.
Die Men-Exits werden von ihnen aktiviert und sind ab diesem Zeitpunkt in dem SAP-Men
sichtbar. Beim Auswhlen des entsprechenden Menpunktes wird die vom SAP-
Anwendungsentwickler vorgesehene Funktionalitt abgespielt oder in einen Funktionsbaustein-Exit
verzweigt und damit die kundeneigene Funktionalitt abgespielt.

SAP AG BC425 9-8


BAdI: Funktionscodes - berblick

SAP Kunde

Menu 1 Menu 2 Menu 3 Menu 1 Menu 2 Menu 3


Function
Function11 Function
Function11
Function
Function22 Function
Function22
Function
Function33 Function
Function33
Kundenfunktion

SAP AG 1999

Analog zu Customer-Exits knnen sie auch bei Business Add Ins Men-Erweiterungen nutzen. Dazu
mssen folgende Voraussetzungen vorliegen:
y Der Entwickler des zu erweiternden Programms muss die Erweiterung vorgedacht haben.
y Die Men-Erweiterung muss in einer BAdI-Implementierung implementiert sein.

SAP AG BC425 9-9


berblick Dynpro-Exit

SAP Kunde

SAP R/3 SAP R/3

Feld 1 Feld 1 Feld Z


Feld 2 Feld 2

Feld X
Feld Y

SAP AG 1999

Dynpro-Exits erlauben en ihnen, vom SAP-Anwendungsprogrammierer reservierte Bereiche


(Subscreenbereiche) eines Hauptdynpros selbst zu gestalten. In diesen Bereichen knnen
weitergehende Informationen angezeigt oder Daten erfat werden. Die hierzu ntigen Felder werden
von ihnen auf einem kundeneigenen Dynpro (Subscreen) gestaltet.

SAP AG BC425 9-10


BAdI Screen-Erweiterung: Prinzip

SAP AnwProg Badi-Klasse Implement. Programm


SET INSTANCE
<badi-class> (Funktionsgruppe)
GET INSTANCE

PBO. GET DATA PBO.


PUT DATA

Statisches
Attribut:
Attribut:
Dynpro-
Dynpro-Instanz
abcd PAI.
PUT DATA
PAI.
GET DATA

PUT DATA GET DATA

Implement. Klasse

Instanz-Attribute:
Instanz-Attribute:
Dynpro-
Dynpro-Daten

SAP AG 2002

Die ABAP Virtual Machine kennt keine klassengebundenen Dynpros. Als Trger von Dynpros
knnen somit nur "klassische" Programme (Typ 1, F, M) verwendet werden. Dynpro-Erweiterungen
mssen diesen Umstand bercksichtigen.
Analog zu Customer-Exits reserviert der Anbieter bei BAdI-Dynpro-Erweiterungen auf dem Dynpro
des Anwendungsprogrammes einen Subscreen-Bereich, der mit einem Subscreen des
Implementierers belegt wird. Die Kommunikation erfolgt hier jedoch nicht mehr direkt zwischen
Anwendungsprogramm und Trgerprogramm des Subscreens. Sie erfolgt ber die generierte BAdI-
Klasse.
Auf den folgenden Graphiken wird diese Kommunikation Schritt fr Schritt abgebildet.

SAP AG BC425 9-11


Modifizieren vs. Kopieren

Anbindung Projekt-
an SAP sicherheit

Modifizieren Kopieren

SAP AG 1999

Modifizieren hat gegenber Kopieren den Vorteil, da Ihr produktives Repository-Objekt nicht den
Anschlu an den SAP-Standard verliert. Kopieren auf der anderen Seite hat den Vorteil, da kein
Modifikationsabgleich in den folgenden Upgrades fr Ihr produktives Repository-Objekt auftreten
wird.
Sie werden das Kopieren dem Modifizieren vorziehen, wenn
y Sie im SAP-Programm an vielen Stellen nderungen vornehmen mssen
y Ihre Anforderungen auch in zuknftigen R/3-Releases nicht mit dem Standard bereinstimmen
werden.
Beachten Sie beim Kopieren das Umfeld von Repository-Objekten. So mssen Sie die Entscheidung,
ob Sie modifizieren oder kopieren, nicht nur fr das Rahmenprogramm, sondern auch fr alle
Includes des Rahmenprogramms beantworten. Gleiches gilt Funktionsgruppen bzw.
Funktionsbausteine.

SAP AG BC425 9-12


Bewertung von ABAP Entwicklungsprojekten

z Fragen vor Entwicklungsprojekt: z Alternativen:

z Implementierungsaufwand? z Customizing
z Folgenabschtzung: z Personalizing
z Performance z Erweiterungstechniken:
z Aufwand beim Upgrade z Customer-Exits
z Business Transaction
Events
z Business Add Ins

SAP AG 1999

ABAP-Entwicklungsprojekte knnen nach folgenden Kriterien bewertet werden:


y Wie aufwendig ist die Implementierung, gemessen in Personentagen (Konzepterstellung,
Realisierung, Test)?
y Welche Folgen hat das ABAP-Entwicklungsprojekt fr
y die Performance des Produktivbetriebs
y den Aufwand beim Upgrade?
Rufen Sie SAP-Objekte in Ihrem Repository-Objekt, so knnen Sie Ihren Implementierungsaufwand
erheblich reduzieren. nderungen an Repository-Objekten durch SAP knnen aber nach dem
Upgrade zu Nacharbeit fhren. Beispiel: SAP ndert die Oberflchengestaltung eines Dynpros, fr
das Sie ein Batch-Input-Programm geschrieben haben.

SAP AG BC425 9-13


Namenskonventionen fr Repository-Objekte

Zentrale YA Anwendungs-
bereich
S AP
Filiale ZA
SAP Standard

zentral
Kundennamensraum
Software (gem Hinweis 16466)

dezentral
V_TRESN
Namensraumreservierung
durch Workbench Organizer

Entwicklung
SAP Partner
/xxxx/
Namensraumreservierung
durch SAPNet R/3 Frontend
Complementary
Software

SAP AG 2002

Durch die Einfhrung von Namenskonventionen vermeiden Sie Namenskonflikte und geben Ihren
Repository-Objekten sprechende Namen.
Folgende Namenskonflikte knnen auftreten:
Namenskonflikt von SAP Repository-Objekt und kundeneigenem Repository-Objekt
Repository-Objekte der SAP werden von kundeneigenen Repository-Objekten durch
Namenskonventionen abgegrenzt. Hinweis OSS 16466 liefert eine bersicht der aktuellen
Namenskonventionen aller Repository-Objekte (in der Regel Y oder Z am Anfang des Namens).
Namenskonflikt von kundeneigenen Repository-Objekten
In dezentralen Entwicklungsszenarien mit mehreren Entwicklungssystemen knnen
Namenskonflikte innerhalb der kundeneigenen Repository-Objekte auftreten. Diese kann der Kunde
durch die Reservierung von Namensrumen fr Entwicklungsbereiche innerhalb des
Kundennamensraums entschrfen. Durch Eintrge im View V_TRESN kontrolliert der Workbench
Organizer die Einhaltung der Namensrume.
Namenskonflikt von Complementary Software und kundeneigenen Repository-Objekten
Namenskonflikte durch das Einspielen von Complementary Software von SAP Partnern knnen nur
durch Reservierung von Namensrumen im SAP OSS gelst werden. Dazu kann der SAP- Partner ab
Release 4.0 einen Namensprfix im SAP OSS beantragen, den er all seinen Repository- Objekten
voranstellt (OSS Hinweise 84282 und 91032, White Paper Entwicklungsnamensrume im R/3-
System, Bestellnummer E:50021723 bzw. D:50021751).

SAP AG BC425 9-14


Zusammenfassung: Zusammenfassung des Kapitels

Sie knnen nun:


z die wesentlichen Inhalte dieses Kurses
zusammenfassen
z beschreiben, wie Sie bei nderungen am SAP
Standard vorgehen sollten
z die Vor- und Nachteile von Modifikationen
aufzhlen
z die Alternativen zu Modifikationen nennen

SAP AG 2002

SAP AG BC425 9-15


Anhang

Inhalt:
z Zustzliche Folien
z Menpfade

SAP AG 1999

SAP AG BC425 10-1


Feld-Exits: Lernziele

Nach Behandlung dieses Themas knnen Sie:

z Feld-Exits fr Prfungen auf ein Dynpro-Feld


verwenden

SAP AG 2002

SAP AG BC425 10-2


Globale Erweiterungen

SAP Kunde

Globale
Datenelement Erweiterungen
definieren definieren

Datenelement Feld-Exit anlegen


dokumentieren

SAP AG 1999

Der SAP-Anwendungsprogrammierer legt bei der Definition eines Datenelements Schlsselwrter in


verschiedenen Lngen und einen Kurztext fest.
In der Projektverwaltung knnen Sie Feld-Exits anlegen. Diese werden durchlaufen, wenn ein
Dynpro verlassen wird, das ein Feld enthlt, welches sich auf ein Datenelement bezieht, das
wiederum diesen Feld-Exit enthlt.

SAP AG BC425 10-3


Feld-Exits

ABAP Dictionary

Abflugstadt___
Ankunftstadt__

? Prfung

FUNCTION FIELD_EXIT_...
Feldformat- * IMPORTING INPUT *
Prfung * EXPORTING OUTPUT *
****************************

MESSAGE E035(bc425).
FELD-EXIT
ENDFUNCTION.

SAP AG 1999

SAP ermglicht Ihnen, zu jedem eingabebereiten Dynprofeld mit Bezug auf das ABAP Dictionary
einen Feld-Exit anzulegen. Die zustzliche Programmlogik wird in einem Funktionsbaustein
hinterlegt und zu einem bestimmten Zeitpunkt bei PAI durchlaufen.
Die Grafik verdeutlicht die Reihenfolge der Abarbeitung: Bevor die bei PAI des Dynpros definierten
Module ausgefhrt werden, werden systemseitig Prfungen durchgefhrt: Zunchst prft das
System, ob alle Muss-Felder ausgefllt sind. Ist ein Muss-Feld leer, wird der Bildschirm wieder
gesendet.
Als nchstes prft das System, ob die Eingaben im richtigen Format gettigt wurde.
Im nchsten Schritt werden alle Feld-Exits abgearbeitet. Hier knnen Sie zum Beispiel durch Senden
einer Fehlermeldung erreichen, dass das Dynpro nochmals gesendet wird.
Nach erfolgreichem Verlassen aller Feld-Exits werden die weiteren Schritte wie gewohnt
abgearbeitet
y Feld-Transport
y Fremdschlssel-Prfung
y Abarbeiten der PAI-Module des Dynpros.

SAP AG BC425 10-4


Globale und lokale Feld-Exits

Program one

FIELD_EXIT_GLOB
Abflugstadt___
Datenelement Ankunftstadt__
GLOB

Program two

Fluggesellschaft_
FIELD_EXIT_
Abflugstadt___
Ankunftstadt__
LOC_1
Program three
Datenelement
Abflugstadt___ LOC

Nichtraucher
Raucher
egal
FIELD_EXIT_LOC_2

SAP AG 1999

Feld-Exits sind Verzweigungen von einem Dynprofeld mit Datenelementbezug in einen


Funktionsbaustein. Diese Verzweigungen knnen global oder lokal gelten:
Globale Feld-Exits sind nicht auf ein Dynpro beschrnkt: Gibt es mehrere Dynpros mit Feldern, die
sich auf dasselbe Datenelement beziehen, wird nach Aktivierung des Feld-Exits bei all diesen
Dynpros in einen Funktionsbaustein verzweigt. Dort kann z.B. der Feldinhalt verarbeitet werden,
durch Ausgeben einer Fehlermeldung (E-Message) eine erneute Eingabe erzwungen werden oder
bestimmten Benutzern durch Prfen der Berechtigung das Verlassen des Dynpros verweigert
werden.
Im Gegensatz dazu wirken lokale Feld-Exits jeweils auf ein Dynpro beschrnkt. Wird ein Dynpro
einem Feld-Exit zugeordnet, so wird nur auf diesem Dynpro nach Aktivierung des Feld-Exits in den
entsprechenden Funktionsbaustein verzweigt.
Sie knnen entweder einen globalen oder bis zu 36 lokale Feld-Exits zu einem Datenelement
anlegen, aber nicht beides.
Die Funktionsbausteine, die fr einen Feld-Exit angelegt werden, unterliegen folgender
Namenskonvention:
y Prfix: FIELD_EXIT_
y Infix: <Datenelement-Name>
y Suffix (bei lokalen Feld-Exit): _0 bis _9, _A bis _Z

SAP AG BC425 10-5


Anlegen eines Feld-Exits
z Programm RSMODPRF starten

z Feld-Exit Anlegen
Function Builder

Funktionsbaustein__ FIELD_EXIT_<DE>

Anzeigen ndern Anlegen


Function Builder

Funktionsbaustein__ FIELD_EXIT_<DE>
Import Parameter
INPUT

Export Parameter
OUTPUT
SAP AG 1999

Zum Anlegen von Feld-Exits whlen sie in der ABAP Workbench das Men Hilfsmittel. Dort finden
Sie unter "Erweiterungen" den Unterpunkt "Projektverwaltung", der als Einstieg sowohl zum
Bearbeiten von Feld-Exits, als auch spter zum Implementieren von Customer-Exits fungiert.
Hier finden Sie unter "Springen Globale Erweiterungen Feldexits" die Transaktion zum
Pflegen von Feld-Exits. Legen Sie einen Feld-Exit an ber "Feld-Exit Anlegen".
In dem nun erscheinenden modalen Dialogfenster geben sie den Namen des Datenelements an, auf
das sich das von ihnen betrachtete Dynpro-Feld bezieht. Sie gelangen in den Function Builder. Das
System gibt den Namen des Feld-Exits vor. ndern sie diesen Vorschlag nicht. Legen Sie den
Funktionsbaustein in einer Kunden-Funktionsgruppe an.
Die Schnittstelle des Funktionsbausteins ist fest vorgegeben und nicht nderbar. Der
Funktionsbaustein hat einen Importparameter INPUT und den Exportparameter OUTPUT. Dem
Parameter INPUT wird der Inhalt des Dynpro-Feldes zugewiesen. Beim Verlassen des
Funktionsbausteins wird der Inhalt von OUTPUT in das Dynpro-Feld zurckgestellt.

SAP AG BC425 10-6


Feld-Exit: Quelltext

Quelltext

FUNCTION field_exit_<DE>.
...
output = input
ENDFUNCTION.

z In Feld-Exits nicht erlaubte Anweisungen:


z BREAK-POINT
z CALL ..., SUBMIT
z COMMIT WORK / ROLLBACK WORK
z STOP, REJECT
z Message I, Message W

SAP AG 1999

Dem Export-Parameter OUTPUT des Funktionsbausteins mu im Quelltext ein Wert zugewiesen


werden, der zu dem Dynpro-Feld zurcktransportiert wird. Ansonsten wre das Dynpro-Feld nach
Durchlaufen des Feld-Exit initial.
Folgende ABAP-Anweisungen in einem Funktionsbaustein eines Feld-Exits nicht erlaubt:
- CALL SCREEN, CALL DIALOG, CALL TRANSACTION, SUBMIT
- COMMIT WORK, ROLLBACK WORK
- COMMUNICATION RECEIVE
- EXIT FROM STEP-LOOP
- MESSAGE I, MESSAGE W
- STOP, REJECT
Beim Debuggen eines Dynpros, auf welches sich ein Feld-Exit bezieht, wird der Feld-Exit nicht im
Debugger durchlaufen. Wie jeden anderen Funktionsbaustein auch kann man allerdings einen Feld-
Exit in der Testumgebung des Function Builder debuggen.

SAP AG BC425 10-7


Lokaler Feld-Exit

Feld-Exits zu den Datenelementen


Prog/Dynp. zuordnen

Data Element Feld-Exits


Status zu den Datenelementen
Programm
<Data Element> inaktivDatenelement
global <Data Element>

Feld-Exit Programm-Name Dynpro


1 <program_name> 0100

Function Builder

Funktionsbaustein__ FIELD_EXIT_<DE>_1

Anzeigen ndern Anlegen

SAP AG 1999

Sie knnen die Wirkung eines Feld-Exits auf ein Dynpro beschrnken. Legen sie dazu einen lokalen
Feld-Exit an. Voraussetzung ist, dass schon ein globaler Feld-Exit existiert. Ausgehend von diesem
bearbeiten sie den lokalen Feld-Exit.
Sie knnen bis zu 36 lokalen Feld-Exits anlegen, die jeweils durch einen einstelligen Suffix
voneinander unterschieden werden. Das System schlgt Ihnen den entsprechenden Namen fr den
Funktionsbaustein vor, den sie unverndert bernehmen.
Durch das Definieren von lokalen Feld-Exits wird der Funktionsbaustein des zunchst angelegten
globalen Feld-Exits nicht mehr verwendet. Aus technischen Grnden drfen sie diesen jedoch nicht
lschen. Unter anderem wrde beim Lschen des globalen Funktionsbausteins der Feld-Exit aus der
Liste der im System vorhandenen Feld-Exits gelscht.

SAP AG BC425 10-8


Feld-Exit aktivieren

z Funktionsbaustein aktivieren

Function Builder

Funktionsbaustein__ FIELD_EXIT_<DE>

Anzeigen ndern Anlegen

z Feld-Exit aktivieren
Feld-Exit
...
...
Feld-Exits zu den Datenelementen
Aktivieren
Aktivieren
...
...
Data Element Status Programm
<Data Element> inaktiv global

SAP AG 1999

Neben dem Funktionsbaustein mssen Sie auch den Feld-Exit aktivieren. Beachten sie, da Feld-
Exits nur dann bei der Dynprogenerierung bercksichtigt werden, wenn der R/3-Profilparameter
abap/fieldexit = YES auf allen Applikationsservern gesetzt ist. (Standardmssig ist dieser
Profilparameter auf 'NO' gesetzt.)
Falls Sie fr mehrere Dynprofelder je einen Feld-Exit vereinbaren, knnen Sie keine Annahmen
ber die Reihenfolge der Abarbeitung machen. Insbesondere ist es nicht mglich, in einem Feld-
Exit auf Inhalte anderer Dynprofelder zurckzugreifen.
Bitte beachten Sie zu Feld-Exits auch Hinweis 29377.

SAP AG BC425 10-9


Append-Suchhilfen: Lernziele

Nach Behandlung dieses Themas knnen Sie:

z Append-Suchhilfen anlegen, um eigene


Suchpfade zu definieren
z Append-Suchhilfen anlegen, um ausgelieferte
Suchpfade auszublenden

SAP AG 2002

SAP AG BC425 10-10


Append-Suchhilfen

Append
(SAP) Sammelsuchhilfe

Inkludierte Suchhilfen Inkludierte Suchhilfen

... ...

(Kunden-) Append-
Suchhilfe

SAP AG 2002

Die Menge der fr ein Objekt sinnvollen Suchpfade hngt stark von den besonderen Gegebenheiten
beim jeweiligen SAP-Kunden ab. Daher besteht oft der Wunsch, Sammelsuchhilfen des SAP
Standards um eigene elementare Suchhilfen zu erweitern. Ab Release 4.6 steht eine Appendtechnik
zur Verfgung, die die modifikationsfreie Erweiterung von Sammelsuchhilfen erlaubt.
Eine Append-Suchhilfe ist eine Sammelsuchhilfe, die einer anderen Sammelsuchhilfe (ihrer
Appendierenden) fest zugeordnet ist und diese um die in sie inkludierten Suchhilfen erweitert. Die
Append-Suchhilfe bernimmt die Schnittstelle ihrer Appendierenden.
Die Append-Suchhilfe liegt dabei im Namensraum des Kunden. Im Normalfall werden die in die
Append-Suchhilfe inkludierten Suchhilfen ebenfalls vom Kunden angelegt und liegen in dessen
Namensraum. Es ist aber auch mglich, da die bentigte elementare Suchhilfe schon von SAP
bereit gestellt ist und vom Kunden nur noch in seine Append-Suchhilfe aufgenommen werden mu.
Innerhalb der SAP werden Append-Suchhilfen benutzt, um eine bessere Komponententrennung zu
erreichen. Einige SAP-Sammelsuchhilfen besitzen daher bereits im Standard eine oder mehrere
Append-Suchhilfen. Kundenerweiterungen sollten aber immer durch das Anlegen einer eigenen
Append-Suchhilfe vorgenommen werden.
SAP-Sammelsuchhilfen beinhalten oft elementare Suchhilfen, die nicht von allen Kunden bentigt
werden. Die nicht bentigten Suchhilfen knnen mit Hilfe einer Append-Suchhilfe ausgeblendet
werden. Dazu mu die entsprechende Suchhilfe in die Append-Suchhilfe aufgenommen werden,
wobei das Kennzeichen ausgeblendet zu setzen ist.

SAP AG BC425 10-11


Business Data Toolset: Lernziele

Nach Behandlung dieses Themas knnen Sie:

z Beschreiben, welche Erweiterungsmglichkeiten


das Business Data Toolset bietet

SAP AG 2002

SAP AG BC425 10-12


Business Data Toolset (BDT)

z Definition:

Toolset fr Stammdaten und einfache Bewegungsdaten


z Designziele

- Erweiterbarkeit
- Konfigurierbarkeit
- Teilbarkeit
- Alternative Benutzungsoberflchen
- Verwendbarkeit
- Schnellere Entwicklung
- Generische Objektservices

SAP AG 2002

Das BDT (Business Data Toolset) stellt ein zentrales Steuerungswerkzeug fr die Pflege von
Stammdaten und einfachen Bewegungsdaten dar. Zustzlich zur Dialogpflege untersttzt das BDT
auch die Pflege ber Direct Input und/oder Funktionsbausteine.
Das BDT stellt auerdem generische Objektservices fr konsistente wiederkehrende Anforderungen
wie z.B. die nderung von Beleglisten, Feldmodifikationen sowie das Lschprogramm bereit. Das
BDT steuert diese Objekte sowie generische Teile davon und ruft die Anwendungen mit Hilfe von
vordefinierten Schnittstellen (Steuerungstabellen und Zeitpunkte) auf. Die jeweiligen Anwendungen
fhren anwendungssspezifische Erweiterungen, wie z.B. das Schreiben und Lesen von
Anwendungstabellen der Datenbank, durch.
Anmerkung: Das BDT wird bei SAP fr die Pflege mehrerer Anwendungsobjekte verwendet.
Entwicklungspartner und Kunden knnen diese Anwendungsobjekte ber die BDT-Schnittstellen
ebenfalls modifikationsfrei erweitern. So ist es aber auch mglich, komplett eigene
Anwendungsobjekte mit Hilfe des BDT zu erstellen. Eigenentwicklungen von Entwicklungspartnern
und Kunden werden jedoch hinsichtlich der BDT-Technologie nicht untersttzt, da es sich hierbei
nicht um ein Entwicklungstool der ABAP Workbench handelt.
Das BDT entstand aus dem Projekt Zentraler Geschftspartner. Zunchst wurde die notwendige
Technik in einem gemeinsamen Programm mit den Anwendungsdaten zum Geschftspartner
entwickelt. Sehr schnell stellte sich aber heraus, dass nicht nur der zweite Teil dieses Projektes - die
GP-Beziehungen - die gleichen technischen Anforderungen an die Datenpflege stellte, sondern
darber hinaus auch weitere Anwendungsobjekte. Aus diesem Grund entschloss sich die
Projektgruppe Geschftspartner, den Technikteil von den Anwendungsdaten zu trennen und diese
Technik auch anderen Anwendungsobjekten zur Verfgung zu stellen. Dieser technische Teil, der
lange Zeit GP-Steuerung bzw. Stammdatensteuerung hie, trgt mittlerweile den Namen Business
Data Toolset, abgekrzt BDT.

SAP AG BC425 10-13


Erweiterbarkeit: Modifikationsfreie Erweiterung verschiedener Dialogteile, z.B. Bildaufbau,
Bildfolge, Programmlogik, Men, Feldmodifikation usw. durch mehrere Schichten.
Konfigurierbarkeit: Anpassen von Bildaufbau und Bildfolge knnen durch Anwendungsentwickler
(Pflege der Steuertabellen des BDT) bzw. Kunden (Visual Configuration Tool)
Teilbarkeit: Pflege groer Objektteile kann in Teile zerlegt werden.
Alternative Benutzerobeflchen: Im BDT sind Oberflche und Programmlogik getrennt. Die
Programmlogik der Anwendung liegt komplett in den Funktionsbausteinen. Diese werden an
definierten Zeitpunkten aufgerufen. Dadurch kann die SAP GUI Oberflche durch eine andere
Oberflche ersetzt werden.
Verwendbarkeit: Neben dem SAP-Geschftspartner knnen weitere Anwendungsobjekte die
Vorteile des BDT nutzen. Verschiedene Anwendungsobjekte haben gleiche Designziele.
Schnellere Entwicklung: Die Dialogsteuerung erfolgt durch das BDT. Die betriebswirtschaftlichen
Funktionen werden von den Anwendungen realisiert. Darber hinaus bietet das BDT einige Services,
in die sich die Anwendungen einbinden knnen.
Generische Objektservices: Direct Input, bernehmen Modus, Feldsteuerung, usw.

SAP AG BC425 10-14


Entwicklung: Ohne BDT

Bearbeitungs- Daten-
transaktionen bernahme

Feld- nderungs-
modifi- Service belegaus-
kation wertungen

Berechti-
Notizen
gungen

SAP AG 2002

Bei einem Entwicklungsprojekt ebenso wie in einem Implementierungsprojekt bentigen Sie stets
dieselben Funktionen. Die SAP-Basis stellt Servicefunktionen zur Verfgung, die allermeisten
Funktionen mssen jedoch noch entwickelt werden.
Beispiele hierfr sind die Feldmodifikation, die nderungsbelegauswertung sowie die
Dynproprfung aus dem ABAP Dictionary.

SAP AG BC425 10-15


Schnellere Entwicklung: Mit BDT

-
ngs Da
u n te
beit ione n b
ar kt er
Be nsa n .
tra
Feldmodifikation

nderungsbel.-
Auswert.
Service

Be
rec
hti n
gu ti ze
ng N o
en

zentrale
zentrale Pflege
Pflege
geringerer
geringerer Entwicklungsaufwand
Entwicklungsaufwand
SAP AG 2002

Da das BDT Dialogprozesse steuert, beschrnken sich die Anwendungen auf die Realisierung
betriebswirtschaftlicher Funktionen. Das BDT stellt auerdem Services bereit, in denen
Anwendungen integriert werden knnen. Diese Faktoren fhren zu einer erheblichen Verringerung
der Entwicklungszeit.
Die Anwendungen verlieren einen kleinen Teil an Individualitt, erhalten aber dadurch den Vorteil
geringerer Objektpflege, einheitliche Dialoge, generische Objektservices sowie eine schnellere
Entwicklung.

SAP AG BC425 10-16


Verwendbarkeit bei beliebigen Objekten

Weitere...
SAP-GP AnwObjekt
AnwObjekt
BUPA

BDT
SAP-GP-
Beziehungen Claims
AnwObjekt Capture
BUPR AnwObjekt
ICL
Bank- IS-RE-
konto Vertrags- Vertrag
AnwObjekt konto AnwObjekt
BKK AnwObjekt RECN
FICA

SAP AG 2002

Im folgenden finden Sie einige Beispiele fr Objekte, die mit Hilfe von BDT entwickelt wurden.
Central Business Partner
y Partner maintenance
y Relationship maintenance
Contract Accounts Receivable and Payable
y Contract account
IBU Banking
y Bank account
y Standing order
y Financial product
y Financial conditions
y Risk object
y Variable transactions
IBU Insurance
y Insurance: Claims
y Insurance: Loss event
y Commissions: Remuneration agreements
IS-RE
y Real estate contract
y Cost efficiency analysis

SAP AG BC425 10-17


Zeitpunkte, Ablauf

Einstiegsbild Datenbild

DTITL DTITL
DCUAD DCUAC DCUAD DCUAC
ISDAT
Vor d. Ausgabe ISDST Vor d. Ausgabe A
Vor d. Vor d.
ISSTA Aufruf Call Subscreen AUTH1 Aufruf Call Subscreen
Start
Call Subscreen Call Subscreen
Nach d. Eingabe Nach d.Eingabe

FCODE FCODE

Sichern Zurck Beenden Abbrechen

XCHNG XCHNG XCHNG XCHNG

nein nein nein nein


nderung? nderung? nderung? nderung?

ja ja ja ja

DSAVB . Wollen Sie nein


Abbr. Abbr.
. Wollen Sie nein Wollen Sie ja
sichern? sichern? abbrechen?
AUTH1
ja ja nein
DCHCK A A
DTAKE DSAVB DSAVB A
DSAVC AUTH1 AUTH1
DSAVE DCHCK DCHCK
DTAKE DTAKE
DSAVC DSAVC
DSAVE DSAVE

DLVE1
DLVE2

Bild 1: Zeitpunkte beim Dialog: Sichern-


Modus Ende

SAP AG 2002

Innerhalb des Programmablaufs werden vom BDT definierte Zeitpunkte verwendet, fr die die
Anwendungen separate Programmlogik in Form von Funktionsbausteinen entwickeln knnen. Die
Funktionsbausteine knnen fr jeden Zeitpunkt definiert werden; das BDT ruft diese Bausteine
dynamisch auf.
Ausgangspunkt ist ein normaler Transaktionscode. Der Transaktionscode fhrt stets dasselbe
Programm (in GP BUSSTART) aus. Das BDT liest zusammen mit dem Namen des
Transaktionscodes alle erforderlichen Informationen in den Steuerungstabellen.
Der Programmablauf ist fest definiert. Alle Funktionsbausteine, die zum ausgefhrten Objektteil
gehren, werden in den jeweiligen Zeitpunkten dynamisch aufgerufen.

SAP AG BC425 10-18


BDT-Entwicklung und Development Workbench

Funktions-
Funktions- Funktionsbausteine
gruppe
gruppe

ISSTA
ISDAT Zeitpunkte je
Anwendung
ISDST
...

Programmlogik
GET Zeitpunkte je
Dynpros PBO-Modul Tabelle
Collect

0010 Erstkontakt PBO ...


...
..._PBC
..._PBC_..
_..
Zeitpunkte je
PAI-Modul ..._PBO
..._PBO_..
_..
Sicht
PAI ..._PAI
..._PAI_..
_..
...
...
SAP AG 2002

Jede Anwendung entwickelt innerhalb einer eigenen Funktionsgruppe.


In der Funktionsgruppe werden Dynpros (Subscreens), PBO- und PAI-Module sowie
Funktionsbausteine zu den Zeitpunkten (je Anwendung, je Tabelle und je Sicht) erstellt.
Das PBO-Modul ruft nur einen BDT-Servicefunktionsbaustein zur Ausfhrung des Feldstatus auf.
Das PAI-Modul ruft nur einen BDT-Servicefunktionsbaustein zum Holen der Cursorposition auf.
Programmlogik:
y Zeitpunkte je Anwendung (Lesen, berprfen, Sichern von Daten)
y Zeitpunkte je Tabelle (Kommunikation zwischen Anwendungen / Funktionsgruppen)
y Zeitpunkte je Sicht
A) PBC - Zeitpunkt zur Vorbereitung von Tabellen (Sortierung, )
B) PBO - Zeitpunkt vor der Eingabe (Lesen von Textbeschreibungen aus Customizingtabellen, )
C) PAI - Zeitpunkt nach der Eingabe (Prfen der Eingabewerte, )
y Anmerkung: Im Pflegemodus ohne Dialog (z.B. Direct Input) wird das gleiche Coding ausgefhrt.
Eine redundante Programmierung entfllt

SAP AG BC425 10-19


Anhang bungen

Kapitel: Anhang
Thema: Feld-Exits

Am Ende dieser bungen knnen Sie:


Einen Feld-Exit implementieren, mit dessen Hilfe Sie
zustzliche Prfungen auf einem Dynpro-Feld durchfhren
knnen.

Die von Ihren Anwendern zur Anzeige von Flgen genutzte


Transaktion BC425_## ermglicht den Zugriff auf die Flge
aller Fluggesellschaften. Die Kundenbetreuer sollen jedoch nur
auf die Fluggesellschaften Zugriff haben, fr die sie explizit die
Berechtigung besitzen.

Wie heit das Programm zur oben genannten Transaktion.


1-1-1 Welchen Namen hat das Datenelement, auf das sich das Eingabefeld fr die
Fluggesellschaft bezieht?
1-1-2 Sind die Voraussetzungen gegeben, damit Sie an dieses Dynpro-Feld einen
Feld-Exit knpfen knnen?

1-2 Wie legen Sie einen Feld-Exit an?


1-2-1 Legen Sie einen Feld-Exit zu dem unter 1-1 ermittelten Dynpro-Feld an.
Beziehen Sie sich auf das entsprechende Datenelement.
1-2-2 Sie gelangen in den Function Builder. Knnen Sie die Schnittstelle des
Funktionsbausteins verndern? Falls Sie eine Funktionsgruppe bentigen,
legen Sie eine an mit dem Namen ZBC425_##.
1-2-3 Was mssen Sie im Quelltext unbedingt codieren? Programmieren Sie eine
Berechtigungsprfung. Wie knnen Sie eine Berechtigungsprfung
durchfhren?
1-2-4 Bei negativem Prfungsausgang senden Sie eine entsprechende Nachricht.
Sie knnen diese selbst anlegen (Nachrichtenklasse ZBC425_##); oder Sie
verwenden Nachricht 010 aus der Nachrichtenklasse BC425.
1-2-5 Aktivieren Sie den Funktionsbaustein und den Feld-Exit.

SAP AG BC425 10-20


1-3 berprfen Sie das Ergebnis Ihrer Arbeit
1-3-1 Fr welche Fluggesellschaft(en) haben Sie keine Berechtigung?

1-4 Legen Sie basierend auf dem globalen Feld-Exit einen lokalen Feld-Exit fr Dynpro
0100 der Transaktion BC425_## an.
Verwenden Sie einen zweiten Modus! Dieser ist
insbesondere sinnvoll zum parallelen Anlegen von
Funktionsgruppen.

SAP AG BC425 10-21


Lsungen

Kapitel: Anhang
Thema: Feld-Exits

Einen Feld-Exit implementieren, mit dessen Hilfe Sie zustzliche


Prfungen auf einem Dynpro-Feld durchfhren knnen.

Die von Ihren Anwendern zur Anzeige von Flgen genutzte Transaktion
BC425_## ermglicht den Zugriff auf die Flge aller
Fluggesellschaften. Die Kundenbetreuer sollen jedoch nur auf die
Fluggesellschaften Zugriff haben, fr die sie explizit die Berechtigung
besitzen.

1-1 Der Name des Programms zur Transaktion BC425_## lautet


SAPBC425_FLIGHT##. Sie erhalten diese Information ber den Menpfad
System Status.
1-1-1 Der Name des Datenelements, auf das sich das Eingabefeld fr die
Fluggesellschaft bezieht, lautet S_CARRID##. Sie erhalten ihn, indem Sie
auf dem entsprechenden Dynpro den Cursor auf das Feld "Fluggesellschaft"
stellen. Dort whlen Sie F1, auf dem folgenden Dialogfenster Technische
Info.
1-1-2 Um ganz sicher zu gehen, da die Voraussetzungen erfllt sind, verzweigen
Sie in den Screen-Painter fr Dynpro 0100. Dort sehen Sie in den
allgemeinen Attributen der Elementliste, da fr das Feld SFLIGHT00-
CARRID das Attribut "Dictionary" gesetzt ist.

1-2 Einen Feld-Exit legen Sie ber das Programm RSMODPRF an Starten Sie das
Programm. Lassen sie das Selektionsbild initial. Ausfhren fhrt Sie auf die Liste
der existierenden Feld-Exits.
1-2-1 Whlen Sie hier im Men Feldexit Anlegen. Geben Sie im nun
erscheinenden Dialogfenster als Datenelement-Name S_CARRID ein und
whlen Sie "Weiter". Sie gelangen in den Function Builder.
1-2-2 Sie gelangen in den Function Builder. Der Name des Funktionsbausteins ist
im Eingabefeld bereits vorgegeben. Mit "Anlegen" wird der
Funktionsbaustein angelegt.
Sie mssen den Funktionsbaustein einer Funktionsgruppe
zuordnen. Legen Sie in einem zweiten Modus die
Funktionsgruppe ZBC425_## an.

Sie knnen die Schnittstelle des Funktionsbausteins nicht verndern?

SAP AG BC425 10-22


1-2-3 Der Quelltext sollte folgendermaen aussehen:
output = input.
AUTHORITY-CHECK OBJECT S_CARRID
ID CARRID FIELD input
ID ACTVT FIELD 03.
IF sy-subrc <> 0.
MESSAGE e010(bc425).
ENDIF.

1-3 Aktivieren Sie den Funktionsbaustein. Gehen Sie zurck. Sie gelangen wieder in
die Liste der Feld-Exits. Aktivieren Sie den Feld-Exit unter Feldexit Aktivieren.

SAP AG BC425 10-23