Beruflich Dokumente
Kultur Dokumente
BC425
BC425
Erweiterungen und Modifikationen
SAP AG©2006
SAP AG 2006
SAP AG 2006
Die von SAP AG oder deren Vertriebsfirmen angebotenen Softwareprodukte können Softwarekomponenten
auch anderer Softwarehersteller enthalten.
Microsoft, Windows, Outlook, und PowerPoint sind eingetragene Marken der Microsoft Corporation.
IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390,
OS/400, iSeries, pSeries, xSeries, zSeries, z/OS, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, und
Informix sind Marken oder eingetragene Marken der IBM Corporation in den USA und/oder anderen Ländern.
Oracle ist eine eingetragene Marke der Oracle Corporation.
UNIX, X/Open, OSF/1, und Motif sind eingetragene Marken der Open Group.
Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, und MultiWin sind Marken oder
eingetragene Marken von Citrix Systems, Inc.
HTML, XML, XHTML und W3C sind Marken oder eingetragene Marken des W3C®, World Wide Web
Consortium, Massachusetts Institute of Technology.
Java ist eine eingetragene Marke von Sun Microsystems, Inc.
JavaScript ist eine eingetragene Marke der Sun Microsystems, Inc., verwendet unter der Lizenz der von
Netscape entwickelten und implementierten Technologie.
MaxDB ist eine Marke von MySQL AB, Schweden.
SAP, R/3, mySAP, mySAP.com, xApps, xApp und weitere im Text erwähnte SAP-Produkte und
-Dienstleistungen sowie die entsprechenden Logos sind Marken oder eingetragene Marken der
SAP AG in Deutschland und anderen Ländern weltweit. Alle anderen Namen von Produkten und
Dienstleistungen sind Marken der jeweiligen Firmen. Die Angaben im Text sind unverbindlich und dienen
lediglich zu Informationszwecken. Produkte können länderspezifische Unterschiede aufweisen.
In dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändert werden. Die
vorliegenden Angaben werden von SAP AG und ihren Konzernunternehmen („SAP-Konzern“) bereitgestellt
und dienen ausschließlich Informationszwecken. Der SAP-Konzern übernimmt keinerlei Haftung oder
Garantie für Fehler oder Unvollständigkeiten in dieser Publikation. Der SAP-Konzern steht lediglich für
Produkte und Dienstleistungen nach der Maßgabe ein, die in der Vereinbarung über die jeweiligen Produkte
und Dienstleistungen ausdrücklich geregelt ist. Aus den in dieser Publikation enthaltenen Informationen ergibt
sich keine weiterführende Haftung.
0.3
Voraussetzungen für Teilnehmer
SAP AG 2006
0.4
Zielgruppe
Teilnehmer
Projektleiter und -mitarbeiter, die mit der Anpassung der
SAP-Funktionalität an die Unternehmensbedürfnisse
beauftragt sind
Dauer: 3 Tage
SAP AG 2006
Benutzerhinweise
Die Schulungsunterlagen bilden keine Selbstlernprogramme. Nur in Verbindung mit den
Erläuterungen des Referenten/der Referentin haben Sie komplette Unterlagen. Auf Ihren Unterlagen
haben Sie Platz, um diese Zusatzinformationen zu notieren.
0.5
Grobziel des Kurses
SAP AG 2006
1
Einführung: Inhalt
SAP AG 2006
SAP AG 2006
SAP AG 2006
Vorspann
Kapitel 1 Kursüberblick
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 Lösungen finden Sie am Ende des jeweiligen Kapitels
SAP AG 2006
Personali
Modifikation Erweiterung
sierung
Transaktions Modifikationsassistent ABAP Dictionary
varianten Tabellen
4
User-Exits Datenelemente
Customer-Exits 5
3 8 Business Transaction Events 6
Business Add Ins 7
Überblick 2
SAP AG 2006
SAP AG 2006
Inhalt:
Überblick über die Anpassungsmöglichkeiten +
Entscheidungsdiagramm zur Auswahl der Anpassungstechnik
Erweiterungsarten
SAP AG 2006
SAP AG 2006
Personali
Modifikation Erweiterung
sierung
Transaktions Modifikationsassistent ABAP Dictionary
varianten Tabellen
4
User-Exits Datenelemente
Customer-Exits 5
Überblick 2
SAP AG 2006
SAP Business
Kunden-
Kunden-
Anwendungen
programme
(SAP-
(SAP-Standard)
Standard)
Eigenent-
Eigenent-
Customizing Personalizing Modifikation Erweiterung
wicklung
Customizing ABAP
Workbench
SAP AG 2006
Sie können das R/3-System auf folgende Arten an Ihre Erfordernisse anpassen:
Customizing: Einstellung der Geschäftsprozesse und Funktionen entlang eines
Einführungsleitfadens. Mögliche Änderungen sind damit vorgedacht und vororganisiert.
Personalizing: Veränderung der globalen Anzeigeeigenschaften von Feldern (Vorbelegung,
Ausblendung), benutzerspezifische Menüführung.
Modifikation: Änderungen an SAP Repository-Objekten beim Kunden. Liefert SAP eine
veränderte 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 Berücksichtigung der
Kundennamensräume.
Customizing und weitgehend auch Personalizing werden mit den Tools des Business Engineer
durchgeführt, Eigenentwicklung, Erweiterungskonzept und Modifikation mit den Tools der ABAP
Workbench.
Nein
Nein
Ist im SAP-Standard überhaupt - Eigenentwicklung
eine ähnliche Funktionalität vorhanden? - CSP-Lösung
Entwicklung
Ja
Ja
Kann der Kundenwunsch über
Nutzung einer Erweiterung Erweiterung
realisiert werden?
Nein
Eigenentwicklung mit/ohne
Modifikation
SAP-Objekten als Vorlage
SAP AG 2006
Kann die Standardfunktionalität nicht über Customizing oder Personalizing dem Kundenwunsch
angepaßt werden, muß ein Entwicklungsprojekt gestartet werden oder, falls verfügbar, eine CSP
Lösung (CSP = Complementary Software Product) verwendet werden. Von SAP zertifizierte CSP-
Lösungen finden Sie im SAP Service Marketplace unter dem Alias /softwarepartner.
Im Entwicklungsprojekt betreiben Sie Eigenentwicklung, wenn im SAP-Standard keine ähnliche
Funktionalität 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
Customizing oder Personalizing Ihre Anforderung nicht umsetzen können
Geeignete Erweiterungen oder User-Exits nicht vorgedacht sind
das Kopieren des SAP-Objekts in den Kundennamensraum nicht sinnvoll ist.
Purchase order
consignment
R/3
Best ands-
Einkau f
Informatio ns- Lager- Time
führu ng syst em verwal tung
Purchase order
-Re
returnable packaging
Lieferant en - Best el l-
anford e- Best el lung Purchase order
mo feren
an frage
/-an gebot rung
third party deliv ery
del z-
Prozeßmodell Unternehmensorganisation Objektorientiertes l
Datenmodell
Purch as e Vendor Vendor Pu rchas e
requisition inq uiry qu otation informatio n
Sh ipping
no tificatio n
Pu rchas e
order
Vendor
sch eduling
ag ree ment
SAP AG 1999
Der Business Engineer umfaßt alle Einführungswerkzeuge der SAP. Dazu gehören insbesondere:
Referenzmodell
Alle Modelle, die R/3 beschreiben (Prozeßmodell, Datenmodell, Organisationsmodell)
Einführungsleitfaden (Implementation Guide)
Liste aller Customizing-Aktivitäten
Personalisierte Menüs
Rollenbasiertes Menü
Favoriten
Shortcuts auf Desktop
SAP AG 2006
Ziel des Personalizing ist die Beschleunigung und Vereinfachung der mit dem R/3 System zu
bearbeitenden Geschäftsvorfälle. Die Transaktionen der jeweiligen Anwendungen werden an die
betriebswirtschaftlichen Bedürfnisse des Unternehmens oder unterschiedlicher Benutzergruppen
angepaßt. Nicht benötigte Informationen und Funktionen in den Transaktionen werden ausgeschaltet.
Über globale Anzeigeeigenschaften können Felder auf Dynpros vorbelegt werden. In Transaktionen
können einzelne Felder, einzelne Spalten von Table Controls oder ganze Dynpros ausgeblendet
werden.
Mit Hilfe von Rollenbasierten Menüs, eigenen Favoriten und Shortcuts auf dem Desktop kann die
Menüführung
Mit Hilfe von Rollenbasierten Menüs, eigenen Favoriten und Shortcuts auf dem Desktop kann die
Menüführung auf die Bedürfnisse unterschiedlicher Benutzergruppen im Unternehmen ausgerichtet
werden.
Eigenent
Modifikation Erweiterung
wicklung
Programm-Erweiterungen
Menü-Erweiterungen
Dynpro-Erweiterungen
User-Exits
SAP AG 2006
ABAP
Dictionary SAP-Tabellendefinition YYFeld ZZFeld
Feld 1 Feld 2 Feld 3 Append-Struktur
Datenbank
SAP AG 2006
SAP bietet Ihnen zwei Möglichkeiten, Tabellen und Strukturen um Felder zu erweitern:
Append-Strukturen
Customizing-Includes ("CI-Includes")
Beide Techniken erlauben es, Felder an eine Tabelle anzuhängen, 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 angehängt.
Append-Strukturen unterscheiden sich in der Art des Verweises zur zugehörigen Tabelle von
Include-Strukturen, zu denen auch die Customizing-Includes gehören. 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 zugehörigen Tabelle, welche selbst unverändert bleibt. Der Verweis
geht hier von der Append-Struktur aus.
SAP Kunde
SAP AG 2006
Append-Strukturen erlauben es, Felder an eine Tabelle anzuhängen, ohne die Tabelle selbst zu
modifizieren. Tabellenerweiterungen über Append-Strukturen müssen demnach nicht von der SAP-
Entwicklung vorgedacht sein. Eine Append-Struktur kann nur zu genau einer Tabelle gehören.
CI_Includes erlauben es demgegenüber, 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 müssen CI_Includes also von der SAP-Entwicklung vorgedacht
sein.
***
*** SAP
SAP program
program ***
***
*********************************
*********************************
...
...
User-Exit Unterprogramm
Customer-Exit Funktionsbaustein
Business Transaction Event Funktionsbaustein
Business Add In Methode
SAP AG 2006
Bei Programm-Erweiterungen ist das Ziel prinzipiell immer, ein Objekt im Kundennamensraum zu
rufen. Dazu gibt es verschiedene Techniken:
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.
Business Transaction Events
Vom SAP Anwendungsprogramm wird ein Funktionsbaustein im Kundennamensraum dynamisch
aufgerufen.
Business Add Ins
Das Anwendungsprogramm ruft eine Methode einer Klasse oder Instanz einer Klasse auf. Diese
Klasse liegt im Kundennamensraum.
SAP Kunde
User-Exit Unterprogramm
Aufruf
Customer-Exit Funktionsbaustein
Verwaltung
Schnittstelle
Dokumentation Business Transaction Event Funktionsbaustein
SAP AG 2006
SAP Kunde
SAP AG 2006
SAP Kunde
Feld 1 Feld 1
Feld 2 Feld 2
Feld X
Feld Y
Subscreen-Bereich Subscreen-Dynpro
Ablauflogik Dynpro-Exit
Funktionsbaustein
Erweiterung - Customer Exit bzw. Methode
Dokumentation - Business Add In für Datentransport
SAP AG 2006
Dynpro-Exits gehören zu den Customer-Exits und erlauben Ihnen, auf einem Dynpro eines SAP
Anwendungsprogramms zusätzliche Objekte anzeigen zu lassen. Dazu muß der SAP Entwickler:
die Subscreen-Bereiche definieren
die entsprechenden Aufrufe in der Ablauflogik vorsehen
den Rahmen für den Datentransport zur Verfügung stellen
den Dynpro-Exit in eine Erweiterung aufnehmen
Dokumentation pflegen!
Ab SAP Web Application Server 6.20 können auch Business Add Ins Dynpro-Exits enthalten.
Sie können Dynpro-Exits implementieren, indem sie Subscreen-Dynpros anlegen, eventuell mit
Ablauflogik. Darüber hinaus müssen sie den Datentransport implementieren.
Wie Sie Dynpro-Exits implementieren, wird im Kapitel "Erweiterungen über Customer-Exits" für
die "klassischen" sowie im Kapitel "Business Add Ins" für die neuen Dynpro-Exits behandelt.
SAP Kunde
SAP-Programm SAP-Programm
PROGRAM ... . PROGRAM ... .
... ...
SAP AG 1999
Bei einer Modifikation verändern Sie das von SAP ausgelieferte Objekt direkt.
Dies hat verschiedene Konsequenzen beim nächsten Upgrade. Wird das Objekt erneut ausgeliefert,
müssen sie entscheiden, ob in ihrem System das neue, von SAP ausgelieferte Objekt wirksam sein
soll oder das von ihnen veränderte gültig bleiben soll.
Bis Release 4.0B war die feinste Granularität, auf der Modifikationen aufgezeichnet wurden, das
Repository-Objekt selbst, also zum Beispiel ein Include-Programm.
Seit Release 4.5A werden Modifikationen mit einer feineren Granularität aufgezeichnet. Ermöglicht
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.
SAP AG 2006
Lernziele
Unternehmensszenario
Inhalt:
Personalisierung von Transaktionen
über Transaktionsvarianten
SAP AG 2006
SAP AG 2006
SAP AG 2006
Personali
Modifikation Erweiterung
sierung
Modifikationsassistent ABAP Dictionary
Tabellen 4
Transaktions User-Exits Datenelemente
varianten
Customer-Exits 5
3 8 Business Transaction Events 6
Business Add Ins
7
Überblick 2
SAP AG 2006
Unternehmen:
Unternehmensstruktur
Geschäftsprozesse
TOP--DOWN Konfiguration
Rollenspezifische Benutzeradministration:
Konfiguration
Bereichsmenüs
Rollenbasierte Menüs
Rollenbasierte Transaktionsvarianten
Ber. Rollenbasierte TA
Menü
Menüüss
TOP
menü
menüs Menü
Men varianten
Persö
Persönliche Konfiguration Persönliche
Konfiguration:
Favoriten
Links
Favoriten Links Desktop Desktop-Links
SAP AG 2006
Das SAP System paßt sich dem Arbeitsstil des Anwenders an: Beim Start des Systems werden dem
Benutzer nur noch die Funktionen angeboten, die für seine tägliche Arbeit typisch sind.
Überflüssiges Navigieren durch nicht benötigte Funktionen entfällt. Konnten Benutzermenüs 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 Menüs tritt dann die ausgeführte 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 Menüstruktur 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 wählbar.
Das Unternehmensmenü steht ab Release 4.6A nicht mehr zur Verfügung.
SAP AG 2006
Sie können die Komplexität des Systems reduzieren, indem Sie nicht benötigte Funktionen
ausblenden. Transaktionsvarianten bieten Ihnen die Möglichkeit, für komplette Transaktionen diese
Komplexität für den Anwender zu reduzieren. Sie können
Felder mit Werten vorbelegen. Diese Vorbelegung kann vom Anwender wieder überschrieben
werden.
Bei Feldern, in denen der Anwender keine Eingabe mehr vornehmen muss, die
Eingabebereitschaft zurücknehmen;
nicht benötigte Bildschirmelemente ausblenden. Das können Eingabefelder oder andere
Bildschirmelemente sein.
Ganze Bildschirme ausblenden.
Die Pflege von Transaktionsvarianten werden wir im folgenden näher beleuchten.
SAP-
SAP-
Transaktion ABC
Variantentransaktion
TA-
TA-Variante X
ZABC_X
Variantentransaktion
TA-
TA-Variante Y
ZABC_Y
TA-
TA-Variante Z Standardvariante
SAP AG 2006
Eine zu einer SAP-Transaktion definierte Variante können Sie wie folgt verwenden :
a) Sie legen eine Variantentransaktion an, die aus der SAP-Transaktion und der Variante besteht
oder
b) Sie deklarieren die Variante als Standardvariante der SAP-Transaktion.
Im Fall a) muss der Benutzer die Variantentransaktion aufrufen, um die Variante zu bekommen.
Im Fall b) dagegen wird die entsprechende Variante an die SAP-Transaktion "angeheftet", so dass
der Aufruf der SAP-Transaktion automatisch die Variante nutzt.
Zu einer SAP-Transaktion kann genau eine Standardvariante definiert werden.
Transaktionsvariante
SAP AG 2006
Eine Transaktionsvariante ist eine Referenz auf eine Menge von Screen-Varianten.
Zu einem Dynpro können sie beliebig viele Screen-Varianten anlegen. Aus diesen Screen-Varianten
wird die Transaktionsvariante zusammengesetzt.
100 100
Program Program
Fluggesellschaft Buchen
Fluggesellschaft
Verbindung Verbindung
Info
Flugdatum Flugdatum
Buchen
Bel. Plätze Bel. Plätze Info
Freie Plätze Freie Plätze
Flugpreis Flugpreis
In diesem Beispiel sehen Sie zwei Dynpros einer SAP-Transaktion, die mit Hilfe einer
Transaktionsvariante umgestaltet werden sollen.
Dynpro 100 wird folgendermassen abgeändert: Felder werden ausgeblendet; Feldattribute werden
geändert; Drucktasten werden ausgeblendet.
Dynpro 200 zeigt folgende Änderungen: Drucktasten verschoben sowie Bild eingefügt (mit GuiXT).
Auf die Verwendung von GuiXT werden wir weiter unten eingehen.
Transaktion
SHD0
Transaktionsvarianten
Transaktionscode
Name
Name der
der
SAP-Transaktion
SAP-Transaktion
Transaktionsvariante
Name
Name der
der
Varianten
Varianten
SAP AG 2006
Zum Anlegen von Transaktionsvarianten wählen 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, für die Sie eine Variante erstellen wollen. Der Name der
Variante muss eindeutig im System sein und im Kundennamensraum liegen.
Über den Menüpunkt Springen können Sie wählen, ob sie eine mandantenabhängige oder eine
systemweite (mandantenunabhängige) Transaktionsvariante anlegen wollen.
Um den Variante anzulegen, wählen sie die entsprechende Drucktaste in der Drucktastenleiste
100
Program
Abflugstadt
Ankunftstadt
Abflugzeit
zugehörige Screen-Variante
Button1 Button2
Abflugstadt Frankfurt
Ankunftstadt New York
Abflugzeit
Button1
Button2
SAP AG 2006
Screen-Variante Name
Name der
der
Screenvariante
Screenvariante
Kurztext
Kurztext
Abflugstadt Frankfurt
Ankunftstadt New York
Abflugzeit
Button1 Attribute
Attribute der
der
Button2 Dynpro-Elemente
Dynpro-Elemente
Menüfunktionen
Menüfunktionen
deaktivieren
deaktivieren
SAP AG 2006
Eine Screen-Variante ist ein eigenständiges Repository-Objekt mit einem im System eindeutigen
Namen. Der Name setzt sich zusammen aus
Variantenname
Mandant (nur bei mandantenabhängigen Transaktionsvarianten)
Dynpronummer
Hier geben sie an, ob Feldinhalte in die Screen-Variante übernommen werden sollen. Für die
einzelnen Felder können Sie verschiedene Attribute setzen: Sie können die Eingabebereitschaft eines
Feldes zurücknehmen oder es sogar unsichtbar machen. Eine detaillierte Auflistung der
Möglichkeiten finden Sie im Online-Handbuch zu Transaktionsvarianten.
Variante testen :
Variante nutzen :
1. Über SHD0 Variantentransaktion anlegen
( Menü Springen Anlegen Variantentransaktion )
2. Variantentransaktion aufrufen
SAP AG 2006
Zum Starten einer Transaktionsvariante stehen ihnen folgende Möglichkeiten zur Verfügung:
Testumgebung
Transaktionscode vom Typ "Variantentransaktion"
Benutzermenü
In der Testumgebung der Transaktionsvarianten-Pflege können sie den Ablauf der Transaktion
testen. Dies ist vor allem für Entwickler bestimmt, die die Transaktionsvariante anlegen.
Um eine Variantentransaktion in ein Benutzermenü oder eine Rolle einhängen zu können, müssen
sie einen Transaktionscode vom Typ "Variantentransaktion" anlegen.
Transaktionspflege
Name des
Transaktionscodes
Transaktionscode__
Anlegen
Anzeigen Ändern Anlegen
Transaktion anlegen
Transaktionscode
Transaktionsattribute
Dialogtransaktion
Reporttransaktion
OO-Transaktion
Variantentransaktion
Paramentertransaktion
SAP AG 2006
Um eine Transaktionsvariante aus einem Menü zu starten, müssen sie einen Transaktionscode vom
Typ "Variantentransaktion" anlegen. Einen Absprung dazu finden sie direkt in der Pflege der
Transaktionsvarianten unter dem Menüpunkt "Springen". Alternativ können sie direkt aus der ABAP
Workbench einen Transaktionscode anlegen. Beachten Sie hierbei, dass Sie das richtige Startobjekt
"Variantentransaktion" wählen.
Abflugzeit
Button1 Attribute
Attribute der
Button2 Screen-Variante
Bilddateien
SAP AG 2006
Das Zusatzwerkzeug GuiXT ermöglicht ihnen eine flexiblere Gestaltung der einzelnen Bildschirme.
GuiXT bedient sich dabei einer Skript-Sprache, um
Objekte auf dem Dynpro zu positionieren,
Attribute zu setzen,
Neue Objekte aufzunehmen
Durch Auswählen der Drucktaste "GuiXT" erscheint ein Editor-Fenster, in dem sie das Skript
eingeben können. Sie können hier ebenfalls Bilddateien auswählen, die auf ihrem lokalen Rechner
verfügbar sind.
Weiterhin können sie auf dem lokalen Rechner erstellte Skripte importieren, sowie dorthin
exportieren.
Kommentar
Kommentar
// Version: 19990921151118
Bild
Bild einfügen
einfügen
IMAGE (1,1) "C:\temp\sap.jpg"
Rahmen
Rahmen einfügen
einfügen
BOX (10,20) (16,44) "Frame"
SAP AG 2006
Mit Hilfe der von GuiXT verwendeten Skript-Sprache können Sie das Layout eines Bildschirmbildes
beeinflussen. Sie können
Objekte verschieben
Bilder einfügen
Drucktasten einfügen
Wertehilfen einfügen
Eingabeeigenschaften von Feldern beeinflussen
Bildelemente löschen
Eine vollständige 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 2006
Kapitel: Personalisierung
Thema: Anlegen eines Paketes
Kapitel: Personalisierung
Thema: Transaktionsvarianten
1-2 Durchlaufen Sie die Transaktion Bild für Bild, und legen Sie jeweils für die
einzelnen Bilder eine Screen-Variante an. Folgende Veränderungen sollen
vorgenommen werden:
1-2-1 Einstiegsbild: Die ersten beiden Felder mit "DE", "Frankfurt" vorbelegen
und die Eingabebereitschaft zurücknehmen.
1-2-2 Zweites Bild: Die Spalte "FLH" des Table Controls auf unsichtbar setzen.
Menüfunktion "BACK" deaktivieren.
1-2-3 Drittes Bild: Menü-Funktion "BACK" deaktivieren.
Kapitel: Personalisierung
Thema: Anlegen eines Paketes
1-1 Sie legen ein Paket an, indem Sie folgenden Menüpfad aus dem SAP Menü wählen:
Werkzeuge ABAP Workbench Übersicht Object Navigator
1-1-1 Alternativ können sie Transaktion SE80 wählen
1.1.2 Wählen Sie den Menüpfad Workbench Objekt bearbeiten…
1.1.3 Auf der Registerkarte "Entwicklungskoordination" wählen Sie "Paket" und
tragen den Namen des anzulegenden Pakets in das Eingabefeld ein.
1.1.4 Wählen Sie "Anlegen".
1.1.5 Auf dem folgenden Bild tragen Sie einen aussagekräftigen Kurztext ein.
Ordnen Sie das Paket der Softwarekomponente HOME zu. Bestätigen Sie
Ihre Eingabe.
1.1.6 Ordnen Sie auf dem nächsten Bild einen Änderungsauftrag zu und
bestätigen Sie die Eingabe.
1.1.7 Nun haben Sie ein Paket angelegt, dem Sie alle folgenden Entwicklungen
zuordnen werden.
Kapitel: Personalisierung
Thema: Transaktionsvarianten
1-2 Durchlaufen Sie die Transaktion Bild für Bild. Tragen Sie in die Eingabefelder die
entsprechenden Werte ein. Verlassen Sie das Bild über die entsprechende
Drucktaste. und legen Sie jeweils für 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 Betätigen 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 für 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. Wählen Sie die Drucktaste
Menüfunktionen 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 Menüfunktion "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
überprüfen. Sichern Sie, um die Transaktionsvariante endgültig anzulegen.
Inhalt:
Append-Strukturen
Customizing-Includes
Texterweiterungen
SAP AG 2002
SAP AG 2006
Personali
Modifikation Erweiterung
sierung
Transaktions Modifikationsassistent ABAP Dictionary
varianten Tabellen 4
User-Exits Datenelemente
Customer-Exits 5
3 8 Business Transaction Events 6
Business Add Ins 7
Überblick 2
SAP AG 2006
SAP AG 2002
Append-Struktur
Anlegen einer Append-Struktur zu einer SAP-Tabelle durch
Kunden möglich (ohne SAP-Vorbereitung)
Zu einer SAP-Tabelle sind beliebig viele Append-Strukturen
möglich
Diese können in Programmen wie normale Strukturen
verwendet werden
Customizing-Include
ist bereits von SAP in SAP-Tabellen integriert
wird vom Kunden mit gewünschten Zusatzfeldern gefüllt
beinhaltet evtl. von SAP vorbereiteten Quelltexten bzw.
Dynpro-Exits zur Verarbeitung bzw. Dynpro-Anzeige der Felder
SAP AG 2006
Tabellen und Strukturen lassen sich auf zwei verschiedene Arten um Felder erweitern:
Append-Strukturen dienen für Erweiterungen, die nicht im Standard vorgesehen sind. Sie können
damit Kundenfelder an beliebige Tabellen oder Strukturen anhängen.
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 zusätzlichen Tabellenfeldern absieht, kann er
durch das Einfügen einer Customizing-Include-Anweisung für den Kunden die Möglichkeit
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.
YYField ZZField
Tabelle Append-Struktur
SAP AG 1999
Append-Strukturen erlauben es, Felder an eine Tabelle anzuhängen, 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 angehängt. Wird eine Append-Struktur
angelegt oder geändert, so wird bei ihrer Aktivierung auch die Tabelle, der sie zugeordnet ist,
nachaktiviert und die Änderungen werden auch dort wirksam.
Sie können in ABAP Programmen eine Append-Struktur wie jede andere Struktur referenzieren.
Beachten Sie: Wird eine Tabelle kopiert, an die eine Append-Struktur angehängt wurde, so werden
die Felder der Append-Struktur zu gewöhnlichen Feldern der Zieltabelle.
YYField ZZField
Tabelle Append-Struktur
SAP AG 1999
Eine Append-Struktur wird vom Kunden im Kunden-Namensraum angelegt. Sie ist damit gegen ein
Überschreiben beim Upgrade oder Releasewechsel geschützt. 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 angehängt.
Da die Feldreihenfolge im ABAP Dictionary seit Release 3.0 von der Feldreihenfolge auf der
Datenbank abweichen kann, ist beim Anhängen einer Append-Struktur bzw. beim Einfügen 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 verändert und das
neue Feld wird an die Datenbanktabelle angehängt.
Beachten Sie bei Append-Strukturen bitte auch folgende Punkte:
Für Pool- und Clustertabellen können 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 möglich. Denn solche langen Felder müssen in der
Feldliste stets an der letzten Position stehen, d.h. letztes Feld der Tabelle sein. Es können damit
keine Felder aus einer Append-Struktur angehängt 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 eingefügten neuen Feldern vermieden.
Feldpflege
Customizing-Include CI_ABC durch Kunden via
YYField ZZField Customizing-
Customizing-Transaktion
oder SAP-
SAP-Empfehlung
Tabelle A
Tabelle B
Field1 Field2 CI_ABC Field3
FieldL FieldM CI_ABC FieldN
SAP AG 2006
Im R/3-Standard können Tabellen und Strukturen ausgeliefert werden, die spezielle Include-
Anweisungen enthalten: Customizing-Includes. Dies ist in der Regel dann der Fall, wenn im
Standard schon mögliche Erweiterungen durch kundenspezifische Felder vorgesehen sind.
Im Gegensatz zu einer Append-Struktur kann ein Customizing-Include unter Umständen 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 gewährleistet, 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 können über die Projektverwaltung angelegt werden
(siehe Kapitel 'Erweiterungen über Customer-Exits').
Auch für die Felder von Customizing-Includes ist der gleiche Namensraum wie für Felder von
Append-Strukturen zu beachten, d.h. Feldnamen beginnen mit 'YY' oder 'ZZ'.
Beim Hinzufügen der Felder eines Customizing-Includes auf der Datenbank gelten die gleichen
Aussagen wie für Append-Strukturen.
SAP AG 2006
SAP Kunde
SAP SAP
System Hilfe System Hilfe
Datenelement- Kunden-
Feldbezeichner Feldbezeichner
F1 F1
Datenelement-
Datenelement-Dokumentation (Datenelement-
(Datenelement- Dokumentation)
... ...
... ...
...
Kunden-Dokumentation
SAP AG 2006
SAP Kunde
Text-
Datenelement-
Erweiterungen
definition
definieren
Feldbezeichner Feldbezeichner
kurz : … kurz : …
mittel : … mittel : …
lang : … lang : …
Überschrift : … Überschrift : …
Kurztext : … Kurztext : …
SAP AG 2006
SAP legt bei der Definition eines Datenelements Feldbezeichner in verschiedenen Längen sowie
einen Kurztext fest. Diese Texte können vom Kunden mit kundeneigenen Texten überlagert werden.
Alle Dynpro-Felder können auf diese Weise mit anderen Feldbezeichnern versehen werden.
Projektverwaltung Transaktion
System Hilfe CMOD
Projekt
Springen
keine Änderung, nur
Überlagerung der SAP-Texte
Glob. Erweiterungen
SAP
System Hilfe
Schlüsselworte
Kundeneigene Schlüsselwörter:
kurz:
ändern mittel:
lang:
Überschrift:
Kundeneigener Kurztext:
SAP AG 2006
SAP
Screen-
Screen-Painter
Feldliste
. E A Dict mod.
.
LFA1-LFNR
LFA1-LFNR
.
.
.
SAP AG 2006
Feldbezeichnerüberlagerungen sind nur bei Dynpro-Feldern wirksam, die nicht explizit vom
Entwickler des Dynpros einen Beschreibungstext bekommen haben.
Das Attribut "Dict modifiziert" des Dynpro-Feldes enthält in solchen Fällen den Wert "F".
Das Attribut "Dict modifiziert" kann folgende Werte haben :
SPACE: der Feldlänge am besten angepaßter Feldbezeichner
1: kurzer Feldbezeichner
2: mittlerer Feldbezeichner
3: langer Feldbezeichner
4: Feldbezeichner für Überschrift
V: variable Textübernahme aus Dictionary (wie SPACE)
F: fix, keine Textübernahme aus Dictionary
SAP Kunde
Release x.x Release x.x
SAP
SAP System Hilfe
System Hilfe
Kunden-Feldbezeichner
alter SAP-Feldbezeichner
Release y.y
SAP
Release y.y System Hilfe
SAP
neuer SAP-Feldbezeichner
Restaurieren Kunde
Release x.x
SAP
System Hilfe
Kunden-Feldbezeichner
SAP AG 2006
Nach einem Releasewechsel oder der Einspielung eines neuen Korrekturstandes ist eine
Restaurierung der Kundenfeldbezeichner immer dann erforderlich, wenn SAP vorhandene
Feldbezeichner nochmals ausliefert. Möchte der Kunde dann seine eigenen Feldbezeichner aus dem
letzten Release wieder haben, wählt er den entsprechenden Menüpunkt zum Restaurieren der
Kundenfeldbezeichner. SAP empfiehlt, grundsätzlich eine Restaurierung durchzuführen
(Feldbezeichnerfortschreibung).
Die Restaurierung wird durch ein im Hintergrund laufendes Programm durchführt. Dieses Programm
untersucht alle vom Kunden angefaßten Datenelemente und restauriert, wenn erforderlich, die
Feldbezeichner.
Bei zentralen Feldbezeichnern wie die der Datenelemente BUKRS, MANDT usw. empfehlen wir,
die Restaurierung zu einer Zeit zu starten, zu der die Inhalte der Tabellen, die BUKRS und MANDT
verwenden, nicht geändert werden. Ansonsten kann die Aktivierung des Datenelements scheitern
und es den Zustand teilaktiv annehmen.
SAP Kunde
Release x.x
SAP
System Hilfe
Kunden-Feldbezeichner
Release x.x
SAP
System Hilfe Restaurieren SAP
SAP
System Hilfe
SAP-Feldbezeichner
SAP AG 2006
Möcht der Kunde eine Feldbezeichnerüberlagerung wieder rückgängig machen, wählt er den
entsprechenden Menüpunkt zum Restaurieren der SAP-Feldbezeichner.
Die Restaurierung wird durch ein im Hintergrund laufendes Programm durchgeführt. Dieses
Programm untersucht alle vom Kunden angefaßten Datenelemente und restauriert, wenn
erforderlich, die Feldbezeichner.
Bei zentralen Feldbezeichnern wie die der Datenelemente BURKS, MANDT usw. empfehlen wir,
die Restaurierung zu einer Zeit zu starten, zu der die Inhalte von Tabellen, die BUKRS und MANDT
verwenden, nicht geändert werden.
SAP Kunde
Datenelement
Kundendokumentation
Dokumentation
SAP SAP
System Hilfe System Hilfe
SAP-Dokumentation: <SAP-
SAP-Doku>
Doku>
Kundendokumentation:
SAP AG 2006
Bei Erweiterung der Datenelementdokumentation hat der Kunde die Möglichkeit, die SAP-
Dokumentation neben seiner eigenen zu übernehmen. In dem Fall erscheint bei F1 auf dem
entsprechenden Dynpro-Feld die kundeneigene Dokumentation ergänzend zur SAP-Dokumentation.
Der Kunde kann sich eine Liste der veränderten Datenelemente ausgeben lassen und durch
Zeilenselektion die betreffende Kundendokumentation weiter überarbeiten.
Möchte der Kunde die ursprüngliche Dokumentation ohne Erweiterung wieder herstellen, löscht er
einfach seine eigene Dokumentation.
CMOD
Springen
Glob. Erweiterungen
Datenelemente
DE-Kundendoku neu
SAP SAP
System Hilfe System Hilfe
<SAP-Doku> <SAP-Doku>
Kundendokumentation:
Kundendokumentation:
SAP AG 2006
Der oben in der Grafik beschriebene Menüpfad führt zu einem Abfragefenster, in dem zwischen
"Originaltext" und "Template" gewählt werden muss. Ersteres ist zu wählen, wenn Sie die SAP-
Dokumentation ergänzen möchten. Letzteres ist gedacht für eine völlig kundenindividuelle
Dokumentation ohne SAP-Originaltext.
SAP AG 2006
1-1 Append-Strukturen sind hier die einzige Möglichkeit, die transparente Tabelle
SFLIGHT## zu erweitern, da keine Customizing-Includes in ihr integriert sind.
1-1-1 Wie gehen Sie vor, um die Tabelle SFLIGHT## zu erweitern?
Mit Append-Strukturen können 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 wählen 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 … bzw. die
entsprechende Drucktaste an; übernehmen Sie den Namensvorschlag. Vergeben Sie
einen Kurztext für die Append-Struktur und sichern Sie sie in dem von Ihnen
angelegten Paket.
1-2-1 Nehmen sie zwei Felder in die Struktur auf :
Die Feldnamen müssen mit YY oder ZZ beginnen.
Zum Beispiel YYPILOT und YYMEAL.
Aktivieren Sie Ihre Append-Struktur. Falls dabei Fehler auftreten, können
Sie nähere Hinweise dazu dem Aktivierungsprotokoll entnehmen.
Inhalt:
Einführung
Erweiterungsverwaltung
Funktionsbaustein-Exits
Menü-Exits
Dynpro-Exits
SAP AG 1999
SAP AG 2006
Personali
Modifikation Erweiterung
sierung
Transaktions Modifikationsassistent ABAP Dictionary
varianten Tabellen
4
User-Exits Datenelemente
Customer-Exits 5
3 8
Business Transaction Events 6
Business Add Ins 7
Überblick 2
SAP AG 2006
Überblick
Überblick
Erweiterungsverwaltung
Erweiterungsverwaltung
Programm-Exit
Programm-Exit
Menü-Exit
Menü-Exit
Dynpro-Exit
Dynpro-Exit
SAP AG 2006
SAP Kunde
Anwendungs-
Anwendungs-
entwickelt funktionalitä
funktionalität benutzt
Komponenten der
definiert Anwendungs-
Anwendungs- bearbeitet
erweiterung
faßt Anwendungs-
Anwendungs- aktiviert
zusammen erweiterung (über Projekt)
SAP AG 2006
SAP Kunde
Definition Definition
von von
SAP- Erweiterungs-
Erweiterungen projekten
SMOD CMOD
SAP AG 2006
Erweiterung
Erweiterungsprojekt
Komponente
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
SAP AG 2006
Programm-, 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).
Überblick
Überblick
Erweiterungsverwaltung
Erweiterungsverwaltung
Programm-Exit
Programm-Exit
Menü-Exit
Menü-Exit
Dynpro-Exit
Dynpro-Exit
SAP AG 2006
Funktionsbaustein-
Funktionsbaustein-Exits
Customer-
Customer-Exits
in Anwendungsfunktionen
definieren Menü
Menü-Exits
Dynpro-
Dynpro-Exits
E
Komponenten zu C
SAP-
SAP-Erweiterungen C
zusammenfassen C
SAP-
SAP-Dokumentation:
Erweiterungen
dokumentieren
SAP AG 1999
Erweiterungsprojekt
Erweiterungsprojekt
Erweiterungsprojekt
aus
aus SAP-
SAP -Erweiterungen
SAP-Erweiterungen E E
aufbauen
aufbauen C C
C
Exit-
Exit-Funktionsbausteine
Komponenten
Komponenten des
des
Erweiterungsprojekts
Erweiterungsprojekts Menü
Menü-Einträ
Einträge
bearbeiten
bearbeiten
Subscreen-
Subscreen-Dynpros
Kundendokumentation:
Kundendokumentation:
Erweiterungsprojekt
Erweiterungsprojekt
dokumentieren
dokumentieren
Erweiterungsprojekt
Erweiterungsprojekt
aktivieren aktivieren
aktivieren
aktivieren
SAP AG 1999
Der Kunde wählt zunächst über die Projektverwaltungsfunktion die SAP-Erweiterungen aus, die er
nutzen möchte und baut daraus ein Erweiterungsprojekt auf.
In einem weiteren Schritt bearbeitet er die einzelnen Komponenten (ebenfalls über die
Projektverwaltungsfunktion) und dokumentiert das gesamte Erweiterungsprojekt.
Schließlich aktiviert er das Erweiterungsprojekt (und damit alle seine Komponenten).
Transaktion
CMOD
Projektverwaltung von SAP Erweiterungen
Projekt Anlegen
Teilobjekte
Attribute
Zuordnung Erweiterungen
Komponenten
Dokumentation
Projekt <project>
Kurztext
SAP AG 2006
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.
Anschließend verzweigt der Kunde in die Projektattribute und gibt einen Kurztext für das
Erweiterungsprojekt ein. Die übrigen Attribute (Namens- und Zeitstempel für anlegen und ändern,
Status) werden vom System vergeben.
Projekt Anlegen
Teilobjekte
Attribute
Zuordnung Erweiterungen
Komponenten
Dokumentation
Erweiterung Kurztext
SAP AG 1999
Teilobjekte
Text ändern
Attribute
Zuordnung Erweiterungen Menü-Text
Komponenten
Dokumentation
Übernehmen
Anzeigen Ändern
Screen Painter
SAP AG 1999
Projekt Anlegen
Aktivieren
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 Menüoberflächen, die zum Projekt
gehörige 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
zurücknehmen, es bekommt dann den Status inaktiv.
Entwicklungssystem Folgesystem
Erweiterungsprojekt
Erweiterungsprojekt
E Transport E E
E auftrag C C C
C C
C
SAP AG 1999
Überblick
Überblick
Erweiterungsverwaltung
Erweiterungsverwaltung
Programm-Exit
Programm-Exit
Menü-Exit
Menü-Exit
Dynpro-Exit
Dynpro-Exit
SAP AG 2006
SAP Kunde
Programm-
Programm-Exit
festlegen
Aufruf
Verwaltung Funktions-
Funktions- Quelltext
baustein
Schnittstelle
Dokumentation
SAP AG 2006
Anwendungsprogramm
X-Funktionsgruppe
Exit-Funktionsbaustein
EXIT_<prog_name>_001
CALL CUSTOMER-FUNCTION
Include im
Kundennamensraum
SAP AG 2006
In diesem Bild ist der Ablauf eines Programmes dargestellt, das eine Erweiterung in Form eines
Programm-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 Funktionalität hinzufügen.
PROGRAM
PROGRAM <program_name>.
<program_name>.
...
... FUNCTION-POOL
FUNCTION-POOL XAAA.
XAAA.
...
...
CALL CUSTOMER-
CUSTOMER-FUNCTION '001' FUNCTION
FUNCTION exit_<program_name>_001.
exit_<program_name>_001.
EXPORTING ...
...
... INCLUDE zxaaau01.
IMPORTING
... . ENDFUNCTION.
ENDFUNCTION.
...
...
Kunden-Include
mit
Kundenquelltext
SAP AG 2006
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 zugehörigen 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:
Präfix: 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 zugehörigen Erweiterungsprojekts wird die Anweisung CALL
CUSTOMER-FUNCTION auch ausgeführt. Bei mehreren Aufrufen des gleichen Funktionsbausteins
bezieht sich die Aktivierung auf alle Aufrufe.
System Status
Doppelklick auf
Anwendungs
Programmnamen
optionale hierarchie
Suchen nach Zeichenkette... Vorsuche
CALL CUSTOMER
CMOD
Hilfsmittel
IMG
SAP-Erweiterungen
Hauptsuche
Suche einschränken mit
Komponentenname =
EXIT_sap_programm_*
Dokumentation
SAP AG 2006
Wie können sie erkennen, ob ein Anwendungsprogramm einen Programm-Exit anbietet? Das ist eine
zentrale Frage bei jeder Form der Erweiterung. Es gibt verschiedene Strategien, wie Sie dieses Ziel
erreichen können.
Um einen schnellen Eindruck zu erhalten, ob ein Anwendungsprogramm überhaupt einen
Funktionsbaustein-Exit bietet, können sie den auf der linken Seite aufgezeichneten Weg verfolgen:
Navigieren sie in das Programm und suchen sie nach einer spezifischen Zeichenkette. Über den
Menüpfad System Status erhalten sie immer den Namen des Anwendungsprogramms. In unserem
Beispiel wäre eine geeignete Zeichenkette "CALL CUSTOMER". Diese suchen Sie global im
Programm(!). Falls Ihre Suche an dieser Stelle nicht erfolgreich ist, können sie den Suchbereich
weiter fassen: Führen sie eine Umfeldermittlung für das entsprechende Programm durch und suchen
Sie nach der spezifischen Zeichenkette im Umfeld des Programms.
In der rechten Hälfte des Bildes sind die Suchwerkzeuge angegeben, mit deren Hilfe Sie den Namen
der gesuchten Erweiterung herausfinden können. Im Repository Infosystem können sie die Suche mit
Hilfe von verschiedenen Kriterien einschränken: Wichtige Kriterien sind:
Paket (Versuchen sie auch generische Eingaben)
Technischer Name der Erweiterung
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 2006
SAPLXAAA Programmname
LXAAAF01 Unterprogramme
...
SAP AG 1999
Um zu verstehen, wie eine X-Funktionsgruppe arbeitet, müssen Sie zunächst den Aufbau einer
gewöhnlichen Funktionsgruppe kennen:
Eine Funktionsgruppe ist aufgebaut aus Includes. Das System verwendet für verschiedene Objekte
eindeutig zugeordnete Includes. Zum Teil werden die Namen der Includes lediglich
vorgeschlagen, zum Teil können die Namen der Includes nicht geändert werden.
Globale Daten werden in dem sogenannten TOP-Include abgelegt. Dieses Include wird beim
Anlegen einer Funktionsgruppe automatisch erzeugt.
Funktionsbausteine werden in Includes mit fortlaufenden Nummern abgelegt, die ihrerseits alle
wieder in einem Include mit der Endung UXX liegen.
Für alle anderen Objekte (Unterprogramme, Module, Ereignisse, etc.) kann der Name des
jeweiligen Includes im Prinzip frei gewählt werden. Es empfiehlt sich jedoch, die vorgeschlagenen
Namen zu übernehmen.
SAPLXAAA Programmname
...
SAP AG 1999
FUNCTION-POOL
FUNCTION-POOL xaaa.
xaaa.
SAPLXAAA
INCLUDE
INCLUDE LXaaaTAP.
LXaaaTAP.
LXAAATOP INCLUDE
INCLUDE ZXaaaTOP.
ZXaaaTOP.
LXAAATAP TABLES:
TABLES: ...
...
DATA:
DATA: ...
...
ZXAAATOP
LXAAAUXX TABLES:
TABLES: ...
...
DATA:
DATA: ...
...
LXAAAU01
ZXAAAU01
LXAAAU02
ZXAAAU02
LXAAAF00
...
SAP AG 2006
SAPLXAAA
LXAAATOP
FUNCTION
FUNCTION exit_<program_name>_001.
exit_<program_name>_001.
LXAAATAP
...
...
ZXAAATOP
INCLUDE
INCLUDE ZXaaaU01.
ZXaaaU01.
LXAAAUXX ...
...
ENDFUNCTION.
ENDFUNCTION.
LXAAAU01
ZXAAAU01 *INCLUDE
*INCLUDE ZXaaaU01.
ZXaaaU01.
DATA:
DATA: <lokale
<lokale Daten>.
Daten>.
LXAAAU02
FORM.
FORM. ...
... ENDFORM.
ENDFORM.
ZXAAAU02 MODULE.
MODULE. ...
... ENDMODULE.
ENDMODULE.
GET
GET ...
...
LXAAAF00 AT
AT ...
...
...
SAP AG 2006
SAPLXAAA Programmname
...
LXAAAUXX Alle Funktionsbausteine
...
LXAAAF01 Unterprogramme
LXAAAO01 PBO-Module
LXAAAI01 PAI-Module
LXAAAE01 ABAP-Ereignisse
...
SAP AG 2006
SAPLXAAA Programmname
...
LXAAAUXX Alle Funktionsbausteine
...
ZXAAAZZZ Alle weiteren Kundenobjekte:
ZXAAAF01 Unterprogramme
ZXAAAO01 PBO-Module
ZXAAAI01 PAI-Module
ZXAAAE01 ABAP-Ereignisse
...
SAP AG 2006
Sie legen Unterprogramme, Module oder interaktive Ereignisse (AT…) über eigene Includes an, die
über das Include ZXaaaZZZ eingebunden werden.
Die zusätzlichen Includes unterliegen der folgenden Namenskonvention:
ZXaaaFnn für Unterprogramme
ZXaaaOnn für PBO-Module
ZXaaaInn für PAI-Module
ZXaaaEnn für Ereignisse
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 können sie selbst angelegte Dynpros aufrufen. Die zugehörigen Includes für
die PBO- und PAI-Module werden im Include ZXaaaZZZ angelegt.
Das Anlegen von kundeneigenen Dynpros und Modulen wird durch Vorwärtsnavigation unterstützt.
Das kundeneigene Dynpro erhält dabei den Namen des Rahmenprogramms des Funktionsbausteins
(SAPLXaaa). Die PBO-Module befinden sich im Include ZXaaaO01, die PAI-Module im Include
ZXaaaI01.
ENDFUNCTION.
*INCLUDE ZXaaaU01
Textelemente
GUI-
GUI-Oberflä
Oberfläche
SAP AG 2006
Überblick
Überblick
Erweiterungsverwaltung
Erweiterungsverwaltung
Programm-Exit
Programm-Exit
Menü-Exit
Menü-Exit
Dynpro-Exit
Dynpro-Exit
SAP AG 2006
SAP Kunde
SAP AG 2006
SAP
Menu Painter
SAP AG 1999
PROGRAM
PROGRAM <program_name>.
<program_name>.
DATA
DATA ok_code
ok_code LIKE
LIKE sy-ucomm.
sy-ucomm.
...
...
** PAI-Modul
PAI-Modul ::
CASE
CASE ok_code.
ok_code.
WHEN
WHEN 'DISP'.
'DISP'.
...
...
WHEN '+ABC'.
CALL CUSTOMER-
CUSTOMER-FUNCTION '001' Kunden-
EXPORTING Funktionalität
<i_variables>
IMPORTING
<e_variables>.
...
...
ENDCASE.
ENDCASE.
SAP AG 2006
Projektverwaltung
Projekt Anlegen
Menü-Exit
Teilobjekte
SAPMXYZ+ABC
Attribute
Zuordnung Erweiterungen
Programm-Exit
Komponenten
Dokumentation EXIT_SAPMXYZ_001
Anzeigen Ändern
Text ändern
Menü-Text
Übernehmen
SAP AG 2006
Überblick
Überblick
Erweiterungsverwaltung
Erweiterungsverwaltung
Programm-Exit
Programm-Exit
Menü-Exit
Menü-Exit
Dynpro-Exit
Dynpro-Exit
SAP AG 2006
SAP Kunde
SAP SAP
Feld 1 Feld 1
Feld 2 Feld 2
Feld X
Feld Y
SAP AG 2006
Telefon
Telefax SAP
Email
200 Name
Telefon
SAP Telefax
Email
abcd
Name 200
abcd SAP
Name
Straße Straße
Wohnort
Land
Wohnort
Land
abcd
300 300
SAP AG 2006
Subscreens sind rechteckige Bereiche auf einem Dynpro, die für die Anzeige anderer Dynpros zur
Laufzeit reserviert sind. Auf jedem Subscreen-Bereich kann zur Laufzeit ein anderes Dynpro (vom
Typ Subscreen) angezeigt werden.
MODULE ...
SAP AG 2006
Zum Zeitpunkt, zu dem das Ereignis PBO prozessiert wird, wird für 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 ausgeführt.
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 dürfen "ihrem" Befehlsfeld keinen Namen geben!
Subscreens dürfen keinen GUI-Status setzen!
In der Ablaufsteuerung eines Subscreens darf nicht das Folgedynpro gesetzt werden!
Dynpro
Dynpro eines
eines
SAP-Programm
SAP-Programm
SAP
SAPLXAAA
Dynpro 1234
Kundenfeld1
abcd Kundenfeld2
...
SAP AG 2006
CALL CUSTOMER-
CUSTOMER-SUBSCREEN abcd PROCESS BEFORE OUTPUT.
INCLUDING 'SAPLXAAA' '1234'.
MODULE ... MODULE ...
MODULE ...
SAP AG 2006
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.
gl_var = i_vars.
CALL
CUSTOMER- ENDFUNCTION.
SUBSCREEN... Subscreen-
***Global
***Global Data*** Dynpro
DATA: gl_var...
abcd
SAP AG 2006
Die globalen Daten des rufenden Programms sind der den Subscreen enthaltenden X-
Funktionsgruppe nicht bekannt; sie werden explizit vom SAP-Anwendungsentwickler über
Programm-Exits zur Verfügung gestellt.
Dazu werden in der Ablaufsteuerung des rufenden Programms Module aufgerufen, die Programm-
Exits enthalten, welche schließlich über die Schnittstellenparameter die Daten übergeben.
Die zugehörigen Exit-Funktionsbausteine liegen in der gleichen X-Funktionsgruppe, in der auch der
Kunden-Subscreen anzulegen ist.
...
Subscreen-
Dynpro
abcd ***Global
***Global Data***
DATA: gl_var ...
CALL
CUSTOMER-
SUBSCREEN...
ENDFUNCTION.
***Global Data***
DATA: gl_field ...
SAP AG 2006
Umgekehrt sind dem rufenden Programm auch nicht die globalen Daten der X-Funktionsgruppe
bekannt, die die Benutzereingaben auf dem Subscreen enthalten. Daher läßt der SAP-
Anwendungsprogrammierer die auf dem Subscreen geänderten Daten wieder über einen Programm-
Exit an das rufende Programm zurückgeben.
Dazu wird zu PAI des Hauptdynpros ein Modul aufgerufen, das einen Programm-Exit zum Empfang
der entsprechenden globalen Daten der X-Funktionsgruppe enthält.
Projektverwaltung
Projekt Anlegen
Dynpro-Exit
Teilobjekte
SAPMXYZ0200_abcd_SAPLXaaa1234
Attribute
Zuordnung Erweiterungen Programm-Exits
Komponenten
Dokumentation
EXIT_SAPMXYZ_001
EXIT_SAPMXYZ_002
Anzeigen Ändern
Screen Painter
SAP AG 2006
Komponenten
bearbeiten
Nein Ja
Dynpro
vorhanden?
Dynpro Screen Painter
anlegen? Screen
System Hilfe Painter
System Hilfe
Screen Painter
System Hilfe
Dynproattribute
System Hilfe
*INCLUDE ZXaaaO01.
MODULE a OUTPUT.
...
SAP AG 2006
SAP AG 2006
Kapitel: Customer-Exits
Thema: Programm-Exit
Kapitel: Customer-Exits
Thema: Menü-Exit
1-1 Untersuchen Sie die Transaktion BC425_##. Gibt es eine Möglichkeit, über einen
Menüeintrag der Transaktion ein Programm aufzurufen?
1-1-1 Hat der SAP-Entwickler für die angegebene Transaktion einen Customer-
Exit implementiert, den Sie zum Hinzufügen der gewünschten
Funktionalität nutzen können?
1-1-2 Wie heißt die zugehörige SAP-Erweiterung? Wählen Sie die Erweiterung
aus, mit deren Hilfe Sie eine Menü-Erweiterung implementieren können.
Kapitel: Customer-Exits
Thema: Dynpro-Exit
"Es wäre wirklich schön, wenn wir auf der Detailanzeige der
Transaktion BC425_## zur Anzeige von Flügen noch
zusätzliche Daten angezeigt bekämen".
Sie stellen sich natürlich auch dieser Herausforderung und suchen
nach einer Lösung des Problems, ohne die Transaktion
modifizieren zu müssen. Sie suchen nach einer Möglichkeit, auf
dem zweiten Dynpro (Nummer 200) einige Felder hinzuzufügen.
1-1 Welche Möglichkeiten gibt es, auf einem Dynpro zusätzliche Felder zu plazieren?
Untersuchen Sie Dynpro 200 der Transaktion BC425_## darauf, ob diese
Möglichkeit hier gegeben ist.
1-1-1 Existiert zum Erweitern des Dynpros ein Dynpro-Exit?
1-1-2 Wenn ja, wie lautet der Name der zugehörigen Erweiterung?
Kapitel: Customer-Exits
Thema: Programm-Exit
1-1 Auf folgende Weise können Sie die Transaktion daraufhin untersuchen, ob sie
Customer-Exits anbietet:
1-1-1 System Status liefert den Namen des zugehörigen Programms
(SAPBC425_FLIGHT##)
1-1-2 Nun haben Sie mehrere Möglichkeiten, 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 einschränken mit
EXIT_SAPBC425_FLIGHT##_* im Komponentennamen).
Die von Ihnen gesuchte Erweiterung hat den Namen SBC##E01. Die
Dokumentation der Erweiterung deutet darauf hin, daß sie für zusätzliche
Prüfungen auf dem ersten Dynpro der Transaktion gedacht ist.
1-2 Zum Implementieren der Erweiterung wählen Sie die Transaktion CMOD.
1-2-1 Zur Transaktion CMOD gelangen Sie über den Menüpfad Werkzeuge
ABAP Workbench Hilfsmittel Erweiterungen 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 Quelltext des Exit-
Funktionsbausteins. Legen Sie das Include per Doppelklick an. Der von
Ihnen erfaßte Quelltext könnte etwa so aussehen:
IF flight-fldate < sy-datum.
MESSAGE w011(bc425) WITH sy-datum.
ENDIF.
Aktivieren Sie Ihr Include. Gehen Sie zurück zur Projektverwaltung und
aktivieren Sie Ihr Erweiterungsprojekt.
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 bzw. die Transaktion CMOD.
1-1-1 Suchen Sie nach einer Erweiterung, die im technischen Namen der
Komponente den Programmnamen beinhalten (Suche einschränken mit
SAPBC425_FLIGHT##* im Komponentennamen)
1-1-2 Die von Ihnen gesuchte Erweiterung hat den Namen SBC##E02.
1-2 Zum Implementieren der Erweiterung wählen Sie die Transaktion CMOD.
1-2-1 Zur Transaktion CMOD gelangen Sie über den Menüpfad Werkzeuge
ABAP Workbench Hilfsmittel Erweiterungen 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 Menütext. Bearbeiten
Sie den Programm-Exit per Doppelklick. Legen Sie das Kunden-Include per
Vorwärtsnavigation an.
1-2-3 Der Quelltext des Includes sollte für Gruppe 00 folgendermaßen aussehen:
SUBMIT sapbc425_booking_##
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.
Kapitel: Customer-Exits
Thema: Dynpro-Exit
1-1 Schauen Sie sich die Dynpros der Transaktion im Screen-Painter an. Sie stellen
fest, daß Dynpro 200 der Transaktion BC425_## einen Subscreen-Bereich enthält.
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 Dynpro-Typ "Subscreen"
wählen. Übernehmen Sie die Felder aus der entsprechenden Struktur
SFLIGHT## des Dictionary. Um ein Feld für die freien Plätze auf dem
Dynpro zu plazieren, haben Sie prinzipiell zwei Möglichkeiten:
Sie deklarieren eine entsprechende Variable im TOP-Include der X-
Funktionsgruppe, generieren das Programm. Danach können Sie dieses
Programm-Feld auf dem Dynpro plazieren. Oder: Sie können Ihre Append-
Struktur erweitern. Diese Möglichkeit sollten Sie in der Übung nicht nutzen,
da der Referent die Felder der Append-Struktur mit einem Programm füllt.
Die Erweiterung der Append-Struktur könnte zu Fehlern in diesem
Programm führen.
1-2-2 Für den korrekten Datentransport verwenden Sie den Programm-Exit der
Erweiterung. Legen Sie das Kunden-Include an und erfassen Sie folgenden
Quelltext :
MOVE-CORRESPONDING flight TO sflight##.
seatsfree =
flight-seatsmax – flight-seatsocc.
TOP-Include:
TABLES: sflight##.
DATA: seatsfree type s_seatsocc.
Aktivieren Sie die Programme und anschließend Ihr Erweiterungsprojekt.
Inhalt:
Was sind Business Transaction Events?
Verschiedene Arten von BTEs
Business Transaction Events finden
Business Transaction Events verwenden
Vergleich Customer-Exits - Business Transaction Events
SAP AG 2006
SAP AG 2006
Personali
Modifikation Erweiterung
sierung
Transaktions Modifikationsassistent ABAP Dictionary
varianten Tabellen 4
User-Exits Datenelemente
Customer-Exits 5
3 8 Business Transaction Events 6
Business Add Ins 7
Überblick 2
SAP AG 2006
Auslieferungswege
Business
heute Transaction
Events
Customer-
Customer-
früher
Exits
SAP AG 2006
Die Software-Auslieferung stellt sich heute gegenüber früher grundsätzlich verändert dar: Früher
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 Funktionalität entwickelt und anbietet. Nächstes Glied
in der Auslieferungskette kann ein Partner-Unternehmen sein, das seinerseits eine CSP-Lösung 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 Bedürfnissen
können Customer-Exits mit ihrer einmaligen Verwendbarkeit nicht genügen. Aus diesem Grund
wurde zu Release 4.0 eine neue Erweiterungstechnik geschaffen, die eine Mehrfachverwendung
einer Erweiterung zulässt.
Business Transaction Events (kurz BTE) geben Ihnen die Möglichkeit, Zusatzkomponenten,
beispielsweise in Form von Funktionsbausteinen, an das SAP-Standardsystem anzubinden.
Prozeß-Schnittstellen
Sie dienen dazu, Geschäftsprozesse 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 zurück.
Anwendungsprogramm
Aktive Implementierung
Event-Funktionsbaustein
Implementierungs-
Implementierungs-
OPEN_FI_PERFORM_<…>
Funktionsbaustein
des Kunden/Partners
CALL FUNCTION
CALL FUNCTION
SAP AG 2006
In diesem Bild ist der Ablauf eines SAP-Programmes dargestellt. Das Programm enthält 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 Event-Funktionsbausteine beginnen mit "OPEN_FI_PERFORM_"
bzw. "OUTBOUND_CALL_").
Der Event-Funktionsbaustein OPEN_FI_PERFORM_<…> bzw. OUTBOUND_CALL_<…>
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 berücksichtigt, 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.
REPORT
REPORT ...
...
...
...
CALL FUNCTION
'OPEN_FI_PERFORM_00001350_E'
EXPORTING
<i_variables>.
FUNCTION-POOL
FUNCTION-POOL <sap_fp>.
<sap_fp>.
...
... wa
FUNCTION
FUNCTION open_fi_perform_00001350_e.
open_fi_perform_00001350_e.
...
...
LOOP
LOOP AT
AT itab
itab into
into wa.
wa. itab
CALL FUNCTION wa-
wa-fb_name BTE FB_NAME
EXPORTING
00001350 Z_FUBA001
<i_variables>.
00001350 /ABC/FUBA002
ENDLOOP.
ENDLOOP.
... 00001350 /CUSNR/FUBA003
...
ENDFUNCTION.
ENDFUNCTION.
SAP AG 2006
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-Transaktion
Schnittstellen (BTEs)
Datenfluß
SAP AG 2006
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 Verfügung, an denen ein Partner oder Kunde zusätzliche Logik hinterlegen kann.
Im einfachsten Fall wird eine solche Schnittstelle nur von einem Partner oder dem Kunden selbst
genutzt. Dies würde dem Fall entsprechen, der auch bei Customer-Exits (siehe Kapitel "Vorgedachte
Erweiterungen") behandelt wurde.
SAP-Transaktion
Schnittstellen (BTEs)
Datenfluß
Beide Komponenten
Add-on-Komponente von Partner B existieren, ohne sich
gegenseitig zu behindern.
SAP AG 2006
P/S-Schnittstellen Prozess-Schnittstellen
IBU IBU
Partner Partner
1 1
SAP--Transaktion
SAP--Transaktion
Partner Partner
2 2
Kunde Kunde
SAP
SAP
IBU IBU
Partner Partner
1 1
Partner Partner
2 2
Kunde Kunde
SAP Kunde
2 Produkt anlegen
Muster-Funktionsbaustein
SAMPLE_INTERFACE_<BTE-ID> 1
- kopieren
- Zusatzfunktionalität
(Quelltext) realisieren
- FB aktivieren
SAP AG 2006
Business Transaction Events erlauben dem Verwender, ähnlich wie Programm-Exits, in einer
Anwendungsfunktion zusätzliche 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 für diesen Event mögliche Funktionalität
in der zugehörigen SAP-Dokumentation.
Zunächst vergibt der SAP-Anwendungsentwickler eine achtstellige Event-Nummer, die den BTE
qualifiziert. Diese Nummern sollten einer bestimmten Konvention gehorchen. Zum Beispiel sollen
Zeitpunkte, die im gleichen SAP-Anwendungsprogramm integriert sind, im Namen an der 5. und 6.
Stelle identisch sein.
Der SAP-Entwickler registriert den Event und legt einen Muster-Funktionsbaustein
sample_interface_<BTE-ID> an, der die Schnittstelle für den Verwender festlegt.
Anwendungsprogramm starten
System Status IMG
Doppelklick auf Programmnamen Transaktion
FIBF
Suchen nach Zeichenkette ...
OPEN_FI_PERFORM Finanzwesen
Grundeinstellungen
(global in Programm) BTE verwenden
SAP AG 2006
Key Beschreibung
… … Muster-FB
… …
… … Schnittstelle des FBs
*** Liste selektierter BTEs *** Dokumentation
SAP AG 2006
In der Service-Transaktion FIBF finden Sie im Menüpunkt "Umfeld" zwei Programme, mit deren
Hilfe sie nach BTEs suchen können. Dabei können sie über verschiedene Parameter das
Suchergebnis einschränken.
In einer Liste werden ihnen die gefundenen BTEs angezeigt. Von dieser Liste ausgehend können sie
folgende Aktionen ausüben:
Musterfunktionsbaustein anschauen (In den Function Builder navigieren, z.B. zum Kopieren des
Musterbausteins)
sich die Schnittstelle anzeigen lassen
die Dokumentation studieren
Aus der Dokumentation muss eindeutig hervorgehen, wie Sie die Erweiterung einsetzen können und
welchen Beschränkungen sie unterliegt.
Produkt
Kunde aktiv
SAP
Kunde
SAP AG 2006
Ebenfalls in der Service-Transaktion FIBF können sie ein Produkt anlegen. Produkte dienen dem
Zweck, mehrere Erweiterungen zusammenzufassen.
Es können Produkte zu verschiedenen Auslieferungsschichten angelegt werden. Diese definieren
eine Reihenfolge in der Abarbeitung der Implementierungen eines Business Transaction Events.
Produkte können nur als Ganzes ein- bzw. ausgeschaltet werden. Damit kann der Verwender steuern,
welche Erweiterungen durchlaufen werden sollen und welche nicht. Darüber hinaus ist auf diese
Weise die Integrität der gesamten Erweiterung sichergestellt.
Muster-FB kopieren
Function Builder
als Kunden-FB (Z_*)
Quelltext pflegen
Funktionsbaustein SAMPLE_INTERFACE_<BTE-ID>
aktivieren
SAP AG 2006
Produkt aktivieren
Alle Verwaltungsaktivitäten zum Nutzen eines Business Transaction Events können Sie über die aus
dem Customizing zugängliche Transaktion FIBF abwickeln.
Zunächst wählen Sie eine Schnittstelle, an der ein eigener Funktionsbaustein aufgerufen werden soll.
Die Taste "Schnittstelle" zeigt die Parameterstruktur des ausgewählten Interfaces. Desweiteren
informieren Sie sich in der Dokumentation, welche Aktivitäten 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
verändert werden. Sie können den Baustein mit beliebigem Quelltext füllen. Allerdings dürfen Sie
kein COMMIT WORK verwenden! Vergessen Sie nicht, den Funktionsbaustein zu aktivieren!
Legen Sie ein Produkt im erwähnten Verwaltungsbild an.
Ordnen Sie Ihren Funktionsbaustein und das Produkt der entsprechenden Event-Nummer zu.
Business
Customer-
Customer-Exits Transaction
Events
Programm-
Programm-Exit
Menü
Menü-Exit
Dynpro-
Dynpro-Exit
Append-
Append-Felder
auf Dynpro
Verwaltungs
ebene
mehrfach
verwendbar
mandanten
abhä
abhängig
filterabhä
filterabhängig
SAP AG 2006
SAP AG 2006
Inhalt:
Suchen nach Business Add Ins
Implementieren von Business Add Ins
(Anlegen von Business Add Ins)
SAP AG 2006
SAP AG 2006
SAP AG 2006
Personali
Modifikation Erweiterung
sierung
Transaktions Modifikationsassistent ABAP Dictionary
varianten Tabellen 4
User-Exits Datenelemente
Customer-Exits 5
3 8 Business Transaction Events 6
Business Add Ins 7
Überblick 2
SAP AG 2006
SAP AG 2006
Auslieferungswege
Business
heute Add Ins
Customer-
Customer-
früher
Exits
SAP AG 2006
SAP AG 2002
Schnittstelle
Private Öffentliche
Komponenten Attribute
Flug Fluggesellschaft
Flugnummer
Kunde
Adresse Öffentlicher
Zugriff
Passagier-
liste Öffentliche
Methoden
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
Außen:
Öffentliche Komponenten: Die nach außen 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 können 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 Identität, die es eindeutig von anderen Objekten mit den gleichen
Attributen und Methoden unterscheidet.
Funktionsgruppe 1 Funktionsgruppe 2
Funktions-
Funktions- Daten Funktions-
Funktions- Daten
... ...
baustein baustein
… …
SAP AG 1999
... ...
…
stelle
Schnitt-
Schnitt - Daten …
baustein
Schnitt-
Schnitt - Daten
… ... …
stelle
...
stelle
… …
SAP AG 1999
In der Praxis ist es sehr umständlich, eine Instanzenverwaltung innerhalb von Funktionsgruppen
durchzuführen. Daher liegen im allgemeinen die Daten beim aufrufenden Programm, und die
Funktionsbausteine arbeiten auf diesen Daten. Dies wirft verschiedene Probleme auf. Beispielsweise
müssen 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 häufig 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 gefährlich, da beim Ablauf
komplexer Transaktionen kaum kontrolliert werden kann, wann welche Funktionsgruppe geladen
wird.
Diese Probleme werden durch die Einführung von Klassen gelöst. Daten und Funktionalität 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.
Interface
SAP AG 1999
SAP AG 2006
BAdIs
Implemen-
Implemen- Implemen
tierung tierung
SAP Implemen-
Implemen-
Programm tierung
Implemen
tierung
Software
produkt Implemen
tierung
SAP AG 2006
Eigensch.
BAdI
INTERFACE
<badi-interface>.
Mehrfach verwendbar DATA: a1 ...
Filterabhängig
METHODS m1
EXPORTING
FCodes e_par1
e_par2 Generierte
Programm Funktionscode IMPORTING BAdI-
<prog> +ABC i_par1. Klasse
METHODS m2 ...
ENDINTERFACE.
Subscreens
SAP AG 2002
In einem Business Add In sind die Komponenten der Erweiterung zusammengefasst. Ein Business
Add In kann folgende Erweiterungsmöglichkeiten anbieten:
Programmerweiterung: Im Business Add In sind die Schnittstellen für 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.
Menü-Erweiterung: Analog zu Customer-Exits können in einem BAdI Funktionscodes eingetragen
sein. Die entsprechenden Menü-Einträge sind in der CUA-Definition vorhanden und werden durch
die Implementierung des BAdIs sichtbar.
Dynpro-Erweiterung: Analog zu Customer-Exits können in einem BAdI Dynpro-Erweiterungen
definiert sein, die Sie implementieren können.
Bei der Definition eines BAdI werden mehrere Komponenten angelegt:
Interface
generierte Klasse (BAdI-Klasse), die das Interface implementiert
Die generierte Klasse (BAdI-Klasse) hat folgende Aufgaben:
Filterung: Falls ein BAdI nur unter bestimmten Bedingungen ausgeführt werden soll, sorgt die
BAdI-Klasse dafür, dass nur die gültigen Implementierungen aufgerufen werden.
Steuerung: Die BAdI-Klasse ruft die aktiven Implementierungen auf.
1 Abarbeiten aktiver
Implementierungen
Instanz von
BAdI-Klasse BAdI: Instanz von
<badi-class> Implement.
Implement. Klasse
SAP AG 2006
In diesem Bild ist der Ablauf eines Programmes dargestellt, das einen BAdI-Aufruf enthält. Um die
Möglichkeiten 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.
REPORT
REPORT <sap_program>.
<sap_program>.
CALL METHOD 1
cl_exithandler=>get_instance
CHANGING
instance = r_var
r_var.
. r_var
...
...
...
...
SAP AG 2006
Hier ist die Syntax dargestellt, die der Aufruf eines Business Add Ins erfordert. Die numerierten
Kreise korrespondieren mit den Aufrufen auf dem letzten Bild.
Zunächst 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 können nun die mit der Erweiterung zur Verfügung gestellten
Methoden aufgerufen werden (2).
( global in Programm )
Repository
Doppelklick auf Referenzvariable Infosystem
Doppelklick auf Interface
Verwendungsnachweis Interface
CL_EX_<BAdI-Name>
IMG
SE18
Das Suchen von Business Add Ins kann mit verschiedenen Strategien geschehen:
Sie können 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 Vorwärtsnavigation unter Berücksichtigung der Namenskonventionen führt 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 einzuschränken.
Verzweigen sie in das Repository Infosystem, wo sie unter "Erweiterungen --> Business Add Ins"
das entsprechende Suchprogramm finden.
Alternativ stehen ihnen gegebenenfalls Einträge im Einführungsleitfaden in der entsprechenden
Komponente zur Verfügung.
BAdI-Name ___________
Implementierungsname _
SAP AG 2006
Zum Implementieren von Business Add Ins verwenden sie Transaktion SE19 (Werkzeuge --> ABAP
Workbench --> Hilfsmittel --> Business Add Ins --> Implementierung).
Vergeben Sie einen Namen für ihre Implementierung und wählen 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 können 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 können. Ausserdem
können sie hier neue Implementierungen anlegen.
Bemerkung: Zu SAP NetWeaver Application Server 7.0 gibt es neben den bisherigen, klassischen
BAdIs auch die neuen (siehe Anhang). Daher ist das Einstiegsbild der Transaktion SE19 angepasst
worden. Um eine Implementierung zu einem klassischen BAdI anzulegen, wählen Sie im unteren
Eingabebereich des Einstiegsbilds "Klassisches BAdI", tragen den BAdI-Namen in das
entsprechende Feld und betätigen die Drucktaste "Impl. anlegen".
Interfacename <badi-interface>
Name der implementierenden Klasse <impl-class>
Methode Beschreibung
<meth_abc> Methode des BAdI
blendet
Schnittstelle der
Methode ein
Class Builder: Editieren Methode <badi-interface>~<m...>
Signatur
METHOD <badi-interface>~<meth_abc>.
*...
ENDMETHOD.
SAP AG 2006
Der Name der implementierenden Klasse kann prinzipiell frei gewählt werden. Es empfiehlt sich
jedoch, die vorgeschlagene Namenskonvention zu beachten. Der vorgeschlagene Name setzt sich
zusammen aus
Namensraumpräfix, Y oder Z
CL_ (steht für Klasse)
IM_ (steht für Implementierung)
Name der Implementierung (ohne Namensraumpräfix)
Durch Doppelklick auf den Namen der Methode gelangen Sie in den Editor zum Implementieren der
Methode.
Im letzten Schritt müssen die Objekte aktiviert werden.
METHOD <badi-interface>~<method>.
ENDMETHOD.
Class Builder: Klasse <impl-class> ändern
Parameter Ausnahmen
Methode Art Beschreibung
<priv_method> new method in Implementation
SAP AG 2002
Sie können 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.
Implementierungsname <impl>
SAP AG 2006
Mit den entsprechenden Ikonen können sie die Implementierung eines Business Add Ins aktivieren.
Ab diesem Zeitpunkt werden die Methoden der Implementierung durchlaufen, wenn das
entsprechende aufrufende Programm ausgeführt 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" ausgeführt. Das gleiche gilt für den
Methodenaufruf, der die Methode der Adapterklasse ruft.
Zu einem Business Add-In, welches nur eine Implementierung haben kann, können mehrere
Implementierungen in einem System existieren. Es kann aber jeweils nur eine aktiv sein.
SAP Kunde
SAP AG 2006
Analog zu Customer-Exits können sie auch bei Business Add Ins Menü-Erweiterungen nutzen. Dazu
müssen folgende Voraussetzungen vorliegen:
Der Entwickler des zu erweiternden Programms muss die Erweiterung vorgedacht haben.
Die Menü-Erweiterung muss in einer BAdI-Implementierung implementiert sein.
SAP
Menu Painter
SAP AG 2006
PROGRAM
PROGRAM <sap_program>.
<sap_program>.
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 -> <meth_abc>
EXPORTING
<i_variables>
IMPORTING
<e_variables>.
...
...
ENDCASE.
ENDCASE.
SAP AG 2006
Eigensch.
Mehrfach verwendbar
Filterabhängig
SAP AG 2006
Funktionscodes können nur zu einfach nutzbaren Business Add Ins existieren. Das Business Add In
darf darüber hinaus nicht filterabhängig sein.
Diese Einschränkungen sind notwendig, um Konflikte von mehreren Implementierungen zu
vermeiden ("Welcher Menüeintragstext soll zur Anzeige gebracht werden?").
SAP AG 2006
Definitionsname__
SAP AG 2006
Zum Anlegen eines BAdIs verwenden Sie den BAdI Builder (Werkzeuge --> ABAP Workbench -->
Hilfsmittel --> Business Add-Ins --> Definition) oder den Transaktionscode SE18.
Vor SAP NetWeaver Application Server 7.0 besitzt die Transaktion SE18 das oben in der Grafik
gezeigte Einstiegsbild.
Ab SAP NetWeaver Application Server gibt es neben den bisherigen auch die neuen BAdIs, die in
sogannten Enhancement Spots enthalten sind (siehe Anhang). Um ein bisheriges (klassisches) BAdI
anzulegen, müssen Sie im neu gestalteten Einstiegsbild der SE18 über das Menü "Hilfsmittel
Anlegen klassischer BAdI" gehen.
SAP AG 2006
Unter den Eigenschaften können sie zwei wichtige Eigenschaften des Business Add Ins festlegen:
Mehrfach verwendbar
Filterabhängig
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) können ebenfalls mehrere
Implementierungen nebeneinander existieren. Es kann allerdings in diesem Fall nur eine aktive
Implementierung geben.
Die Filterabhängigkeit eines Business Add In ermöglicht Ihnen, den Aufruf der Erweiterung von
bestimmten Randbedingungen abhängig zu machen. Der Filtertyp muss in Form eines
Datenelementes oder einer im ABAP Dictionary vorhandenen Struktur angegeben werden. Die
Wertetabelle der Domäne, auf die sich das Datenelement bezieht, gibt die für die Implementierung
sinnvollen Werte vor. Bei einer Struktur als Filtertyp gilt diese Aussage entsprechend für die
Einzelfelder der Struktur.
Beim Aufruf der Erweiterungs-Methode muss in diesem Fall ein Filterwert an der Schnittstelle
mitgegeben werden.
Eigensch.
Mehrfach verwendbar
Filterabhängig
SAP AG 2006
Interfacename <badi-interface>
Parameter Ausnahmen
Methode Art Beschreibung
<method1> Methode 1 der Erweiterung
<method2> Methode 2 der Erweiterung
SAP AG 2006
Das System schlägt ihnen einen Namen für das Interface und die generierte BAdI-Klasse vor. Der
Name des Interfaces ist hierbei änderbar und kann theoretisch von ihnen frei gewählt 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:
Namensraum-Präfix
CL_ (für Klasse allgemein)
EX_ (steht für "Exit")
Name des Business Add Ins (ohne Namensraum-Präfix)
Durch Doppelklick auf den Namen des Interfaces gelangen sie in den Class-Builder, wo sie die
Methoden des Interfaces definieren können.
Zu einem BAdI-Interface können mehrere Interface-Methoden gehören.
Parameter Ausnahmen
Methode Art Beschreibung
<method> methode des BAdI
Methoden Ausnahmen
Parameter Art Type Beschreibung
Importing
Exporting
Changing
SAP AG 2006
Im Class Builder können sie alle gewohnten Aktivitäten ausführen. Sie können unter anderem
Interface-Methoden definieren
Schnittstellenparameter der Methoden definieren
Attribute des Interfaces vereinbaren
Bei filterabhängigen Business Add Ins müssen sie bei jeder Methode einen Import-Parameter flt_val
definieren! Ansonsten vereinbaren sie die Schnittstellenparameter, die für die Verwendung der
Erweiterung notwendig sind.
Parameter Ausnahmen
Methode Art Beschreibung
<method> Methode des BAdI
SAP AG 2006
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 können sie die BAdI-Klasse auch explizit generieren
(unter Hilfsmittel --> Neugenerierung).
REPORT
REPORT <sap_program>.
<sap_program>.
DATA r_var
r_var TYPE REF TO <badi
<badi-
-interface>.
interface>. 1
...
...
...
...
...
...
SAP AG 2006
Um eine Methode eines Business Add Ins in einem Anwendungsprogramm aufrufen zu können,
müssen 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 zurück. Implizit wird hierbei ein Down-Cast
durchgeführt, so daß nur die Interface-Methoden des Objekts mit der Referenz-Variable (hier:
"r_var") ansprechbar sind.
Nun können sie die Methoden des BAdI aufrufen (3). Geben Sie die Schnittstelle korrekt an.
REPORT
REPORT <sap_program>.
<sap_program>.
Instanz von
DATA:
DATA: r_var
r_var
TYPE
TYPE REF
REF TO
TO <badi-interface>.
<badi-interface>.
1 <badi-
badi-class>
...
...
CALL
CALL METHOD
METHOD
cl_exithandler=>get_instance
cl_exithandler=>get_instance 2
CHANGING
CHANGING
instance
instance == r_var.
r_var.
r_var
...
...
SAP AG 2006
Bei filterabhängigen Business Add Ins müssen sie den Parameter flt_val mit einem entsprechenden
Wert versorgen.
SAP AG 2006
Statisches
Attribut:
Attribut:
Dynpro-
Dynpro-Instanz
abcd PUT DATA PAI
PAI
GET DATA
Implement. Klasse
Instanz-
Instanz- Attribute:
Dynpro-
Dynpro- Daten
SAP AG 2006
Die ABAP Virtual Machine kennt keine klassengebundenen Dynpros. Als Träger von Dynpros
können somit nur "klassische" Programme (Typ 1, F, M) verwendet werden. Dynpro-Erweiterungen
müssen diesen Umstand berücksichtigen.
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 Trägerprogramm des Subscreens. Sie erfolgt über die generierte BAdI-
Klasse.
Auf den folgenden Graphiken wird diese Kommunikation Schritt für Schritt abgebildet.
METHODS put_
put_data
Mehrfach verwendbar EXPORTING
Filterabhängig <data>.
data>.
METHODS get_
get_data
IMPORTING
FCodes
<data>.
data>.
Programm Funktionscode
<prog> +ABC METHODS ...
ENDINTERFACE.
Subscreens
SAP AG 2006
Enthält ein BAdI eine oder mehrere Screen-Erweiterungen, kann es nicht als mehrfach verwendbar
gekennzeichnet sein. Enthält es zusätzlich noch Menü-Erweiterungen, ist auch die Filterabhängigkeit
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.
PBO:
Instanz der BAdI-Klasse erzeugen
Instanz publizieren, damit Implementierer darauf zugreifen
kann
Programmname und Subscreen-Dynpronummer der
Implementierung beschaffen
Daten für Subscreen-Dynpro zur Verfügung stellen
Subscreen in Subscreen-Bereich integrieren
SAP AG 2006
Um eine Dynpro-Erweiterung über die BAdI-Technik anbieten zu können, müssen im PBO des
Anwendungsdynpros die oben aufgelisteten Schritte implementiert werden.
PAI:
Subscreen aufrufen
Benutzereingaben auf Subscreen beschaffen
SAP AG 2006
Im PAI des Träger-Dynpros müssen das Subscreen erneut gerufen und - je nach Design der
Erweiterung - vom Benutzer auf dem Subscreen geänderte Daten in das Anwendungsprogramm
geladen werden.
SAP-Anwendungsprogramm CL_EXITHANDLER
Dynpro ABAP
DATA r_exit
TYPE REF TO
<badi-interface>.
PBO
MODULE... CALL METHOD
MODULE... cl_exithandler
cl_exithandler
MODULE... =>get
=>get_
_instance
MODULE... CHANGING
BadI-Klasse
instance = r_exit.
r_exit.
<badi-class>
CALL
SUBSCREEN...
abcd
SAP AG 2006
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.
SAP-Anwendungsprogramm CL_EXITHANDLER
Dynpro ABAP
DATA r_exit
TYPE REF TO
<badi-interface>.
PBO
MODULE...
MODULE... CALL METHOD
MODULE... cl_exithandler=>
MODULE... set_instance_for BadI-Klasse
_subscreens <badi-class>
CALL EXPORTING
instance = r_exit.
r_exit.
SUBSCREEN...
abcd
SAP AG 2006
Die Implementierung wird später ebenfalls auf die Instanz der BAdI-Klasse zugreifen müssen.
Darum ist es notwendig, diese Instanz zu "publizieren". Dies geschieht durch den Aufruf der
statischen Methode SET_INSTANCE_FOR_SUBSCREENS der Standardklasse
CL_EXITHANDLER.
SAP-Anwendungsprogramm CL_EXITHANDLER
Dynpro ABAP
DATA r_exit
TYPE REF TO
<badi-interface>.
PBO
MODULE...
MODULE...
MODULE... CALL METHOD
MODULE... cl_exithandler=> BadI-Klasse
get_prog_and_dynp <badi-class>
CALL _for_
for_subscr
SUBSCREEN... EXPORTING
...
IMPORTING
called_
called_program =...
called_dynpro =...
abcd
SAP AG 2006
Für die Anweisung CALL SUBSCREEN im PBO des Träger-Dynpros müssen Subscreen-Dynpro-
Nummer sowie zugehöriges Programm der Implementierung ermittelt werden. Dies geschieht durch
den Methodenaufruf
CALL METHOD cl_exithandler=>get_prog_and_dynp_for_subscr
Falls noch keine aktive Implementierung existiert, wird ein leeres Dummy-Subscreen-Dynpro (0200)
aus einer existierenden Dummy-Funktionsgruppe (SAPLSEXM) ermittelt.
Ist jedoch eine aktive Implementierung zur verwendeten BAdI-Definition vorhanden, wird das bei
der Implementierung angegebene Subscreen-Dynpro aus dem angegebenen Programm verwendet.
SAP-Anwendungsprogramm CL_EXITHANDLER
Dynpro ABAP
DATA r_exit
TYPE REF TO
<badi-interface>.
PBO
MODULE...
MODULE...
MODULE...
MODULE... CALL METHOD BadI-Klasse
r_exit-
r_exit->put_
put_data <badi-class>
CALL EXPORTING
SUBSCREEN... <daten>
daten>
daten
abcd
SAP AG 2006
Um der Implementierung Daten zur Verfügung zu stellen, müssen 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
Verfügung 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.
abcd
SAP AG 2006
abcd
PAI
CALL SUBSCREEN abcd. BadI-Klasse
<badi-class>
MODULE... CALL METHOD
r_exit-
r_exit->get_
get_data
IMPORTING
<daten>
daten> daten
SAP AG 2006
Sollen die auf dem Subscreen getätigten Benutzereingaben ins Anwendungsprogramm zur
Weiterverarbeitung geladen werden, muss die entsprechende Methode (hier: GET_DATA) gerufen
werden.
BAdI-Screen-Erweiterungen (Dynpro-Exits)
implementieren
SAP AG 2006
Subscreen-Dynpro anlegen
PBO:
Instanz der BAdI-Klasse beschaffen
Daten für Subscreen-Dynpro beschaffen
PAI:
Auf Subscreen geänderte Daten zurückschreiben
BAdI-Implementierung anlegen
SAP AG 2006
PBO
CALL METHOD MODULE...
BadI-Klasse cl_exithandler=>
<badi-class> get_instance_for
_subscreens
IMPORTING
daten instance = r_exit1.
r_exit1.
abcd
SAP AG 2006
Zur Beschaffung der Referenz auf die Instanz der BAdI-Klasse stellt die Klasse
CL_EXITHANDLER die Methode GET_INSTANCE_FOR_SUBSCREENS zur Verfügung.
PBO
MODULE...
BadI-Klasse CALL METHOD MODULE...
<badi-class> r_exit1-
r_exit1->get_
get_data
IMPORTING
<daten>.
daten>.
daten
globale Daten
abcd
SAP AG 2006
Das implementierende Programm beschafft sich die auf dem Subscreen anzuzeigenden Daten durch
Aufruf der entsprechenden Methode (hier: GET_DATA). Die Daten werden dabei in globale
Variablen des implementierenden Programms abgelegt, die am PBO-Ende entsprechende Subscreen-
Felder versorgen.
PBO
...
BadI-Klasse
globale Daten
<badi-class>
daten
PAI
CALL METHOD MODULE...
r_exit1-
r_exit1->put_
put_data
abcd EXPORTING
<daten>.
daten>.
SAP AG 2006
Ist die Änderung von Daten auf dem Subscreen vorgesehen, sollen die geänderten Daten
zurückgeschrieben werden, damit das Anwendungsprogramm diese zur Weiterverarbeitung
verwenden kann. Dies erfolgt durch Aufruf der entsprechenden BAdI-Methode (hier: PUT_DATA).
SAP AG 2006
<DE> Filtertyp
<DE>
Domäne
Domäne
Wertetabelle
Wertetabelle Texttabelle
Texttabelle
Feldname Key Typ Feldname Key Typ
... <DE> ... <DE>
... ... language SPRAS
... ...
mandanten
unabhä
unabhängig
Auslieferungsklasse:
"E" oder "S"
SAP AG 1999
Die Domäne, auf die sich der erweiterbare Filtertyp bezieht, muß folgende Eigenschaften haben:
Sie hat eine Texttabelle mit zwei Schlüsselfeldern. Ein Schlüsselfeld hat den Filtertyp
als Feldtypen und ein Schlüsselfeld ist ein Sprachenfeld. Zur Kenntlichmachung als Textfeld
muß es in dieser Tabelle ein Feld geben, das die Zeichenfolge 'TEXT' oder 'TXT' als Teilstring
enthält. Im Dictionary muß die Texttabelle der Wertetabelle zugeordnet sein.
Alle Filterwerte, die im Rahmen eines erweiterbaren filterabhängigen Business Add-Ins angelegt
werden, dürfen in der Wertetabelle noch nicht vorkommen und werden beim Sichern in die
Wertetabelle aufgenommen. Entsprechend werden Sie beim Löschen der Implementierung oder des
gesamten Business Add-Ins aus der Wertetabelle entfernt. Gleiches gilt für die Texttabelle.
Default-
Implementierung
ausführen
SAP AG 2006
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 gewünschte Default-Verhalten erzeugt wird.
Darüber hinaus besteht die Möglichkeit, eine Beispiel-Implementierung anzulegen. Hierbei handelt
es sich um Kopiervorlagen, die in die Methoden der Implementierungen eingebunden werden
können.
Beispiel-Implementierungen können 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.
Business Business
Customer-
Customer-Exits Transaction Add
Events Ins
Programm-
Programm-Exit
Menü
Menü-Exit
Dynpro-
Dynpro-Exit
Append-
Append-Felder
auf Dynpro
Verwaltungs
ebene
mehrfach
verwendbar
filterabhä
filterabhängig
SAP AG 2006
Business Add Ins sind die natürliche Weiterentwicklung der bisher verfügbaren
Erweiterungstechniken. Von Customer-Exits wurden die Verwaltungsschicht übernommen ebenso
wie die Verfügbarkeit der unterschiedlichen Erweiterungsarten.
Von Business Transaction Events wurde die Idee der Mehrfachverwendbarkeit aufgegriffen und mit
einem konsequent objektorientierten Ansatz verwirklicht.
BAdI-Definition
<badi> bzw. Z<badi> bzw. /../<badi>
(frei wählbar; Namensräume beachten)
Interface
IF_EX_<badi> bzw. ZIF_EX_<badi> bzw. /../IF_EX_<badi>
(frei wählbar; Namensräume beachten)
Methoden
Namen beliebig
SAP AG 2006
BAdI-Implementierung
<impl> bzw. Z<impl> bzw. /../<impl>
(frei wählbar; Namensräume beachten)
Interface
IF_EX_<badi> bzw. ZIF_EX_<badi> bzw. /../IF_EX_<badi>
(von BadI-Definition vorgegeben)
Methoden
von BAdI-Definition vorgegeben
Implementierende Klasse
CL_IM_<impl> bzw. ZCL_IM_<impl> bzw. /../CL_IM_<impl>
(frei wählbar; Namensräume beachten)
SAP AG 2006
SAP AG 2006
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-3 Bereiten Sie das Programm soweit vor, daß ein Verwender bei Doppelklick auf eine
Zeile die Möglichkeit erhält, eine Verzweigungsliste auszugeben.
1-3-1 Implementieren Sie das Ereignis AT LINE-SELECTION.
1-3-2 Fügen 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.
1-2 Suchen Sie nach Business Add Ins, mit deren Hilfe Sie die oben genannten
Anforderungen implementieren können.
1.2.1 Suchen Sie in der Anwendungshierarchie
1.2.2 Suchen Sie im Repository Infosysten
1.2.3 Suchen Sie im Einführungsleitfaden
1.2.4 Falls Sie ein BAdI finden: Lesen Sie die Dokumentation und beurteilen Sie,
ob das BAdI für Ihre Erweiterung brauchbar ist.
1-4 Legen Sie eine BAdI-Implementierung an. Die Implementierung soll den Namen
ZBC425SIN## haben.
1.4.1 Implementieren Sie die Interface-Methoden.
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 können Sie anzeigen lassen, indem Sie in der
Transaktion SE18 die Methode doppelklicken. Im Class Builder stellen Sie
den Cursor auf die gewünschte Methode und wählen "Parameter". Die
Übergabestruktur enthält die Felder nicht, die Sie auf der Liste anzeigen
wollen. Sie müssen die entsprechenden Daten nachlesen.
1-2-2 Durch Doppelklick auf den Methodennamen gelangen Sie in den Editor. Im
folgenden ein Vorschlag für 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.
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 wählen Sie ZBC425##. Vergeben Sie einen Kurztext
und sichern Sie Ihre Eingaben.
1-2-2 Wählen 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. Wählen 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.
DATA:
wa_spfli TYPE spfli,
it_spfli TYPE TABLE OF spfli WITH KEY carrid connid.
* 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.
SELECT *
FROM spfli
INTO CORRESPONDING FIELDS OF TABLE it_spfli
WHERE carrid IN so_carr.
*&----------------------------------------------------------*
*& Event END-OF-SELECTION
*&----------------------------------------------------------*
END-OF-SELECTION.
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.
*&----------------------------------------------------------*
1-4 Implementieren Sie das Business Add In. Aus der Transaktion SE18 wählen Sie
Implementierungen Anlegen. Vergeben Sie den Namen ZBC425##_IM für die
Implementierung. Wählen 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.
SELECT *
FROM sflight00
INTO CORRESPONDING FIELDS OF TABLE it_flights
WHERE carrid = i_carrid AND
connid = i_connid.
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
Business Add Ins Definition.
1.2.2 In der Anwendungshierarchie markieren Sie die Anwendungskomponente.
Hiernach wählen 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 wählen Sie "Anzeigen". Sie
befinden sich nun im BAdI Builder, wo Sie die Dokumentation des BAdIs
vorfinden. Machen Sie sich mit der Dokumentation vertraut.
*--------------------------------------------
PROCESS BEFORE OUTPUT.
MODULE get_instance.
MODULE get_data.
*
*--------------------------------------------
PROCESS AFTER INPUT.
MODULE put_data.
*----------------------------------------------------------------------*
***INCLUDE LZBC425_IMO01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module get_instance OUTPUT
*&---------------------------------------------------------------------*
MODULE get_instance OUTPUT.
*----------------------------------------------------------------------*
***INCLUDE LZBC425_IMTOP
*----------------------------------------------------------------------*
FUNCTION-POOL kaura_im_bc425. "MESSAGE-ID ..
TABLES:
sdyn_conn.
DATA:
r_var TYPE REF TO if_ex_bc425_##flight2.
1-4 Legen Sie eine BAdI-Implementierung an. Aus der Definition wählen Sie
Implementierung Anlegen. Vergeben Sie den Namen ZBC425SIN## für die
Implementierung und bestätigen Sie Ihre Eingabe.
1.4.1 Wählen 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 Aktivieren
oder die entsprechende Drucktaste.
1-5 Führen Sie die Anwendung aus und überprüfen Sie, ob Ihre Erweiterung
durchlaufen wird.
Inhalt:
Was sind Modifikationen
Durchführen von Modifikationen
Modifikationsassistent
Modification Browser
User Exits
SAP Note Assistant
Modifikationsabgleich
SAP AG 2002
SAP AG 2002
Personali
Modifikation Erweiterung
sierung
Transaktions Modifikationsassistent ABAP Dictionary
varianten Tabellen 4
User-Exits Datenelemente
Customer-Exits 5
3 8 Business Transaction Events 6
Business Add Ins 7
Überblick 2
SAP AG 2006
Entwicklungssystem Folgesystem
Kundenobjekt Kundenobjekt
Original Kopie
Transport der
Entwicklung
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 für Ihr Entwicklungssystem als auch für alle Ihre Folgesysteme.
Führen 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.
Entwicklungssystem Folgesystem
Kundenobjekt Kundenobjekt
korrigiertes
Kopie
Original
Transport
Korrektur der Korrektur
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 geändert (ein Objekt nicht in seinem Originalsystem geändert), 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 Möglichkeit, 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 Möglichkeit 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 für die Optimierung
bestimmter Arbeitsabläufe in einem Unternehmen unumgänglich sind. Auch sollten Sie sich darüber
im Klaren sein, daß ein gutes Hintergrundwissen über die Aufbau- und Ablaufstruktur einer
Applikation als Grundlage für die Beurteilung von Modifikationsmöglichkeiten und für sinnvolles
Modifikationsdesign bei Änderungen des Standards unabdingbar ist.
Entwicklungssystem Folgesystem
Kundenobjekt Kundenobjekt
korrigiertes
Kopie
Original
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 geändert, 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, müssen Sie für die entsprechenden Objekte einen
Modifikationsabgleich durchführen. Bei vielen modifizierten SAP-Objekten kann es dabei zu
erheblichen Verzögerungen beim Einspielen eines Upgrades kommen.
Um zwischen Entwicklungssystem und Folgesystemen einen konsistenten Stand zu wahren, wird
dringend empfohlen, den Modifikationsabgleich nur im Entwicklungssystem durchzuführen. Die
Objekte des Abgleichs werden dann in die Folgesysteme transportiert.
SAP AG 2002
Objektliste
Kundensystem
Objekt registrieren
Program programname System Hilfe
Schlüssel 07319180563614231463
SAP AG 2006
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) geändert werden. Wird das Objekt zu einem späteren Zeitpunkt nochmals geändert, so
wird der Schlüssel nicht mehr abgefragt. Ist eine Registrierung eines Objektes einmal erfolgt, so
bleibt der zugehörige Schlüssel lokal gespeichert und wird bei späteren Änderungen automatisch
abgerufen, gleichgültig welcher der registrierten Entwickler die Änderung durchführt. Diese
Schlüssel bleiben bis auf weiteres auch über Release-Wechsel hinweg gültig.
Welchen Nutzen haben Sie vom SSCR (SAP Software Change Registration)?
Schnelle Fehlerbehebung und damit hohe Verfügbarkeit bei modifizierten Systemen
Sämtliche veränderte Objekte werden von SAP protokolliert. Auf Basis dieser Information können
Mitarbeiter des SAP First Level Customer Service sehr schnell potentielle Fehlerursachen
lokalisieren und beseitigen. Dadurch wird die Verfügbarkeit Ihres R/3 Systems weiter erhöht.
Zuverlässiger Betrieb
Mit der Notwendigkeit einer Registrierung verringert sich die Wahrscheinlichkeit von
unbeabsichtigten Modifikationen. Dies ermöglicht einen zuverlässigen Betrieb Ihrer R/3
Standardsoftware.
Vereinfachung der Upgrades
Upgrades und Releasewechsel werden durch die geringere Anzahl an Modifikationen in hohem
Maße erleichtert.
ABAP Editor
Zu durchlaufende Schritte:
Programm SSCR-Schlüssel
Nummer des
SSCR Schlü
Schlüssel
Ä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:
SSCR-Schlüssel
Änderungsauftrag
Wie sie den SSCR-Schlüssel erhalten, haben wir oben gesehen. Fahren sie mit der Absicht fort, das
Objekt zu ändern, müssen einige nun folgende Warn-Dialoge bestätigt 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:
Änderungssperre
Nach Zuordnung zur Aufgabe kann nur noch der Inhaber der Aufgabe das Objekt ändern
Importsperre
Das Objekt kann durch einen Import (Upgrade, Support Package) nicht überschrieben werden
Versionierung
Es wird eine Version des Objektes erstellt (siehe unten)
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. Bestätigt der Entwickler die Reparatur, geht auch
die Importsperre an den Auftrag über. Bestätigt der Entwickler die Reparatur nicht bei Freigabe der
Aufgabe, bleibt die Importsperre auf die Objekte bestehen. Nur der Entwickler selbst kann
nachträglich diese Sperre entfernen!
Ist das Projekt abgeschlossen, wird der Änderungsauftrag freigegeben. Die Sperren auf die Objekte
des Änderungsauftrags werden entfernt. Dies gilt für die Änderungssperren und auch für 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 Qualitätssicherungssystem muß der Entwickler seine Modifikationen testen
und die Importprotokolle des Auftrags kontrollieren.
SAP-Objekt
Erstes Sichern
Kopie Vollversion
Rückwä
ckwärtsdelta
Auftragsfreigabe
SAP-Objekt
modifizierte
Kopie
Reparatur
SAP AG 2002
Bei der Freigabe des Änderungsauftrags wird für 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 Rückwärtsdelta auf der Versionsdatenbank abgelegt.
Bei Aufnahme eines Repository Objektes in eine Aufgabe wird überprüft, 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 Abgleichsunterstützung speichert die Versionsverwaltung, ob eine
Version durch SAP oder durch Kunden erzeugt wurde.
REPORT sapabap.
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
Schmale Schnittstellen beim Kapseln
SAP AG 2006
SAP AG 2006
Definieren Sie einen unternehmensweiten Standard, der die Gestaltung der Dokumentation im
Quelltext regelt.
Führen Sie eine Liste aller Modifikationen (Modifikationslogbuch, vgl. folgende Folie).
Modifikationen an Dictionary-Objekten der zentralen Basis des SAP-Systems (ABAP Workbench,
etc) gehen beim Austausch-Upgrade verloren, ohne daß während des Upgrades eine
Abgleichmöglichkeit besteht. Hierdurch können Tabelleninhalte verlorengehen.
Alle Aufträge, die Reparaturen enthalten, müssen 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!) .
SAP AG 2006
SAP empfiehlt, eine Liste aller Modifikationen (also Änderungen an Repository-Objekten des SAP
Namensraums) zu führen.
Die Liste kann folgende Spalten enthalten:
Objekttyp (Programm, Dynpro, GUI Status, ...)
Objektname
Routine (falls erforderlich)
Themenbereich gemäß Fach- oder DV-Konzept
Reparaturnummer
Änderungsdatum
Name des Änderers
Vorabkorrektur (ja/nein)
SAP-Hinweisnummer, gültig bis Release x.y
geschätzter Aufwand für den Wiedereinbau der Modifikation während des Abgleichs
SAP AG 2002
Modifikationsabgleich erleichtern
feinere Granularität
Module
Routinen
Funktionsbausteine
SAP AG 2002
Ziel des Modifikationsassistenten ist es, den Modifikationsabgleich zu erleichtern. Das wird dadurch
erreicht, dass eine Aufzeichnung der Änderungen mit einer feineren Granularität geschieht. Früher
war die Granularität beispielsweise auf Include-Programm-Ebene beschränkt. Heute werden
Änderungen feiner aufgezeichnet. Die Granularität ist nun das Unterprogramm oder Modul.
Erreicht wird dies unter anderem dadurch, dass die Änderungen (Modifikationen) auf einer separaten
Schicht registriert werden. Dies ermöglicht neben der feineren Aufzeichnung auch das Rücksetzen
der Änderungen, da das Original nicht geändert wird.
Modifikationen
SAP AG 2002
Der Modifikationsassistent zeichnet die Änderungen auf einer separaten Ebene auf. Die
ursprüngliche Source eines Objektes bleibt dabei unverändert. Erst beim Generieren der Load
werden die Modifikationen übernommen, sodass das ausführbare Objekt aus Teilen des
ursprünglichen SAP-Programms und den Modifikationen erzeugt wird.
Gestern :
Granularität : Include-Source
Modifikationsabgleich zeilenweise
Jede Modifikation muß manuell in die neue
SAP-Version eingemischt werden ( CUT & PASTE )
SAP AG 2006
Wurde früher ein Include durch eine Modifikation geändert, und dieses Include wurde von SAP neu
eingespielt, kam es zum Modifikationsabgleich. Der Modifikationsabgleich musste dabei zeilenweise
durchgeführt werden. Das System bot wenig Unterstützung beim Abgleich.
Mit dem Modifikationsassistent hat sich die Situation grundlegend geändert: Die Granularität der
Änderungsaufzeichnung wurde verfeinert. Zum Beispiel wird ein Unterprogramm während einer
Modifikation geändert, 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, können die eigenen Änderungen automatisch in die neue Version übernommen werden.
SAP AG 2002
Die Originale der Vorgänger-Softwareschicht plus die eigenen Modifikationen bilden das Original
für nachgelagerte Software-Nutzer
ABAP Editor
Modifikationsmodus
Screen Painter
Layout
Ablauflogik
Menu Painter
Textelemente
Class Builder
Function Builder
Hinzufügen von Funktionsbausteinen
Kompatible Erweiterung der Schnittstelle
Dictionary
Append-Strukturen werden registriert
Datenelemente: Feldbezeichner überlagern
Dokumentation
Doku-Objekte überlagern
SAP AG 2002
R/3-Profile-Parameter eu/controlled_modification
Modifikationsassistent
Das Transportobjekt unterliegt dem
Modifikationsassistenten
...Editierfunktionen eingeschränkt...
SAP AG 2006
Wollen sie ein SAP-Objekt ändern, müssen sie die oben aufgeführten Informationen hinterlegen:
SSCR-Schlüssel
Änderungsauftrag
Darüber hinaus informiert sie das System, dass das Objekt dem Modifikationsassistenten unterliegt.
Das heisst, dass nur ein eingeschränkter Editiermodus zur Verfügung steht.
Über den Profilparameter eu/controlled_modification kann der Modifikationsassistent für das ganze
R/3-System an oder ausgeschaltet werden. Wir empfehlen, immer mit dem Modifikationsassistenten
zu arbeiten.
Ausschalten können sie den Modifikationsassistenten ebenfalls für einzelne Repository-Objekte. Ab
diesem Zeitpunkt werden Änderungen nicht mehr in dieser feinen Granularität registriert.
Einfügen
Ersetzen
Löschen
Modifikation zurücknehmen
Modifikationsübersicht
SAP AG 2006
ABAP Editor
PROGRAM <SAP-Program>.
Einfügen
...
*{INSERT DEVK900023 1
*}
Ersetzen
*{REPLACE DEVK900023 2
*\WRITE: / sy-
sy-uname COLOR COL_KEY.
WRITE: / sy-uname COLOR COL_NORMAL.
*}
Löschen
*{DELETE DEVK900023 3
*\WRITE: / sy-
sy-uname COLOR COL_KEY.
*\
*}
...
SAP AG 2006
Die Grafik zeigt das Ergebnis von Änderungen, die mit Hilfe des Modifikationsassistenten
durchgeführt wurden.
Der Modifikationsassistent generiert automatisch einen Kommentar-Rahmen, der die entsprechende
Aktion beschreibt. Der Kommentar enthält ausserdem die Nummer des Änderungsauftrags, dem die
Änderung zugeordnet wird und eine Nummer, die zu internen Verwaltung benötigt wird.
ABAP Editor
PROGRAM <SAP-Program>.
...
*{INSERT DEVK900023 1
*}
Modifikationsü
Modifikationsübersicht 2
*{REPLACE DEVK900023
*\WRITE: / sy-
sy-uname COLOR COL_KEY.
WRITE: / sy-uname COLOR COL_NORMAL.
SAP-Program
*}
Unterprogramme
SAP AG 2006
Mit der Ikone "Modifikationsübersicht" können 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.
ABAP Editor
PROGRAM <SAP-Program>.
...
*{INSERT DEVK900023 1
*}
*{REPLACE DEVK900023 2
*\WRITE: / sy-
sy-uname COLOR COL_KEY.
WRITE: / sy-uname COLOR COL_NORMAL.
*}
ABAP Editor
...
PROGRAM <SAP-Program>.
...
Um eine Modifikation rückgängig zu machen, stellen Sie den Cursor auf die entsprechende
Modifikation. Danach betätigen Sie die Drucktaste zum Zurücknehmen der Modifikation.
Die Aufzeichnungen zu den Modifikationen werden dabei gelöscht. Eine Rücknahme dieser
Löschung ist nicht möglich.
Modification Browser
Standard-Selektionen
letzter Änderer
Entwicklungsklasse
Auftrag/Aufgabe
modifizierte Objekte
mit Modifikationsassistent
ohne Modifikationsassistent
mit Modifikationsassistent
Datenelemente
Domänen
Programme
Funktionsbausteine
SAP AG 2006
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 können Sie die Selektion nach verschiedenen Kriterien
einschränken. Dadurch können sie ganz spezifisch Modifikationen aus einem bestimmten Gebiet
suchen.
Der Modification Browser stellt die Treffermenge in einer baumartigen Liste zur Verfügung. Die
Objekt sind geordnet nach
Modifikationsart (mit/ohne Assistent)
Objektart (PROG, DOMA, DTEL, TABL, ...)
Neben der reinen Anzeigefunktionalität können Sie im Modification Browser auch ganze Gruppen
von Modifikationen zurücknehmen. Dazu markieren Sie den gewünschten Teilbaum und wählen die
Drucktaste „Rücksetzen auf Original“.
SAP AG 2006
Programm SAPMV45A
Besondere
Besondere
Include-Programme
Include-Programme
*weitere Includes
*Include MV45AFZB
SAP AG 2006
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 enthält in der Regel die Include-Anweisungen für alle zu dem Modulpool
gehörenden 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.
Programm SAPMV45A
Includes
… *Include MV45AFZB
leere Unterprogramme
Includes nur 1x ausgeliefert
überwiegend in SD
technisch: Modifikation
SAP AG 2006
***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 2006
System Status
Doppelklick auf Programmnamen
IMG
Suchen nach Zeichenkette...
perform userexit
Vertrieb
( global in Programm ) Systemanpassung
User-Exits
Per Doppelklick zum
Unterprogramm navigieren entsprechende
+ Komponente
Inline-Dokumentation lesen auswählen
SAP AG 2006
SAP AG 2002
FRÜHER
Release Release
Hinweis
Hinweis Manuell
08154711
n-1 n
Hinweis SSCR
08154711
08154711
Modifikations-
abgleich manuell
HEUTE
Modifikations-
abgleich
automatisch
SAP AG 2002
Vor Einführung des SAP Note Assistant mußten Sie alle Hinweise, die eine Korrektur an Objekten
Ihres SAP Systems erforderten, manuell in das System einpflegen. Neben der Fehleranfälligkeit hatte
dieses Verfahren weitere Nachteile: Das manuelle Ändern eines SAP Objektes erfordert die Eingabe
eines Registrierungsschlüssels für das Objekt. Die Abhängigkeit der Fehlerkorrektur von bereits im
System vorhandenen Fehlerkorrekturen muss der Entwickler selbst aus dem Hinweistext
herauslesen. Schließlich muss die eingepflegte Fehlerkorrektur beim Einspielen von Support
Packages oder Upgrades manuell abgeglichen werden.
Der SAP Note Assistant dient dazu, die meisten der oben angeführten Nachteile auszumerzen: Die
Eingabe eines Registrierungsschlüssels ist nicht notwendig. Der SAP Note Assistant spielt die
Hinweiskorrekturen automatisch mit Hilfe des Modifikationsassistenten in das System ein.
Abhängigkeiten 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 Gültigkeit. Beim Einspielen von Support Packages und Upgrades prüft
das System, ob die Hinweiskorrektur noch Gültigkeit besitzt. Falls nicht, kann die Korrektur per
Knopfdruck zurückgesetzt werden.
SAP AG 2002
Das Ziel des SAP Note Assistant ist es, Sie beim Einspielen von Hinweiskorrekturen in Ihr SAP
System zu unterstützen. Dabei erfolgt das Einspielen in der Regel automatisch. Das manuelle
Einpflegen von Quelltext entfällt , was zu einer deutlich reduzierten Fehleranfälligkeit führt. Darüber
hinaus entfällt das Registrieren der zu korrigierenden Objekte im SAP Software Change Registration
(SSCR).
Der SAP Note Assistant bietet Ihnen mehrere Vorteile. Neben dem erwähnten automatischen
Implementieren von Programmkorrekturen ohne SSCR-Schlüssel werden Abhängigkeiten 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
durchgeführte Modifikationen werden registriert, was dazu führt, dass später beim
Modifikationsabgleich diese Objekte besonders gekennzeichnet sind.
Nützliches Merkmal des SAP Note Assistant ist die Möglichkeit, 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 aufgeführt. Die im nun aktuellen
Stand obsolet gewordenen Hinweiskorrekturen sind besonders gekennzeichnet, was eine
Überführung des Objektes in den Standard erleichtert.
Bitte beachten Sie: Der SAP Note Assistant erleichtert Ihnen das Einpflegen einzelner
Fehlerkorrekturen. Er ist aber nicht dafür gedacht, das Einspielen von Support Packages zu ersetzen!
SAP Hinweise
Herunterladen
Aktualisieren
SAP Note Assistant
Modification Modification
Browser (SE95) Adjustment (SPAU)
SAP AG 2002
Sie können 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 können Sie feststellen, welche Hinweise einbaubar, eingebaut, oder obsolet sind.
Nachdem Sie den Hinweis sorgfältig gelesen haben, können Sie ihn nach der Korrekturanleitung
einbauen. Der SAP Note Assistant ermittelt, ob der Hinweis automatisch einbaubar ist, was zu einer
grüne Ampel vor den einzubauenden Objekten führt. Falls Konflikte beim Einbau erkannt, werden,
weil der SAP Note Assistant beispielsweise den Kontext-Block nicht findet, können Sie mit Hilfe
einer speziellen Version des Splitscreen-Editors den Einbau manuell vornehmen.
Überblick
Note Assistant: Arbeitsvorrat Benutzer XXX
Laden
SAP-Hinweise
inkonsistent
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
Hinweise, die Ihnen als Bearbeiter zugeordnet sind;
Alle neuen Hinweise;
Alle Hinweise, die sich in einem inkonsistenten Zustand befinden.
Einbaubare Hinweise sind mit einer entsprechenden Ikone gekennzeichnet (Im Menüpfad
Hilfsmittel Farblegende können 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 Gültigkeitszeitraum, der nicht mit dem Systemrelease und Patch-
Level übereinstimmt.
Problem Überblick
DB Einbauen
He Op
ru t
n io n 2b
:
Da terla 2a: n n Protokoll
te i d ti o de
sy en Op chla
ste au
m f Ho
SAP AG 2002
Dateisystem
Sie können 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 können Sie den Hinweis im Note Assistant aus dem SAPNet - R/3
Frontend direkt in Ihr System laden.
Für den Hinweis-Upload müssen Sie einen Hinweis zunächst aus dem SAP Service Marketplace
herunterladen und auf der Festplatte Ihres PC abspeichern. Anschließend führen Sie vom Note
Assistant aus einen Upload des Hinweises per Filetransfer durch.
Überblick
Laden
Prüfen
Bearbeitungs-
status
Einbauen
Protokoll
SAP AG 2002
Überblick
Note Assistant: Arbeitsvorrat Benutzer XXX
Laden
SAP-Hinweise
inkonsistent
Rahmenprogramm
SAP AG 2002
Nachdem Sie den Hinweis sorgfältig gelesen haben, können Sie den Hinweis einbauen. Das System
prüft automatisch die Voraussetzungen und Abhängigkeiten von anderen Hinweisen. Falls
vorausgesetzte Hinweise noch nicht in Ihrem System registriert sind, sendet der SAP Note Assistant
eine Liste mit noch einzubauenden Hinweisen.
Hinweiseinbau zurücknehmen
SAP AG 2002
Überblick
Note Assistant: Arbeitsvorrat Benutzer XXX
Laden
SAP-Hinweise
inkonsistent
SAP AG 2002
Wenn ein Hinweis andere Hinweise als Voraussetzung hat, ermittelt der Note Assistant beim Einbau
die vorausgesetzten Hinweise und lädt sie in Ihr System. Er zeigt den von Ihnen ausgewählten
Hinweis sowie alle zusätzlichen Hinweise auf einem Dialogfenster, der Hinweisqueue, an. Die
Hinweise müssen in der angegebenen Reihenfolge implementiert werden.
Sie haben folgende Möglichkeiten:
Mehrere Hinweise auf einmal einbauen
Wenn Sie diese Option wählen, baut das System möglichst viele der angegebenen Hinweise
nacheinander ein. Das System kann nur dann mehrere Hinweise auf einmal einbauen, wenn alle
Korrekturen aus den Hinweisen unverändert übernommen werden können. Falls in den
betroffenen Includes eigene Modifikationen vorliegen, kann es sein, dass das System einzelne
Änderungen nicht einfügen kann. Diese Hinweise baut das System immer einzeln ein, damit Sie
Ihre Modifikationen abgleichen können.
Jeden Hinweis einzeln einbauen
Das System baut die angegebenen Hinweise einzeln ein. Hierbei können Sie im Detail
nachvollziehen, welche Quelltextänderung zu welchem der angegebenen Hinweise gehört und die
Quelltextänderung modifizieren, falls nötig.
Hinweiseinbau abbrechen
Das System nimmt keine Quelltextänderung vor.
Überblick
Modifikationsabgleich
Laden
Modifikationen und Erweiterungen
Hinweiskorrekturen
Prüfen
0000222111 Hinweistext
0000123456 Text
Bearbeitungs-
0000333221 Hinweiskurztext status
Einbauen
Protokoll
Abgleich
SAP AG 2002
Ein Support Package enthält eine Sammlung von Fehlerkorrekturen. Support Packages können 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 Fälle:
Korrektur durch Hinweis eingebaut und im Support Package enthalten (Ampel ohne Farben):
Beim Einspielen eines Support Package prüft 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 müssen Sie auf SAP-
Original zurücksetzen.
Hinweis eingebaut, aber nicht im Support Package enthalten (gelbe Ampel)
Das System prüft, ob Korrekturen, die Sie zuvor durch einen Hinweis eingebaut haben, durch ein
Support Package überschrieben werden, das diese Korrekturen nicht enthält. Diese
Hinweiskorrekturen müssen Sie anschließend 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.
Hinweis noch eingebaut, obwohl Teile im Support Package enthalten (grüne Ampel)
Ein Hinweis enthält z.B. mehrere Korrekturanleitungen unterschiedlicher Gültigkeitsdauer. Beim
Einspielen des Support Package wird eine Korrekturanleitung obsolet, die andere Anleitung bleibt
weiterhin gültig. In diesem – eher seltenen – Fall erscheint der Hinweis mit einer grünen Ampel.
Programm SCWN_REGISTER_NOTES
Hinweise eintragen
Hinweise werden geladen
Gültigkeit wird geprüft
Einbau wird geprüft
Vorteile:
Anzeige im Hinweis-Browser
Abhängigkeiten werden korrekt angegeben
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, können Sie diese Tatsache dem Note Assistant nachträglich 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:
Alle Hinweise, die in Ihr System eingebaut sind, werden im Hinweis-Browser angezeigt.
Wenn ein manuell ohne den Note Assistant eingebauter Hinweis Voraussetzung für einen Hinweis
ist, den Sie mit dem Note Assistant einbauen möchten, erkennt der Note Assistant, dass der
vorausgesetzte Hinweis bereits eingebaut ist, und fordert nicht, ihn erneut einzubauen.
Die manuell eingebauten Hinweise werden im Modifikationsabgleich bei zukünftig
einzuspielenden Support Packages oder Upgrades in der Kategorie Hinweiskorrekturen angezeigt.
Das System ermittelt für diese Hinweise, ob sie erneut einzubauen oder auf Original
zurückzusetzen sind.
Um Hinweise manuell zu registrieren, starten Sie das Programm SCWN_REGISTER_NOTES. Auf
dem Selektionsbild des Programms geben Sie die Nummern der als vollständig eingebaut zu
registrierenden Hinweise ein. Das System lädt die Hinweise und prüft, ob die Hinweise für Ihr
Release und Support Package Level gültig sind. Weiter prüft das Programm, ob die Hinweise bereits
im Note Assistant als eingebaut registriert sind.
SAP AG 2002
Abgleich
Abgleich erforderlich
erforderlich
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 2002
Während 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 unterstützen Sie während des Abgleichs
Sie müssen 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 hinzugefügt haben. Nur geänderte SAP Objekte
müssen 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 müssen Sie für jedes Objekt, das Sie abgleichen wollen, wieder einen SSCR-Schlüssel
beantragen.
Die Transaktion SPAU ermittelt, welche Objekte modifiziert wurden und gleichzeitig mit dem
aktuellen Upgrade eingespielt wurden. Der Modifikationsabgleich bietet Ihnen nun die Möglichkeit,
Ihre Modifikationen in das neue R/3 Release zu übernehmen.
SPDD SPAU
ABAP-Programme
Oberflächen
Domänen
Dynpros
Datenelemente
Suchhilfen
Tabellen
Views
Sperrobjekte
SAP AG 2006
Die Transaktion SPDD führt Sie beim Modifikationsabgleich für folgende Objekte des ABAP
Dictionary:
Domänen
Datenelemente
Tabellen (Strukturen, transparente Tabellen, Pool- und Cluster-Tabellen einschließlich 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 müssen vor der Generierung
durchgeführt werden, da es sonst zu Datenverlust kommen könnte.
Änderungen an anderen Objekten des ABAP Dictionary wie Sperrobjekten, Matchcodes und Views
können 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:
ABAP-Programme, Oberflächen (Menüs), Dynpros, Matchcode-Objekte, Views, Sperrobjekte
Release i
Release i-1
Release i-1
Modifikationsabgleich
Aufträge mit
SPDD abgeglichenen Objekten
Transport-Auftrag werden beim Upgrade
nachgelagerter Systeme
SPAU verwendet
Transport-Auftrag
SAP AG 2006
Während des Modifikationsabgleichs sollten Sie Ihre Objektbearbeitung über zwei verschiedene
Änderungsaufträge handhaben: einer für den SPDD-Abgleich und einer für den SPAU-Abgleich.
Diese zwei Änderungsaufträge können dann in die nachgelagerten R/3-Systeme transportiert werden.
Damit ist gewährleistet, daß die eigentliche Abgleicharbeit nur in Ihrem Entwicklungssystem
durchgeführt werden muß.
Während 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 geprüft, ob alle im aktuellen R/3-System
gefundenen Modifikationen über die während des ersten System-Upgrades erstellten
Änderungsaufträge abgedeckt sind. Ist dies der Fall, müssen beim aktuellen Upgrade keine
Abgleiche vorgenommen werden.
Hinweis: Für einen effektiven Ablauf dieses Prozesses ist es notwendig, daß alle Systeme Ihrer
Landschaft einen identischen Zustand aufweisen. Dies ist z.B. dann gewährleistet, wenn alle
Modifikationen zunächst im Entwicklungssystem durchgeführt und dann in die nachgelagerten
Systeme transportiert wurden, bevor im Entwicklungssystem der Upgrade durchgeführt wurde. Die
Voraussetzung wäre auch dann erfüllt, wenn das Entwicklungssystem vor dem Upgrade als Kopie
des Produktionssystems erstellt wurde und danach keine Modifikationen im Produktivsystem mehr
durchgeführt wurden.
Modifikationsabgleich: Objektauswahl
Standard-Selektionen
letzter Änderer
Entwicklungsklasse
Auftrag/Aufgabe
modifizierte Objekte
mit Modifikationsassistent
ohne Modifikationsassistent
mit Modifikationsassistent
Beim Start des Modifikationsabgleichs (Transaktion SPAU) können Sie auf einem Selektionsbild die
Treffermenge einschränken. Hier können Sie wählen, ob Sie alle abzugleichenden Objekte sehen
wollen oder nur die, die noch bearbeitet werden müssen. Sie können die Selektion mit Hilfe der
folgenden Kriterien einschränken:
letzter Änderer
Entwicklungsklasse
Auftragsnummern / Aufgabennummern
Das System zeigt Ihnen eine Liste mit den abzugleichenden Objekten an. Die Liste ist sortiert nach
mit / ohne Modifikationsassistent
Objektart
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 durchgeführt werden kann. Der Abgleich kann durchgeführt werden
automatisch
Das System stellt keine Konflikte fest. Die Änderungen können automatisch übernommen werden.
Dazu wählen Sie entweder die entsprechende Ikone oder den Menüeintrag aus.
halbautomatisch
Die einzelnen Werkzeuge bieten eine Unterstützung beim Abgleich an. Beim Abgleich von
Programmen wird der Split-Screen-Editor aufgerufen, in dem Sie Änderungen übernehmen
können.
manuell
Sie müssen Ihre Modifikationen ohne besondere Unterstützung durch das System bearbeiten. Der
Modifikationsabgleich bietet einen Absprung in das entsprechende Werkzeug an.
Abgeglichene Objekte werden durch den grünen Haken gekennzeichnet.
Wenn Sie den neuen SAP-Standard übernehmen wollen, wählen sie "Rücksetzen auf Original".
Damit entfällt etwaige Abgleicharbeit zukünftig.
SAP AG 2002
Kapitel: Modifikationen
Thema: Modifikationen durchführen
1-1 Modifizieren Sie Objekte des R/3. Verwenden Sie dabei soweit wie möglich den
Modifikationsassistenten. Im folgenden sind die Objekte angegeben, die Sie
verändern sollen:
Kapitel: Modifikationen
Thema: Modifikationsabgleich
1-1 Gleichen Sie die von Ihnen vorgenommenen Modifikationen mit den neu in das
System eingespielten Objekten ab.
Kapitel: Modifikationen
Thema: SAP Note Assistant: Hinweise einpflegen
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 für Ihr System gültig? 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 eingefügt?
Vergleichen Sie den in der Korrekturanleitung angegebenen Kontextblock
mit dem Quelltext des Programms.
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 ursprünglichen Fehler behoben sind.
Kapitel: Modifikationen
Thema: SAP Note Assistant: Modifizieren
Kapitel: Modifikationen
Thema: SAP Note Assistant: Hinweise einpflegen II
Wenn Sie mehr als einen Flug auf der Ergebnisliste des
Programms SAPBC426_## auswählen und "Buchungsliste"
wählen, 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 "Zurück"-Taste.
Korrigieren Sie die Fehler durch Einpflegen eines Hinweises.
1-1 Lassen Sie sich Hinweis 4274230## anzeigen und lesen ihn sorgfältig. 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, können 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 Blöcke einzufügen. In der Online-
Hilfe zum Split-screen Editor erhalten Sie weitere Bedienhinweise.
1.2.3 Fügen Sie den einzufügenden 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
zusätzliches Dialogfenster zum Bestätigen, dass der Hinweis komplett
implementiert wurde. Wozu ist das notwendig?
1-3 Überprüfen Sie die Protokolle für 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?
Kapitel: Modifikationen
Thema: Modifikationsabgleich
1-1 Starten Sie den Modifikationsabgleich über SAP Menü ABAP Workbench
Hilfsmittel Wartung Upgrade Utilities Abgleich Programme oder
Transaktion SPAU.
1.1.1 Geben Sie Ihren Benutzernamen in das Feld "letzter Änderer" ein. Führen
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.
Kapitel: Modifikationen
Thema: Modifikationen durchführen
1-1 Modifizieren von Objekten des R/3. Verwenden Sie den Modifikations-Assistenten.
1-5 Zum Überprüfen der Modifikation wählen Sie den Modification Browser
(Transaktion SE95). Schränken Sie die Selektion über den Benutzernamen oder
über den Änderungsauftrag/Aufgabe ein.
Kapitel: Modifikationen
Thema: Modifikationsabgleich
1.1 Starten Sie den Patch Manager (Transaktion SPAM). Unter dem Menüpfad Zusätze
Modifikationen abgleichen rufen Sie die Transaktion SPAU auf. Hier können
Sie die Modifikationen abgleichen.
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
Menüeinträge.
1.2.2 Wofür stehen die Ikonen? Unter Hilfsmittel Farblegende erhalten Sie
nähere Informationen.
1.2.3 Ändern Sie den Bearbeitungsstatus der zu Ihrer Gruppe ## gehörenden
Hinweise auf "In Bearbeitung". Dazu stellen Sie den Cursor auf den
Hinweis und wählen Hinweis Bearbeitungsstatus setzen.
1.2.4 Lesen Sie Hinweis 4273250## sorgfältig. Dazu stellen Sie den Cursor auf
den Hinweis und wählen Hinweis 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, für welche Release-Stände
und Support Package Levels der Hinweis gültig 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
eingefügt 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 wählen Sie Hinweis
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:
Grüne Ampel: Die Korrekturen können unverändert eingebaut werden.
Gelbe Ampel: Die Korrekturen können eingeschränkt eingebaut werden.
Bevor Sie den Einbau bestätigen, sollten Sie die Korrekturen anpassen, um
(C) SAP AG BC425 65
eine korrekte Übernahme der Objektänderungen zu gewährleisten. Wenn
Sie auf den Objektnamen oder auf das Ampelsymbol klicken, gelangen Sie
in den Splitscreen-Editor, in dem Sie den Quelltext editieren können.
Rote Ampel: Die Objektänderungen können 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 "Syntaxprüfung der Rahmenprogramme"
durchführen.
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 ursprünglichen Fehler behoben sind.
Führen Sie dazu das Programm nochmals aus.
Kapitel: Modifikationen
Thema: SAP Note Assistant: Modifizieren
FORM display_flights.
ENDLOOP.
Kapitel: Modifikationen
Thema: SAP Note Assistant: Hinweise einpflegen II
1-1 Lassen Sie sich Hinweis 4274230## wie oben beschrieben anzeigen und lesen ihn
sorgfältig. 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, können 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
können. Klicken Sie auf das Ampelsymbol, um in den Split-screen Editor zu
gelangen.
1.2.7 Stellen Sie den Cursor auf die Kopfzeile des einzufügenden Blocks in der
rechten Bildschirmhälfte. Wählen Sie "Markieren". Wählen Sie "Kopieren
in Puffer".
1.2.8 Stellen Sie den Cursor auf die Stelle in der linken Bildschirmhälfte, wo der
Block eingefügt werden soll. Wählen Sie "Einsetzen Puffer". Wählen Sie
"Übernehmen".
1.2.9 Zurück auf dem Dialogfenster: Prüfen Sie die Rahmenprogramme durch
Auswahl der entsprechenden Drucktaste. Das Programm sollte syntaktisch
korrekt sein. Fahren Sie mit dem Implementieren fort, indem Sie das Fenster
bestätigen.
1.2.10 Da Sie manuelle Änderungen vorgenommen haben, erscheint ein
zusätzliches Dialogfenster zum Bestätigen, dass der Hinweis komplett
implementiert wurde. Bestätigen Sie das Dialogfenster mit "Ja". Falls Sie
"Nein" wählen, wird der Hinweis als inkonsistent eingebaut gekennzeichnet.
1-3 Überprüfen Sie die Protokolle für die Hinweise: Stellen Sie den Cursor auf den
Hinweis und wählen Sie Springen Protokoll. Der manuelle Einbau wird
protokolliert.
1-4 Testen Sie das Programm. Die Fehler sollten nun beseitigt sein.
Kapitel: Modifikationen
Thema: Modifikationsabgleich
1-1 Starten Sie den Modifikationsabgleich über SAP Menü ABAP Workbench
Hilfsmittel Wartung Upgrade Utilities Abgleich Programme oder
Transaktion SPAU.
1-1-1 Geben Sie Ihren Benutzernamen in das Feld "letzter Änderer" ein. Führen
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.
Inhalt:
Zusammenfassung
Bewertung der verschiedenen Erweiterungstechniken
SAP AG 2006
SAP AG 2006
SAP Erweiterungskonzept:
keine Änderung von SAP Objekten
kein Abgleich während des Upgrades
SAP AG 2006
ABAP
Dictionary SAP-Tabellendefinition YYFeld ZZFeld
Feld 1 Feld 2 Feld 3 Append-Struktur
Datenbank
SAP AG 2006
SAP bietet Ihnen zwei Möglichkeiten, Tabellen und Strukturen um Felder zu erweitern:
Append-Strukturen
Customizing-Includes ("CI-Includes")
Beide Techniken erlauben es, Felder an eine Tabelle anzuhängen, 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 angehängt.
Append-Strukturen unterscheiden sich in der Art des Verweises zur zugehörigen Tabelle von
Include-Strukturen, zu denen auch die Customizing-Includes gehören. 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 zugehörigen Tabelle, welche selbst unverändert bleibt. Der Verweis
geht hier von der Append-Struktur aus.
Anwendungsprogramm
X-Funktionsgruppe
Exit-Funktionsbaustein
EXIT_<prog_name>_001
CALL CUSTOMER-FUNCTION
Include im
Kundennamensraum
SAP AG 2006
In diesem Bild ist der Ablauf eines Programmes dargestellt, das eine Erweiterung in Form eines
Programm-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 Funktionalität hinzufügen.
Anwendungsprogramm
Aktive Implementierung
Event-Funktionsbaustein
Implementierungs-
Implementierungs-
OPEN_FI_PERFORM_<…>
Funktionsbaustein
des Kunden/Partners
CALL FUNCTION
CALL FUNCTION
SAP AG 2006
In diesem Bild ist der Ablauf eines SAP-Programmes dargestellt. Das Programm enthält 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 Event-Funktionsbausteine beginnen mit "OPEN_FI_PERFORM_"
bzw. "OUTBOUND_CALL_").
Der Event-Funktionsbaustein OPEN_FI_PERFORM_<…> bzw. OUTBOUND_CALL_<…>
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 berücksichtigt, 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.
1 Abarbeiten aktiver
Implementierungen
Instanz von
BAdI-Klasse BAdI: Instanz von
<badi-class> Implement.
Implement. Klasse
SAP AG 2006
In diesem Bild ist der Ablauf eines Programmes dargestellt, das einen BAdI-Aufruf enthält. Um die
Möglichkeiten 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 Kunde
SAP AG 2006
SAP Kunde
SAP AG 2006
Analog zu Customer-Exits können sie auch bei Business Add Ins Menü-Erweiterungen nutzen. Dazu
müssen folgende Voraussetzungen vorliegen:
Der Entwickler des zu erweiternden Programms muss die Erweiterung vorgedacht haben.
Die Menü-Erweiterung muss in einer BAdI-Implementierung implementiert sein.
SAP Kunde
SAP SAP
Feld 1 Feld 1
Feld 2 Feld 2
Feld X
Feld Y
SAP AG 2006
Statisches
Attribut:
Attribut:
Dynpro-
Dynpro-Instanz
abcd PUT DATA PAI
PAI
GET DATA
Implement. Klasse
Instanz-
Instanz- Attribute:
Dynpro-
Dynpro- Daten
SAP AG 2006
Die ABAP Virtual Machine kennt keine klassengebundenen Dynpros. Als Träger von Dynpros
können somit nur "klassische" Programme (Typ 1, F, M) verwendet werden. Dynpro-Erweiterungen
müssen diesen Umstand berücksichtigen.
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 Trägerprogramm des Subscreens. Sie erfolgt über die generierte BAdI-
Klasse.
Auf den folgenden Graphiken wird diese Kommunikation Schritt für Schritt abgebildet.
Anbindung Projekt-
Projekt-
an SAP sicherheit
Modifizieren Kopieren
SAP AG 2006
Modifizieren hat gegenüber 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 für Ihr produktives Repository-Objekt auftreten
wird.
Sie werden das Kopieren dem Modifizieren vorziehen, wenn
Sie im SAP-Programm an vielen Stellen Änderungen vornehmen müssen
Ihre Anforderungen auch in zukünftigen R/3-Releases nicht mit dem Standard übereinstimmen
werden.
Beachten Sie beim Kopieren das Umfeld von Repository-Objekten. So müssen Sie die Entscheidung,
ob Sie modifizieren oder kopieren, nicht nur für das Rahmenprogramm, sondern auch für alle
Includes des Rahmenprogramms beantworten. Gleiches gilt Funktionsgruppen bzw.
Funktionsbausteine.
Implementierungsaufwand?
Customizing
Folgenabschätzung:
Personalizing
Performance
Erweiterungstechniken:
Aufwand beim Upgrade
Customer-Exits
Business Transaction
Events
Business Add Ins
SAP AG 2006
Zentrale YA Anwendungs-
bereich
SAP
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 2006
Durch die Einführung von Namenskonventionen vermeiden Sie Namenskonflikte und geben Ihren
Repository-Objekten sprechende Namen.
Folgende Namenskonflikte können 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 können
Namenskonflikte innerhalb der kundeneigenen Repository-Objekte auftreten. Diese kann der Kunde
durch die Reservierung von Namensräumen für Entwicklungsbereiche innerhalb des
Kundennamensraums entschärfen. Durch Einträge im View V_TRESN kontrolliert der Workbench
Organizer die Einhaltung der Namensräume.
Namenskonflikt von Complementary Software und kundeneigenen Repository-Objekten
Namenskonflikte durch das Einspielen von Complementary Software von SAP Partnern können nur
durch Reservierung von Namensräumen im SAP OSS gelöst werden. Dazu kann der SAP- Partner ab
Release 4.0 einen Namenspräfix im SAP OSS beantragen, den er all seinen Repository- Objekten
voranstellt (OSS Hinweise 84282 und 91032, White Paper Entwicklungsnamensräume im R/3-
System, Bestellnummer E:50021723 bzw. D:50021751).
SAP AG 2006
Inhalt:
Neuerungen im Bereich "Erweiterung"
zu SAP NetWeaver Application Server 7.0
Feld-Exits
Append-Suchhilfen
SAP AG 2006
SAP AG 2006
In diesem Abschnitt lernen Sie die Vorzüge und die Nutzung der neuen Erweiterungsmöglichkeiten
sowie der neuen BAdI-Technik kennen, die es ab SAP NetWeaver Application Server 7.0 gibt.
Enhancement Spot C
Enhancement Spot D
SAP AG 2006
Enhancement Point :
Möglichkeit zur modifikationsfreien Einfügung von
- Quelltext
- Variablen- / Parameterdeklaration
in SAP-Programmen , SAP-Funktionsbausteinen und SAP-Methoden
. . .
...
ENHANCEMENT-POINT EP_A SPOTS ESPOT_X. Kunden-Coding
expliziter Enhancement Point
...
SAP AG 2006
in Schnittstellen-Definitionen von
- Funktionsbausteinen
- Methoden globaler Klassen
(zur Aufnahme von zusätzlichen Schnittstellenparametern)
...
SAP AG 2006
Die obige sowie nächste Abbildung zeigen, an welchen Stellen implizite Enhancement Points
vorliegen. Die Nutzung eines impliziten Enhancement Point geschieht durch Realisierung einer
Erweiterungsimplementierung. Im Folgenden wird die jeweilige Vorgehensweise zur Nutzung der
verschiedenen impliziten Enhancement Points beschrieben.
Nutzung von impliziten Enhancement Points, über die Quelltexte eingefügt werden können
(Implizite Source Code Plugins) :
- SAP-Objekt (Programm, Funktionsbaustein, Methode) anzeigen lassen
- Im GUI-Status Taste für Erweiterung betätigen
- Über Menü "Bearbeiten -> Erweiterungsoperationen -> Implizite Erw.Optionen einblenden" die
impliziten Erweiterungsmöglichkeiten einblenden
- Über Kontextmenü des Editors Erweiterungsimplementierung anlegen
- Quelltext einfügen
- Im GUI-Status Taste "Aktivieren Erweiterungen" betätigen
Achtung: Bei Erweitern einer Struktur(typ)-Deklaration direkt vor "END OF ..." muss die Syntax
"DATA <Zusatzfeld> TYPE <Typ>." verwendet werden !
Schnittstellenerweiterung von SAP-Funktionsbausteinen und Methoden globaler Klassen :
Im Function bzw. Class Builder über Menü "Funktionsbaustein -> Erweitern Schnittstelle" bzw.
"Klasse -> Erweitern" neue Schnittstellenparameter samt Typisierung hinzufügen.
(Solche hinzugefügten Schnittstellenparameter sind generell optional und können in Quelltext-
erweiterungen des/der zugehörigen Funktionsbausteins bzw. Methode angesprochen werden.)
...
am Ende der Public / Protected / Private Section einer lokalen Klasse
(zur Definition von Zusatzattributen und -methoden)
SAP-Objekt
...
ENHANCEMENT-POINT EP_A SPOTS ESPOT_X. Kunden-Coding
expliziter Enhancement Point
...
END-ENHANCEMENT-SECTION.
Enhancement Section
(ausschließlich explizit)
...
Enhancement Section :
Möglichkeit zur modifikationsfreien Ersetzung von SAP-Quelltext
in SAP-Programmen , SAP-Funktionsbausteinen und SAP-Methoden
SAP AG 2006
Ein expliziter Enhancement Point ist eine von SAP vorgedachte Möglichkeit zur modifikationsfreien
Erweiterung des SAP-Quelltextes. Eine explizite Enhancement Section ist eine von SAP vorgedachte
Möglichkeit zur modifikationsfreien Ersetzung des SAP-Quelltextes.
Es gibt keine impliziten Enhancement Sections.
Explizite Enhancement Points und Sections sind stets in Enhancement Spots eingebettet.
Explizite Enhancement Points und Sections, die Quelltexterweiterung/-ersetzung ermöglichen,
heißen dynamisch. Explizite Enhancement Points und Sections, die Deklarationserweiterung/-
ersetzung ermöglichen, heißen statisch.
Die Nutzung von expliziten Enhancement Points und Sections geschieht durch Realisierung einer
Erweiterungsimplementierung (Implementierung des übergeordneten Enhancement Spot).
Folgende Schrittfolge beschreibt die Vorgehensweise zur Nutzung von expliziten Enhancement
Points und Enhancement Sections :
- SAP-Objekt (Programm, Funktionsbaustein, Methode) anzeigen lassen
- Gewünschte(n) Enhancement Point/Section suchen
- Im GUI-Status Taste für Erweiterung betätigen
- Über Kontextmenü des/der Enhancement Point/Section Erweiterungsimplementierung anlegen
- Name der Erweiterungsimplementierung angeben
- Quelltext eingeben
- Im GUI-Status Taste "Aktivieren Erweiterungen" betätigen
Performance-Steigerung
SAP AG 2006
Zu SAP NetWeaver Application Server 7.0 hat SAP die neue BAdI-Technik vor allem aus Gründen
der Performance und Funktionalitätserweiterung eingeführt. Obige Abbildung zeigt die Gründe im
Einzelnen.
Die Integration der neuen BAdIs sowie der Enhancement Points und Enhancement Sections ins
Enhancement Framework ermöglicht die Nutzung der neuen Erweiterungsmöglichkeiten innerhalb
eines einheitlichen Werkzeugs.
Die Integration der neuen Erweiterungstechnik ins Switch Framework erlaubt die Ein- und
Ausschaltung der von Industrie-Lösungen realisierten BAdI-Implementierungen über Schalter (siehe
später).
Zwar werden bisherige, mit der klassischen Technik erstellte BAdIs im System erhalten bleiben,
doch werden in der Zukunft neue Erweiterungen nur noch mit der neuen BAdI-Technik bzw. über
explizite Enhancement Points und Enhancement Sections realisiert werden.
Aktivieren
Instanz der Partner-
BAdI-Adapterklasse CL_EX_<BAdI-Name> Implementierungsklasse
- enthält BAdI-Interface BAdI-Interface
- automatisch generiertes Coding für ABC
( Brückenmethode zum Aufruf von Methode ABC
zugehörigen Implementierungsmethoden )
(Partner-Coding)
In der klassischen BAdI-Technik wird bei der Definition des BAdI bzw. BAdI-Interface die
sogenannte BAdI-Adapterklasse automatisch generiert.
Im SAP-Anwendungsprogramm wird dann zur Laufzeit eine Instanz der Adapterklasse erzeugt und
von ihr die Interface-Methode(n) aufgerufen. Diese wiederum ruft nacheinander die gleichnamigen
Methoden aktiver Implementierungen auf.
SAP-Anwendungsprogramm
...
DATA r_exit TYPE REF TO <badi-interface> .
...
...
IMPORTING
...
...
SAP AG 2006
BAdI-Interface
.. Methode ABC
.
1 Beschaffen BAdI-Handle ... Instanz der Kunden-
Implementierungsklasse
...
BAdI-Interface
2 Methodenaufruf am BAdI-Handle
.. Methode ABC
.
(Kunden-Coding)
SAP AG 2006
Die neue BAdI-Technik funktioniert völlig analog zur klassischen. Nur wird hier keine
Adapterklasse mehr erstellt, was ihre Instanzierung durch das SAP-Anwendungsprogramm erspart.
Stattdessen wird zur Laufzeit des Anwendungsprogramms ein im Kernel befindliches BAdI-Handle
beschafft, das die gleiche Funktion wie die Adapterklasse übernimmt, jedoch wesentlich
performanter die vorhandenen Implementierungsmethoden aufruft.
SAP-Anwendungsprogramm
...
DATA r_exit TYPE REF TO <badi-name> .
...
TRY.
GET BADI r_exit. BAdI-Handle beschaffen
CATCH cx_badi_not_implemented.
...
ENDTRY.
...
TRY.
CALL BADI r_exit->abc Methodenaufruf
... am BAdI-Handle
CATCH cx_badi_initial_reference.
...
ENDTRY.
...
SAP AG 2006
Programmbezogene Suche :
SAP AG 2006
Obige Abbildung zeigt die Vorgehensweise bei der Suche nach BAdIs.
BAdI-Definition
Interface IF_ . . . mit Methode ABC
Obige Abbildung zeigt das Konzept filterabhängiger BAdIs, das mit dem der klassischen BAdIs
übereinstimmt.
Doch ist die Funktionalität erweitert worden. Es können nun auch numerische Filter zum Einsatz
kommen.
Ferner können bei Implementierungen nicht nur einzelne Filterwerte, sondern auch
Filterbedingungen unter Nutzung der Operatoren <>, >, <, >=, <=, CP, NP angegeben werden.
Außerdem können zu einem BAdI mehrere Filter definiert werden.
Business Function 1
Schalter A Paket X
Schalter B Menü-Einträge
Schalter C Dynpro-Elemente
Business Function 2
Schalter D Paket Y
Schalter E Menü-Einträge
SAP AG 2006
Das Switch Framework wurde konzipiert, um SAP-Kunden die Möglichkeit zu geben, eine
Industrie-Lösung bzw. Enterprise Add Ons zur Nutzung einzuschalten statt sie installieren zu
müssen.
Obige Grafik zeigt den Zusammenhang zwischen einzelnen Repository-Objekten, Schaltern,
Business Functions und Business Function Sets (Industrie-Lösungen). Über die Transaktion SFW5
können Industrie-Lösungen bzw. Enterprise Add Ons eingeschaltet werden. Erst dann sind die
zugehörigen Repository-Objekte verfügbar.
Dies hat im Zusammenhang mit den neuen Erweiterungsmöglichkeiten folgende Auswirkung :
Befinden sich Erweiterungsimplementierungen in einem switchbaren Paket, so werden diese nur
dann im System wirksam, wenn die entsprechende Business Function eingeschaltet ist.
2. Ergänzen Sie unter Verwendung des entsprechenden impliziten Enhancement Point die Definition
der Strukturvariablen mystr um die Felder cityfrom und cityto (Feldtypisierung jeweils mit
Datenelement S_CITY).
Wählen Sie dabei ZBC425_##_ISP als Name für Ihre Erweiterungsimplementierung.
SAP AG 2006
2. Verwenden Sie den expliziten Enhancement Point D70AW_##_EP1, um die Felder distance und
distid mit auszugeben.
Wählen Sie dabei ZBC425_##_ESP als Name für Ihre Erweiterungsimplementierung.
3. Verwenden Sie die explizite Enhancement Section D70AW_##_ES1, um einen anderen Text als
von SAP vorgesehen auszugeben.
SAP AG 2006
2. Lassen Sie sich den übergeordneten Enhancement Spot samt BAdI-Definition anzeigen.
4. Realisieren Sie die BAdI-Implementierung so, dass weitere Felder der internen Tabelle
ausgegeben werden.
Hinweis: Sie können wahlweise
- die vorhandene Beispielimplementierungsklasse zu Ihrer Implementierungsklasse
kopieren lassen und die kopierte Methode anpassen oder
- eine leere Implementierungsklasse anlegen lassen und die Methode selbst
implementieren.
SAP AG 2006
SAP AG 2002
SAP Kunde
Globale
Datenelement Erweiterungen
definieren definieren
SAP AG 1999
ABAP Dictionary
Abflugstadt___
Ankunftstadt__
? – Prüfung
FUNCTION FIELD_EXIT_...
Feldformat- * IMPORTING INPUT *
Prüfung * EXPORTING OUTPUT *
****************************
MESSAGE E035(bc425).
Feld-Exit
ENDFUNCTION.
SAP AG 2006
SAP ermöglicht Ihnen, zu jedem eingabebereiten Dynprofeld mit Bezug auf das ABAP Dictionary
einen Feld-Exit anzulegen. Die zusätzliche 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 ausgeführt werden, werden systemseitig Prüfungen durchgeführt: Zunächst prüft das
System, ob alle Muss-Felder ausgefüllt sind. Ist ein Muss-Feld leer, wird der Bildschirm wieder
gesendet.
Als nächstes prüft das System, ob die Eingaben im richtigen Format getätigt wurde.
Im nächsten Schritt werden alle Feld-Exits abgearbeitet. Hier können 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
Feld-Transport
Fremdschlüssel-Prüfung
Abarbeiten der PAI-Module des Dynpros.
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-Exit Anlegen
Function Builder
Funktionsbaustein__ FIELD_EXIT_<DE>
Funktionsbaustein__ FIELD_EXIT_<DE>
Import Parameter
INPUT
Export Parameter
OUTPUT
SAP AG 1999
Zum Anlegen von Feld-Exits wählen 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 später 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 zurückgestellt.
Quelltext
FUNCTION field_exit_<DE>.
...
output = input
ENDFUNCTION.
SAP AG 1999
Dem Export-Parameter OUTPUT des Funktionsbausteins muß im Quelltext ein Wert zugewiesen
werden, der zu dem Dynpro-Feld zurücktransportiert wird. Ansonsten wäre 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.
Function Builder
Funktionsbaustein__ FIELD_EXIT_<DE>_1
SAP AG 1999
Sie können die Wirkung eines Feld-Exits auf ein Dynpro beschränken. 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 können bis zu 36 lokalen Feld-Exits anlegen, die jeweils durch einen einstelligen Suffix
voneinander unterschieden werden. Das System schlägt Ihnen den entsprechenden Namen für den
Funktionsbaustein vor, den sie unverändert übernehmen.
Durch das Definieren von lokalen Feld-Exits wird der Funktionsbaustein des zunächst angelegten
globalen Feld-Exits nicht mehr verwendet. Aus technischen Gründen dürfen sie diesen jedoch nicht
löschen. Unter anderem würde beim Löschen des globalen Funktionsbausteins der Feld-Exit aus der
Liste der im System vorhandenen Feld-Exits gelöscht.
Funktionsbaustein aktivieren
Function Builder
Funktionsbaustein__ FIELD_EXIT_<DE>
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 müssen Sie auch den Feld-Exit aktivieren. Beachten sie, daß Feld-
Exits nur dann bei der Dynprogenerierung berücksichtigt werden, wenn der R/3-Profilparameter
abap/fieldexit = YES auf allen Applikationsservern gesetzt ist. (Standardmässig ist dieser
Profilparameter auf 'NO' gesetzt.)
Falls Sie für mehrere Dynprofelder je einen Feld-Exit vereinbaren, können Sie keine Annahmen
über die Reihenfolge der Abarbeitung machen. Insbesondere ist es nicht möglich, in einem Feld-
Exit auf Inhalte anderer Dynprofelder zurückzugreifen.
Bitte beachten Sie zu Feld-Exits auch Hinweis 29377.
SAP AG 2002
Append
(SAP) Sammelsuchhilfe
... ...
(Kunden-) Append-
Suchhilfe
SAP AG 2002
Die Menge der für ein Objekt sinnvollen Suchpfade hängt 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 Verfügung, 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 möglich, daß die benötigte 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 benötigt
werden. Die nicht benötigten Suchhilfen können 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 2002
Definition:
- Erweiterbarkeit
- Konfigurierbarkeit
- Teilbarkeit
- Alternative Benutzungsoberflächen
- Verwendbarkeit
- Schnellere Entwicklung
- Generische Objektservices
SAP AG 2002
Das BDT (Business Data Toolset) stellt ein zentrales Steuerungswerkzeug für die Pflege von
Stammdaten und einfachen Bewegungsdaten dar. Zusätzlich zur Dialogpflege unterstützt das BDT
auch die Pflege über Direct Input und/oder Funktionsbausteine.
Das BDT stellt außerdem generische Objektservices für konsistente wiederkehrende Anforderungen
wie z.B. die Änderung von Beleglisten, Feldmodifikationen sowie das Löschprogramm 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
führen anwendungssspezifische Erweiterungen, wie z.B. das Schreiben und Lesen von
Anwendungstabellen der Datenbank, durch.
Anmerkung: Das BDT wird bei SAP für die Pflege mehrerer Anwendungsobjekte verwendet.
Entwicklungspartner und Kunden können diese Anwendungsobjekte über die BDT-Schnittstellen
ebenfalls modifikationsfrei erweitern. So ist es aber auch möglich, komplett eigene
Anwendungsobjekte mit Hilfe des BDT zu erstellen. Eigenentwicklungen von Entwicklungspartnern
und Kunden werden jedoch hinsichtlich der BDT-Technologie nicht unterstützt, da es sich hierbei
nicht um ein Entwicklungstool der ABAP Workbench handelt.
Das BDT entstand aus dem Projekt ‚Zentraler Geschäftspartner‘. Zunächst wurde die notwendige
Technik in einem gemeinsamen Programm mit den Anwendungsdaten zum Geschäftspartner
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
darüber hinaus auch weitere Anwendungsobjekte. Aus diesem Grund entschloss sich die
Projektgruppe Geschäftspartner, den Technikteil von den Anwendungsdaten zu trennen und diese
Technik auch anderen Anwendungsobjekten zur Verfügung zu stellen. Dieser technische Teil, der
lange Zeit GP-Steuerung bzw. Stammdatensteuerung hieß, trägt mittlerweile den Namen Business
Data Toolset, abgekürzt 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 benötigen Sie stets
dieselben Funktionen. Die SAP-Basis stellt Servicefunktionen zur Verfügung, die allermeisten
Funktionen müssen jedoch noch entwickelt werden.
Beispiele hierfür sind die Feldmodifikation, die Änderungsbelegauswertung sowie die
Dynproprüfung aus dem ABAP Dictionary.
-
ngs Da
u n te
b eit ione nü
ar kt be
Be nsa rn
.
Feldmodifikation tra
Änderungsbel.-
Auswert.
Service
Be
rec
h ti n
gu ti ze
ng
en No
zentrale
zentrale Pflege
Pflege
geringerer
geringerer Entwicklungsaufwand
Entwicklungsaufwand
SAP AG 2002
Da das BDT Dialogprozesse steuert, beschränken sich die Anwendungen auf die Realisierung
betriebswirtschaftlicher Funktionen. Das BDT stellt außerdem Services bereit, in denen
Anwendungen integriert werden können. Diese Faktoren führen zu einer erheblichen Verringerung
der Entwicklungszeit.
Die Anwendungen verlieren einen kleinen Teil an Individualität, erhalten aber dadurch den Vorteil
geringerer Objektpflege, einheitliche Dialoge, generische Objektservices sowie eine schnellere
Entwicklung.
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 für Objekte, die mit Hilfe von BDT entwickelt wurden.
Central Business Partner
Partner maintenance
Relationship maintenance
Contract Accounts Receivable and Payable
Contract account
IBU Banking
Bank account
Standing order
Financial product
Financial conditions
Risk object
Variable transactions
IBU Insurance
Insurance: Claims
Insurance: Loss event
Commissions: Remuneration agreements
IS-RE
Real estate contract
Cost efficiency analysis
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
ja ja ja ja
DSAVB Abbr.. Wollen Sie nein 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
SAP AG 2002
Innerhalb des Programmablaufs werden vom BDT definierte Zeitpunkte verwendet, für die die
Anwendungen separate Programmlogik in Form von Funktionsbausteinen entwickeln können. Die
Funktionsbausteine können für jeden Zeitpunkt definiert werden; das BDT ruft diese Bausteine
dynamisch auf.
Ausgangspunkt ist ein normaler Transaktionscode. Der Transaktionscode führt 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 ausgeführten Objektteil
gehören, werden in den jeweiligen Zeitpunkten dynamisch aufgerufen.
Funktions-
Funktionsbausteine
gruppe
gruppe
ISSTA
ISDAT Zeitpunkte je
Anwendung
ISDST
...
Programmlogik
GET Zeitpunkte je
Dynpros PBO-Modul Tabelle
Collect
Kapitel: Anhang
Thema: Feld-Exits
1-4 Legen Sie basierend auf dem globalen Feld-Exit einen lokalen Feld-Exit für Dynpro
0100 der Transaktion BC425_## an.
Kapitel: Anhang
Thema: Feld-Exits
Die von Ihren Anwendern zur Anzeige von Flügen genutzte Transaktion
BC425_## ermöglicht den Zugriff auf die Flüge aller
Fluggesellschaften. Die Kundenbetreuer sollen jedoch nur auf die
Fluggesellschaften Zugriff haben, für die sie explizit die Berechtigung
besitzen.
1-2 Einen Feld-Exit legen Sie über das Programm RSMODPRF an Starten Sie das
Programm. Lassen sie das Selektionsbild initial. Ausführen führt Sie auf die Liste
der existierenden Feld-Exits.
1-2-1 Wählen Sie hier im Menü Feldexit Anlegen. Geben Sie im nun
erscheinenden Dialogfenster als Datenelement-Name S_CARRID ein und
wählen 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 müssen den Funktionsbaustein einer Funktionsgruppe
zuordnen. Legen Sie in einem zweiten Modus die
Funktionsgruppe ZBC425_## an.
1-3 Aktivieren Sie den Funktionsbaustein. Gehen Sie zurück. Sie gelangen wieder in
die Liste der Feld-Exits. Aktivieren Sie den Feld-Exit unter Feldexit Aktivieren.