Sie sind auf Seite 1von 324

BC425 Erweiterungen und Modifikationen

Erweiterungen und Modifikationen


SAP AG 2002

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

SAP AG

BC425

0-1

Copyright

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

SAP AG 2001

Warenzeichenvermerke

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

SAP AG

BC425

0-2

Voraussetzungen fr Teilnehmer

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

SAP AG 1999

SAP AG

BC425

0-3

Zielgruppe

z Teilnehmer

Leiter des Projektteams

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

z Dauer: 3 Tage

SAP AG 1999

Benutzerhinweise

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

SAP AG

BC425

0-4

Grobziel des Kurses

Dieser Kurs vermittelt Ihnen Kenntnisse zu:


z Anpassen des R/3 Standards an die

Kundenbedrfnisse durch

Personalisierungstechniken Erweiterung des von SAP ausgelieferten

Standards

Modifikation des Standards und

Modifikationsabgleich

SAP AG 1999

SAP AG

BC425

0-5

Einfhrung: Inhalt

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

SAP AG 1999

SAP AG

BC425

1-1

Zielsetzungen des Kurses

Dieser Kurs ermglicht es Ihnen:


z nderungen am SAP Standard fachgerecht

durchzufhren.

z die verschiedenen nderungsmethoden bewerten

zu knnen und je nach Sachlage die richtige auszuwhlen

SAP AG 2002

SAP AG

BC425

1-2

Lernziele des Kurses

Am Ende des Kurses knnen Sie:


z einen berblick ber die verschiedenen

nderungsebenen des R/3-Systems geben

z Dictionary-Objekte erweitern, ohne sie zu

modifizieren

z Erweiterungen des R/3 Standards mit Hilfe von

Customer-Exits , Business Transaction Events und Business Add Ins realisieren Modifikationsassistenten durchfhren und abgleichen

z Modifikationen mit Hilfe des

SAP AG 2002

SAP AG

BC425

1-3

Inhaltsverzeichnis
Vorspann Kapitel 1 Kapitel 2 Kapitel 3 Kapitel 4 Kapitel 5 Kapitel 6 Kapitel 7 Kapitel 8 Kapitel 9 Kursberblick nderungen des SAP Standards Personalisierung Erweiterungen an Elementen des Dictionary Erweiterungen ber Customer-Exits Business Transaction Events Business Add Ins Modifikationen Zusammenfassung

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

SAP AG

BC425

1-4

bersichtsdiagramm
R/3 Business Anwendungen (SAP Standard)
Personali sierung Modifikation z Modifikationsassistent z User-Exits

Erweiterung z ABAP Dictionary z Customer-Exits

z Transaktions varianten

Tabellen Datenelemente Funktionsbaustein-Exits Men-Exits Dynpro-Exits

4 5 6 7

z Business Transaction Events z Business Add Ins

z berblick
SAP AG 2002

SAP AG

BC425

1-5

Gesamtunternehmensszenario

z Als Mitarbeiter der EDV-Abteilung eines

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

z Dazu stehen Ihnen verschiedene Mglichkeiten

SAP AG 1999

SAP AG

BC425

1-6

nderungen des SAP Standards

Inhalt:
z berblick ber die nderungsebenen z Entscheidungsdiagramm z nderungstechniken

SAP AG 1999

nderungen des SAP Standards: Lernziele des Kapitels

Am Ende dieses Kapitels knnen Sie: z erklren, auf welchen Ebenen Sie den von SAP ausgelieferten Standard ndern knnen z die geeignete Methode auswhlen, mit deren Hilfe Sie den Standard verndern z aufzhlen, welche Erweiterungstechniken Ihnen zur Verfgung stehen und wie diese prinzipiell arbeiten

SAP AG 1999

bersichtsdiagramm nderungen des Standards


R/3 Business Anwendungen (SAP Standard)
Personali sierung Modifikation z Modifikationsassistent z User-Exits

Erweiterung z ABAP Dictionary z Customer-Exits

z Transaktions varianten

Tabellen Datenelemente Funktionsbaustein-Exits Men-Exits Dynpro-Exits

4 5 6 7

z Business Transaction Events z Business Add Ins

z berblick
SAP AG 2002

nderungsebenen

R/3 Business Anwendungen (SAP Standard)

Kundenprogramme

Customizing

Personalizing

Modifikation

Erweiterung

Eigenentwicklung

Customizing

ABAP Workbench

SAP AG 2002

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

Customizing und weitgehend auch Personalizing werden mit den Tools des Business Engineer durchgefhrt, Eigenentwicklung, Erweiterungskonzept und Modifikation mit den Tools der ABAP Workbench.

Originale und Kopien

Entwicklungssystem

Folgesystem

Kundenobjekt

Kundenobjekt

Original
Transport der Entwicklung

Kopie

SAP-Objekt

SAP-Objekt

SAP-Objekt

Original

Kopie

Kopie

SAP AG 2002

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

Korrekturen und Reparaturen

Entwicklungssystem

Folgesystem

Kundenobjekt

Kundenobjekt

korrigiertes Original
Korrektur

Kopie
Transport der Korrektur

SAP-Objekt

SAP-Objekt

SAP-Objekt

korrigiertes Original
Korrektur

modifizierte Kopie
Reparatur

Kopie
Transport der Reparatur

SAP AG 2002

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

Modifikationen beim Upgrade

Entwicklungssystem

Folgesystem

Kundenobjekt

Kundenobjekt

korrigiertes Original

Kopie

SAP-Objekt

SAP-Objekt

SAP-Objekt

korrigiertes Original

modifizierte Kopie Modifikations abgleich

Kopie
Transport des Abgleichs

Upgrade
SAP AG 2002

Upgrade

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

Vorgehensweise bei Funktionalittsnderungen


Customizing

Gibt es eine Standardfunktionalitt, die ber Customizing/Personalizing dem Kundenwunsch angepat werden kann? Ja Nein Ist im SAP-Standard berhaupt eine hnliche Funktionalitt abgebildet?

Customizing Personalizing

Eigenentwicklung CSP-Lsung
Nein

Entwicklung

Ja Ermglicht die SAP-Applikation, zustzliche Funktionalitt ber Erweiterungen einzubinden? Nein Nein

Erweiterung
Ja

Eigenentwicklung mit SAP-Prog. als Vorlage


SAP AG 2002

Modifikation

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

Customizing
Vorgehensmodell Einfhrungsleitfaden ASAP

Geschftsprozeszenarien

Anwendungskomponenten
Materialwirtschaft

Business-Objekte
Purchase order Purchase order item Purchase order consignment Purchase order returnable packaging Schedule lines Time

Bestandsfhrung

Einkauf

Informationssystem

Lagerverwaltung

Lieferantenanfrage /-angebot

Bestellanforderung

Bestellung

Purchase order third party delivery

Prozemodell

Unternehmensorganisation
Purchase requisition

Objektorientiertes Datenmodell
Vendor inquiry Vendor quotation Purchase information Shipping notification Purchase order Vendor scheduling agreement

R/3 -Re mo feren del zl

Workflow und Organisation

SAP AG 1999

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

Personalizing Vereinfachung und Personalisierung der Anwendung ist oftmals auerhalb der ABAP Workbench mglich.
z Globale Anzeigeeigenschaften von Feldern z SET/GET Parameter z Variantentransaktionen z Systemweite Table-Control-Einstellungen z Personalisierte Mens z Rollenbasiertes Men z Favoriten z Shortcuts auf Desktop

SAP AG 2002

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

ABAP Workbench nderungsebenen


R/3 Business Anwendungen (SAP Standard)
Modifikation z Modifikationsassistent

Kundenprogramme
Eigenent wicklung z Mit Aufruf von SAP Objekten z Ohne Aufruf von SAP Objekten

Erweiterung z ABAP Dictionary

z ProgrammErweiterungen

Tabellen Datenelemente

z Men-Erweiterungen

Funktionsbaustein-Exits Business Transaction Events Business Add Ins Men-Exits Business Add Ins Dynpro-Exits Business Add Ins

z Dynpro-Erweiterungen

z User-Exits
SAP AG 2002

Modifikationen sind nderungen an SAP-Objekten in Kundensystemen. Sie existieren: y gefhrt durch User-Exits (fr Kunden reservierte Unterprogramme in Objekten des SAPNamensraums) y hart an beliebigen Stellen in SAP-Repository-Objekten.

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

Tabellenerweiterungen
ABAP Dictionary

Tabellendefinition Feld 1 Feld 2 Feld 3

YYFeld ZZFeld Append-Struktur YYFeld ZZFeld CI_Include

Tabellendefinition Feld 1 Feld 2 Feld 3 CI_Incl

Datenbank

Feld 1 Feld 2 Feld 3 YYFeld ZZFeld

SAP AG 1999

SAP bietet Ihnen zwei Mglichkeiten, Tabellen und Strukturen um Felder zu erweitern: y Append-Strukturen y Customizing-Includes ("CI-Includes")

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

Tabellenerweiterungen: SAP und Kunde

SAP

Kunde

Tabelle

Tabellenerweiterung

Append-Struktur

Tabelle + IncludeAnweisung

Tabellenerweiterung

CI_Include

SAP AG 1999

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

Programm-Erweiterungen: Funktionsweise
*** *** SAP SAP program program *** *** ********************************* ********************************* PROGRAM PROGRAM <name <name of of SAP SAP program>. program>.

<Aufruf der Erweiterung> <Objekt im Kundennamensraum>

Customer-Exit

Exit-Funktionsbaustein

Business Transaction Event Funktionsbaustein Business Add In

Methode

SAP AG 1999

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

Programm-Erweiterungen: SAP und Kunde

SAP
Customer-Exit: Funktionsbaustein-Exit Aufruf Verwaltung Schnittstelle Dokumentation Business Add Ins Business Transaction Events

Kunde

FB-Coding Funktionsbaustein im Kunden namensraum Methode in Kunden-Klasse

SAP AG 1999

Programm-Erweiterungen erlauben ihnen, zustzliche Programmlogik zu einem SAP Anwendungsprogramm zu hinterlegen. Dazu bietet SAP zur Zeit die oben angegebenen Techniken. Die Vorteile und Einschrnkungen der jeweiligen Erweiterungstechnik werden wir in den entsprechenden Kapiteln nher betrachten.

Men-Erweiterungen: SAP und Kunde

SAP
Menu 1 Menu 2 Menu 3 Menu 1 Menu 2

Kunde
Menu 3

Function Function11 Function Function22 Function Function33

Function Function11 Function Function22 Function Function33

Kundenfunktion

Funktionscode Erweiterung Dokumentation Men-Exits

Text (Ikonen)

SAP AG 1999

Men-Erweiterungen erlauben Ihnen, zustzliche Men-Eintrge zu einem SAP Standard-Men hinzuzufgen. Dazu bietet Ihnen das System zur Zeit zwei Mglichkeiten: y Customer-Exits y Business Add Ins

Die zustzlichen Men-Eintrge werden in die GUI-Oberflche eingemischt. Beim Implementieren des Funktionscodes knnen sie den Text des Men-Eintrags ndern und abhngig davon, was der SAP Entwickler vorgesehen hat - Ikonen ndern.

Dynpro-Erweiterungen

SAP
SAP R/3 Feld 1 Feld 2 SAP R/3 Feld 1 Feld 2 Feld X Feld Y

Kunde

Feld Z

Subscreen-Bereiche Ablauflogik Erweiterung Dokumentation


SAP AG 2002

Dynpro-Exit Business Add In

Subscreen-Dynpros FB-Coding

Dynpro-Exits gehren zu den Customer-Exits und erlauben Ihnen, auf einem Dynpro eines SAP Anwendungsprogramms zustzliche Objekte anzeigen zu lassen. Dazu mu der SAP Entwickler: y die Subscreen-Bereiche definieren y die entsprechenden Aufrufe in der Ablauflogik vorsehen y den Rahmen fr den Datentransport zur Verfgung stellen y den Dynpro-Exit in eine Erweiterung aufnehmen y Dokumentation pflegen!

Ab SAP Web Application Server 6.20 knnen auch Business Add Ins Dynpro-Exits enthalten. Sie knnen Dynpro-Exits implementieren, indem sie Subscreen-Dynpros anlegen, eventuell mit Ablauflogik. Darber hinaus mssen sie den Datentransport implementieren. Wie Sie Dynpro-Exits implementieren, wird im Kapitel "Erweiterungen ber Customer-Exits" fr die "klassischen" sowie im Kapitel "Business Add Ins" fr die neuen Dynpro-Exits behandelt.

Modifikationen

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

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

*Original Coding.. ... ... ... ... *Original Coding.. ...

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

SAP AG 1999

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

nderungen des SAP Standards: Zusammenfassung des Kapitels

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

SAP AG 1999

Verwendete Daten
Erklrung der Symbole in den bungen und Lsungen bungen Lsungen Lernziele Unternehmensszenario Tips & Tricks Warnung und Achtung Daten in den bungen Art der Daten
Tabellen Datenelemente Programm Transaktionscode Programm

Daten im Schulungssystem
SFLIGHT00 .. SFLIGHT18 S_CARRID00 .. S_CARRID18 SAPBC425_EXIT_00 .. SAPBC425_EXIT_18 BC425_00 .. BC425_18 SAPBC425_BOOKING_00 .. SAPBC425_BOOKING_00

Personalisierung

Inhalt:
z Personalisierung von Transaktionen

SAP AG 2002

SAP AG

BC425

3-1

Personalisierung: Lernziele des Kapitels

Am Ende dieses Kapitels knnen Sie: z Transaktionen personalisieren indem sie z Screen-Varianten anlegen z Transaktionsvarianten anlegen z Bildschirme mit Hilfe von GuiXT verndern

SAP AG 2002

SAP AG

BC425

3-2

Personalisierung: Unternehmensszenario

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

SAP AG 1999

SAP AG

BC425

3-3

bersichtsdiagramm Personalisierung
R/3 Business Anwendungen (SAP Standard)
Personali sierung z Transaktions varianten Modifikation z Modifikationsassistent z User-Exits

Erweiterung z ABAP Dictionary z Customer-Exits

Tabellen Datenelemente Funktionsbaustein-Exits Men-Exits Dynpro-Exits

4 5 6 7

z Business Transaction Events z Business Add Ins

z berblick
SAP AG 2002

SAP AG

BC425

3-4

Personalisierungsebenen
Unternehmen: z Unternehmensstruktur z Geschftsprozesse

TOP-DOWN Konfiguration

Rollenspezifische Konfiguration

Ber. mens

Rollenbasierte Rollenbasierte TA Mens Mens varianten

Benutzerrollen: z Bereichsmens z Rollenbasierte Mens z Transaktionsvarianten Persnliche Konfiguration: z Favoriten z Links z Desktop-Links

Persnliche Konfiguration

Favoriten
SAP AG 2002

Links

Desktop

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

SAP AG

BC425

3-5

Transaktionsvarianten: Ziele
z Vereinfachung des Systems durch Ausblenden nicht bentigter Funktionen
z Vorbelegung von Feldern z Wegnahme der Eingabebereitschaft z Ausblenden nicht bentigter Bildschirmelemente (Felder, Subscreens, Screens)

z Standardvariante oder individuelle Variante z WYSIWYG-Pflege durch spezielle Aufzeichnungsfunktion

SAP AG 2002

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

Die Pflege von Transaktionsvarianten werden wir im folgenden nher beleuchten.

SAP AG

BC425

3-6

Transaktionsvarianten: Beispiel
Program

100

Program

100

Abflugstadt Ankunftstadt Abflugzeit


Button1 Button2

Ankunftstadt Abflugzeit
Button1

New York

TA 200 Variante
Program Buchen Info

200
Fluggesellschaft Verbindung Flugdatum
Buchen

Program

Fluggesellschaft Verbindung Flugdatum Bel. Pltze Freie Pltze Flugpreis

Bel. Pltze Freie Pltze Flugpreis

Info

z z z
SAP AG 1999

Felder mit Werten vorbelegen Felder ausblenden Dynpros ausblenden

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

SAP AG

BC425

3-7

Transaktionsvarianten: Prinzip

Transaktions-Variante

Screen-Variante Screen-Variante ztest_0100 Screen-Variante ztest_0100 ztest_0100

Screen-Variante ztest_0200

Screen-Variante Screen-Variante ztest_0300 ztest_0300

SAP AG 1999

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

SAP AG

BC425

3-8

Transaktionsvarianten: Mglichkeiten

Standardvariante

z Eine Standardvariante oder z beliebig viele individuelle Varianten z Standardvariante berblendet SAP Transaktion z sonst: Variantentransaktionen

TA-Variante 1

SAP Transaktion
TA-Variante 2

TA-Variante 3

SAP AG 1999

Zu einer SAP-Transaktion knnen sie verschiedene Arten von Transaktionsvarianten anlegen: y eine Standard-Variante y beliebig viele "normale" Transaktionsvarianten

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

SAP AG

BC425

3-9

Transaktionsvarianten anlegen

Transaktionsvarianten

Transaktion Variante

Name der Transaktion Name der Varianten Anlegen

z Werkzeuge AcceleratedSAP Personalization Transaktionsvarianten


SAP AG 1999

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

SAP AG

BC425

3-10

Transaktionsvarianten: Felder bewerten


Program

100

Abflugstadt Ankunftstadt Abflugzeit


Button1 Button2

Abflugstadt Ankunftstadt Abflugzeit Button1 Button2

Frankfurt New York

Beenden u. Sichern

Menfunktionen

GuiXT

SAP AG 1999

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

SAP AG

BC425

3-11

Screen-Varianten

Name der Screenvariante


Abflugstadt Ankunftstadt Abflugzeit Button1 Button2 Frankfurt New York

Kurztext Feldattribute setzen Menfunktionen deaktivieren

Beenden u. Sichern

Menfunktionen

GuiXT

SAP AG 1999

Eine Screen-Variante ist ein eigenstndiges Repository-Objekt mit einem im System eindeutigen Namen. Der Name setzt sich zusammen aus y Variantenname y Mandant (nur bei mandantenabhngigen Transaktionsvarianten) y Dynpronummer

Hier geben sie an, ob Feldinhalte in die Screen-Variante bernommen werden sollen. Fr die einzelnen Felder knnen Sie verschiedene Attribute setzen: Sie knnen die Eingabebereitschaft eines Feldes zurcknehmen oder es sogar unsichtbar machen. Eine detaillierte Auflistung der Mglichkeiten finden Sie im Online-Handbuch zu Transaktionsvarianten.

SAP AG

BC425

3-12

GuiXT
Abflugzeit Button1 Button2

Pflegebild der Screenvariante


Menfunktionen GuiXT

Beenden u. Sichern

z Skript-Editor

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

Bilddateien
SAP AG 1999

Das Zusatzwerkzeug GuiXT ermglicht ihnen eine flexiblere Gestaltung der einzelnen Bildschirme. GuiXT bedient sich dabei einer Skript-Sprache, um y Objekte auf dem Dynpro zu positionieren, y Attribute zu setzen, y Neue Objekte aufzunehmen

Durch Auswhlen der Drucktaste "GuiXT" erscheint ein Editor-Fenster, in dem sie das Skript eingeben knnen. Sie knnen hier ebenfalls Bilddateien auswhlen, die auf ihrem lokalen Rechner verfgbar sind. Weiterhin knnen sie auf dem lokalen Rechner erstellte Skripte importieren, sowie dorthin exportieren.

SAP AG

BC425

3-13

GuiXT: Scriptsprache
// Version: 19990921151118 IMAGE (1,1) "C:\temp\sap.jpg" BOX (10,20) (16,44) "Frame" POS [Element] [Element]+(10,0) POS [Bereich] [Bereich]+(10,0) Pushbutton (10,50) "Text" "SCMP"

Kommentar Bild einfgen Rahmen einfgen Element verschieben Drucktaste mit Text und Funktionscode

SAP AG 1999

Mit Hilfe der von GuiXT verwendeten Skript-Sprache knnen Sie das Layout eines Bildschirmbildes beeinflussen. Sie knnen y Objekte verschieben y Bilder einfgen y Drucktasten einfgen y Wertehilfen einfgen y Eingabeeigenschaften von Feldern beeinflussen y Bildelemente lschen

Eine vollstndige Dokumentation von GuiXT erhalten Sie mit der Installation mitgeliefert. Weitere Informationen finden Sie auf der Homepage des Herstellers von GuiXT (http://www.synactive.com).

SAP AG

BC425

3-14

Transaktionsvarianten starten

Mglichkeiten zum Starten von Transaktionsvarianten z Test-Umgebung z Transaktions-Code z aus Benutzer-Men

SAP AG 1999

Zum Starten einer Transaktionsvariante stehen ihnen folgende Mglichkeiten zur Verfgung: y Testumgebung y Transaktionscode vom Typ "Variantentransaktion" y Benutzermen

In der Testumgebung der Transaktionsvarianten-Pflege knnen sie den Ablauf der Transaktion testen. Dies ist vor allem fr Entwickler bestimmt, die die Transaktionsvariante anlegen. Um eine Variantentransaktion in ein Benutzermen oder eine Rolle einhngen zu knnen, mssen sie einen Transaktionscode vom Typ "Variantentransaktion" anlegen.

SAP AG

BC425

3-15

Variantentransaktion anlegen
Transaktionspflege

Transaktionscode__ Anzeigen ndern Anlegen

Name des Transaktionscodes Anlegen

Transaktion anlegen

Transaktionscode
Transaktionsattribute Dialogtransaktion Reporttransaktion OO-Transaktion

Variantentransaktion
Paramentertransaktion
SAP AG 2002

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

SAP AG

BC425

3-16

Personalisierung: Zusammenfassung des Kapitels

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

SAP AG 2002

SAP AG

BC425

3-17

bungen
Kapitel: Personalisierung Thema: Anlegen eines Paketes

Fr eine geordnete Entwicklung bentigen Sie ein Paket

1-1

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

SAP AG

BC425

3-18

bungen
Kapitel: Personalisierung Thema: Transaktionsvarianten
Am Ende dieser bungen knnen Sie: Mit Hilfe von Screen Varianten und Transaktionsvarianten eine Transaktion in der Bedienbarkeit wesentlich vereinfachen. Ihre Anwender beklagen sich, da die Transaktion BC425_TAVAR viel zu umstndlich zu bedienen ist (trotz EnjoyInitiative!) Eigentlich haben sie nur ein paar Felder auszufllen. Viele weitere Felder sind hingegen berflssig. Helfen sie ihren Anwendern, indem Sie die Transaktion in der Bedienung vereinfachen. 1-1 Erzeugen sie eine Transaktionsvariante zu der Transaktion BC425_TAVAR. 1-1-1 Wie gelangen Sie in die Pflege von Transaktionsvarianten? Nehmen sie die entsprechende Transaktion in ihre Favoriten auf. 1-1-2 Vergeben Sie einen Namen fr die Variante: ZBC425## (## = Gruppennummer). 1-2 Durchlaufen Sie die Transaktion Bild fr Bild, und legen Sie jeweils fr die einzelnen Bilder eine Screen-Variante an. Folgende Vernderungen sollen vorgenommen werden: 1-2-1 Einstiegsbild: Die ersten beiden Felder mit "DE", "Frankfurt" vorbelegen und die Eingabebereitschaft zurcknehmen. 1-2-2 Zweites Bild: Die Spalte "FLH" des Table Controls auf unsichtbar setzen. Menfunktion "BACK" deaktivieren. 1-2-3 Drittes Bild: Men-Funktion "BACK" deaktivieren. 1-3 Legen sie einen Transaktionscode fr die Variante an. Name der Transaktion: ZBC425##. Nehmen sie die Variante in das von ihnen angelegte Bereichsmen auf. Testen Sie Ihr Ergebnis.

1-4 1-5

SAP AG

BC425

3-19

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

SAP AG

BC425

3-20

Lsungen
Kapitel: Personalisierung Thema: Transaktionsvarianten
1-1 Erzeugen einer Transaktionsvariante zu der Transaktion BC425_TAVAR: 1-1-1 In die Pflege von Transaktionsvarianten knnen Sie ber verschiedene Wege gelangen, zum Beispiel ber SAP Men Werkzeuge Customizing IMG Projektbearbeitung. Dort Springen SAP Referenz IMG anzeigen. Dort Allgemeine Einstellungen Anzeigeeigenschaften von Feldern. Selektieren Sie die Ausfhren-Ikone. Die Transaktion SHD0 wird gestartet. Whlen Sie hier System Benutzervorgaben Favoriten erweitern um die Transaktion in Ihre Favoriten aufzunehmen. 1-1-2 Tragen Sie in das Feld "Transaktion" den Namen der Transaktion ein, von der Sie eine Varianten erzeugen wollen. Tragen Sie in das Feld "Variante" den Namen der Variante ein: ZBC425## (## = Gruppennummer). 1-2 Durchlaufen Sie die Transaktion Bild fr Bild. Tragen Sie in die Eingabefelder die entsprechenden Werte ein. Verlassen Sie das Bild ber die entsprechende Drucktaste. und legen Sie jeweils fr die einzelnen Bilder eine Screen-Variante an. 1-2-1 Einstiegsbild: Belegen Sie die ersten beiden Felder mit "DE", "Frankfurt" vor. Verlassen Sie das Dynpro durch Bettigen der entsprechenden Drucktaste. Auf dem nun erscheinenden Popup markieren Sie die Ankreuzfelder "Feldwerte bernehmen" sowie die entsprechenden Ankreuzfelder bei den entsprechenden Bildschirmobjekten. Vergeben Sie einen Kurztext fr die Screen-Variante. Sichern Sie die Screen-Variante. 1-2-2 Zweites Bild: Verlassen Sie dieses Dynpro durch Auswahl der entsprechenden Drucktaste. Auf dem nun erscheinenden Dialogfenster markieren Sie wiederum "Werte bernehmen". Markieren Sie die Spalte "FLH" des Table Controls als unsichtbar. Whlen Sie die Drucktaste Menfunktionen aus und entmarkieren Sie den Funktionscode "BACK". Sichern Sie die Screen-Variante. 1-2-3 Drittes Bild: Verlassen Sie dieses Dynpro mit der Funktion "Sichern". Deaktivieren Sie die Menfunktion "BACK" analog zu 1-2-2. Sichern Sie die Screen-Variante. 1-2-4 Es erscheint eine Liste mit einer Zusammenfassung aller angelegter ScreenVarianten. Hier haben Sie nochmals die Gelegenheit, Ihre Eingaben zu berprfen. Sichern Sie, um die Transaktionsvariante endgltig anzulegen. 1-3 Zum Anlegen eines Transaktionscodes fr die Variante knnen Sie entweder die Transaktionscode-Pflege aufrufen. Oder Sie whlen aus der Transaktion SHD0 den
BC425 3-21

SAP AG

Menpfad Springen Transaktionscode anlegen. Vergeben Sie als Namen ZBC425##. 1-4 Gehen Sie in die Bereichsmen-Pflege (Transaktion SE43). Nehmen Sie dort Ihre Transaktionsvariante in Ihr Bereichsmen ZBC425_## auf. Gehen Sie dabei vor, wie in der bung zur Bereichsmen-Pflege beschrieben.

SAP AG

BC425

3-22

Erweiterungen an Elementen des Dictionary

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

SAP AG 2002

SAP AG

BC425

4-1

Erweiterungen an Elementen des Dictionary: Lernziele des Kapitels

Am Ende dieses Kapitels knnen Sie: z Tabellen mit Hilfe von Append-Strukturen erweitern z Tabellen mit Hilfe von Customizing-Includes erweitern z Feldbezeichner und F1-Hilfe von Datenelementen modifikationsfrei ndern

SAP AG 2002

SAP AG

BC425

4-2

bersichtsdiagramm Erweiterung ABAP Dictionary


R/3 Business Anwendungen (SAP Standard)
Personali sierung Modifikation z Modifikationsassistent z User-Exits Erweiterung z ABAP Dictionary z Customer-Exits

z Transaktions varianten

Tabellen Datenelemente Funktionsbaustein-Exits Men-Exits Dynpro-Exits

4 5 6 7

z Business Transaction Events z Business Add Ins

z berblick
SAP AG 2002

SAP AG

BC425

4-3

Tabellenerweiterungen: Lernziele

Nach Behandlung dieses Themas knnen Sie: z Tabellen mit Hilfe von Append-Strukturen erweitern z Tabellen mit Hilfe von Customizing-Includes erweitern

SAP AG 2002

SAP AG

BC425

4-4

Tabellenerweiterungen: berblick
z Es gibt zwei Mglichkeiten, Tabellen ohne zu modifizieren um zustzliche Felder zu erweitern: z Append-Struktur z Eine Append-Struktur wird zu einer Tabelle angelegt z Zu einer Tabelle sind beliebig viele AppendStrukturen mglich z Diese knnen wie jede andere Struktur verwendet werden z Customizing-Include z mu vom SAP-Entwickler vorgedacht sein z wird vom Kunden angelegt

SAP AG 1999

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

SAP AG

BC425

4-5

Append-Strukturen

YYField ZZField Tabelle Field1 Field2 Field3 Append-Struktur

Field1 Field2 Field3 YYField ZZField

SAP AG 1999

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

SAP AG

BC425

4-6

Append-Strukturen beim Upgrade

YYField ZZField Tabelle Field1 Field2 Field3 Neue SAP-Version wird importiert Field1 Field2 Field3 Field4 Field4 Aktivieren Anhngen des Feldes auf der Datenbank Append-Struktur

Field1 Field2 Field3 YYField ZZField Field4

SAP AG 1999

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

SAP AG

BC425

4-7

Customizing-Includes
Customizing-Transaktion oder SAP-Empfehlung Customizing-Include YYField ZZField

Tabelle A Field1 Field2 CI_Incl Field3

Tabelle B FieldL FieldM CI_Incl FieldN

Field1 Field2 Field3 YYField ZZField

FieldL FieldM FieldN YYField ZZField

SAP AG 1999

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

SAP AG

BC425

4-8

Texterweiterungen: Lernziele

Nach Behandlung dieses Themas knnen Sie: z Feldbezeichner und F1-Hilfe von Datenelementen modifikationsfrei ndern

SAP AG 2002

SAP AG

BC425

4-9

berblick Texterweiterungen

SAP
System Hilfe

Kunde

SAP R/3

System Hilfe

SAP R/3

Schlsselwort SAP

Schlsselwort Kunde

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

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

SAP AG 1999

Bei Texterweiterungen handelt es sich um kundeneigene Schlsselwrter und kundeneigene Dokumentation zu Datenelementen. Bei Texterweiterungen sind im Gegensatz zu Anwendungserweiterungen nach Aktivierung die nderungen global fr alle betroffenen SAP-Anwendungen wirksam (globale Erweiterungen).

SAP AG

BC425

4-10

Schlsselwrter

SAP
Datenelement definieren Schlsselwort kurz: mittel: lang: berschrift: Kurztext (bei F1):

Kunde
Globale Erweiterungen definieren Schlsselwort kurz: mittel: lang: berschrift: Kurztext (bei F1):

SAP AG 1999

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

SAP AG

BC425

4-11

Texterweiterungen bearbeiten
Projektverwaltung
System Hilfe

Projekt Globale Erweiterungen Schlsselwrter


SAP R/3
System Hilfe

Datenelemente
SAP R/3
System Hilfe

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


SAP AG 1999

Kundendokumentation:

Texterweiterungen werden ber die Projektverwaltung (ABAP Workbench Hilfsmittel Erweiterungen Projektverwaltung) bearbeitet. ber Globale Erweiterungen gelangen Sie in die Erweiterungsfunktionen fr Schlsselwrter und die Dokumentation zu Datenelementen.

SAP AG

BC425

4-12

Voraussetzung fr Schlsselwortnderung

SAP
ScreenScreen-Painter

Feldliste

Screen Painter: Feldliste


System Hilfe


MOD

. . LFA1-LFNR LFA1-LFNR . . .
SAP AG 1999

E A

Damit eine Schlsselwortnderung auf einem Dynpro wirksam wird, mu der SAPAnwendungsprogrammierer in der Feldliste das Attribut MOD (Schlsselwortmodifikationskennzeichen) des betreffenden Feldes entsprechend gepflegt haben. Fr das Attribut MOD gibt es folgende Mglichkeiten: SPACE: das der Feldlnge am besten angepate Schlsselwort 1: kurzes Schlsselwort 2: mittleres Schlsselwort 3: langes Schlsselwort 4: Schlsselwort fr berschrift V: variable Textbernahme aus Dictionary F: fix, keine Textbernahme

Wurde ' F' eingetragen, dann wird das Schlsselwort hart auf dem Dynpro eingetragen und kann nicht ersetzt werden. In den anderen Fllen zeigen alle Dynpros, die sich auf das betreffende Datenelement beziehen, das genderte Schlsselwort.

SAP AG

BC425

4-13

Schlsselwortnderungen und Releasewechsel


SAP
Release x.x
SAP R/3 System Hilfe

Kunde
Release x.x
SAP R/3 System Hilfe

altes Schlsselwort SAP

Schlsselwort Kunde

Release y.y Release y.y


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

neues Schlsselwort SAP

neues Schlsselwort SAP

Restaurieren Kunde

Release x.x
SAP R/3 System Hilfe

Schlsselwort Kunde
SAP AG 1999

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

SAP AG

BC425

4-14

SAP-Schlsselwrter restaurieren

SAP

Kunde
Release x.x
SAP R/3 System Hilfe

Release x.x
SAP R/3 System Hilfe

Schlsselwort Kunde

Schlsselwort SAP


System Hilfe

Restaurieren SAP

Release x.x
SAP R/3

Schlsselwort SAP

SAP AG 1999

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

SAP AG

BC425

4-15

Erweiterte Dokumentation zu Datenelementen


SAP
Datenelemente

Kunde
Globale Erweiterungen Datenelemente

Dokumentation
SAP R/3
System Hilfe

Kundendokumentation
SAP R/3
System Hilfe

SAP-Dokumentation:

INCLUDE <SAP-Doku > <SAP-Doku>


Kundendokumentation:

SAP AG 1999

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

SAP AG

BC425

4-16

Kundeneigene Dokumentation

Globale Erweiterungen Datenelemente Kundendokumentation

SAP R/3
System Hilfe

SAP R/3
System Hilfe

INCLUDE <SAP-Doku>
Kundendokumentation:

<Include auflsen>

Kundendokumentation:

SAP AG 1999

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

SAP AG

BC425

4-17

Texterweiterungen: Zusammenfassung

Kundeneigene Kurztexte Kundeneigene Dokumentation

Kundeneigene Schlsselwrter
SAP R/3
System Hilfe

Schlsselwort SAP

SAP AG 1999

Im Rahmen der Projektverwaltung kann der Kunde SAP-Anwendungen durch eigene Schlsselwrter, Kurztexte und Dokumentation fr Datenelemente erweitern. Diese Erweiterungen sind nach Aktivierung fr alle SAP-Anwendungen wirksam, die die betroffenen Datenelemente verwenden.

SAP AG

BC425

4-18

Erweiterungen an Elementen des Dictionary: Zusammenfassung des Kapitels

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

SAP AG 2002

SAP AG

BC425

4-19

bungen
Kapitel: Erweiterungen an Objekten des Dictionary Thema: Tabellen-Erweiterungen
Am Ende dieser bungen knnen Sie: Tabellen mit Hilfe von Append-Strukturen erweitern.

Sie sind Mitarbeiter in der EDV-Abteilung einer groen Reiseagentur. Ihr Unternehmen hat R/3 im Einsatz. Im R/3 existiert eine Transaktion, die sie speziell in Fragen von Flugreisen untersttzt. Unter anderem nutzen die Mitarbeiter in ihrer Kundenberatung die Transaktion BC425_##, um sich Flugdaten anzeigen zu lassen. Gerne htten sie noch mehr Informationen zu einem Flug, zum Beispiel den Namen des Piloten oder die Hauptmahlzeit. Die Flugdaten sind in der Tabelle SFLIGHT## abgelegt. Diese sollen sie um die zwei gewnschten Spalten erweitern, ohne die Tabelle selbst zu modifizieren. 1-1 Welche Mglichkeiten bestehen, die Tabelle SFLIGHT## um zwei Felder zu erweitern, ohne sie zu modifizieren. 1-1-1 Wie gehen Sie vor, um die Tabelle SFLIGHT## zu erweitern? 1-1-2 Erweitern Sie die Tabelle SFLIGHT## mit Hilfe einer modifikationsfreien Technik. 1-2 Legen Sie eine Append-Struktur zur Tabelle SFLIGHT## an. 1-2-1 Nehmen sie zwei Felder in die Struktur auf: Eines zur Aufnahme des Piloten-Namens (Zeichenkette der Lnge 25) Eines zur Aufnahme der Mahlzeit (Zeichenkette der Lnge 20). 1-2-2 Typisieren Sie die Felder. Whlen sie die Ihnen am geeignetsten scheinende Typisierungsform. Sie werden diese Felder spter auf einem Dynpro verwenden. Ein wenig Mehrarbeit an dieser Stelle erleichtert Ihnen die Arbeit spter.

SAP AG

BC425

4-20

Lsungen
Kapitel: Erweiterungen an Objekten des Dictionary Thema: Tabellen-Erweiterungen
1-1 Append-Strukturen sind die einzige Mglichkeit, eine transparente Tabelle (SFLIGHT## ist eine solche) zu erweitern, ohne sie zu modifizieren. 1-1-1 Wie gehen Sie vor, um die Tabelle SFLIGHT## zu erweitern? Mit AppendStrukturen knnen Sie zwar genauso arbeiten wie mit "normalen" Strukturdefinitionen. Angelegt werden sie aber aus einer Tabelle (oder Struktur) heraus. Rufen Sie das ABAP Dictionary auf (Transaktion SE11 oder aus dem Object Navigator Einzelobjekte Dictionary-Objekte bearbeiten). Geben Sie den Tabellennamen SFLIGHT## ein und whlen Sie "Anzeigen". 1-1-2 Erweitern Sie die Tabelle SFLIGHT## mit Hilfe der Append-Technik. Das detaillierte Vorgehen wird in den folgenden Punkten beschrieben: 1-2 Legen Sie die Append-Struktur ber Springen Append-Strukturen oder die entsprechende Drucktaste an; bernehmen Sie den Namensvorschlag. Vergeben Sie einen Kurztext fr die Append-Struktur und sichern Sie sie unter der von Ihnen angelegten Entwicklungsklasse. 1-2-1 Nehmen sie zwei Felder in die Struktur auf: Die Feldnamen mssen mit YY oder ZZ beginnen. Zum Beispiel YYPILOT und YYMEAL. Eines zur Aufnahme des Piloten-Namens (Zeichenkette der Lnge 25) Eines zur Aufnahme der Mahlzeit (Zeichenkette der Lnge 20). 1-2-2 Zum Typisieren der Felder legen Sie sinnvollerweise je ein Datenelement an. Nutzen Sie dazu idealerweise die Vorwrtsnavigation. Geben Sie den Namen Z_PILNAME## ein und doppelklicken Sie das Feld. Vergeben Sie fr das Datenelement Kurztext und adquate Feldbezeichner. Legen Sie fr die Mahlzeit ein Datenelement mit dem Namen Z_MEAL## an. Vergessen Sie nicht, die Datenelemente zu aktivieren. 1-3 Aktivieren Sie die Append-Struktur. Falls dabei Fehler auftreten, knnen Sie nhere Hinweise dazu dem Aktivierungsprotokoll entnehmen.

SAP AG

BC425

4-21

Erweiterungen ber Customer-Exits

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

SAP AG 1999

SAP AG

BC425

5-1

Erweiterungen ber Customer-Exits: Lernziele des Kapitels

Am Ende dieses Kapitels knnen Sie:


z die Komponenten einer Erweiterung aufzhlen z ein Erweiterungsprojekt anlegen z den Anschlu an Workbench Organizer und

Transportsystem erlutern

z die Begriffe Komponente, Erweiterung und

Erweiterungsprojekt unterscheiden

z ein Erweiterungsprojekt transportieren

SAP AG 1999

SAP AG

BC425

5-2

bersichtsdiagramm Erweiterung Customer-Exits

R/3 Business Anwendungen (SAP Standard)


Personali sierung Modifikation z Modifikationsassistent z User-Exits Erweiterung z ABAP Dictionary

z Transaktions varianten

Tabellen Datenelemente Funktionsbaustein-Exits Men-Exits Dynpro-Exits

4 5 6 7

z Customer-Exits

z Business Transaction Events z Business Add Ins

z berblick
SAP AG 2002

SAP AG

BC425

5-3

Customer-Exits: berblick

berblick berblick Erweiterungsverwaltung Erweiterungsverwaltung Funktionsbaustein-Exit Funktionsbaustein-Exit Men-Exit Men-Exit Dynpro-Exit Dynpro-Exit

SAP AG 1999

SAP AG

BC425

5-4

SAP-Anwendungserweiterung

SAP
Anwendungsfunktion

Kunde

entwickelt

benutzt

definiert

Komponenten der Anwendungserweiterung

bearbeitet

fat zusammen

Anwendungserweiterung

aktiviert

SAP AG 1999

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

SAP AG

BC425

5-5

Kundenerweiterungsprojekt

SAP
Definition von SAPErweiterungen

Kunde
Definition von Erweiterungsprojekten

SMOD

CMOD

SAP AG 1999

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

SAP AG

BC425

5-6

Erweiterungen und Erweiterungsprojekte


Erweiterungsprojekt

E
C C C

E
C

C C

E
C

C C

E
C C C C C

Erweiterungsprojekt
C

E
C

Erweiterungsprojekt
C

SAP Erweiterung

C Komponente

SAP AG 1999

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

SAP AG

BC425

5-7

Customer-Exits: Erweiterungsverwaltung

berblick berblick Erweiterungsverwaltung Erweiterungsverwaltung Funktionsbaustein-Exit Funktionsbaustein-Exit Men-Exit Men-Exit Dynpro-Exit Dynpro-Exit

SAP AG 1999

SAP AG

BC425

5-8

Vorgehen bei SAP


Funktionsbaustein-Exits Men-Exits Dynpro-Exits

Customer-Exits in Anwendungsfunktionen definieren

Komponenten zu SAP-Erweiterungen zusammenfassen

E
C C C

Erweiterungen dokumentieren
SAP AG 1999

SAP-Dokumentation:

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

SAP AG

BC425

5-9

Vorgehen beim Kunden


Erweiterungsprojekt
Erweiterungsprojekt Erweiterungsprojekt aus aus SAP-Erweiterungen SAP-Erweiterungen aufbauen aufbauen

Exit-Funktionsbausteine
Komponenten Komponenten des des Erweiterungsprojekts Erweiterungsprojekts bearbeiten bearbeiten

Men-Eintrge Subscreen-Dynpros
Kundendokumentation: Kundendokumentation:

Erweiterungsprojekt Erweiterungsprojekt dokumentieren dokumentieren

Erweiterungsprojekt Erweiterungsprojekt aktivieren aktivieren


SAP AG 1999

aktivieren aktivieren

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

SAP AG

BC425

5-10

Kundenerweiterungsprojekt anlegen
Projektverwaltung von SAP Erweiterungen

Name Name des des Erweiterungsprojekts Erweiterungsprojekts Anlegen Anlegen

Projekt
Teilobjekte

Anlegen

Attribute Zuordnung Erweiterungen Komponenten Dokumentation

Anzeigen

ndern

Attribute Erweiterungsprojekt

Projekt Kurztext

<project>

SAP AG 1999

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

SAP AG

BC425

5-11

SAP-Erweiterungen Kundenprojekt zuordnen


Projektverwaltung von SAP Erweiterungen

Projekt
Teilobjekte

Anlegen

Attribute Zuordnung Erweiterungen Komponenten Dokumentation

Anzeigen

ndern

SAP Erweiterungen in Projekt

Erweiterung

Kurztext

SAP AG 1999

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

SAP AG

BC425

5-12

Komponenten bearbeiten
Projektverwaltung von SAP Erweiterungen Function Builder

Projekt
Teilobjekte

Anlegen

Funktionsbaustein
Text ndern

Attribute Zuordnung Erweiterungen Komponenten Dokumentation

Men-Text
bernehmen

Anzeigen

ndern

Screen Painter

SAP AG 1999

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

SAP AG

BC425

5-13

Erweiterungsprojekt aktivieren
Projektverwaltung von SAP Erweiterungen

Projekt
Teilobjekte

Anlegen

Aktivieren

Attribute Zuordnung Erweiterungen Komponenten Dokumentation

Anzeigen

ndern

SAP AG 1999

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

SAP AG

BC425

5-14

Transport von Projekten

Entwicklungssystem

Folgesystem

Erweiterungsprojekt

Erweiterungsprojekt
Transport auftrag C

E
C

E
C C

SAP AG 1999

Um einen konsistenten Transport Ihres Erweiterungsprojekts zu gewhrleisten, sollten Sie sowohl das Erweiterungsprojekt selbst als auch jede einzelne Komponente (Include-Programme, SubscreenDynpros, Include mit Subscreen-Modulpools) einer oder mehreren Aufgaben innerhalb eines nderungsauftrags zuordnen.

SAP AG

BC425

5-15

Customer-Exits: Funktionsbaustein-Exit

berblick berblick Erweiterungsverwaltung Erweiterungsverwaltung Funktionsbaustein-Exit Funktionsbaustein-Exit Men-Exit Men-Exit Dynpro-Exit Dynpro-Exit

SAP AG 1999

SAP AG

BC425

5-16

berblick Funktionsbaustein-Exit

SAP
festlegen FunktionsbausteinExit

Kunde
aktivieren

Aufruf Verwaltung Schnittstelle Dokumentation Funktionsbaustein Quelltext

SAP AG 1999

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

SAP AG

BC425

5-17

Funktionsbaustein-Exit: Ablaufdiagramm
Anwendungsprogramm X-Funktionsgruppe Exit-Funktionsbaustein EXIT_<prog_name>_001 CALL CUSTOMER-FUNCTION Include im Kundennamensraum

SAP AG 1999

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

SAP AG

BC425

5-18

Funktionsbaustein aufrufen und anlegen


PROGRAM PROGRAM <program_name>. <program_name>. START-OF-SELECTION. START-OF-SELECTION. ... ... CALL CUSTOMER-FUNCTION 001 EXPORTING .... IMPORTING .... .

FUNCTION-POOL FUNCTION-POOL XAAA. XAAA. ... ... FUNCTION FUNCTION exit_<program_name>_001. exit_<program_name>_001. ... ... INCLUDE zxaaau01.

ENDFUNCTION. ENDFUNCTION.

SAP AG 1999

Den Aufruf eines Funktionsbausteins legt der SAP-Anwendungsprogrammierer durch die ABAPAnweisung CALL CUSTOMER-FUNCTION nnn fest. Dabei bedeutet nnn eine dreistellige Nummer. Der SAP-Anwendungsprogrammierer legt auch den zugehrigen Funktionsbaustein und die Funktionsgruppe an. Der Funktionsbaustein befindet sich in einer Funktionsgruppe, deren Name mit einem X beginnt (XFunktionsgruppe). Der Name des Funktionsbausteins unterliegt folgender Namenskonvention: - Prfix: EXIT - Infix: Name des Programms, in dem der Funktionsbaustein aufgerufen wird - Suffix: Dreistellige Nummer - Zwischen Pr- und Infix sowie zwischen In- und Suffix befindet sich jeweils ein Unterstrich.

Erst nach Aktivierung des zugehrigen Erweiterungsprojekts wird die Anweisung CALL CUSTOMER-FUNCTION auch ausgefhrt. Bei mehreren Aufrufen des gleichen Funktionsbausteins bezieht sich die Aktivierung auf alle Aufrufe.

SAP AG

BC425

5-19

Funktionsbaustein-Exits finden
z aus Anwendungsprogramm:
System Status Doppelklick auf Programmnamen Suchen nach Zeichenkette... call customer  global in Programm prog CMOD Hilfsmittel SAP-Erweiterungen Suche einschrnken mit *program_name*

z Suche ber Tools

Anwendungs hierarchie

Repository Infosystem

IMG

Dokumentation
SAP AG 1999

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

SAP AG

BC425

5-20

Funktionsbaustein-Exit bearbeiten
Projektverwaltung von SAP Erweiterungen Function Builder FUNCTION exit_<prog_name>_001. INCLUDE zxaaau01. ENDFUNCTION.

Projekt
Teilobjekte

Anlegen

Attribute Zuordnung Erweiterungen Komponenten Dokumentation

Anzeigen

ndern
ABAP Editor *INCLUDE zxaaau01

SAP AG 1999

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

SAP AG

BC425

5-21

Aufbau einer Funktionsgruppe

SAPLXAAA LXAAATOP

Programmname Globale Daten

LXAAAUXX LXAAAU01

Alle Funktionsbausteine Funktionsbaustein #01

LXAAAU02

Funktionsbaustein #02

...

LXAAAF01

Unterprogramme

SAP AG 1999

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

SAP AG

BC425

5-22

Aufbau einer Exit-Funktionsgruppe

SAPLXAAA LXAAATOP LXAAATAP ZXAAATOP LXAAAUXX LXAAAU01 ZXAAAU01 LXAAAU02 ZXAAAU02

Programmname Globale Daten Globale Daten SAP Globale Daten Kunde Alle Funktionsbausteine Funktionsbaustein #01 Kundeneigener Quelltext Funktionsbaustein #02 Kundeneigener Quelltext Quelltext-Vorschlag von SAP

...

LXAAAF00

SAP AG 1999

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

SAP AG

BC425

5-23

Exit-Funktionsgruppe: Globale Daten


FUNCTION-POOL FUNCTION-POOL xaaa. xaaa. SAPLXAAA LXAAATOP LXAAATAP ZXAAATOP LXAAAUXX LXAAAU01 ZXAAAU01 LXAAAU02 ZXAAAU02 INCLUDE INCLUDE INCLUDE INCLUDE LXaaaTOP. LXaaaTOP. ZXaaaTOP. ZXaaaTOP.

TABLES: TABLES: ... ... DATA: ... DATA: ... TABLES: TABLES: ... ... DATA: ... DATA: ...

...

LXAAAF00

SAP AG 1999

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

SAP AG

BC425

5-24

Kundeneigener Quelltext

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

...

LXAAAF00

SAP AG 1999

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

SAP AG

BC425

5-25

Exit-Funktionsgruppe: Weitere SAP-Objekte

SAPLXAAA LXAAATOP

Programmname Globale Daten

... ...

LXAAAUXX

Alle Funktionsbausteine

LXAAAF01 LXAAAO01 LXAAAI01

Unterprogramme PBO-Module PAI-Module ABAP-Ereignisse

...

LXAAAE01

SAP AG 1999

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

SAP AG

BC425

5-26

Exit-Funktionsgruppe: Kunden-Objekte

SAPLXAAA LXAAATOP

Programmname Globale Daten

...

LXAAAUXX

...

Alle Funktionsbausteine

ZXAAAZZZ ZXAAAF01 ZXAAAO01 ZXAAAI01

Alle weiteren Kundenobjekte: Unterprogramme PBO-Module PAI-Module ABAP-Ereignisse

...

ZXAAAE01

SAP AG 1999

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

SAP AG

BC425

5-27

Kundeneigene Dynpros

SAPLXAAA LXAAATOP

...

LXAAAUXX LXAAAU01 ZXAAAU01 ZXAAAZZZ ZXAAAO01 ZXAAAI01

*INCLUDE *INCLUDE ZXaaaU01. ZXaaaU01. ... ... CALL CALL SCREEN SCREEN 9000 9000 STARTING STARTING AT AT 5 5 5. 5. *INCLUDE *INCLUDE ZXaaaO01. ZXaaaO01. MODULE MODULE ... ... OUTPUT. OUTPUT. ENDMODULE. ENDMODULE. *INCLUDE *INCLUDE ZXaaaI01. ZXaaaI01. MODULE MODULE ... ... INPUT. INPUT. ENDMODULE. ENDMODULE.

SAP AG 1999

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

SAP AG

BC425

5-28

Zusammenfassung Funktionsbaustein-Exits
SAP Anwendungs-Programm ABAP
***Global Data*** DATA: gl_field... CALL CUSTOMERFUNCTION 001 EXPORTING i_vars = gl_field. FUNCTION exit_prg_001. *IMPORTING i_vars INCLUDE ZXaaaU01. ENDFUNCTION. *INCLUDE ZXaaaU01 CALL SCREEN 9000. <zustzliche Verarbeitungslogik>

X-Funktionsgruppe XAAA ABAP Dynpros

9000

9100

Textelemente GUI-Oberflche
SAP AG 1999

Sie knnen eine SAP-Anwendung an vorgegebenen Stellen durch zustzliche Verarbeitungslogik erweitern. Im Rahmen einer solchen Erweiterung knnen sie auch eigene Dynpros mit zugehriger Verarbeitungslogik und GUI-Oberflche einbauen und kundeneigene Textelemente anlegen.

SAP AG

BC425

5-29

Customer-Exits: Men-Exit

berblick berblick Erweiterungsverwaltung Erweiterungsverwaltung Funktionsbaustein-Exit Funktionsbaustein-Exit Men-Exit Men-Exit Dynpro-Exit Dynpro-Exit

SAP AG 1999

SAP AG

BC425

5-30

berblick Men-Exits

SAP
Menu 1 Menu 2 Menu 3 Menu 1

Kunde
Menu 2 Menu 3

Function Function11 Function Function22 Function Function33

Function Function11 Function Function22 Function Function33

Kundenfunktion

SAP AG 1999

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

SAP AG

BC425

5-31

Voraussetzung fr Men-Exits

SAP
Menu Painter Menu 1 Menu 2 BACK Zurck DISP Anzeigen +ABC Kundenfunktion Menu 3

SAP AG 1999

Zur Realisierung von Men-Exits mu der SAP-Anwendungsprogrammierer in der GUI-Oberflche des Anwendungsprogrammes Funktionscodes vorsehen, die mit einem "+" beginnen. Diese Funktionscodes sind zunchst inaktiv. Sie erscheinen nicht in der Oberflche. Erst wenn sie einen solchen Funktionscode aktivieren, wird er auch sichtbar.

SAP AG

BC425

5-32

Men-Exits bearbeiten
Projektverwaltung von SAP Erweiterungen Projektverwaltung

Projekt
Teilobjekte

Anlegen

Men-Exit SAPMabbc+abc

Attribute Zuordnung Erweiterungen Komponenten Dokumentation

Anzeigen

ndern

Text ndern

Men-Text
bernehmen

SAP AG 1999

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

SAP AG

BC425

5-33

Men- und Funktionsbaustein-Exits

PROGRAM PROGRAM DATA DATA ... ...

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

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

SAP AG 1999

Der SAP-Anwendungsprogrammierer bestimmt, wo im Programm zustzliche Funktionscodes abgefragt werden und wie darauf reagiert werden soll, entweder durch einen Funktionsbaustein-Exit oder durch eine bereits fest vorgegebene Funktionalitt.

SAP AG

BC425

5-34

Zusammenfassung Men-Exits

FunktionsbausteinExits

Zustzliche Meneintrge

SAP R/3
System Hilfe

SAP Anwendung

SAP AG 1999

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

SAP AG

BC425

5-35

Customer-Exits: Dynpro-Exit

berblick berblick Erweiterungsverwaltung Erweiterungsverwaltung Funktionsbaustein-Exit Funktionsbaustein-Exit Men-Exit Men-Exit Dynpro-Exit Dynpro-Exit

SAP AG 1999

SAP AG

BC425

5-36

berblick Dynpro-Exit

SAP

Kunde

SAP R/3 Feld 1 Feld 2

SAP R/3 Feld 1 Feld 2 Feld X Feld Y Feld Z

SAP AG 1999

Dynpro-Exits erlauben en ihnen, vom SAP-Anwendungsprogrammierer reservierte Bereiche (Subscreenbereiche) eines Hauptdynpros selbst zu gestalten. In diesen Bereichen knnen weitergehende Informationen angezeigt oder Daten erfat werden. Die hierzu ntigen Felder werden von ihnen auf einem kundeneigenen Dynpro (Subscreen) gestaltet.

SAP AG

BC425

5-37

Subscreens im R/3
Telefon Telefax Email 200 Name Telefon Telefax Email Name

SAP R/3

SAP R/3

abcd
200

abcd
Strae Wohnort Land 300
SAP AG 1999

SAP R/3 Name Strae Wohnort Land

abcd
300

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

SAP AG

BC425

5-38

Aufruf eines normalen Subscreens


z Ablaufsteuerung des Hauptdynpros
PROCESS BEFORE OUTPUT. MODULE ... CALL SUBSCREEN abcd INCLUDING sy-cprog 1234. MODULE ... PROCESS AFTER INPUT. MODULE ... CALL SUBSCREEN abcd. MODULE user_command_0100.

SAP AG 1999

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

SAP AG

BC425

5-39

Definition eines Dynpro-Exits


Dynpro Dynpro von von SAP SAP Anwendungs-Programm Anwendungs-Programm SAP R/3

SAPLXAAA Dynpro 1234 Kundenfeld1

abcd
PROCESS BEFORE OUTPUT. ... CALL CUSTOMER-SUBSCREEN abcd INCLUDING SAPLXAAA 1234. ...
SAP AG 1999

Kundenfeld2

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

SAP AG

BC425

5-40

Aufruf eines Customer-Subscreens


SAP Anwendungs-Programm Dynpro
PROCESS BEFORE OUTPUT. MODULE ... CALL CUSTOMER-SUBSCREEN abcd INCLUDING SAPLXAAA 1234. MODULE ... PROCESS BEFORE OUTPUT. MODULE ... MODULE ...

X-Funktionsgruppe XAAA Dynpro 1234

abcd
PROCESS AFTER INPUT. MODULE ... CALL CUSTOMER-SUBSCREEN abcd. MODULE ...
SAP AG 1999

PROCESS AFTER INPUT. MODULE ... MODULE ...

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

SAP AG

BC425

5-41

Datentransport zum Subscreen


SAP Anwendungs-Programm Dynpro ABAP
***Global Data*** DATA: gl_field... CALL CUSTOMERFUNCTION 001 EXPORTING i_vars = gl_field.

X-Funktionsgruppe XAAA ABAP Dynpro

MODULE...

FUNCTION exit_prg_001. *IMPORTING i_vars gl_var = i_vars. ENDFUNCTION. ***Global ***Global Data*** DATA: gl_var...

CALL CUSTOMERSUBSCREEN...

abcd

SAP AG 1999

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

SAP AG

BC425

5-42

Datentransport vom Subscreen


SAP Anwendungs-Programm Dynpro ABAP X-Funktionsgruppe XAAA ABAP Dynpro

abcd
CALL CUSTOMERSUBSCREEN... MODULE... CALL CUSTOMERFUNCTION 002 IMPORTING e_vars = gl_field.

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

FUNCTION exit_prg_002. *EXPORTING e_vars e_vars = gl_var.

***Global Data*** DATA: gl_field...

ENDFUNCTION.

SAP AG 1999

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

SAP AG

BC425

5-43

Subscreens bearbeiten (1)


Projektverwaltung von SAP Erweiterungen Projektverwaltung

Projekt
Teilobjekte

Anlegen

Dynpro-Exit SAPMabbc1234_abcd_SAPLXaaa1234

Attribute Zuordnung Erweiterungen Komponenten Dokumentation

Anzeigen

ndern

Screen Painter

SAP AG 1999

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

SAP AG

BC425

5-44

Subscreens bearbeiten (2)


Komponenten bearbeiten
Nein Dynpro anlegen?
Dynproattribute

Dynpro vorhanden?

Ja
Screen Painter

System Hilfe System Hilfe

System Hilfe Screen Painter

System Hilfe Screen Painter

Dynprotyp

* SAPLXaaa Dynpro 0444 PROCESS BEFORE OUTPUT. MODULE a . ... PROCESS AFTER INPUT. MODULE m.

Subscreen

Objekt auswhlen *INCLUDE ZXaaaO01. MODULE a OUTPUT. ...

SAP AG 1999

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

SAP AG

BC425

5-45

Zusammenfassung Dynpro-Exit
kundeneigener Subscreen kundeneigene Verarbeitung

Schnittstelle Datenbergabe

System Hilfe

SAP R/3

Subscreenbereich

SAP AG 1999

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

SAP AG

BC425

5-46

Erweiterungen ber Customer-Exits : Zusammenfassung des Kapitels

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

SAP AG 1999

SAP AG

BC425

5-47

bungen
Kapitel: Customer-Exits Thema: Funktionsbaustein-Exit
Am Ende dieser bungen knnen Sie: Eine Erweiterung mit Hilfe eines Funktionsbaustein-Exits implementieren. Ihre Mitarbeiter strt bei der verwendeten Transaktion BC425_##, da sie fr Flge, die in der Vergangenheit liegen, ohne Vorwarnung die Detailanzeige erhalten. Passen Sie das Programm so an, da bei der Selektion eines Fluges in der Vergangenheit eine entsprechende Warnmeldung ausgegeben wird. Vermeiden Sie dabei mglichst, das Programm zu modifizieren. 1-1 Untersuchen Sie die Transaktion auf Erweiterungsmglichkeiten. 1-1-1 Hat der SAP-Entwickler fr die angegebene Transaktion einen CustomerExit implementiert, den Sie zum Hinzufgen der gewnschten Funktionalitt nutzen knnen? 1-1-2 Wie heit die zugehrige SAP-Erweiterung? Whlen Sie die Erweiterung aus, mit deren Hilfe Sie eine zustzliche Prfung beim Verlassen des ersten Dynpros der Transaktion implementieren knnen. 1-2 Implementieren Sie die Erweiterung. 1-2-1 Whlen Sie als Namen Ihres Erweiterungsprojekts TG##CUS1. 1-2-2 Programmieren Sie folgende Prfung: berprfen Sie, ob das eingegebene Datum vor dem aktuellen Tagesdatum liegt (also in der Vergangenheit). Falls ja, senden Sie eine Warnmeldung, die einen entsprechenden Text enthlt. 1-2-3 Legen Sie eine geeignete Nachricht in der Nachrichtenklasse ZBC425_## an oder verwenden Sie die Nachricht 011 aus der Nachrichtenklasse BC425. 1-2-5 berprfen Sie das Ergebnis Ihrer Arbeit.

SAP AG

BC425

5-48

bungen
Kapitel: Customer-Exits Thema: Men-Exit
Am Ende dieser bungen knnen Sie: Eine Erweiterung mit Hilfe eines Men-Exits in Kombination mit einem Funktionsbaustein-Exit implementieren. Ihre Mitarbeiter sind begeistert: Seit sie die neue Funktionalitt zur Anzeige von Flugdetails in der Transaktion BC425_## haben, unterlaufen ihnen wesentlich weniger Fehlgriffe. Aber der Mensch ist bekanntlich unersttlich Gerne htten sie in der Transaktion zur Anzeige von Flgen einen Absprung, der es ihnen ermglicht, eine Liste mit den aktuellen Buchungen zu dem angezeigten Flug auszugeben. Ein geeignetes listenerzeugendes Programm verwenden sie schon immer, muten es bisher aber stets separat aufrufen: Es hat den Namen SAPBC425_BOOKING_##. 1-1 Untersuchen Sie die Transaktion BC425_##. Gibt es eine Mglichkeit, evtl. einen Meneintrag, den man nutzen knnte, um ein Programm aus Ihrer Transaktion aus aufzurufen? 1-1-1 Hat der SAP-Entwickler fr die angegebene Transaktion einen CustomerExit implementiert, den Sie zum Hinzufgen der gewnschten Funktionalitt nutzen knnen? 1-1-2 Wie heit die zugehrige SAP-Erweiterung? Whlen Sie die Erweiterung aus, mit deren Hilfe Sie eine Men-Erweiterung implementieren knnen. 1-2 Implementieren Sie die Erweiterung. 1-2-1 Whlen Sie als Namen Ihres Erweiterungsprojekts TG##CUS2. 1-2-2 Bearbeiten Sie die Komponenten der Erweiterung: Bei Auswahl des zustzlichen Men-Eintrags soll das oben genannte Programm gestartet werden. Bei Verlassen der Liste soll wieder zur Transaktion BC425_## zurckgekehrt werden. 1-2-3 bergeben Sie die relevanten Parameter an das Programm SAPBC425_BOOKING_##. Beachten Sie, welche Daten Ihnen im Funktionsbaustein-Exit zur Verfgung stehen. 1-3 berprfen Sie das Ergebnis Ihrer Arbeit.

SAP AG

BC425

5-49

bungen
Kapitel: Customer-Exits Thema: Dynpro-Exit
Am Ende dieser bungen knnen Sie: zustzliche Felder auf einem Dynpro einer SAP-Transaktion anzeigen und diese mit Inhalten fllen. "Es wre wirklich schn, wenn wir auf der Detailanzeige der Transaktion BC425_## zur Anzeige von Flgen noch zustzliche Daten angezeigt bekmen". Sie stellen sich natrlich auch dieser Herausforderung und suchen nach einer Lsung des Problems, ohne die Transaktion modifizieren zu mssen. Sie suchen nach einer Mglichkeit, auf dem zweiten Dynpro (Nummer 200) einige Felder hinzuzufgen. 1-1 Welche Mglichkeiten gibt es, auf einem Dynpro zustzliche Felder zu plazieren? Untersuchen Sie Dynpro 200 der Transaktion BC425_## darauf, ob diese Mglichkeit hier gegeben ist. 1-1-1 Existiert zum Erweitern des Dynpros ein Dynpro-Exit? 1-1-2 Wenn ja, wie lautet der Name der zugehrigen Erweiterung? 1-2 Implementieren Sie die Erweiterung, um folgendes zu erreichen (Name des Projekts: TG##CUS3): 1-2-1 Das Dynpro soll um drei Felder erweitert werden. Es sollen erscheinen: der Pilotenname die Mahlzeit die Anzahl der freien Pltze, die auf diesem Flug noch zur Verfgung stehen.

1-2-2 Sorgen Sie fr den korrekten Datentransport auf das Subscreen-Dynpro. 1-3 berprfen Sie das Ergebnis Ihrer Arbeit.

SAP AG

BC425

5-50

Lsungen
Kapitel: Customer-Exits Thema: Funktionsbaustein-Exit
1-1 Auf folgende Weise knnen Sie die Transaktion daraufhin untersuchen, ob sie Customer-Exits anbietet: 1-1-1 System o Status liefert den Namen des zugehrigen Programms (SAPBC425_FLIGHT##) 1-1-2 Nun haben Sie mehrere Mglichkeiten, nach Customer-Exits zu suchen: Entweder Sie suchen global im Programm nach der Zeichenkette CALL CUSTOMER-FUNCTION oder Sie verwenden das Repository Infosystem, um nach Erweiterungen zu suchen, die im technischen Namen der Komponente den Programmnamen beinhalten (Suche einschrnken mit *SAPBC425_FLIGHT##* im Komponentennamen). Die von Ihnen gesuchte Erweiterung hat den Namen SBC##E01. Die Dokumentation der Erweiterung deutet darauf hin, da sie fr zustzliche Prfungen auf dem ersten Dynpro der Transaktion gedacht ist. 1-2 Zum Implementieren der Erweiterung whlen Sie die Transaktion CMOD. 1-2-1 Zur Transaktion CMOD gelangen Sie ber den Menpfad Werkzeuge o ABAP Workbench o Hilfsmittel o Erweiterungen o Projektverwaltung. Legen Sie hier ein Projekt mit dem Namen TG##CUS1 an und sichern Sie Ihre Arbeit. 1-2-2 Nehmen Sie die gefundene Erweiterung SBC##E01 in Ihr Projekt auf. 1-2-3 Bearbeiten Sie die Komponente. Sie gelangen in den Function Builder in den Quelltext des Exit-Funktionsbausteins. Legen Sie das Include per Doppelklick an. Folgendermaen knnte der von Ihnen erfate Quelltext aussehen: IF flight-fldate < sy-datum. MESSAGE w011(bc425) WITH sy-datum. ENDIF. 1-2-4 Aktivieren Sie Ihr Include. Gehen Sie zurck zur Projektverwaltung und aktivieren Sie Ihr Erweiterungsprojekt.

SAP AG

BC425

5-51

Lsungen
Kapitel: Customer-Exits Thema: Men-Exit
1-1 Gehen Sie zum Untersuchen der Transaktion vor wie in der letzten bung. Sinnvoll ist das Suchen ber das Repository Infosystem. 1-1-1 Idealerweise verwenden Sie das Repository Infosystem, um nach einer geeigneten Erweiterung zu suchen, die im technischen Namen der Komponente den Programmnamen beinhalten (Suche einschrnken mit *SAPBC425_FLIGHT##* im Komponentennamen) 1-1-2 Die von Ihnen gesuchte Erweiterung hat den Namen SBC##E02. 1-2 Zum Implementieren der Erweiterung whlen Sie die Transaktion CMOD. 1-2-1 Zur Transaktion CMOD gelangen Sie ber den Menpfad Werkzeuge o ABAP Workbench o Hilfsmittel o Erweiterungen o Projektverwaltung. Legen Sie hier ein Projekt mit dem Namen TG##CUS2 an und sichern Sie Ihre Arbeit. 1-2-2 Nehmen Sie die gefundene Erweiterung SBC##E02 in Ihr Projekt auf. Bearbeiten Sie die Komponenten. Vergeben Sie einen Mentext. Bearbeiten Sie den Funktionsbaustein-Exit per Doppelklick. Legen Sie das KundenInclude per Vorwrtsnavigation an. 1-2-3 Der Quelltext des Includes sollte fr Gruppe 00 folgendermaen aussehen: SUBMIT sapbc425_booking_00 WITH so_car = flight-carrid WITH so_con = flight-connid WITH so_fld = flight-fldate AND RETURN. Aktivieren Sie das Include-Programm. Aktivieren Sie das Erweiterungsprojekt.

SAP AG

BC425

5-52

Lsungen
Kapitel: Customer-Exits Thema: Dynpro-Exits
1-1 Schauen Sie sich die Dynpros der Transaktion im Screen-Painter an. Sie stellen fest, da Dynpro 200 der Transaktion BC425_## einen Dynpro-Exit bietet. 1-1-1 Untersuchen Sie die Ablauflogik der Dynpros nach der Zeichenkette CALL CUSTOMER-SUBSCREEN. Sie stellen fest, da Dynpro 200 der Transaktion BC425_## einen Dynpro-Exit bietet. 1-1-2 Den Namen der Erweiterung erhalten Sie, indem Sie beispielsweise im Repository Infosystem suchen (siehe vorhergehende bungen). Der Name der Erweiterung lautet SBC##E03. 1-2 Implementieren Sie die Erweiterung auf die gleiche Weise, wie in den vorigen bungen beschrieben. Legen Sie in der Transaktion CMOD ein Projekt an mit dem Namen TG##CUS3. Nehmen Sie die Erweiterung SBC##E03 in Ihr Projekt auf. Bearbeiten Sie die Komponenten. 1-2-1 Zum Erweitern des Dynpros verwenden Sie den Dynpro-Exit. Per Doppelklick auf die entsprechende Erweiterungskomponente legen Sie das Dynpro 0500 an. Beachten Sie, da Sie den Dynprotypen "Subscreen" whlen. bernehmen Sie die Felder aus der entsprechenden Struktur SFLIGHT## des Dictionary. Um ein Feld fr die freien Pltze auf dem Dynpro zu plazieren, haben Sie prinzipiell zwei Mglichkeiten: Sie deklarieren eine entsprechende Variable im TOP-Include der XFunktionsgruppe, generieren das Programm. Danach knnen Sie dieses Programm-Feld auf dem Dynpro plazieren. Generieren sie das Dynpro. (Oder: Sie knnen Ihre Append-Struktur erweitern. Diese Mglichkeit sollten Sie nicht in der bung nicht nutzen, da der Referent die Felder der Append-Struktur mit einem Programm fllt. Die Erweiterung der AppendStruktur knnte zu Fehlern in diesem Programm fhren.). 1-2-2 Fr den korrekten Datentransport verwenden Sie die FunktionsbausteinExits. Legen Sie das Kunden-Include an und erfassen Sie folgenden Quelltext (Beispiel fr Gruppe 00): MOVE-CORRESPONDING flight TO sflight00. seatsfree = flight-seatsmax flight-seatsocc. TOP-Include: TABLES: sflight00. DATA: seatsfree type s_seatsocc. Aktivieren Sie die Programme. Aktivieren Sie das Erweiterungsprojekt. 1-3 Fhren Sie die Transaktion BC425_## aus und berprfen Sie das Ergebnis Ihrer Arbeit.
BC425 5-53

SAP AG

Business Transaction Events

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

SAP AG 1999

SAP AG

BC425

6-1

Business Transaction Events: Lernziele des Kapitels

Am Ende dieses Kapitels knnen Sie: z beschreiben, was ein Business Transaction Event ist z Programm-Erweiterungen mit Hilfe von Business Transaction Events realisieren z passende Business Transaction Events finden

SAP AG 1999

SAP AG

BC425

6-2

bersichtsdiagramm Transaction Events


R/3 Business Anwendungen (SAP Standard)
Personali sierung Modifikation z Modifikationsassistent z User-Exits

Erweiterung z ABAP Dictionary z Customer-Exits

z Transaktions varianten

Tabellen Datenelemente Funktionsbaustein-Exits Men-Exits Dynpro-Exits

4 5 6 7

z Business Transaction Events z Business Add Ins

z berblick
SAP AG 2002

SAP AG

BC425

6-3

BTE: Software-Auslieferungswege
z Auslieferungswege mit Customer-Exits SAP Kunde CustomerExits

z Auslieferungswege mit Business Transaction Events

SAP

IBU

Partner

Kunde

Business Transaction Events

SAP AG 1999

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

SAP AG

BC425

6-4

Business Transaction Events (BTE)

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

Publish & Subscribe

Proze-Schnittstellen

SAP AG 1999

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

SAP AG

BC425

6-5

BTE: Mgliche Szenarien (1)

SAP-Transaktion
Schnittstellen Datenflu

Add-on-Komponente eines Partners

SAP AG 1999

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

SAP AG

BC425

6-6

BTE: Mgliche Szenarien (2)

SAP-Transaktion
Schnittstellen Datenflu

Add-on-Komponente von Partner A Add-on-Komponente von Partner B


SAP AG 1999

Beide zustzlichen Produkte existieren, ohne sich gegenseitig zu behindern.

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

SAP AG

BC425

6-7

P/S- und Prozess-Schnittstellen


z P/S-Schnittstellen
IBU

z Prozess-Schnittstellen
IBU

SAP-Transaktion

IBU Partner 1 Partner 2 Kunde

SAP-Transaktion

Partner 1 Partner 2 Kunde

Partner 1 Partner 2 Kunde

IBU Partner 1 Partner 2 Kunde

Auslsen einer oder mehrerer zustzlicher Operationen


SAP AG 2002

Genau eine Add-on-Komponente wird durchlaufen

Publish & Subscribe Schnittstellen: y Wenn das Ereignis ausgelst wird, knnen eine oder mehr zustzliche Operationen gestartet werden. Sie beeinflussen das R/3-Standardprogramm nicht. y Auch mehr als zwei Operationen behindern sich nicht gegenseitig. y Add-on-Komponenten knnen nur Daten importieren. y Mgliche Anwendungen: Zustzliche Prfungen (Berechtigungen, vorhandene Duplikate, etc.)

Proze-Schnittstellen: y Im Gegensatz zu Publish & Subscribe Schnittstellen ist bei Proze-Schnittstellen vorgesehen, da Daten sowohl in die eine als auch in die andere Richtung ausgetauscht werden knnen. Das hat Konsequenzen fr die Menge der Zustze, die an eine Schnittstelle angebunden werden knnen. y Wenn das Ereignis ausgelst wird, kann ein Proze im Standardprogramm nur durch einen anderen Proze ersetzt werden. y Verwenden Sie z.B. ein Add-On eines Partner-Unternehmens, das eine Proze-Schnittstelle verwendet, wird zur Laufzeit diese Erweiterung abgespielt. Mchten Sie ebenfalls die gleiche Schnittstelle nutzen, wird zur Laufzeit die Erweiterung des Partners verworfen und Ihre eigene abgespielt.

SAP AG

BC425

6-8

BTE Funktionsweise: Ablaufdiagramm


Anwendungsprogramm Aktive Implementierung

Funktionsbaustein OPEN_FI_PERFORM_<nr>

BTE: Funktionsbaustein im Kundennamensraum

CALL FUNCTION CALL FUNCTION

SAP AG 1999

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

SAP AG

BC425

6-9

BTE: Aufrufendes Programm


REPORT REPORT <program_using_bte>. <program_using_bte>. START-OF-SELECTION. START-OF-SELECTION. ... ... CALL FUNCTION OPEN_FI_PERFORM_00001350_E EXPORTING <i_variables>. FUNCTION-POOL FUNCTION-POOL <sap_fp>. <sap_fp>. ... ... FUNCTION FUNCTION open_fi_perform_00001350_e. open_fi_perform_00001350_e. ... ... LOOP LOOP AT AT itab itab into into wa. wa. CALL FUNCTION wa-fb_name EXPORTING <i_variables>. ENDLOOP. ENDLOOP. ... ... ENDFUNCTION. ENDFUNCTION.
SAP AG 1999

FB_NAME 00001350 Z_FUBA001 00001350 /ABC/FUBA002 00001350 /CUSNR/FUBA003

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 ServiceFunktionsbaustein an der Schnittstelle Daten. Die Schnittstelle ist vom SAP-Entwickler vorgedacht. Der Service-Funktionsbaustein sucht nach aktiven Implementierungen und stellt diese in eine interne Tabelle. In einer Schleife werden die gefundenen implementierenden Funktionsbausteine abgearbeitet.

SAP AG

BC425

6-10

Business Transaction Events: SAP und Kunde

SAP
definieren Event

Kunde
Produkt anlegen FB ber Produkt dem Event zuordnen Funktionsbaustein

registrieren

SAMPLE_INTERFACE_<n> anlegen

kopieren Quelltext aktivieren

SAP AG 1999

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

SAP AG

BC425

6-11

Business Transaction Events suchen


z direkt aus Anwendung:
Business Transaction Events

z Suche ber Tools

System o Status oDoppelklick auf Programmnamen Suchen nach Zeichenkette...  global in Programm prog o SAP Referenz-IMG OPEN_FI_PERFORM

IMG

zum Beispiel: Finanzwesen Grundeinstellungen BTE verwenden Umfeld Infosystem o entsprechende Anwendungskomponente auswhlen o Dokumentation

Finanzwesen Grundeinstellungen BTE verwenden Umfeld Infosystem

SAP AG 1999

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

SAP AG

BC425

6-12

BTE: Dokumentation
Event ... Einstellungen Umfeld Infosystem(P/S) Infosystem(P/S) SAP Business Framework: Business Transaction Events Infosystem(Prozesse) Infosystem(Prozesse)

Business Transaction Events: P/S Schnittstellen

z Musterbaustein z Schnittstelle z Dokumentation

Key

Beschreibung *** Liste selektierter Events ***

SAP AG 1999

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

Aus der Dokumentation muss eindeutig hervorgehen, wie sie die Erweiterung einsetzen knnen und welchen Beschrnkungen sie unterliegt.

SAP AG

BC425

6-13

BTE: Funktion des Produkts

z Produkt fat Erweiterungen zusammen SAP-Transaktion


Kunde

z kann als Ganzes aktiviert/deaktiviert werden

Kunde

Produkt

Kunde

ON OFF

SAP AG 1999

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

SAP AG

BC425

6-14

Implementieren eines BTE


Function Builder

Funktionsbaustein

SAMPLE_INTERFACE_<n>_E Z_*

z Funktionsbaustein kopieren in Kundennamensraum z Quelltext z Aktivieren z Produkt anlegen

Event ...

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

Event ...

Einstellungen Umfeld ... ... SAP Business Framework: Business Transaction Events Produkte Produkte ...einer ...einer SAP-Anw. SAP-Anw. P/S-Bausteine P/S-Bausteine ...eines Partners ...eines Partners Proze-Bausteine Proze-Bausteine ...eines ...eines Kunden Kunden
SAP AG 1999

z Funktionsbaustein zuordnen

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

SAP AG

BC425

6-15

Customer-Exits vs. BTE: Unterschiede


Customer-Exits
Quelltext Mens Dynpros Tabellen Verwaltungs ebene mehrfach verwendbar mandanten abhngig filterabhngig
SAP AG 1999

Business Transaction Events

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

SAP AG

BC425

6-16

Business Transaction Events: Zusammenfassung des Kapitels

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

SAP AG 1999

SAP AG

BC425

6-17

Business Add-Ins

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

SAP AG 2002

SAP AG

BC425

7-1

Business Add-Ins: Lernziele des Kapitels

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

SAP AG 2002

SAP AG

BC425

7-2

Business Add-Ins: Unternehmensszenario

z Eine Transaktion der Flugverwaltung soll funktional erweitert werden. Dazu stellt der SAPEntwickler ein BAdI bereit. z Des weiteren werden sie selbst ein Business Add In definieren und in einem Programm verwenden.

SAP AG 2002

SAP AG

BC425

7-3

bersichtsdiagramm Add Ins


R/3 Business Anwendungen (SAP Standard)
Personali sierung Modifikation z Modifikationsassistent z User-Exits

Erweiterung z ABAP Dictionary z Customer-Exits

z Transaktions varianten

Tabellen Datenelemente Funktionsbaustein-Exits Men-Exits Dynpro-Exits

4 5 6 7

z Business Transaction Events z Business Add Ins

z berblick
SAP AG 2002

SAP AG

BC425

7-4

Business Add Ins: Motivation


z Nachteile bisheriger Erweiterungstechniken:

nur einfach verwendbar (Customer-Exits)

keine Dynpro-Erweiterungen (BTEs)

keine Men-Erweiterungen (BTEs)

keine Verwaltungsebene (BTEs)

z Anforderungen an neue Erweiterungstechnik:

Mehrfach verwendbar

Alle Erweiterungsarten (Programm / Men / Dynpro)

Verwaltungsebene

Mit modernsten Techniken implementiert

SAP AG 1999

SAP AG

BC425

7-5

Software-Auslieferungswege
z frher SAP Kunde CustomerExits

z heute SAP IBU Partner Kunde

Erweiterung von ABAP: ABAP Objects


SAP AG 1999

Business Add Ins

SAP AG

BC425

7-6

Interfaces: Lernziele

Nach Behandlung dieses Themas knnen Sie: z Erlutern, was ein Interface in ABAP Objects ist

SAP AG 2002

SAP AG

BC425

7-7

Objekte

Schnittstelle
Private Komponenten
Flug Kunde Passagierliste Adresse

ffentliche Attribute Fluggesellschaft Flugnummer ffentliche Methoden


z BUCHEN

ffentlicher Zugriff

FLUG

SAP AG 1999

Eine Klasse ist eine abstrakte Beschreibung eines Objekts. Ein Objekt existiert nur zur Laufzeit eines Programms. Wenn hier von Objekten die Rede ist, so ist je nach Kontext auch die abstrakte Beschreibung, also die Klasse gemeint. Ein Objekt (beschrieben durch die Klasse) besteht im wesentlichen aus zwei Schichten - Innen und Auen: - ffentliche Komponenten: Die nach auen sichtbaren Komponenten des Objektes, z.B. Attribute und Methoden. Die ffentlichen Komponenten sind von allen Verwendern direkt verwendbar. Die ffentlichen Komponenten eines Objektes bilden die Schnittstelle dieses Objektes. - Private Komponenten: Diese Komponenten sind nur innerhalb des Objektes sichtbar. Dabei handelt es sich wiederum um Attribute, Methoden, etc..

Ziel der Objektorientierung ist, da eine Klasse ihre eigene Konsistenz sicherstellen kann. Daher sind im allgemeinen die Daten 'intern', d.h. private Attribute. Die internen (privaten) Attribute einer Klasse knnen nur durch Methoden dieser Klasse manipuliert werden. Im allgemeinen werden als ffentliche Komponenten nur Methoden angeboten, die dann die Daten manipulieren und die Konsistenz des Objektes sicherstellen. Daneben hat ein Objekt eine Identitt, die es eindeutig von anderen Objekten mit den gleichen Attributen und Methoden unterscheidet.

SAP AG

BC425

7-8

Instanzen von Funktionsgruppen als Objekte

Funktionsgruppe 1 Funktionsbaustein

Funktionsgruppe 2 Funktionsbaustein

Daten
...

Daten
...

ABAP- Programm mit Daten CALL FUNCTION ...


Interner Modus eines ABAP-Programms Externer Modus

SAP AG 1999

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

SAP AG

BC425

7-9

Klassen verallgemeinern Funktionsgruppen

n. Instanz, Klasse 1 1. Instanz, Klasse 1 Daten SchnittDaten stelle Daten Schnittstelle


... ... ...

n. Instanz, Klasse m 1. Instanz, Klasse m Daten Funktions- Daten baustein Daten Schnittstelle
... ... ...

ABAP-Programm mit Daten


Interner Modus eines ABAP-Programms

SAP AG 1999

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

SAP AG

BC425

7-10

Interfaces
z Definition einer Schnittstelle ohne Implementierung z Interfaces werden von Klassen implementiert z Einheitlicher Zugriff ber Interface-Referenzen

Interface

SAP AG 1999

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

SAP AG

BC425

7-11

BAdIs implementieren: Lernziele

Nach Behandlung dieses Themas knnen Sie: z Business Add Ins zur Realisierung von Programmerweiterungen einsetzen

SAP AG 2002

SAP AG

BC425

7-12

Business Add Ins: Architektur


SAP
Generierte BAdIKlasse

IBU

Partner

Kunde

SAP Programm

Implemen tierung

Software produkt BAdI-Interface Implemen tierung

SAP AG 2002

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

SAP AG

BC425

7-13

Business Add Ins: Komponenten

Eigensch.

BAdI
INTERFACE <badi-interface>. DATA: a1 ...

Mehrfach verwendbar Filterabhngig FCodes


Programm <prog> Funktionscode +ABC

METHODS m1 EXPORTING e_par1 e_par2 IMPORTING i_par1. METHODS m2 ... ENDINTERFACE.

Generierte BAdIKlasse

Subscreens
Rufendes Programm <prog>
SAP AG 2002

Dyn-Nr Subscr-Bereich Besc 0200 ABCD Scr..

In einem Business Add In sind die Komponenten der Erweiterung zusammengefasst. Ein Business Add In kann folgende Erweiterungsmglichkeiten anbieten: y Programmerweiterung: Im Business Add In sind die Schnittstellen fr die Programmerweiterungen in Form von Methoden eines Interfaces definiert. Dieses Interface wird bei der Implementierung der Erweiterung verwendet. Das SAP Programm ruft die InterfaceMethoden der generierten BAdI-Klasse auf. y Men-Erweiterung: Analog zu Customer-Exits knnen in einem BAdI Funktionscodes eingetragen sein. Die entsprechenden Men-Eintrge sind in der CUA-Definition vorhanden und werden durch die Implementierung des BAdIs sichtbar. y Dynpro-Erweiterung: Analog zu Customer-Exits knnen in einem BAdI Dynpro-Erweiterungen definiert sein, die Sie implementieren knnen.

Bei der Definition eines BAdI werden mehrere Komponenten angelegt: y Interface y generierte Klasse (BAdI-Klasse), die das Interface implementiert

Die generierte Klasse (BAdI-Klasse) hat folgende Aufgaben: y Filterung: Falls ein BAdI nur unter bestimmten Bedingungen ausgefhrt werden soll, sorgt die BAdI-Klasse dafr, dass nur die gltigen Implementierungen aufgerufen werden. y Steuerung: Die BAdI-Klasse ruft die aktiven Implementierungen auf.

SAP AG

BC425

7-14

Business Add Ins: Ablaufdiagramm


Anwendungsprog. Service-Klasse CL_EXITHANDLER

Abarbeiten aktiver Implementierungen

Instanz von BAdI-Klasse <badi-class>

BAdI: Instanz von Implement. Implement. Klasse

SAP AG 2002

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

SAP AG

BC425

7-15

Business Add Ins: Aufrufendes Programm


REPORT REPORT <program_using_badi>. <program_using_badi>. DATA: r_var r_var TYPE REF TO <badi -interface>. <badiinterface>. START-OF-SELECTION. START-OF-SELECTION. CALL METHOD cl_exithandler=>get_instance CHANGING instance = r_var . r_var.

Instanz von <badi-class> badi-class>

1
r_var

CALL METHOD r_var ->method r_var->method EXPORTING <i_variables> IMPORTING <e_variables>. END-OF-SELECTION. END-OF-SELECTION.
SAP AG 2002

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

SAP AG

BC425

7-16

Business Add Ins implementieren: Einstieg

Business Add-Ins: Einstieg Implementierungspflege

Implementierungsname Anzeigen

<impl>

Name der Implementierung


Anlegen

ndern

Anlegen

Business Add Ins: Auswahl Def

Definitionsname

<badi>

SAP AG 1999

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

SAP AG

BC425

7-17

BAdIs implementieren: Methoden


Eigensch. Interface FCodes

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


Methode <method> Beschreibung Methode des BAdI

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


METHOD <badi-interface>~<method>. *... ENDMETHOD.

SAP AG 2002

Der Name der implementierenden Klasse kann prinzipiell frei gewhlt werden. Es empfiehlt sich jedoch, die vorgeschlagene Namenskonvention zu beachten. Der vorgeschlagene Name setzt sich zusammen aus y Namensraumprfix, Y oder Z y CL_ (steht fr Klasse) y IM_ (steht fr Implementierung) y Name der Implementierung (ohne Namensraumprfix)

Durch Doppelklick auf den Namen der Methode gelangen Sie in den Editor zum Implementieren der Methode. Im letzten Schritt mssen die Objekte aktiviert werden.

SAP AG

BC425

7-18

BAdIs implementieren: private Methoden

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


METHOD <badi-interface>~<method>. CALL METHOD <priv_method> EXPORTING ... . ENDMETHOD.

Class Builder: Klasse <impl-class> ndern Eigensch. Methoden Events

Parameter
Methode <priv_method> Art

Ausnahmen
Beschreibung new method in Implementation

SAP AG 2002

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

SAP AG

BC425

7-19

BAdIs implementieren: Aktivieren

Business Add-Ins: Einstieg Implementierungspflege

Implementierungsname Anzeigen

<impl>

ndern

Anlegen

z Aktivieren z Aktivierung zurcknehmen

SAP AG 1999

Mit den entsprechenden Ikonen knnen sie die Implementierung eines Business Add Ins aktivieren. Ab diesem Zeitpunkt werden die Methoden der Implementierung durchlaufen, wenn das entsprechende aufrufende Programm ausgefhrt wird. Deaktivieren der Implementierung bewirkt, dass die Methoden entsprechend nicht mehr aufgerufen werden. Die entsprechenden Aufrufe im Anwendungsprogramm werden noch durchlaufen. Allerdings findet die Instanz der Adapterklasse keine aktive Implementierung mehr. Im Gegensatz zum Aufruf "CALL CUSTOMER-FUNCTION" wird trotz fehlender Implementierung der Aufruf "CALL METHOD CL_EXITHANDLER=>GET_INSTANCE" ausgefhrt. Das gleiche gilt fr den Methodenaufruf, der die Methode der Adapterklasse ruft. Eine Aktivierung oder Deaktivierung kann nur im Originalsystem der Implementierung modifikationsfrei durchgefhrt werden. Sie mssen die Aktivierung/Deaktivierung in die nachgelagerten Systeme transportieren. Zu einem Business Add-In, welches nur eine Implementierung haben kann, knnen mehrere Implementierungen in einem System existieren. Es kann aber jeweils nur eine aktiv sein.

SAP AG

BC425

7-20

BAdI: Funktionscodes - berblick

SAP
Menu 1 Menu 2 Menu 3 Menu 1

Kunde
Menu 2 Menu 3

Function Function11 Function Function22 Function Function33

Function Function11 Function Function22 Function Function33

Kundenfunktion

SAP AG 1999

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

SAP AG

BC425

7-21

BAdI: Funktionscodes - Voraussetzung

SAP
Menu Painter Menu 1 Menu 2 BACK Zurck DISP Anzeigen +XXX Kundenfunktion Menu 3

SAP AG 1999

Funktionscodes von Men-Erweiterungen beginnen mit "+" (Plus-Zeichen). Erst das Vorhandensein einer aktiven Implementierung eines Business Add In, welches die entsprechende Erweiterung enthlt, lsst den zustzlichen Men-Punkt zur Laufzeit in der Anzeige erscheinen.

SAP AG

BC425

7-22

BAdI: Funktionscodes - Einschrnkung

Eigensch.
Programm /namespace/...

Interface

FCodes
Beschreibung

Funktionscode +xxx

Eigensch.

Mehrfach verwendbar Filterabhngig

SAP AG 2002

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

SAP AG

BC425

7-23

BAdI: Funktionscodeverarbeitung im Programm

PROGRAM PROGRAM DATA DATA DATA: DATA: ... ...

<program_using_badi>. <program_using_badi>. ok_code ok_code LIKE LIKE sy-ucomm. sy-ucomm. 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 -><method method> > r_var->< EXPORTING <i_variables> IMPORTING <e_variables>.

ENDCASE. ENDCASE.

SAP AG 2002

Wird im Anwendungsprogramm der Meneintrag ausgewhlt, zu dem der Funktionscode "+<exit>" gehrt, wird der entsprechende Methodenaufruf abgearbeitet. Der Methodenaufruf und die Menerweiterung gehren also unmittelbar und untrennbar zusammen. Das erste wrde ohne das zweite keinen Sinn ergeben. Aus diesem Grund ist es wichtig, dass diese beiden Erweiterungskomponenten in einer Erweiterung dem Business Add In zusammengefasst sind.

SAP AG

BC425

7-24

Definition von BAdIs: Lernziele

Nach Behandlung dieses Themas knnen Sie: z Ein Business Add In definieren z Ein Programm schreiben, das eine Erweiterung mit Hilfe eines BAdIs anbietet

SAP AG 2002

SAP AG

BC425

7-25

BAdI Definition: Einstieg

Business Add-Ins: Einstieg Definitionspflege

Definitionsname__ Anzeigen ndern Anlegen

Name der BAdI Definition Anlegen

SAP AG 1999

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

SAP AG

BC425

7-26

BAdI Definition: Eigenschaften

Eigensch.
Programm

Interface

FCodes
Beschreibung

Funktionscode

Eigensch.

Mehrfach verwendbar Filterabhngig

Filtertyp__ <filter_type>

SAP AG 2002

Unter den Eigenschaften knnen sie zwei wichtige Eigenschaften des Business Add Ins festlegen: y Mehrfach verwendbar y Filterabhngig

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

SAP AG

BC425

7-27

BAdI Definition: Funktionscodes

Eigensch.
Programm /namespace/...

Interface

FCodes
Beschreibung

Funktionscode +xxx

Eigensch.

Mehrfach verwendbar Filterabhngig

SAP AG 1999

Sie knnen in einer Business-Add-In-Definition auch Funktionscodes aufnehmen, analog zu MenExits bei den Customer-Exits). Dazu geben sie den Programmnamen und den Funktionscode sowie eine Kurzbeschreibung auf dem entsprechenden Tabstrip an. Einschrnkungen: y Es knnen zur Zeit keine BAdIs angelegt werden, die nur aus Men-Erweiterungen (Funktionscodes) bestehen. y Die Aufnahme von Men-Erweiterungen schliesst die Mehrfachverwendbarkeit und die Filterabhngigkeit aus.

SAP AG

BC425

7-28

BAdI Definition: Interface-Methoden


Eigensch. Interface FCodes <badi-interface>

Interfacename

Class Builder: Interface <badi-interface> ndern Eigensch. Methoden Events

Parameter
Methode <method1> <method2> Art

Ausnahmen
Beschreibung Methode der Erweiterung Methode 2 der Erweiterung

SAP AG 2002

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

Durch Doppelklick auf den Namen des Interfaces gelangen sie in den Class-Builder, wo sie die Methoden des Interfaces definieren knnen. Zu einem BAdI-Interface knnen mehrere Interface-Methoden gehren.

SAP AG

BC425

7-29

BAdI Definition: Methoden-Schnittstellenparameter


Class Builder: Interface <badi-interface> ndern Eigensch. Methoden Events

Parameter
Methode <method> Art

Ausnahmen
Beschreibung methode des BAdI

Eigensch.

Methoden

Events

Methoden
Parameter

Ausnahmen
Art Type Importing Exporting Changing Beschreibung

SAP AG 2002

Im Class Builder knnen sie alle gewohnten Aktivitten ausfhren. Sie knnen unter anderem y Interface-Methoden definieren y Schnittstellenparameter der Methoden definieren y Attribute des Interfaces vereinbaren

Bei filterabhngigen Business Add Ins mssen sie bei jeder Methode einen Import-Parameter flt_val definieren! Ansonsten vereinbaren sie die Schnittstellenparameter, die fr die Verwendung der Erweiterung notwendig sind.

SAP AG

BC425

7-30

BAdI Definition: Interface aktivieren

Class Builder: Interface <badi-interface> ndern

Eigensch.

Methoden

Events

Parameter
Methode <method> Art

Ausnahmen
Beschreibung methode des BAdI

Aktivieren

SAP AG 2002

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

SAP AG

BC425

7-31

BAdI Definition: Aufruf im Programm


REPORT REPORT <program_using_badi>. <program_using_badi>. DATA: r_var r_var TYPE REF TO <badi -interface>. <badiinterface>. START-OF-SELECTION. START-OF-SELECTION. CALL METHOD cl_exithandler=>get_instance CHANGING instance = r_var . r_var.

Instanz von <badi-class> badi-class>

2
r_var

CALL METHOD r_var -><method method> > r_var->< EXPORTING <i_variables> IMPORTING <e_variables>. END-OF-SELECTION. END-OF-SELECTION.
SAP AG 2002

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

SAP AG

BC425

7-32

Aufruf eines filterabhngigen BAdIs


REPORT REPORT <program_using_badi>. <program_using_badi>. DATA: DATA: r_var r_var 1 TYPE TYPE REF REF TO TO <badi-interface>. <badi-interface>. START-OF-SELECTION. START-OF-SELECTION. CALL CALL METHOD METHOD cl_exithandler=>get_instance cl_exithandler=>get_instance CHANGING CHANGING instance instance = = r_var. r_var.

Instanz von <badi-class> badi-class>

2
r_var

CALL METHOD r_var -><method method> > r_var->< EXPORTING flt_val = <filterwert> <i_variables> IMPORTING <e_variables>. END-OF-SELECTION. END-OF-SELECTION.
SAP AG 2002

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

SAP AG

BC425

7-33

BAdI Screen Erweiterung anlegen: Lernziele

Nach Behandlung dieses Themas knnen Sie z Ein Programm erstellen, das eine ScreenErweiterung mit Hilfe von Business Add-Ins anbietet

SAP AG 2002

SAP AG

BC425

7-34

BAdI Screen-Erweiterung: Prinzip


SAP AnwProg
SET INSTANCE

Badi-Klasse <badi-class>

Implement. Programm (Funktionsgruppe)


GET INSTANCE GET DATA PBO.

PBO.

PUT DATA

abcd
PAI. GET DATA

Statisches Attribut: Attribut: DynproDynpro-Instanz


PUT DATA PAI.

PUT DATA

GET DATA

Implement. Klasse Instanz-Attribute: Instanz-Attribute: DynproDynpro-Daten


SAP AG 2002

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

SAP AG

BC425

7-35

BAdI Screen-Erweiterungen: Komponenten

Eigensch.

BAdI

INTERFACE IF_EX_<badi>. DATA: gl_ gl_dat... dat... METHODS put_ put_data IMPORTING <data >. <data>. METHODS get_ get_data EXPORTING <data >. <data>. METHODS ... ENDINTERFACE.

Mehrfach verwendbar Filterabhngig FCodes


Programm <prog> Funktionscode +ABC

Subscreens
Rufendes Programm <prog> Dyn-Nr Subscr-Bereich Besc 0200 ABCD Bla..

SAP AG 2002

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

SAP AG

BC425

7-36

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


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

SAP AG 2002

Um eine Dynpro-Erweiterung ber ein Business Add-In anbieten zu knnen, mssen im Anwendungsprogramm folgende Schritte implementiert werden: y Instanz der BAdI-Klasse erzeugen. y Eine Referenz auf diese Instanz in der BAdI-Klasse ablegen. y Daten, die der Erweiterung zur Verfgung gestellt werden sollen, der BAdI-Klasse bergeben y Programmname und Dynpronummer des Erweiterungs-Dynpros beschaffen. y Schlielich wird das Subscreen-Dynpro aufgerufen

SAP AG

BC425

7-37

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


z PAI: z Subscreen aufrufen z Daten zurcknehmen

SAP AG 2002

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

SAP AG

BC425

7-38

Screen-Erweiterung I: Instanz erzeugen


SAP Anwendungs-Programm Dynpro
DATA:

CL_EXITHANDLER

ABAP
exit TYPE REF TO <badi-interface>.

MODULE... MODULE... MODULE... MODULE... CALL SUBSCREEN...

CALL METHOD cl_exithandler cl_exithandler =>get _instance =>get_ CHANGING instance = exit. exit.

Badi-Klasse <badi-class>

abcd

SAP AG 2002

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

SAP AG

BC425

7-39

Screen-Erweiterung II: Instanz bekanntmachen


SAP Anwendungs-Programm Dynpro
DATA:

CL_EXITHANDLER

ABAP
exit TYPE REF TO <badi-interface>.

MODULE... MODULE... MODULE... MODULE... CALL SUBSCREEN...

CALL METHOD cl_exithandler cl_exithandler =>set _instance_ =>set_ instance_for _subscreens EXPORTING instance = exit. exit.

Badi-Klasse <badi-class>

abcd

SAP AG 2002

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

SAP AG

BC425

7-40

Screen-Erweiterung IV: Daten bereitstellen


SAP Anwendungs-Programm Dynpro
DATA:

CL_EXITHANDLER

ABAP
exit TYPE REF TO <badi-interface>.

MODULE... MODULE... MODULE... MODULE... CALL SUBSCREEN...

CALL METHOD exit-> put_ _data exit->put EXPORTING <daten > <daten>

Badi-Klasse <badi-class>

daten

abcd

SAP AG 2002

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

SAP AG

BC425

7-41

Screen-Erweiterung III: Prog.name und Dynpronummer beschaffen


SAP Anwendungs-Programm Dynpro
DATA:

CL_EXITHANDLER

ABAP
exit TYPE REF TO <badi-interface>.

CALL METHOD cl_exithandler cl_exithandler =>get _prog_and_ dynp =>get_ prog_and_dynp _for_ for_subscr CALL EXPORTING SUBSCREEN... ... IMPORTING called_ called_program =.. called_ called_dynpro =..

MODULE... MODULE... MODULE... MODULE...

Badi-Klasse <badi-class>

abcd

SAP AG 2002

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

SAP AG

BC425

7-42

Screen-Erweiterung V: Subscreen rufen


SAP Anwendungs-Programm Dynpro
DATA:

CL_EXITHANDLER

ABAP
exit TYPE REF TO <badi-interface>.

Implementierendes Programm Dynpro

MODULE... MODULE... MODULE... MODULE... CALL SUBSCREEN abcd INCLUDING prog dynnr. dynnr.

Badi-Klasse <badi-class> daten

abcd

SAP AG 2002

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

SAP AG

BC425

7-43

Screen-Erweiterung VI: Subscreen-Daten zurcknehmen


SAP Anwendungs-Programm Dynpro
DATA:

CL_EXITHANDLER

ABAP
exit TYPE REF TO <badi-interface>.

Implementierendes Programm Dynpro

abcd
CALL SUBSCREEN abcd INCLUDING prog dynnr. dynnr.

Badi-Klasse <badi-class> daten

MODULE...

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

SAP AG 2002

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

SAP AG

BC425

7-44

BAdI Screen Erweiterung implementieren: Lernziele

Nach Behandlung dieses Themas knnen Sie z Ein BAdI-Screen-Erweiterung implementieren

SAP AG 2002

SAP AG

BC425

7-45

BAdI-S-E implementieren: Schritte


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

SAP AG 2002

Um eine BAdI-Dynpro-Erweiterung zu implementieren, mssen folgende Schritte durchlaufen werden: y Anlegen der Implementierung zur BAdI-Definition. Hier wird das Programm angegeben, welches das Subscreen-Dynpro enthlt sowie die Nummer des Subscreen-Dynpros. y Anlegen des in der BAdI-Implementierung angegebenen Programms y Anlegen und Gestalten des Subscreen-Dynpros y Das implementierende Programm muss sich die Instanz der BAdI-Klasse beschaffen y Von der Anwendung an die BAdI-Klasse bergebene Daten knnen danach beschafft werden.

Falls vorgesehen ist, dass Daten zurckgegeben werden, muss bei PAI des Subscreen-Dynpros eine Methode aufgerufen werden, die die genderten Daten an die BAdI-Klasse zurckgibt.

SAP AG

BC425

7-46

BAdI-S-E implemetieren: Instanz beschaffen


SAP AnwProg Dynpro
DATA:

CL_EXITHANDLER

Implementierendes Programm ABAP


exit1 TYPE REF TO <badi-interface>. PBO.

Dynpro

Badi-Klasse <badi-class> daten

CALL METHOD cl_exithandler cl_exithandler =>get _instance_ =>get_ instance_for _subscreens IMPORTING instance = exit1.

MODULE...

abcd

SAP AG 2002

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

SAP AG

BC425

7-47

BAdI-S-E implemetieren: Daten beschaffen


SAP AnwProg Dynpro
DATA:

CL_EXITHANDLER

Implementierendes Programm ABAP


exit1 TYPE REF TO <badi-interface>. PBO.

Dynpro

Badi-Klasse <badi-class> daten

CALL METHOD exit1->get _data exit1->get_ IMPORTING <daten >. <daten>.

MODULE... MODULE...

abcd

SAP AG 2002

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

SAP AG

BC425

7-48

BAdI-S-E implemetieren: Daten zurckschreiben


SAP AnwProg Dynpro
DATA:

CL_EXITHANDLER

Implementierendes Programm ABAP


exit1 TYPE REF TO <badi-interface>. PBO.

Dynpro

Badi-Klasse <badi-class> daten


CALL METHOD exit1->put _data exit1->put_ EXPORTING <daten >. <daten>.

PAI. MODULE...

abcd

SAP AG 2002

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

SAP AG

BC425

7-49

BAdIs: Weitere Anmerkungen: Lernziele

Nach Behandlung dieses Themas knnen Sie: z Erklren, was erweiterbare Filtertypen sind z Default- und Beispiel-Coding erlutern

SAP AG 2002

SAP AG

BC425

7-50

Erweiterbare Filtertypen: Voraussetzungen


<DE> <DE> Filtertyp

Domne Domne Wertetabelle Wertetabelle


Key

Feldname ... ...

Typ <DE> ...

Feldname ... language ...

Texttabelle Texttabelle
Key

Typ <DE> SPRAS ...

mandanten unabhngig Auslieferungsklasse: "E" oder "S"


SAP AG 1999

Die Zuordnung des Attributs erweiterbar unterliegt folgenden Einschrnkungen: Die Domne, auf die sich der erweiterbare Filtertyp bezieht, mu folgende Eigenschaften haben: Sie ist mit einer mandantenunabhngigen Wertetabelle verbunden. Diese Wertetabelle hat genau ein Schlsselfeld, das das Datenelement des Filtertypen als Feldtypen hat. Sie hat eine Texttabelle mit zwei Schlsselfeldern. Ein Schlsselfeld hat den Filtertyp als Feldtypen und ein Schlsselfeld ist ein Sprachenfeld. Zur Kenntlichmachung als Textfeld mu es in dieser Tabelle ein Feld geben, das die Zeichenfolge ' TEXT' oder ' TXT' als Teilstring enthlt. Im Dictionary mu die Texttabelle der Wertetabelle zugeordnet sein. Die Auslieferungsklasse beider Tabellen mu "E" oder "S" sein.

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

SAP AG

BC425

7-51

Defaultimplementierung
Programm-Erweiterung aufrufen

z Wird durchlaufen, falls keine aktive Implementierung vorhanden z Vom Anbieter angelegt
Nein

Aktive Implementierung vorhanden?


Ja Implementierung ausfhren

Default Implementierung vorhanden?


Ja DefaultImplementierung ausfhren

Nein

SAP AG 1999

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

SAP AG

BC425

7-52

Vergleich mit anderen Erweiterungstechniken


z Erweiterungsmglichkeiten:
Customer-Exits
Quelltext Mens Dynpros Tabellen Verwaltungs ebene mehrfach verwendbar filterabhngig
SAP AG 2002

Business Transaction Events

Business Add Ins

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

SAP AG

BC425

7-53

BAdI-Definition: Namenskonventionen

z BAdI-Definition

<badi> oder Z<badi> oder /../<badi> (frei whlbar; Namensrume beachten)

z Interface

IF_EX_<badi> oder ZIF_EX_<badi> oder /../IF_EX_<badi> (frei whlbar; Namensrume beachten)

z Methoden

Namen beliebig

z Generierte BAdI-Klasse (Adapter-Klasse)

CL_EX_<badi> oder ZCL_EX_<badi> oder /../CL_EX_<badi> (nicht nderbar)

SAP AG 1999

SAP AG

BC425

7-54

BAdI-Implementierung: Namenskonventionen

z BAdI-Implementierung

<impl> oder Z<impl> oder /../<impl> (frei whlbar; Namensrume beachten)

z Interface

IF_EX_<badi> oder ZIF_EX_<badi> oder /../IF_EX_<badi> (von BadI-Definition vorgegeben)

z Methoden

von BAdI-Definition vorgegeben

z Implementierende Klasse

CL_IM_<impl> oder ZCL_IM_<impl> oder /../CL_IM_<impl> (frei whlbar; Namensrume beachten)

SAP AG 1999

SAP AG

BC425

7-55

Business Add Ins finden


z direkt aus Anwendung:
System o Status oDoppelklick auf Programmnamen Suchen nach Zeichenkette... CL_EXITHANDLER  global in Programm prog o Doppelklick auf Referenzvariable Doppelklick auf Interface o Class Builder o Verwendungsnachweis Interface o CL_EX_<BAdI-Name> o SE18: <BAdI-Name> o Dokumentation

z Suche ber Tools

Anwendungs hierarchie

Repository Infosystem

IMG

o Dokumentation

SAP AG 2002

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

SAP AG

BC425

7-56

Business Add-Ins: Zusammenfassung des Kapitels

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

SAP AG 2002

SAP AG

BC425

7-57

bungen
Kapitel: Business Add Ins Thema: Business Add Ins verwenden
Am Ende dieser bungen knnen Sie: eine Erweiterung mit Hilfe von Business Add Ins implementieren Die Kundenbetreuer des Reisebros wollen, da die Liste der Buchungen, deren Aufruf Sie in der bung zu Men-Exits implementiert haben, mehr Informationen beinhaltet. Sie wollen neben den Kundennummern auch die Namen der entsprechenden Kunden auf der Liste sehen. 1-1 berprfen Sie, ob das Programm SAPBC425_BOOKING_## (## = Gruppennummer) Erweiterungsmglichkeiten bietet. 1-1-1 Untersuchen Sie das Programm nach Erweiterungsmglichkeiten. 1-1-2 berprfen Sie, ob eine angebotene Erweiterungsmglichkeit geeignet ist, auf der Liste zustzliche Informationen auszugeben. 1-2 Implementieren Sie die gefundene Erweiterung. Name der Implementierung: ZBC425IM##. 1-2-1 Welche Daten werden an den Schnittstellen der Methoden bergeben? Sind hier schon Felder vorhanden, die auf der Liste angezeigt werden sollen? 1-2-2 Die Informationen zu Kunden befinden sich in der Tabelle SCUSTOM. Beschaffen Sie den Namen des jeweiligen Kunden ber die entsprechende Kundennummer. Geben Sie den Namen aus. 1-3 Formatieren Sie die Liste. 1-3-1 Wie knnen Sie die vertikale Linie versetzen, so da die zustzlichen Felder innerhalb des Rahmens angezeigt werden? 1-3-2 Ist die Methode CHANGE_VLINE zum ndern der Position der vertikalen Linie geeignet? Falls ja, nutzen Sie sie entsprechend. 1-4 berprfen Sie das Ergebnis Ihrer Arbeit.

SAP AG

BC425

7-58

bungen
Kapitel: Business Add Ins Thema: Business Add In anlegen
Am Ende dieser bungen knnen Sie: Ein Business Add In anlegen und in einem Programm mit Hilfe der BAdI-Technik eine Erweiterung anbieten Sie entwickeln selbst Zusatzkomponenten zu dem R/3-System. In diesem Zusammenhang wollen Sie in einem Programm eine Erweiterung anbieten, die nachgelagerte Softwareschichten implementieren knnen. Sie liefern ein Programm aus, welches eine Liste von Flugverbindungen ausgibt. Mit Hilfe eines Business Add Ins wollen Sie Ihren Kunden folgende Erweiterungsmglichkeit bieten: Bei einem Doppelklick auf eine Zeile sollen weitere Aktionen implementiert werden knnen. Ihre Kunden sollen die Mglichkeit haben, eine Verzweigungsliste aufzubauen. Im zweiten Teil der bung testen Sie Ihre Erweiterung: Auf dieser Verzweigungsliste sollen zu einer Flugverbindung alle Flge ausgegeben werden. 1-1 Erzeugen Sie ein Programm, das eine Liste von Fluggesellschaften ausgibt. 1-1-1 Kopieren Sie dazu das Programm SAPBC425_TEMPLATE auf den Namen ZBC425_BADI_##. 1-1-2 Ordnen Sie Ihr Programm Ihrer Entwicklungsklasse und einem nderungsauftrag zu. 1-2 Legen Sie ein Business Add In an. 1-2-1 Der Name des BAdI sei ZBC425##. 1-2-2 Legen Sie eine Methode an. Definieren Sie die Schnittstelle. 1-2-3 Welche Parameter mssen Sie an der Schnittstelle bergeben? 1-3 Bereiten Sie das Programm soweit vor, da ein Verwender bei Doppelklick auf eine Zeile die Mglichkeit erhlt, eine Verzweigungsliste auszugeben. 1-3-1 Implementieren Sie das Ereignis AT LINE-SELECTION. 1-3-2 Fgen Sie in das Programm die Anweisungen ein, die zum Aufruf eines Business Add Ins notwendig sind: Deklarieren Sie eine Referenzvariable; Instanziieren Sie ein Objekt der BAdI-Klasse; Implementieren Sie den Aufruf der BAdI-Methode an der geeigneten Stelle im Programm.
SAP AG BC425 7-59

1-4

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

1-5

berprfen Sie das Ergebnis Ihrer Arbeit.

SAP AG

BC425

7-60

bungen
Kapitel: Business Add In Thema: Screen-Erweiterung implementieren
Am Ende dieser bungen knnen Sie: Dynpro-Erweiterungen mit Hilfe von Business Add-Ins implementieren. Zum Erfassen und ndern von Flugdaten verwenden Sie eine eigene Transaktion. Diese Transaktion bietet nur die StandardEingabefelder. Ihr Unternehmen will weitere Daten zu einem Flug erfassen. Dazu bietet diese Transaktion eine Erweiterungsmglichkeit, die Sie implementieren. 1-1 Untersuchen Sie, ob das Programm SAPBC425_FLIGHT_CHNG## eine Erweiterungsmglichkeit anbietet, mit deren Hilfe Sie die Erfassungsmaske erweitern knnen. Suchen Sie nach Business Add Ins, mit deren Hilfe Sie die oben genannten Anforderungen implementieren knnen. 1-2-1 Suchen Sie in der Anwendungshierarchie 1-2-2 Suchen Sie im Repository Infosysten 1-2-3 Suchen Sie im Einfhrungsleitfaden 1-2-4 Falls Sie ein BAdI finden: Lesen Sie die Dokumentation und beurteilen Sie, ob das BAdI fr Ihre Erweiterung brauchbar ist. 1-3 Implementieren Sie die Erweiterung. 1-3-1 Legen Sie eine Funktionsgruppe ZBC425IM## an. Sie bentigen diese Funktionsgruppe zum Anlegen eines Subscreen-Dynpros. 1-3-2 Legen Sie ein Subscreen-Dynpro beliebiger Nummer an. 1-3-3 Platzieren Sie die gewnschten Felder auf dem Dynpro. 1-3-4 Programmieren Sie die Ablauflogik des Subscreen-Dynpros. Zum Zeitpunkt PBO mssen Sie sich die Instanz der BAdI-Klasse beschaffen sowie die Daten, die von der SAP-Anwendung bergeben werden. Zum Zeitpunkt PAI mssen die genderten Daten an die SAP-Anwendung zurckgegeben werden. 1-4 Legen Sie eine BAdI-Implementierung an. Die Implementierung soll den Namen ZBC425SIN## haben. 1-4-1 Implementieren Sie die Interface-Methoden.
SAP AG BC425 7-61

1-2

1-4-2 Nehmen Sie die notwendigen Einstellungen auf der Karteikarte "Subscrens" vor. 1-4-3 Aktivieren Sie die Implementierung 1-5 Testen Sie die erweiterte Anwendung.

SAP AG

BC425

7-62

Lsungen
Kapitel: Business Add Ins Thema: Business Add Ins verwenden
1-1 So berprfen Sie, ob das Programm SAPBC425_BOOKING_## (## = Gruppennummer) Erweiterungsmglichkeiten bietet: 1-1-1 Aus der Listenanzeige: Setzen Sie den Cursor auf die Liste und whlen Sie F1 Technische Info. Doppelklicken Sie den Programmnamen (Sie knnen auch direkt in den ABAP Editor einsteigen.). Suchen Sie im Programm nach der Zeichenkette CL_EXITHANDLER. Doppelklicken Sie den bergabeparameter exit_book. Doppelklicken Sie das Interface, durch das exit_book typisiert wird. Sie gelangen in den Class Builder. Fhren Sie einen Verwendungsnachweis fr das Interface in Klassen durch. Es wird Ihnen eine Klasse CL_EX_BADI_BOOK## angezeigt. Der Name des Business Add In ist somit BADI_BOOK##. 1-1-2 Rufen Sie die Transaktion SE18 (BAdI Definition) auf. Lesen sie die Dokumentation zu dem BAdI. 1-2 Implementieren der Erweiterung: Aus der Transaktion SE18 verzweigen Sie ber Implementierung Anlegen in die Transaktion zum Anlegen der Implementierungen von BAdIs. Name der Implementierung: ZBC425IM##. 1-2-1 Die Schnittstellenparameter knnen Sie anzeigen lassen, indem Sie in der Transaktion SE18 die Methode doppelklicken. Im Class Builder stellen Sie den Cursor auf die gewnschte Methode und whlen "Parameter". Die bergabestruktur enthlt die Felder nicht, die Sie auf der Liste anzeigen wollen. Sie mssen die entsprechenden Daten nachlesen. 1-2-2 Durch Doppelklick auf den Methodennamen gelangen Sie in den Editor. Im folgenden ein Vorschlag fr die Implementierung der Methoden (Gruppe 00): METHOD if_ex_badi_book00~output. DATA: name TYPE s_custname. SELECT SINGLE name FROM scustom INTO name WHERE id = i_booking-customid. WRITE: name. ENDMETHOD.

SAP AG

BC425

7-63

1-3

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

SAP AG

BC425

7-64

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

*&---------------------------------------------------------* *& Report REPORT DATA: wa_spfli TYPE spfli, it_spfli TYPE TABLE OF spfli WITH KEY carrid connid. * Reference Variable for BAdI DATA: exit_ref TYPE REF TO zif_ex_bc42500. * Selection Screen SELECTION-SCREEN BEGIN OF BLOCK carrier WITH FRAME TITLE text-car. SELECT-OPTIONS: so_carr FOR wa_spfli-carrid. SELECTION-SCREEN END
SAP AG

*&---------------------------------------------------------* sapbc425_badi.

OF BLOCK carrier.
BC425 7-65

*&----------------------------------------------------------* *& Event START-OF-SELECTION *&----------------------------------------------------------* START-OF-SELECTION. CALL METHOD cl_exithandler=>get_instance CHANGING instance = exit_ref. SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE it_spfli WHERE carrid IN so_carr. *&----------------------------------------------------------* *& Event END-OF-SELECTION *&----------------------------------------------------------* END-OF-SELECTION. LOOP AT it_spfli INTO wa_spfli. WRITE: / wa_spfli-carrid, wa_spfli-connid, wa_spfli-countryfr, wa_spfli-cityfrom, wa_spfli-countryto, wa_spfli-cityto, wa_spfli-deptime, wa_spfli-arrtime. HIDE: wa_spfli-carrid, wa_spfli-connid. ENDLOOP. CLEAR wa_spfli. *&----------------------------------------------------------* *& Event AT LINE-SELECTION.
BC425 7-66

*&----------------------------------------------------------*
SAP AG

AT LINE-SELECTION.. CHECK NOT wa_spfli-carrid IS INITIAL. CALL METHOD exit_ref->lineselection EXPORTING i_carrid = wa_spfli-carrid i_connid = wa_spfli-connid. clear wa-spfli.

1-4

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

METHOD zif_ex_bc42500~lineselection. DATA: it_flights TYPE TABLE OF sflight00, wa_flights TYPE sflight00. FORMAT COLOR COL_HEADING. WRITE: / text-hea, i_carrid, i_connid. FORMAT COLOR COL_NORMAL. SELECT * FROM sflight00 INTO CORRESPONDING FIELDS OF TABLE it_flights WHERE carrid = i_carrid AND connid = i_connid. LOOP AT it_flights INTO wa_flights. WRITE: / wa_flights-fldate, wa_flights-planetype, wa_flights-price CURRENCY wa_flights-currency, wa_flights-currency, wa_flights-seatsmax, wa_flights-seatsocc. ENDLOOP. ENDMETHOD.

Aktivieren Sie die Implementierung.

SAP AG

BC425

7-67

Lsungen
Kapitel: Business Add Ins Thema: Screen-Erweiterungen
1-1 So untersuchen Sie, ob das Programm SAPBC425_FLIGHT_CHNG## eine Erweiterungsmglichkeit anbietet, mit deren Hilfe Sie die Erfassungsmaske erweitern knnen: 1-1-1 Whlen Sie System o Status, um den Programmnamen herauszufinden. Doppelklicken Sie den Programmnamen. Whlen Sie Springen o Objektkatalogeintrag. Hier finden Sie die Information, welchem Paket die Anwendung zugeordnet ist. Doppelklick auf den Paketnamen liefert Ihnen die Information, welcher Anwendungskomponente dieses Paket zugeordnet ist. 1-2 Suchen Sie im Repository Infosystem oder ber die Anwendungshierarchie nach passenden Business Add Ins, wobei das Paket und die Anwendungskomponente des Anwendungsprogramms als Selektionskriterium dienen. 1-2-1 Im Repository Infosystem finden Sie BAdIs unter Erweiterungen o Business Add Ins o Definition. 1-2-2 In der Anwendungshierarchie markieren Sie die Anwendungskomponente. Hiernach whlen Sie die Drucktaste "Infosystem" um zum Repository Infosystem zu gelangen. Damit sind alle Pakete der markierten Anwendungskomponente als Selektionskriterien eingetragen. 1-2-3 Als Suchergebnis erhalten Sie eine Liste von BAdIs. Markieren Sie das zu untersuchende BAdI BC425_##FLIGHT2 und whlen Sie "Anzeigen". Sie befinden sich nun im BAdI Builder, wo Sie die Dokumentation des BAdIs vorfinden. Machen Sie sich mit der Dokumentation vertraut. 1-3 Implementieren Sie die Erweiterung. 1-3-1 Legen Sie die Funktionsgruppe ZBC425IM## im Object Navigator an. Dazu lassen Sie sich die Objektliste Ihres Paketes anzeigen. Rechte Maustaste auf den Paketnamen o Anlegen o Funktionsgruppe. Tragen Sie in das Feld Name ZBC425IM## ein; vergeben Sie einen Kurztext. Sichern Sie Ihre Eingabe und ordnen Sie einen nderungsauftrag zu. 1-3-2 Legen Sie ein Subscreen-Dynpro beliebiger Nummer in der Funktionsgruppe an. Rechte Maustaste auf die Funktionsgruppe o Anlegen o Dynpro. Vergeben Sie einen Kurztext und whlen Sie Dynprotyp "Subscreen". 1-3-3 Starten Sie den Layout-Editor. Whlen Sie Springen o Sekundrfenster o Dict/Programmfelder. Geben Sie die Dictionary-Struktur an und whlen Sie
SAP AG BC425 7-68

"Holen aus Dict". Markieren Sie die gewnschten Felder und besttigen Sie die Eingabe. Platzieren Sie die Felder auf dem Dynpro. 1-3-4 Navigieren Sie zur Ablauflogik des Subscreen-Dynpros. Folgende Module sollten mindestens in der Ablauflogik aufgerufen werden:
 352&(66 %()25( 287387 02'8/( JHWBLQVWDQFH 02'8/( JHWBGDWD

 352&(66 $)7(5 ,1387 02'8/( SXWBGDWD

 ,1&/8'( /=%&B,02    0RGXOH JHWBLQVWDQFH 287387  02'8/( JHWBLQVWDQFH 287387 &$// 0(7+2' FOBH[LWKDQGOHU !JHWBLQVWDQFHBIRUBVXEVFUHHQV &+$1*,1* LQVWDQFH UBYDU (;&(37,216 27+(56  ,) V\VXEUF !  0(66$*( ,' V\PVJLG 7<3( V\PVJW\ 180%(5 V\PVJQR :,7+ V\PVJY V\PVJY V\PVJY V\PVJY (1',) (1'02'8/( JHWBLQVWDQFH 287387  0RGXOH JHWBGDWD 287387  02'8/( JHWBGDWD 287387 &$// 0(7+2' UBYDU!JHWBGDWD ,03257,1* HBFRQQ VG\QBFRQQ (1'02'8/( JHWBGDWD 287387  ,1&/8'( /=%&B,0,    0RGXOH SXWBGDWD ,1387  WH[W

SAP AG

BC425

7-69

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

 ,1&/8'( /=%&B,0723  )81&7,21322/ NDXUDBLPBEF 0(66$*(,'  7$%/(6 VG\QBFRQQ '$7$ UBYDU 7<3( 5() 72 LIBH[BEFB

IOLJKW

1-4

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

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

1-4-2 Auf der Karteikarte "Subscreens" tragen Sie den Namen des Programms Ihrer Funktionsgruppe SAPLZBC425IM## sowie die Nummer des von Ihnen angelegten Subscreen-Dynpros ein. 1-4-3 Aktivieren Sie die Implementierung ber Implementierung o Aktivieren oder die entsprechende Drucktaste. 1-5 Fhren Sie die Anwendung aus und berprfen Sie, ob Ihre Erweiterung durchlaufen wird.

SAP AG

BC425

7-70

Modifikationen

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

SAP AG 2002

SAP AG

BC425

8-1

Modifikationen: Lernziele des Kapitels

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

SAP AG 2002

SAP AG

BC425

8-2

bersichtsdiagramm Modifikationen
R/3 Business Anwendungen (SAP Standard)
Personali sierung Modifikation z Modifikationsassistent z User-Exits Erweiterung z ABAP Dictionary z Customer-Exits

z Transaktions varianten

Tabellen Datenelemente Funktionsbaustein-Exits Men-Exits Dynpro-Exits

4 5 6 7

z Business Transaction Events z Business Add Ins

z berblick
SAP AG 2002

SAP AG

BC425

8-3

Originale und Kopien

Entwicklungssystem

Folgesystem

Kundenobjekt

Kundenobjekt

Original
Transport der Entwicklung

Kopie

SAP-Objekt

SAP-Objekt

SAP-Objekt

Original

Kopie

Kopie

SAP AG 2002

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

SAP AG

BC425

8-4

Korrekturen und Reparaturen

Entwicklungssystem

Folgesystem

Kundenobjekt

Kundenobjekt

korrigiertes Original
Korrektur

Kopie
Transport der Korrektur

SAP-Objekt

SAP-Objekt

SAP-Objekt

korrigiertes Original
Korrektur

modifizierte Kopie
Reparatur

Kopie
Transport der Reparatur

SAP AG 2002

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

SAP AG

BC425

8-5

Modifikationen beim Upgrade

Entwicklungssystem

Folgesystem

Kundenobjekt

Kundenobjekt

korrigiertes Original

Kopie

SAP-Objekt

SAP-Objekt

SAP-Objekt

korrigiertes Original

modifizierte Kopie Modifikations abgleich

Kopie
Transport des Abgleichs

Upgrade
SAP AG 2002

Upgrade

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

SAP AG

BC425

8-6

Modifikationen durchfhren: Lernziele

Nach Behandlung dieses Themas knnen Sie: z Beschreiben, was beim Durchfhren von Modifikationen zu beachten ist.

SAP AG 2002

SAP AG

BC425

8-7

Registrierung der Modifikation im SSCR


Repository Browser: Einstieg
System Hilfe

Kundensystem

Objektliste Program programname

Objekt registrieren
System Hilfe

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

OSS: Registrierung von SAP-Objekten

SAPNet R/3-Frontend

System Hilfe

PgmID/OBJ/Name R3TR Schlssel

PROG programname

07319180563614231463

SAP AG 2002

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

SAP AG

BC425

8-8

Aufnahme einer registrierten Modifikation


ABAP Editor

z Zu durchlaufende Schritte: z SSCR-Schlssel z Nummer des nderungsauftrags

Programm
SSCR Schlssel

Warnung

Sie reparieren ein SAP Objekt Reparaturkennzeichen


nderungsauftrag

Aufgabe nderungssperre Importsperre Versionierung

Auftrag

SAP AG 2002

Wollen sie ein Repository-Objekt der SAP ndern, fordert der Workbench Organizer folgende Angaben von Ihnen: y SSCR-Schlssel y nderungsauftrag

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

SAP AG

BC425

8-9

Aktionen bei Modifikationsende


Dokumentation nderungssperre geht an Auftrag ber Importsperre geht an Auftrag ber nderungssperre aufgehoben Auftrag freigeben Importsperre aufgehoben Versionierung

Aufgabe freigeben

Transportverzeichnis
SAP AG 2002

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

SAP AG

BC425

8-10

Versionen

SAP-Objekt

Kopie

Erstes Sichern

Vollversion Rckwrtsdelta

Auftragsfreigabe
SAP-Objekt

modifizierte Kopie
Reparatur

SAP AG 2002

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

SAP AG

BC425

8-11

Kritische Erfolgsfaktoren Modifikation (1)

z Kapseln statt streuen

REPORT sapabap. IF sy-tabix = 1. *#SD_001...#Insertion count = count + 1. LOOP AT tab WHERE f1 < 10. .... ENDLOOP. ENDIF. Streuen

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

SAP AG 2002

Kapseln Sie kundeneigenen Quelltext in Modularisierungseinheiten, statt lngere Passagen in SAP Quelltext einzustreuen (z.B. Aufruf von Kunden-Funktionsbausteinen in Programm-Quelltext, Aufruf von Kunden-Subscreens fr zustzliche Felder auf Dynpros).

SAP AG

BC425

8-12

Kritische Erfolgsfaktoren Modifikation (2)

z Schmale Schnittstellen beim Kapseln

z Standardisierte Inline-Dokumentation (von Modifikationsassistent untersttzt) z Fhren eines Modifikations-Logbuchs (mit Modification Log als Grundlage)

z Alle Reparaturen besttigen (vor Release 4.5A) und Auftrge freigeben, die Reparaturen enthalten

SAP AG 2002

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

SAP AG

BC425

8-13

Kritische Erfolgsfaktoren Modifikation (3)

z Modifizieren Sie keine Dictionary-Objekte der zentralen Basis (Ausnahme: OSS-Hinweis oder Aufforderung durch SAP-Hotline) z Legen Sie keine Funktionsbausteine in SAPFunktionsgruppen an ( Release < 4.5A)

z Lschen Sie keinen Quelltext - kommentieren Sie ihn aus

SAP AG 2002

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

SAP AG

BC425

8-14

Modifikations-Logbuch: Beispiel

Objekttyp (Programm, Dynpro, GUI Status, ...) Objektname Routine Themenbereich Auftragsnummer der Reparatur nderungsdatum Name nderer Name Verantwortliche(r) Vorabkorrektur (ja/nein) SAPNet Hinweisnummer Gltig bis Release Aufwand fr Wiedereinbau in Stunden

PROG SAPMV45A SAVE_DOC SD_001 DEVK900023 01.02.1999 Smith Carpenter nein 4

SAP AG 2002

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

SAP AG

BC425

8-15

Modifikationsassistent: Lernziele

Nach Behandlung dieses Themas knnen Sie: z Modifikationen fachgerecht mit Hilfe des Modifikationsassistenten durchfhren z erlutern, wie der Modifikationsassistent arbeitet

SAP AG 2002

SAP AG

BC425

8-16

Modifikationsassistent: Ziele

Modifikationsabgleich erleichtern
z feinere Granularitt
z Module z Routinen

z Funktionsbausteine z nderung auf separater Software-Schicht durch "Modifikations-Exits"

SAP AG 2002

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

SAP AG

BC425

8-17

Modifikationsassistent: Funktionsweise

Modifikationen

Source

Generieren

Load

SAP AG 2002

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

SAP AG

BC425

8-18

Modifikationsabgleich gestern und heute

z GESTERN:

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

z HEUTE (MIT MODIFIKATIONSASSISTENT):

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

SAP AG 2002

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

SAP AG

BC425

8-19

Modifikationsassistent: Softwareschichten

SAP

Partner

Kunde

Originale

Modifikationsschicht

Modifikationsschicht

SAP AG 2002

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

SAP AG

BC425

8-20

Modifikationsassistent: Untersttzte Werkzeuge


z ABAP Editor

z Screen Painter z z z z
z Layout z Ablauflogik

z Modifikationsmodus

Menu Painter Textelemente Class Builder Function Builder

z Dictionary

z Hinzufgen von Funktionsbausteinen z Kompatible Erweiterung der Schnittstelle z Append-Strukturen werden registriert z Datenelemente: Feldbezeichner berlagern z Doku-Objekte berlagern

z Dokumentation

SAP AG 2002

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

SAP AG

BC425

8-21

Modifikationsassistent: Voraussetzungen
z R/3 Profile Parameter

z eu/controlled_modification

Modifikationsassistent Das Transportobjekt unterliegt dem Modifikationsassistenten ...Editierfunktionen eingeschrnkt... ber die Modifikationsikone knnen die Abschnitte gendert werden...

SAP AG 2002

Wollen sie ein SAP-Objekt ndern, mssen sie die oben aufgefhrten Informationen hinterlegen: y SSCR-Schlssel y nderungsauftrag

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

SAP AG

BC425

8-22

Ikonen des Modifikationsassistenten

Einfgen Ersetzen Lschen Modifikation zurcknehmen Modifikationsbersicht

SAP AG 2002

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

SAP AG

BC425

8-23

Beispiel: ABAP Editor


ABAP Editor PROGRAM <SAP-Program>. ... *{INSERT *} *{REPLACE DEVK900023 *\WRITE: / sy-uname COLOR COL_KEY. WRITE: / sy-uname COLOR COL_NORMAL. *} *{DELETE DEVK900023 *\WRITE: / sy-uname COLOR COL_KEY. *\ *} ...
SAP AG 2002

Einfgen
1

DEVK900023

Ersetzen

Lschen
3

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

SAP AG

BC425

8-24

Modifikationsbersicht
ABAP Editor PROGRAM <SAP-Program>. ... *{INSERT *} *{REPLACE DEVK900023 Modifikationsbersicht 2 *\WRITE: / sy-uname COLOR COL_KEY. WRITE: / sy-uname COLOR COL_NORMAL. SAP Program *} ... ohne Modularisierungseinheit SAP Program Unterprogramme DO_SOMETHING
SAP AG 2002

DEVK900023

SMITH 01.02.1999 DEVK900023

SMITH 01.02.1999 DEVK900023

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

SAP AG

BC425

8-25

Zurcksetzen auf Original


ABAP Editor PROGRAM <SAP-Program>. ... *{INSERT *} *{REPLACE DEVK900023 2 *\WRITE: / sy-uname COLOR COL_KEY. WRITE: / sy-uname COLOR COL_NORMAL. *} ABAP Editor ... PROGRAM <SAP-Program>. ... WRITE: / sy-uname COLOR COL_KEY. ...
SAP AG 2002

DEVK900023

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

SAP AG

BC425

8-26

Modification Browser

Modification Browser Standard-Selektionen

letzter nderer Entwicklungsklasse Auftrag/Aufgabe


modifizierte Objekte

mit Modifikationsassistent ohne Modifikationsassistent


mit Modifikationsassistent Datenelemente S_CARR_ID Domnen Programme Funktionsbausteine
SAP AG 2002

SMITH 01.02.1999 DEVK900023

Der Modification Browser bietet ihnen eine bersicht ber alle im System vorhandenen Objekte, die modifiziert wurden. Es wird dabei unterschieden zwischen Modifikationen mit und ohne Modifikationsassistent. Im Einstiegsbild des Modification Browsers knnen Sie die Selektion nach verschiedenen Kriterien einschrnken. Dadurch knnen sie ganz spezifisch Modifikationen aus einem bestimmten Gebiet suchen. Der Modification Browser stellt die Treffermenge in einer baumartigen Liste zur Verfgung. Die Objekt sind geordnet nach y Modifikationsart (mit/ohne Assistent) y Objektart (PROG, DOMA, DTEL, TABL, ...)

Neben der reinen Anzeigefunktionalitt knnen Sie im Modification Browser auch ganze Gruppen von Modifikationen zurcknehmen. Dazu markieren Sie den gewnschten Teilbaum und whlen die Drucktaste Rcksetzen auf Original.

SAP AG

BC425

8-27

User-Exit: Lernziele

Nach Behandlung dieses Themas knnen Sie: z Erklren, was User-Exits sind z Beschreiben, wie Sie User-Exits im System auffinden

SAP AG 2002

SAP AG

BC425

8-28

User-Exit: Aufbau eines Modulpools


Programm SAPMV45A *Include MV45ATOP *Include MV45AO01 *Include MV45AI01

Besondere Besondere Include-Programme Include-Programme *weitere Includes *Include MV45AFZB

SAP AG 2002

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

SAP AG

BC425

8-29

User-Exit
Programm SAPMV45A *SAP Includes *Include MV45AFZB *User-Exits Release 3.1G FORM userexit_test. ENDFORM. FORM userexit_two. ENDFORM. *Include MV45AFZC *User-Exits Release 4.0A

z leere Unterprogramme z Includes nur 1x ausgeliefert z berwiegend in SD z technisch: Modifikation

SAP AG 2002

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

SAP AG

BC425

8-30

User-Exit: Beispiel

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

SAP AG 2002

User-Exits sind im wesentlichen vom SAP-Entwickler zur Verfgung gestellte, leere Unterprogramme, die Sie mit ihrem eigenen Quelltext fllen knnen. Ziel dabei ist, jegliche Modifikation vom eigentlichen Programm fernzuhalten und in eigene Includes auszulagern. Dazu legt der SAP-Entwickler verschiedene Includes an, die der Namenskonvention fr Includes von Programmen und Funktionsgruppen gengen. Die letzten beiden Buchstaben des Includenamens deuten auf das vom Kunden zu verwendende Include hin: Hier steht in der Regel ein "Z". Beispiel: Programm Include MV45AFZB SAPMV45A

Diese Namenskonvention gewhrleistet, da das Include in der Folge nicht mehr vom SAPEntwickler angefat wird. Aus diesem Grund werden solche Includes beim Modifikationsabgleich nicht angeboten. Sollen zum nchsten Release von SAP weitere User-Exits ausgeliefert werden, werden diese in neue Includes, die der selben Namenskonvention gehorchen, zusammengefat.

SAP AG

BC425

8-31

Verwenden von User Exits


z aus Anwendungsprogramm
User-Exits System o Status oDoppelklick auf Programmnamen Suchen nach Zeichenkette... perform userexit  global in Programm prog o SAP Referenz-IMG Vertrieb Systemanpassung User-Exits o entsprechende Komponente auswhlen
SAP AG 2002

z mit Hilfe von Tools

IMG

Vertrieb Systemanpassung User-Exits o entsprechende Komponente auswhlen

Die verwendbaren User-Exits finden Sie im SAP-Referenz-Einfhrungsleitfaden. Dort erhalten Sie auch die Dokumentation, zu welchem Zweck der jeweilige SAPAnwendungsentwickler den entsprechenden User-Exit vorgesehen hat. Fhren Sie die im Einfhrungsleitfaden angegebenen Schritte aus.

SAP AG

BC425

8-32

SAP Note Assistant: Lernziele

Nach Behandlung dieses Themas knnen Sie z Hinweiskorrekturen mit Hilfe des SAP Note Assistant in ein SAP System einspielen z Die Vorteile des SAP Note Assistant benennen z Mit dem SAP Note Assistant eingepflegte Hinweiskorrekturen abgleichen

SAP AG 2002

SAP AG

BC425

8-33

SAP Note Assistant: Prinzip


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

Modifikationsabgleich manuell HEUTE Note Hinweis Hinweis Assistant 08154711 Hinweis 08154711 08154711 Release n Release n+1

Modifikationsabgleich automatisch
SAP AG 2002

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

SAP AG

BC425

8-34

SAP Note Assistant: Vorteile


z SAP Hinweise automatisch einspielen

z Abhngigkeiten automatisch behandeln z Mit anderen SAP Hinweisen z Mit Support Packages z Mit Modifikationen

z Beschrnkt auf Korrekturen an ABAP Quelltext

z berblick ber alle in das SAP System eingespielte Hinweise

z Untersttzung von Modifikationsabgleich nach Upgrade oder Support Packages z Achtung: Korrektur einzelner Fehler! Kein Ersatz fr Support Packages!

Wichtig!

SAP AG 2002

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

SAP AG

BC425

8-35

SAP Note Assistant: Arbeitsschritte

SAP Hinweise Herunterladen Aktualisieren Hinweis-Browser Einbauen Details Upgrade SAP Note Assistant Korrekturanleitung Manuelle Ausweichlsung Spezielle Version des Split Screen Editors Modification Browser (SE95)
SAP AG 2002

Modification Adjustment (SPAU)

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

SAP AG

BC425

8-36

SAP Note Assistant: Arbeitsvorrat


berblick Note Assistant: Arbeitsvorrat Benutzer XXX SAP-Hinweise inkonsistent 0000222111 Hinweistext neu 0000444321 Hinweistext 0000383446 Hinweis In Bearbeitung 0000333443 Text 0000383446 Fehler im Programm ABC Protokoll Einbauen Bearbeitungsstatus Laden

Prfen

SAP AG 2002

Sie rufen die Transaktion SNOTE durch direktes Eingeben des Transaktionscodes in das Ok-CodeFeld auf. Damit gelangen Sie auf einen Bildschirm mit einer Liste von Hinweisen, die verschiedenen Knoten zugeordnet sind. Sie sehen y Hinweise, die Ihnen als Bearbeiter zugeordnet sind; y Alle neuen Hinweise;

y Alle Hinweise, die sich in einem inkonsistenten Zustand befinden.

Einbaubare Hinweise sind mit einer entsprechenden Ikone gekennzeichnet (Im Menpfad Hilfsmittel Farblegende knnen Sie sich ber die Bedeutung der verschiedenen Ikonen informieren). Im obigen Beispiel finden wir weiterhin einen neuen Hinweis, der als obsolet oder nicht einbaubar gekennzeichnet ist. Ursache ist eine fehlende Korrekturanleitung (Der Hinweis ist rein informativer Natur) oder ein Gltigkeitszeitraum, der nicht mit dem Systemrelease und PatchLevel bereinstimmt.

SAP AG

BC425

8-37

SAP Note Assistant: Hinweise laden


Problem
berblick

Hinweis suchen Hinweis lesen


Option 1: Direktes Herunterladen

z Voraussetzungen prfen z Hinweis einbauen z Hinweis registrieren

Note Assistant

Laden

Prfen Bearbeitungsstatus

DB
He Op run tio n Da terla 2a: tei d sy en ste au m f
SAP AG 2002

Einbauen

b: n 2 en o i t d Op chla o H

Protokoll

Dateisystem

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

SAP AG

BC425

8-38

SAP Note Assistant: Hinweis-Browser


berblick

Laden

Prfen Bearbeitungsstatus Einbauen

Protokoll

SAP AG 2002

SAP AG

BC425

8-39

SAP Note Assistant: Hinweis einbauen


berblick Note Assistant: Arbeitsvorrat Benutzer XXX SAP-Hinweise inkonsistent 0000222111 Hinweistext neu 0000444321 Hinweistext 0000383446 Hinweis Folgende Hinweise werden eingebaut: In Bearbeitung
Einbau von Hinweis 0427325000 Version 001

Laden

Prfen Bearbeitungsstatus Einbauen

0000333443 Text

0000383446 Fehler im Programm ABC

REPS BC426_01E01 nderungsbernahme mglich

REPS BC426_01F01 nderungsbernahme mglich

Protokoll

Rahmenprogramm
SAP AG 2002

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

SAP AG

BC425

8-40

SAP Note Assistant: Weitere Merkmale


z Split Screen Editor z Diverse Protokolliermglichkeiten: z Anzeige des Implementierungsstatus z Action Log z Hinweiseinbau zurcknehmen

SAP AG 2002

SAP AG

BC425

8-41

SAP Note Assistant: Hinweise mit Abhngigkeiten


berblick Note Assistant: Arbeitsvorrat Benutzer XXX SAP-Hinweise inkonsistent 0000222111 Hinweistext Laden Sie folgende Hinweise in Ihr System: neu 0000444321 Hinweistext 0000153222 0000383446 Hinweis 0000173333 In Bearbeitung 0000234432 0000333443 Text 0000383446 Fehler im Programm ABC Protokoll Laden

Prfen Bearbeitungsstatus Einbauen

SAP AG 2002

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

SAP AG

BC425

8-42

SAP Note Assistant: Modifikationsabgleich


berblick Modifikationsabgleich Laden Modifikationen und Erweiterungen Hinweiskorrekturen 0000222111 Hinweistext 0000123456 Text 0000333221 Hinweiskurztext Bearbeitungsstatus Einbauen

Prfen

Protokoll

Abgleich
SAP AG 2002

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

SAP AG

BC425

8-43

Manuelles Erfassen von Hinweiskorrekturen


z Programm SCWN_REGISTER_NOTES z Hinweise eintragen z Hinweise werden geladen z Gltigkeit wird geprft z Einbau wird geprft z Vorteile: z Anzeige im Hinweis-Browser z Abhngigkeiten werden korrekt angegeben z Korrekturen finden sich bei Modifikationsabgleich in der Kategorie Hinweiskorrekturen.

SAP AG 2002

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

Um Hinweise manuell zu registrieren, starten Sie das Programm SCWN_REGISTER_NOTES. Auf dem Selektionsbild des Programms geben Sie die Nummern der als vollstndig eingebaut zu registrierenden Hinweise ein. Das System ldt die Hinweise und prft, ob die Hinweise fr Ihr Release und Support Package Level gltig sind. Weiter prft das Programm, ob die Hinweise bereits im Note Assistant als eingebaut registriert sind.

SAP AG

BC425

8-44

Modifikationsabgleich: Lernziele

Nach Behandlung dieses Themas knnen Sie: z Die verschiedenen Schritte des Modifikationsabgleichs nennen z aufzhlen, welche Objekte wann abgeglichen werden mssen z erklren, wie der Modifikationsabgleich in den Folgesystemen durchgefhrt wird

SAP AG 2002

SAP AG

BC425

8-45

Abzugleichende Objekte

Abgleich Abgleich erforderlich erforderlich

neu von SAP eingespielt

vom Kunden modifiziert

SAP AG 2002

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

SAP AG

BC425

8-46

Modifikationsabgleich: SPDD und SPAU

SAP Standard Kunden Version

Rckkehr zum SAP-Standard

Vergleichen

Transaktionen: SPDD SPAU

Abgleich

SAP AG 2002

Whrend des Modifikationsabgleichs werden ABAP Repository Objekte von vor dem Upgrade (alte Version) mit solchen von nach dem Upgrade (neue Version) verglichen. Die Transaktionen SPDD und SPAU untersttzen Sie whrend des Abgleichs Sie mssen die Transaktion SPDD zum Abgleich von Dictionary Objekten nicht aufrufen, wenn - Sie keine nderungen an SAP Standard Objekten des Dictionary vorgenommen haben - Sie nur Kundeneigene Objekte in dem System hinzugefgt haben. Nur genderte SAP Objekte mssen nachbearbeitet werden.

Alle anderen ABAP Repository Objekte werden mit Hilfe der Transaktion SPAU abgeglichen. Das Upgrade-Programm R3up teilt Ihnen mit, die Transaktion am Ende des Upgrades zu starten. Wenn der Upgrade beendet ist, haben Sie 30 Tage Zeit, die Transaktion SPAU zu verwenden. Nach dieser Zeit mssen Sie fr jedes Objekt, das Sie abgleichen wollen, wieder einen SSCR-Schlssel beantragen. Die Transaktion SPAU ermittelt, welche Objekte modifiziert wurden und gleichzeitig mit dem aktuellen Upgrade eingespielt wurden. Der Modifikationsabgleich bietet Ihnen nun die Mglichkeit, Ihre Modifikationen in das neue R/3 Release zu bernehmen.

SAP AG

BC425

8-47

Objekte des Modifikationsabgleichs

SPDD

SPDD

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

SAP AG 2002

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

SAP AG

BC425

8-48

Abgleich-Transport zwischen Systemen

Release i

Release i-1 Release i-1

Modifikationsabgleich

SPDD
Transport-Auftrag

Transport-Auftrag

SPAU

Auftrag mit abgeglichenen Objekten wird beim Upgrade fr diese Systeme verwendet

SAP AG 2002

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

SAP AG

BC425

8-49

Modifikationsabgleich: Einstieg

Modifikationsabgleich: Objektauswahl Standard-Selektionen

letzter nderer Entwicklungsklasse Auftrag/Aufgabe


modifizierte Objekte

mit Modifikationsassistent ohne Modifikationsassistent


Upgrades und Patches mit Modifikationsassistent Datenelemente S_CARR_ID Domnen Programme Funktionsbausteine
SAP AG 2002

noch zu bearbeiten alle Objekte

SMITH 01.02.1999

Beim Start des Modifikationsabgleichs (Transaktion SPAU) knnen Sie auf einem Selektionsbild die Treffermenge einschrnken. Hier knnen Sie whlen, ob Sie alle abzugleichenden Objekte sehen wollen oder nur die, die noch bearbeitet werden mssen. Sie knnen die Selektion mit Hilfe der folgenden Kriterien einschrnken: y letzter nderer y Entwicklungsklasse y Auftragsnummern / Aufgabennummern

Das System zeigt Ihnen eine Liste mit den abzugleichenden Objekten an. Die Liste ist sortiert nach y mit / ohne Modifikationsassistent y Objektart

SAP AG

BC425

8-50

Ikonen des Modifikationsabgleichs

automatischer Abgleich halbautomatischer Abgleich manueller Abgleich Objekt abgeglichen Original wiederhergestellt

SAP AG 2002

Die Ikonen vor den einzelnen Objekten, die zum Abgleich bestimmt sind, zeigen an, wie der Abgleich durchgefhrt werden kann. Der Abgleich kann durchgefhrt werden y automatisch Das System stellt keine Konflikte fest. Die nderungen knnen automatisch bernommen werden. Dazu whlen Sie entweder die entsprechende Ikone oder den Meneintrag aus. y halbautomatisch Die einzelnen Werkzeuge bieten eine Untersttzung beim Abgleich an. Beim Abgleich von Programmen wird der Split-Screen-Editor aufgerufen, in dem Sie nderungen bernehmen knnen. y manuell Sie mssen Ihre Modifikationen ohne besondere Untersttzung durch das System bearbeiten. Der Modifikationsabgleich bietet einen Absprung in das entsprechende Werkzeug an.

Abgeglichene Objekte werden durch den grnen Haken gekennzeichnet. Wenn Sie den neuen SAP-Standard bernehmen wollen, whlen sie "Rcksetzen auf Original". Damit entfllt etwaige Abgleicharbeit zuknftig.

SAP AG

BC425

8-51

Modifikationen: Zusammenfassung des Kapitels

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

SAP AG 2002

SAP AG

BC425

8-52

bungen
Kapitel: Modifikationen Thema: Modifikationen durchfhren
Am Ende dieser bungen knnen Sie: Modifikationen mit Hilfe des Modifikationsassistenten durchfhren. Ungefhrte Modifikationen durchfhren. Sie wollen zustzlich zu dem groen Funktionsumfang des R/3 noch weitere Funktionalitt implementieren. Seltener kommt es vor, da fehlerhafte Funktionalitt ausgeliefert wird. Dies erfordert das Einfgen von Korrekturen noch bevor das entsprechende Support Package eingespielt werden kann. Einige Modifikationen werden vom Modifikations-Assistenten untersagt. Sollen sie trotzdem durchgefhrt werden, besteht die Mglichkeit, den Modifikationsassistenten abzuschalten. 1-1 Modifizieren Sie Objekte des R/3. Verwenden Sie dabei soweit wie mglich den Modifikationsassistenten. Im folgenden sind die Objekte angegeben, die Sie verndern sollen: Modifizieren Sie das Programm SAPBC425_BOOKING_##. 1-2-1 Erweitern Sie die berschrift dahingehend, da die Spalte mit den Kundennamen auch eine berschrift erhlt. 1-2-2 Legen Sie eine neue Variable zum Zhlen der Datenstze an. Geben Sie den Zhler in der letzten Spalte der Liste aus. 1-2-3 Lesen Sie zustzlich die Felder LUGGWEIGHT und WUNIT der Tabelle SBOOK und geben Sie diese auf der Liste aus. 1-3 Modifizieren Sie das Programm SAPBC425_FLIGHT##. 1-3-1 ndern Sie das Layout des Dynpro 0100: Fgen Sie einen Rahmen um die drei Eingabefelder ein. Legen Sie eine Drucktaste an und ordnen Sie ihr den Funktionscode MORE zu. 1-4 Modifizieren Sie das Datenelement S_CARRID##. 1-4-1 ndern Sie die Feldbezeichner in: kurz: "Flugges" mittel: "Flugunternehmen".
SAP AG BC425 8-53

1-2

1-4-2 Modifizieren Sie die Dokumentation zu diesem Datenelement. Erfassen Sie einen aussagekrftigen Text. 1-5 berprfen Sie Ihre Modifikationen im Modification Browser.

SAP AG

BC425

8-54

bungen
Kapitel: Modifikationen Thema: Modifikationsabgleich
Am Ende dieser bungen knnen Sie: Modifikationen abgleichen

Nach dem Einspielen eines Support Packages oder eines Upgrades mssen die im System vorgenommenen Modifikationen abgeglichen werden.

1-1

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

SAP AG

BC425

8-55

bungen (optional)
Kapitel: Modifikationen Thema: SAP Note Assistant: Hinweise einpflegen
Am Ende dieser bungen knnen Sie: Hinweise mit Hilfe des SAP Note Assistant in das SAP System einspielen Das Programm SAPBC426_## besteht aus einem Selektionsbild, auf dem Sie eine Fluggesellschaft eingeben knnen. Details des Flugs werden auf einer Liste ausgegeben. Aber die Liste ist fehlerhaft: Sie zeigt nur die Fluggesellschaft. Darber hinaus fehlen einige Drucktasten in der Drucktastenleiste. Die Fehler sind bereits in einem Hinweis korrigiert. Hinweis 4273250## fgt fehlende Informationen auf der Liste hinzu. Hinweis 4277060## fgt das fehlende Feld "Maximale Belegung" in die Liste ein. Korrigieren Sie die Fehler, indem Sie die relevanten Hinweise in das System einspielen. 1-1 Rufen Sie den SAP Note Assistant auf. 1-1-1 Machen Sie sich mit dem User Interface vertraut. 1-1-2 Wofr stehen die Ikonen? 1-1-3 ndern Sie den Bearbeitungsstatus der zu Ihrer Gruppe ## gehrenden Hinweise auf "In Bearbeitung". 1-1-4 Lesen Sie Hinweis 4273250## sorgfltig. 1-2 Untersuchen Sie, ob der Hinweis die von Ihnen entdeckten Fehler korrigiert. 1-2-1 Rekonstruieren Sie den Fehler im System. Starten Sie dazu das Programm SAPBC426_##. 1-2-2 Ist der Hinweis fr Ihr System gltig? Schauen Sie dazu in der Korrekturanleitung nach. 1-2-3 Welche Objekte werden mit dieser Korrekturanleitung korrigiert? In welcher Modularisierungseinheit befinden sich diese? 1-2-4 An welchen Stellen im Programm werden die Korrekturen eingefgt? Vergleichen Sie den in der Korrekturanleitung angegebenen Kontextblock mit dem Quelltext des Programms.
SAP AG BC425 8-56

1-2-5 Nachdem Sie sichergestellt haben, dass der Hinweis die Programmfehler korrigiert, knnen Sie ihn implementieren. Legen Sie dazu einen neuen nderungsauftrag an. 1-3 In einem Dialogfenster werden alle Objekte angezeigt, die mit dem Hinweis korrigiert werden. 1-3-1 Welche Bedeutung haben die Ampelsymbole? 1-3-2 Lassen Sie sich die nderungen im Splitscreen-Editor anzeigen. 1-3-3 Stellen Sie sicher, dass die korrigierten Objekte keine Syntaxfehler beinhalten. 1-3-4 Fahren Sie mit der Implementierung fort. 1-4 Nachdem Sie die Korrekturen implementiert haben: Testen Sie das Programm SAPBC426_## und stellen Sie fest, ob die ursprnglichen Fehler behoben sind. Deimplementieren Sie Hinweis 4273250## 1-5-1 Besttigen Sie das Deimplementieren. 1-5-2 Welchen Implementierungsstatus hat der Hinweis in Ihrem Arbeitsvorrat nach der Deimplementierung? 1-5-3 berprfen Sie, ob das Programm in seiner Ursprungsversion luft. 1-6 Implementieren Sie Hinweis 4277060##. 1-6-1 Lesen Sie den Hinweis sorgfltig. Stellen Sie sicher, dass der Hinweis die von Ihnen entdeckten Fehler behebt. 1-6-2 Ist der Hinweis fr Ihr System gltig? 1-6-3 Welche Voraussetzungen gelten fr diesen Hinweis? Diese finden Sie im Kopf der Korrekturanleitung. 1-6-4 Welche Objekte werden mit der Korrekturanleitung korrigiert? 1-6-5 Nachdem Sie sichergestellt haben, dass der Hinweis die Programmfehler korrigiert, knnen Sie ihn implementieren. 1-6-6 In einem Dialogfenster wird Ihnen die Hinweis-Queue angezeigt. Lesen Sie vorausgesetzten Hinweise und stellen Sie sicher, dass die Fehler korrigiert werden. 1-7 Wurden die Fehlerkorrekturen korrekt durchgefhrt? 1-7-1 Fhren Sie das Programm SAPBC426_## aus. 1-7-2 Welche Schritte sind im dem Protokoll des Note Assistant enthalten? Fgen Sie Ihre Kommentare hinzu. 1-7-3 Rufen Sie den Modification Browser auf. Hier sehen Sie alle durch Hinweiskorrekturen korrigierten Objekte. Informieren Sie sich in der Versionsverwaltung ber die von Ihnen durchgefhrten nderungen.

1-5

SAP AG

BC425

8-57

1-8

Nachdem Sie sichergestellt haben, dass Sie alle Fehler korrigiert haben, ndern Sie den Bearbeitungsstatus der Hinweise, die Sie bearbeitet haben, auf "Erledigt". Wo finden Sie die Hinweise jetzt? Geben Sie Ihren nderungsauftrag frei.

1-9

SAP AG

BC425

8-58

bungen (optional)
Kapitel: Modifikationen Thema: SAP Note Assistant: Modifizieren
Am Ende dieser bungen knnen Sie: Programme modifizieren berschriften modifizieren Dynpros modifizieren Das Programm SAPBC426_## bietet nicht alle Optionen, die in Ihrem Unternehmen bentigt werden. Neben den angezeigten Daten will Ihr Unternehmen auch die belegten Pltze neben der maximalen Belegung sehen. Darum mssen Sie ein weiteres Feld in die Liste aufnehmen und die entsprechende berschrift erzeugen. Bei einem Doppelklick auf eine Listenzeile erhalten Sie die Daten des entsprechenden Fluges in einem separaten Fenster. Fgen Sie das neue Feld auf der Liste hinzu. Pflegen Sie die berschrift. Erzeugen Sie zwei neue Felder auf dem AnzeigeDynpro fr die Flugdaten. Beachten Sie, dass das Programm SAPBC426_## einen Fehler enthlt: Das Anzeige-Dynpro fr die Flugdaten enthlt keien "Zurck"-Taste, um den Bildschirm zu verlassen. SAP Hinweis 4274230## bietet einen Workaround. Dieser Hinweis wird in der nchsten bung eingepflegt. 1-1 Modifizieren Sie das Programm SAPBC426_##: 1-2-1 Fgen Sie das Feld seatsocc zu der Liste hinzu. Sie finden die Ausgabe in dem Unterprogramm display_flights. 1-2-2 Sichern Sie Ihre Modifikation. Prfen Sie das Programm. 1-2 Modifizieren Sie die Listenberschrift. 1-2-1 Fgen Sie in der berschrift den Text "Belegte Pltze" hinzu. 1-2-2 Sichern Sie die Modifikationen. Prfen Sie das Programm. 1-3 Modifizieren Sie ein Dynpro. 1-3-1 Das Dynpro, auf dem die Flugdaten angezeigt werden, ist Teil des Programms SAPMBC425_##. Starten Sie den Object Navigator zum Bearbeiten dieses Programms. 1-3-2 ndern Sie Dynpro 100: Fgen Sie das Feld fr die belegten Pltze hinzu (Struktur SDYN_CONN00).
SAP AG BC425 8-59

1-3-3 Sichern Sie Ihre Modifikationen und aktivieren Sie das Dynpro. 1-3-4 Starten Sie das Programm und berprfen Sie, ob die von Ihnen hinzugefgten Felder auf dem Dynpro erscheinen. 1-3-5 berprfen Sie im Modification Browser, ob Ihre Modifikationen korrekt aufgezeichnet wurden. 1-4 Geben Sie Ihren nderungsauftrag frei.

SAP AG

BC425

8-60

bungen (optional)
Kapitel: Modifikationen Thema: SAP Note Assistant: Hinweise einpflegen II
Am Ende dieser bungen knnen Sie: Hinweise halbautomatisch einpflegen Korrekturen mit dem Split-screen Editor des Note Assistant einpflegen. Wenn Sie mehr als einen Flug auf der Ergebnisliste des Programms SAPBC426_## auswhlen und "Buchungsliste" whlen, erscheint eine Liste von Buchungen. Bedingt durch einen Programmfehler werden allerdings keine Buchungen angezeigt. Bei Doppelklick auf eine Zeile der Liste erscheint ein Dynpro mit Flugdaten. Hier fehlt die "Zurck"-Taste. Korrigieren Sie die Fehler durch Einpflegen eines Hinweises. 1-1 Lassen Sie sich Hinweis 4274230## anzeigen und lesen ihn sorgfltig. Werden die von Ihnen entdeckten Fehler durch den Hinweis korrigiert? 1-1-1 Stellen Sie den Fehler im System nach. 1-1-2 Welche Objekte werden durch den Hinweis korrigiert? 1-2 Nachdem Sie sichergestellt haben, dass die Hinweiskorrekturen die Fehler korrigiert, knnen Sie den Hinweis implementieren. 1-2-1 Ein Dialogfenster mit den zu korrigierenden Objekten erscheint. Was bedeutet das gelbe Ampelsymbol? Wie fahren Sie fort? 1-2-2 Lassen Sie sich die nderungen im Split-screen Editor anzeigen. Verwenden Sie den Editor, um manuell Blcke einzufgen. In der OnlineHilfe zum Split-screen Editor erhalten Sie weitere Bedienhinweise. 1-2-3 Fgen Sie den einzufgenden Block an der richtigen Stelle ein. 1-2-4 Ist das Programm syntaktisch korrekt? Fahren Sie mit dem Implementieren fort. 1-2-5 Da Sie manuelle nderungen vorgenommen haben, erscheint ein zustzliches Dialogfenster zum Besttigen, dass der Hinweis komplett implementiert wurde. Wozu ist das notwendig? 1-3 berprfen Sie die Protokolle fr die Hinweise. Welche Unterschiede gibt es zwischen der Implementierung der Hinweise von bung 1 und bung 3? Testen Sie das Programm. Sind die Fehler nun beseitigt?
BC425 8-61

1-4
SAP AG

1-5

Nachdem Sie sichergestellt haben, dass alle Fehler korrigiert sind, ndern Sie den Bearbeitungsstatus des Hinweises auf "Erledigt". Geben Sie Ihren nderungsauftrag frei.

1-6

SAP AG

BC425

8-62

bungen (optional)
Kapitel: Modifikationen Thema: Modifikationsabgleich
Am Ende dieser bungen knnen Sie: Modifikationen nach dem Einspielen von Support Packages abgleichen Sie haben Hinweise als Vorabkorrekturen in Ihr System eingespielt. Auch haben Sie eigene Modifikationen vorgenommen. Hinweise sind immer auch in Support Packages enthalten und werden als Teil derselben ausgeliefert. Wenn Sie ein Support Package einspielen, werden mglicherweise ein Teil der Hinweiskorrekturen und Modifikationen berschrieben. Darum mssen Sie einen Modifikationsabgleich durchfhren. 1-1 Starten Sie den Modifikationsabgleich ber SAP Men o ABAP Workbench o Hilfsmittel o Wartung o Upgrade Utilities o Abgleich Programme oder Transaktion SPAU. 1-1-1 Geben Sie Ihren Benutzernamen in das Feld "letzter nderer" ein. Fhren Sie das Programm aus. 1-1-2 Schauen Sie sich die Objekte in den verschiedenen Kategorien an. Welche Bedeutung haben die Ikonen? 1-2 Gleichen Sie die Modifikationen ab. Gehen Sie dabei von oben nach unten vor: 1-2-1 Beginnen Sie mit den Objekten in der Kategorie "Hinweiskorrekturen". 1-2-2 Falls der Abgleichmodus nicht bestimmt wurde, starten Sie die Berechnung durch Doppelklick auf das Fragezeichen neu. 1-2-3 Legen Sie bei Bedarf einen neuen nderungsauftrag an. 1-2-4 Fahren Sie mit der Kategorie "Mit Modifikationsassistent" fort. 1-2-5 Bearbeiten Sie zum Schluss die Kategorie "Ohne Modifikationsassistent". 1-3 Nachdem Sie alle Objekte abgeglichen haben, geben Sie Ihren nderungsauftrag frei.

SAP AG

BC425

8-63

Lsungen
Kapitel: Modifikationen Thema: Modifikationen durchfhren
1-1 1-2 Modifizieren von Objekten des R/3. Verwenden Sie den Modifikations-Assistenten. Modifizieren des Programms SAPBC425_BOOKING_##. 1-2-1 Die berschrift knnen sie entweder direkt von der Liste ausgehend (System Liste Listberschrift) oder aus dem Editor heraus ndern. 1-2-2 Sie knnen eine neue Variable direkt im SAP-Programm anlegen. Verwenden Sie die Einfge-Funktion des Modifikations-Assistenten. Idealerweise halten Sie die nderungen lokal im Unterprogramm data_output. Geben Sie den Zhler mit aus. Alternativ knnen Sie diese Funktionalitt auch in der Erweiterung implementieren, was keine Modifikation verursachen wrde. 1-2-3 Lesen von zustzlichen Feldern LUGGWEIGHT und WUNIT der Tabelle SBOOK und Ausgabe derselben auf der Liste: Erweitern Sie das SELECT-Statement um diese beiden Felder. Geben Sie die Felder im Unterprogramm data_output aus. 1-3 Modifizieren des Programms SAPBC425_FLIGHT##. 1-3-1 Zum ndern des Layouts des Dynpro 0100 verwenden Sie den ScreenPainter. 1-4 Modifizieren des Datenelements S_CARRID##. 1-4-1 Rufen Sie die Pflegetransaktion fr Datenelemente auf. Stellen sie den Cursor auf das entsprechende Objekt und whlen Sie die Modifikationsikone. In dem folgenden Dialogfenster knnen Sie neuen Text eingeben. 1-4-2 Whlen Sie die Drucktaste "Dokumentation" und erfassen Sie neuen Text. 1-5 Zum berprfen der Modifikation whlen Sie den Modification Browser (Transaktion SE95). Schrnken Sie die Selektion ber den Benutzernamen oder ber den nderungsauftrag/Aufgabe ein.

SAP AG

BC425

8-64

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

SAP AG

BC425

8-65

Lsungen
Kapitel: Modifikationen Thema: SAP Note Assistant: Hinweise einpflegen
1-1 Rufen Sie den SAP Note Assistant auf. Geben Sie dazu den Transaktionscode SNOTE in das Eingabefeld ein. 1-1-1 Machen Sie sich mit dem User Interface vertraut. Untersuchen Sie dazu die Meneintrge. 1-2-2 Wofr stehen die Ikonen? Unter Hilfsmittel o Farblegende erhalten Sie nhere Informationen. 1-2-3 ndern Sie den Bearbeitungsstatus der zu Ihrer Gruppe ## gehrenden Hinweise auf "In Bearbeitung". Dazu stellen Sie den Cursor auf den Hinweis und whlen Hinweis o Bearbeitungsstatus setzen. 1-2-4 Lesen Sie Hinweis 4273250## sorgfltig. Dazu stellen Sie den Cursor auf den Hinweis und whlen Hinweis o Hinweis anzeigen. 1-3 Untersuchen Sie, ob der Hinweis die von Ihnen entdeckten Fehler korrigiert. Diese Information finden Sie im Hinweistext. 1-2-6 Rekonstruieren Sie den Fehler im System. Starten Sie dazu das Programm SAPBC426_##, z.B. ber die Transaktion SA38. 1-2-7 Schauen Sie in der Korrekturanleitung nach, fr welche Release-Stnde und Support Package Levels der Hinweis gltig ist. 1-2-8 Welche Objekte mit dieser Korrekturanleitung korrigiert werden und in welcher Modularisierungseinheit sich diese befinden, entnehmen Sie der Korrekturanleitung am Ende des Hinweises. 1-2-9 Um herauszufinden, an welchen Stellen im Programm die Korrekturen eingefgt werden, vergleichen Sie den in der Korrekturanleitung angegebenen Kontextblock mit dem Quelltext des Programms. 1-2-10 Sie starten die Implementierung des Hinweises, indem Sie den Cursor auf die Hinweisnummer stellen. Danach whlen Sie Hinweis o Hinweis einbauen. Legen Sie einen neuen nderungsauftrag an, wenn das System Sie auffordert, einen nderungsauftrag einzugeben. 1-3 In einem Dialogfenster werden nun alle Objekte angezeigt, die mit dem Hinweis korrigiert werden. 1-3-5 Die Bedeutung der Ampelsymbole: Grne Ampel: Die Korrekturen knnen unverndert eingebaut werden. Gelbe Ampel: Die Korrekturen knnen eingeschrnkt eingebaut werden. Bevor Sie den Einbau besttigen, sollten Sie die Korrekturen anpassen, um
SAP AG BC425 8-66

eine korrekte bernahme der Objektnderungen zu gewhrleisten. Wenn Sie auf den Objektnamen oder auf das Ampelsymbol klicken, gelangen Sie in den Splitscreen-Editor, in dem Sie den Quelltext editieren knnen. Rote Ampel: Die Objektnderungen knnen nicht bernommen werden. 1-3-6 Lassen Sie sich die nderungen im Splitscreen-Editor anzeigen, indem Sie das Ampelsymbol klicken. 1-3-7 Stellen Sie sicher, dass die korrigierten Objekte keine Syntaxfehler beinhalten, indem Sie die "Syntaxprfung der Rahmenprogramme" durchfhren. 1-3-8 Fahren Sie mit der Implementierung fort. 1-4 Nachdem Sie die Korrekturen implementiert haben: Testen Sie das Programm SAPBC426_## und stellen Sie fest, ob die ursprnglichen Fehler behoben sind. Fhren Sie dazu das Programm nochmals aus. Deimplementieren Sie Hinweis 4273250##. Whlen Sie dazu Hinweis o Hinweiseinbau zurcknehmen 1-5-4 Besttigen Sie das Deimplementieren. 1-5-5 Der Hinweis hat den Status "Einbaubar" sowie "In Bearbeitung". 1-5-6 Starten Sie das Programm SAPBC426_## erneut. 1-6 Implementieren Sie Hinweis 4277060## analog zur obigen Vorgehensweise. 1-6-7 Lesen Sie den Hinweis sorgfltig. Stellen Sie sicher, dass der Hinweis die von Ihnen entdeckten Fehler behebt. 1-6-8 Die Gltigkeit des Hinweises ist im Kopf der Korrekturanleitung angegeben. 1-6-9 Welche Voraussetzungen fr diesen Hinweis gelten, finden Sie im Kopf der Korrekturanleitung. 1-6-10 Welche Objekte mit der Korrekturanleitung korrigiert werden, finden Sie im Kopf der Korrekturanleitung. 1-6-11 Nachdem Sie sichergestellt haben, dass der Hinweis die Programmfehler korrigiert, knnen Sie ihn wie oben implementieren. 1-6-12 In einem Dialogfenster wird Ihnen die Hinweis-Queue angezeigt. Nachdem Sie die vorausgesetzten Hinweise gelesen haben, knnen Sie mit dem Einbau fortfahren. 1-7 Um zu analysieren, ob die Fehlerkorrekturen korrekt durchgefhrt wurden, starten Sie das Programm. 1-7-4 Fhren Sie das Programm SAPBC426_## aus. 1-7-5 ber Springen o Protokoll lassen Sie sich das Einbauprotokoll anzeigen lassen. Ihre Kommentare fgen Sie ber Notiz o Anlegen hinzu. 1-7-6 Rufen Sie den Modification Browser ber Umfeld o Modification Browser auf. Hier sehen Sie alle durch Hinweiskorrekturen korrigierten Objekte. Die Versionsverwaltung erreichen Sie ber Hilfsmittel o Versionen.
SAP AG BC425 8-67

1-5

1-8

ndern Sie den Bearbeitungsstatus der Hinweise ber Hinweis o Bearbeitungsstatus setzen. Der Hinweis verschwindet aus der Liste und kann ber den Hinweisbrowser angezeigt werden. Geben Sie Ihren nderungsauftrag im Transport Organizer (Transaktion SE09) frei.

1-9

SAP AG

BC425

8-68

Lsungen
Kapitel: Modifikationen Thema: SAP Note Assistant: Modifizieren
1-2 Modifizieren Sie das Programm SAPBC426_## wie folgt: 1-2-3 Fgen Sie das Feld seatsocc zu der Liste hinzu. Modifizieren Sie das Unterprogramm display_flights.
FORM display_flights. LOOP AT it_sflight INTO wa_sflight. WRITE: / mark AS CHECKBOX INPUT ON, wa_sflight-carrid, wa_sflight-connid, wa_sflight-fldate, wa_sflight-price CURRENCY wa_sflight-currency, wa_sflight-currency, REPLACE T70K904063 wa_sflight-seatsmax. wa_sflight-seatsmax, wa_sflight-seatsocc. REPLACE

*{ *\

*}

ENDLOOP. ENDFORM. " DISPLAY_FLIGHTS

1-2-4 Sichern Sie Ihre Modifikation. Prfen Sie das Programm. 1-2 Modifizieren Sie die Listenberschrift. 1-2-3 Pflegen Sie die berschrift, indem Sie auf der Liste System o Liste o Listberschrift whlen. 1-2-4 Sichern Sie die Modifikationen. Prfen Sie das Programm. 1-3 Modifizieren Sie ein Dynpro. 1-4-1 Das Dynpro, auf dem die Flugdaten angezeigt werden, ist Teil des Programms SAPMBC425_##. Starten Sie den Object Navigator zum Bearbeiten dieses Programms. 1-4-2 ndern Sie Dynpro 100: Fgen Sie das Feld fr die belegten Pltze hinzu (Struktur SDYN_CONN00, Feld SEATSOCC). 1-4-3 Sichern Sie Ihre Modifikationen und aktivieren Sie das Dynpro.
SAP AG BC425 8-69

1-4-4 Starten Sie das Programm und berprfen Sie, ob die von Ihnen hinzugefgten Felder auf dem Dynpro erscheinen. 1-4-5 Starten Sie den Modification Browser aus dem Object Navigator ber Umfeld o Modification Browser. Auf dem Selektionsbild geben Sie als letzen nderer Ihren Benutzernamen ein. 1-4 Geben Sie Ihren nderungsauftrag im Transport Organizer frei.

SAP AG

BC425

8-70

Lsungen
Kapitel: Modifikationen Thema: SAP Note Assistant: Hinweise einpflegen II
1-1 Lassen Sie sich Hinweis 4274230## wie oben beschrieben anzeigen und lesen ihn sorgfltig. Die Fehler werden durch den Hinweis korrigiert. 1-1-3 Stellen Sie den Fehler im System nach, indem Sie das Programm SAPBC425_## starten. 1-1-4 Welche Objekte durch den Hinweis korrigiert werden, entnehmen Sie der Korrekturanleitung. Sie finden diese am Ende des Hinweistextes. 1-2 Nachdem Sie sichergestellt haben, dass die Hinweiskorrekturen die Fehler korrigiert, knnen Sie den Hinweis implementieren. 1-2-6 Ein Dialogfenster mit den zu korrigierenden Objekten erscheint. Das gelbe Ampelsymbol bedeutet, dass Teile nicht automatisch eingebaut werden knnen. Klicken Sie auf das Ampelsymbol, um in den Split-screen Editor zu gelangen. 1-2-7 Stellen Sie den Cursor auf die Kopfzeile des einzufgenden Blocks in der rechten Bildschirmhlfte. Whlen Sie "Markieren". Whlen Sie "Kopieren in Puffer". 1-2-8 Stellen Sie den Cursor auf die Stelle in der linken Bildschirmhlfte, wo der Block eingefgt werden soll. Whlen Sie "Einsetzen Puffer". Whlen Sie "bernehmen". 1-2-9 Zurck auf dem Dialogfenster: Prfen Sie die Rahmenprogramme durch Auswahl der entsprechenden Drucktaste. Das Programm sollte syntaktisch korrekt sein. Fahren Sie mit dem Implementieren fort, indem Sie das Fenster besttigen. 1-2-10 Da Sie manuelle nderungen vorgenommen haben, erscheint ein zustzliches Dialogfenster zum Besttigen, dass der Hinweis komplett implementiert wurde. Besttigen Sie das Dialogfenster mit "Ja". Falls Sie "Nein" whlen, wird der Hinweis als inkonsistent eingebaut gekennzeichnet. 1-3 berprfen Sie die Protokolle fr die Hinweise: Stellen Sie den Cursor auf den Hinweis und whlen Sie Springen Protokoll. Der manuelle Einbau wird protokolliert. Testen Sie das Programm. Die Fehler sollten nun beseitigt sein. ndern Sie den Bearbeitungsstatus des Hinweises auf "Erledigt". Geben Sie Ihren nderungsauftrag im Transport Organizer frei.
BC425 8-71

1-4 1-5 1-6


SAP AG

Lsungen
Kapitel: Modifikationen Thema: Modifikationsabgleich
1-1 Starten Sie den Modifikationsabgleich ber SAP Men o ABAP Workbench o Hilfsmittel o Wartung o Upgrade Utilities o Abgleich Programme oder Transaktion SPAU. 1-1-1 Geben Sie Ihren Benutzernamen in das Feld "letzter nderer" ein. Fhren Sie das Programm aus. 1-1-2 Schauen Sie sich die Objekte in den verschiedenen Kategorien an. Die Bedeutung der Ikonen entnehmen Sie bitte der Dokumentation des Modifikationsabgleichs. 1-2 Gleichen Sie die Modifikationen ab. Gehen Sie dabei von oben nach unten vor: 1-2-6 Beginnen Sie mit den Objekten in der Kategorie "Hinweiskorrekturen". 1-2-7 Falls der Abgleichmodus nicht bestimmt wurde, starten Sie die Berechnung durch Doppelklick auf das Fragezeichen neu. 1-2-8 Legen Sie bei Bedarf einen neuen nderungsauftrag an. 1-2-9 Fahren Sie mit der Kategorie "Mit Modifikationsassistent" fort. 1-2-10 Bearbeiten Sie zum Schluss die Kategorie "Ohne Modifikationsassistent". 1-3 Nachdem Sie alle Objekte abgeglichen haben, geben Sie Ihren nderungsauftrag im Transport Organizer frei.

SAP AG

BC425

8-72

Zusammenfassung

Inhalt:
z Zusammenfassung z Bewertung der verschiedenen Erweiterungstechniken

SAP AG 2002

SAP AG

BC425

9-1

Zusammenfassung: Lernziele des Kapitels

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

SAP AG 2002

SAP AG

BC425

9-2

Vermeidung des Abgleichs z SAP Erweiterungskonzept:


z keine nderung von SAP Objekten z kein Abgleich whrend des Upgrades

z Einspielen von Support Packages via Online Correction Services (OCS)

z Rckkehr auf den SAP Standard

Versionsdatenbank und Eintrge im WBO und Transportsystem bleiben erhalten

SAP AG 1999

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

SAP AG

BC425

9-3

Tabellenerweiterungen
ABAP Dictionary

Tabellendefinition Feld 1 Feld 2 Feld 3

YYFeld ZZFeld Append-Struktur YYFeld ZZFeld CI_Include

Tabellendefinition Feld 1 Feld 2 Feld 3 CI_Incl

Datenbank

Feld 1 Feld 2 Feld 3 YYFeld ZZFeld

SAP AG 1999

SAP bietet Ihnen zwei Mglichkeiten, Tabellen und Strukturen um Felder zu erweitern: y Append-Strukturen y Customizing-Includes ("CI-Includes")

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

SAP AG

BC425

9-4

Funktionsbaustein-Exit: Ablaufdiagramm
Anwendungsprogramm X-Funktionsgruppe Exit-Funktionsbaustein EXIT_<prog_name>_001 CALL CUSTOMER-FUNCTION Include im Kundennamensraum

SAP AG 1999

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

SAP AG

BC425

9-5

BTE Funktionsweise: Ablaufdiagramm


Anwendungsprogramm Aktive Implementierung

Funktionsbaustein OPEN_FI_PERFORM_<nr>

BTE: Funktionsbaustein im Kundennamensraum

CALL FUNCTION CALL FUNCTION

SAP AG 1999

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

SAP AG

BC425

9-6

Business Add Ins: Ablaufdiagramm


Anwendungsprog. Service-Klasse CL_EXITHANDLER

Abarbeiten aktiver Implementierungen

Instanz von BAdI-Klasse <badi-class>

BAdI: Instanz von Implement. Implement. Klasse

SAP AG 2002

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

SAP AG

BC425

9-7

berblick Men-Exits

SAP
Menu 1 Menu 2 Menu 3 Menu 1

Kunde
Menu 2 Menu 3

Function Function11 Function Function22 Function Function33

Function Function11 Function Function22 Function Function33

Kundenfunktion

SAP AG 1999

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

SAP AG

BC425

9-8

BAdI: Funktionscodes - berblick

SAP
Menu 1 Menu 2 Menu 3 Menu 1

Kunde
Menu 2 Menu 3

Function Function11 Function Function22 Function Function33

Function Function11 Function Function22 Function Function33

Kundenfunktion

SAP AG 1999

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

SAP AG

BC425

9-9

berblick Dynpro-Exit

SAP

Kunde

SAP R/3 Feld 1 Feld 2

SAP R/3 Feld 1 Feld 2 Feld X Feld Y Feld Z

SAP AG 1999

Dynpro-Exits erlauben en ihnen, vom SAP-Anwendungsprogrammierer reservierte Bereiche (Subscreenbereiche) eines Hauptdynpros selbst zu gestalten. In diesen Bereichen knnen weitergehende Informationen angezeigt oder Daten erfat werden. Die hierzu ntigen Felder werden von ihnen auf einem kundeneigenen Dynpro (Subscreen) gestaltet.

SAP AG

BC425

9-10

BAdI Screen-Erweiterung: Prinzip


SAP AnwProg
SET INSTANCE

Badi-Klasse <badi-class>

Implement. Programm (Funktionsgruppe)


GET INSTANCE GET DATA PBO.

PBO.

PUT DATA

abcd
PAI. GET DATA

Statisches Attribut: Attribut: DynproDynpro-Instanz


PUT DATA PAI.

PUT DATA

GET DATA

Implement. Klasse Instanz-Attribute: Instanz-Attribute: DynproDynpro-Daten


SAP AG 2002

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

SAP AG

BC425

9-11

Modifizieren vs. Kopieren

Anbindung an SAP

Projektsicherheit

Modifizieren

Kopieren

SAP AG 1999

Modifizieren hat gegenber Kopieren den Vorteil, da Ihr produktives Repository-Objekt nicht den Anschlu an den SAP-Standard verliert. Kopieren auf der anderen Seite hat den Vorteil, da kein Modifikationsabgleich in den folgenden Upgrades fr Ihr produktives Repository-Objekt auftreten wird. Sie werden das Kopieren dem Modifizieren vorziehen, wenn y Sie im SAP-Programm an vielen Stellen nderungen vornehmen mssen y Ihre Anforderungen auch in zuknftigen R/3-Releases nicht mit dem Standard bereinstimmen werden.

Beachten Sie beim Kopieren das Umfeld von Repository-Objekten. So mssen Sie die Entscheidung, ob Sie modifizieren oder kopieren, nicht nur fr das Rahmenprogramm, sondern auch fr alle Includes des Rahmenprogramms beantworten. Gleiches gilt Funktionsgruppen bzw. Funktionsbausteine.

SAP AG

BC425

9-12

Bewertung von ABAP Entwicklungsprojekten


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

SAP AG 1999

ABAP-Entwicklungsprojekte knnen nach folgenden Kriterien bewertet werden: y Wie aufwendig ist die Implementierung, gemessen in Personentagen (Konzepterstellung, Realisierung, Test)? y Welche Folgen hat das ABAP-Entwicklungsprojekt fr y die Performance des Produktivbetriebs y den Aufwand beim Upgrade?

Rufen Sie SAP-Objekte in Ihrem Repository-Objekt, so knnen Sie Ihren Implementierungsaufwand erheblich reduzieren. nderungen an Repository-Objekten durch SAP knnen aber nach dem Upgrade zu Nacharbeit fhren. Beispiel: SAP ndert die Oberflchengestaltung eines Dynpros, fr das Sie ein Batch-Input-Programm geschrieben haben.

SAP AG

BC425

9-13

Namenskonventionen fr Repository-Objekte
Zentrale

S AP
Filiale
zentral SAP Standard Software

YA Anwendungsbereich ZA

Kundennamensraum (gem Hinweis 16466)

dezentral

V_TRESN
Namensraumreservierung durch Workbench Organizer

SAP Partner

Entwicklung

/xxxx/
Namensraumreservierung durch SAPNet R/3 Frontend

Complementary Software
SAP AG 2002

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

SAP AG

BC425

9-14

Zusammenfassung: Zusammenfassung des Kapitels

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

SAP AG 2002

SAP AG

BC425

9-15

Anhang

Inhalt:
z Zustzliche Folien z Menpfade

SAP AG 1999

SAP AG

BC425

10-1

Feld-Exits: Lernziele

Nach Behandlung dieses Themas knnen Sie: z Feld-Exits fr Prfungen auf ein Dynpro-Feld verwenden

SAP AG 2002

SAP AG

BC425

10-2

Globale Erweiterungen

SAP

Kunde

Datenelement definieren Datenelement dokumentieren

Globale Erweiterungen definieren

Feld-Exit anlegen

SAP AG 1999

Der SAP-Anwendungsprogrammierer legt bei der Definition eines Datenelements Schlsselwrter in verschiedenen Lngen und einen Kurztext fest. In der Projektverwaltung knnen Sie Feld-Exits anlegen. Diese werden durchlaufen, wenn ein Dynpro verlassen wird, das ein Feld enthlt, welches sich auf ein Datenelement bezieht, das wiederum diesen Feld-Exit enthlt.

SAP AG

BC425

10-3

Feld-Exits
ABAP Dictionary
Abflugstadt___ Ankunftstadt__

? Prfung FUNCTION FIELD_EXIT_... * IMPORTING INPUT * * EXPORTING OUTPUT * **************************** MESSAGE E035(bc425). ENDFUNCTION.

FeldformatPrfung

FELD-EXIT

SAP AG 1999

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

SAP AG

BC425

10-4

Globale und lokale Feld-Exits


Program one

FIELD_EXIT_GLOB
Abflugstadt___

Datenelement GLOB
Program two

Ankunftstadt__

Fluggesellschaft_ Abflugstadt___ Ankunftstadt__


Program three

FIELD_EXIT_ LOC_1
Datenelement LOC

Abflugstadt___ Nichtraucher Raucher egal

FIELD_EXIT_LOC_2

SAP AG 1999

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

y Suffix (bei lokalen Feld-Exit):

SAP AG

BC425

10-5

Anlegen eines Feld-Exits


z Programm RSMODPRF starten

z Feld-Exit Anlegen
Function Builder

Funktionsbaustein__ FIELD_EXIT_<DE>
Anzeigen ndern Anlegen

Function Builder

Funktionsbaustein__ FIELD_EXIT_<DE> Import Parameter


INPUT

Export Parameter
OUTPUT
SAP AG 1999

Zum Anlegen von Feld-Exits whlen sie in der ABAP Workbench das Men Hilfsmittel. Dort finden Sie unter "Erweiterungen" den Unterpunkt "Projektverwaltung", der als Einstieg sowohl zum Bearbeiten von Feld-Exits, als auch spter zum Implementieren von Customer-Exits fungiert. Hier finden Sie unter "Springen Globale Erweiterungen Feldexits" die Transaktion zum Pflegen von Feld-Exits. Legen Sie einen Feld-Exit an ber "Feld-Exit Anlegen".

In dem nun erscheinenden modalen Dialogfenster geben sie den Namen des Datenelements an, auf das sich das von ihnen betrachtete Dynpro-Feld bezieht. Sie gelangen in den Function Builder. Das System gibt den Namen des Feld-Exits vor. ndern sie diesen Vorschlag nicht. Legen Sie den Funktionsbaustein in einer Kunden-Funktionsgruppe an. Die Schnittstelle des Funktionsbausteins ist fest vorgegeben und nicht nderbar. Der Funktionsbaustein hat einen Importparameter INPUT und den Exportparameter OUTPUT. Dem Parameter INPUT wird der Inhalt des Dynpro-Feldes zugewiesen. Beim Verlassen des Funktionsbausteins wird der Inhalt von OUTPUT in das Dynpro-Feld zurckgestellt.

SAP AG

BC425

10-6

Feld-Exit: Quelltext

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

z In Feld-Exits nicht erlaubte Anweisungen: z BREAK-POINT z CALL ..., SUBMIT z COMMIT WORK / ROLLBACK WORK z STOP, REJECT z Message I, Message W
SAP AG 1999

Dem Export-Parameter OUTPUT des Funktionsbausteins mu im Quelltext ein Wert zugewiesen werden, der zu dem Dynpro-Feld zurcktransportiert wird. Ansonsten wre das Dynpro-Feld nach Durchlaufen des Feld-Exit initial. Folgende ABAP-Anweisungen in einem Funktionsbaustein eines Feld-Exits nicht erlaubt: - CALL SCREEN, CALL DIALOG, CALL TRANSACTION, SUBMIT - COMMIT WORK, ROLLBACK WORK - COMMUNICATION RECEIVE - EXIT FROM STEP-LOOP - MESSAGE I, MESSAGE W - STOP, REJECT

Beim Debuggen eines Dynpros, auf welches sich ein Feld-Exit bezieht, wird der Feld-Exit nicht im Debugger durchlaufen. Wie jeden anderen Funktionsbaustein auch kann man allerdings einen FeldExit in der Testumgebung des Function Builder debuggen.

SAP AG

BC425

10-7

Lokaler Feld-Exit
Feld-Exits zu den Datenelementen Prog/Dynp. zuordnen Data Element Feld-Exits zu den Datenelementen Status Programm <Data Element> Dynpro 0100

<Data Element> inaktiv global Datenelement

Feld-Exit Programm-Name 1 <program_name>

Function Builder

Funktionsbaustein__ FIELD_EXIT_<DE>_1
Anzeigen ndern Anlegen

SAP AG 1999

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

SAP AG

BC425

10-8

Feld-Exit aktivieren
z Funktionsbaustein aktivieren
Function Builder

Funktionsbaustein__ FIELD_EXIT_<DE>
Anzeigen ndern Anlegen

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

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

SAP AG

BC425

10-9

Append-Suchhilfen: Lernziele

Nach Behandlung dieses Themas knnen Sie: z Append-Suchhilfen anlegen, um eigene Suchpfade zu definieren z Append-Suchhilfen anlegen, um ausgelieferte Suchpfade auszublenden

SAP AG 2002

SAP AG

BC425

10-10

Append-Suchhilfen

Append (SAP) Sammelsuchhilfe


Inkludierte Suchhilfen Inkludierte Suchhilfen

...

...

(Kunden-) AppendSuchhilfe

SAP AG 2002

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

SAP AG

BC425

10-11

Business Data Toolset: Lernziele

Nach Behandlung dieses Themas knnen Sie: z Beschreiben, welche Erweiterungsmglichkeiten das Business Data Toolset bietet

SAP AG 2002

SAP AG

BC425

10-12

Business Data Toolset (BDT)

z Definition: Toolset fr Stammdaten und einfache Bewegungsdaten z Designziele - Erweiterbarkeit - Konfigurierbarkeit - Teilbarkeit - Alternative Benutzungsoberflchen - Verwendbarkeit - Schnellere Entwicklung - Generische Objektservices

SAP AG 2002

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

SAP AG

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

SAP AG

BC425

10-14

Entwicklung: Ohne BDT

Bearbeitungstransaktionen Feldmodifikation

Datenbernahme nderungsbelegauswertungen

Service

Berechtigungen

Notizen

SAP AG 2002

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

SAP AG

BC425

10-15

Schnellere Entwicklung: Mit BDT


gs n n u eit ione b ar kt Be nsa tra

Da

te n

er n

Feldmodifikation

nderungsbel.Auswert.

Service
hti gu ng en

Be rec

n ze i t o

zentrale zentrale Pflege Pflege geringerer geringerer Entwicklungsaufwand Entwicklungsaufwand


SAP AG 2002

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

SAP AG

BC425

10-16

Verwendbarkeit bei beliebigen Objekten

Weitere...
AnwObjekt BUPA

SAP-GP

AnwObjekt

BDT
AnwObjekt ICL

SAP-GPBeziehungen
AnwObjekt BUPR

Claims Capture

AnwObjekt BKK

Bankkonto

Vertragskonto
AnwObjekt FICA

AnwObjekt RECN

IS-REVertrag

SAP AG 2002

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

SAP AG

Zeitpunkte, Ablauf
Einstiegsbild DTITL DCUAD DCUAC ISSTA Vor d. Aufruf Vor d. Ausgabe Call Subscreen Call Subscreen Nach d. Eingabe FCODE ISDAT ISDST AUTH1 Vor d. Aufruf Datenbild DTITL DCUAD DCUAC Vor d. Ausgabe Call Subscreen Call Subscreen Nach d.Eingabe FCODE A

Start

Sichern XCHNG nein

Zurck XCHNG nein

Beenden XCHNG nein

Abbrechen XCHNG nein

nderung? ja DSAVB AUTH1 DCHCK DTAKE DSAVC DSAVE

nderung? ja

nderung? ja Abbr. . A

nderung? ja

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

Wollen Sie nein sichern? ja DSAVB AUTH1 DCHCK DTAKE DSAVC DSAVE

Wollen Sie ja abbrechen? nein A

DLVE1 DLVE2 Bild 1: Zeitpunkte beim Dialog: SichernModus

Ende

SAP AG 2002

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

SAP AG

BC425

10-18

BDT-Entwicklung und Development Workbench

FunktionsFunktionsgruppe gruppe

Funktionsbausteine
ISSTA ISDAT ISDST ...
GET

Zeitpunkte je Anwendung

Programmlogik

Dynpros
0010 Erstkontakt

PBO-Modul
PBO ...

Collect

Zeitpunkte je Tabelle

...
..._PBC _.. ..._PBC_.. ..._PBO _.. ..._PBO_.. ..._PAI _.. ..._PAI_..

PAI-Modul
PAI ...
SAP AG 2002

Zeitpunkte je Sicht

...

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

SAP AG

BC425

10-19

Anhang bungen
Kapitel: Anhang Thema: Feld-Exits
Am Ende dieser bungen knnen Sie: Einen Feld-Exit implementieren, mit dessen Hilfe Sie zustzliche Prfungen auf einem Dynpro-Feld durchfhren knnen. Die von Ihren Anwendern zur Anzeige von Flgen genutzte Transaktion BC425_## ermglicht den Zugriff auf die Flge aller Fluggesellschaften. Die Kundenbetreuer sollen jedoch nur auf die Fluggesellschaften Zugriff haben, fr die sie explizit die Berechtigung besitzen. Wie heit das Programm zur oben genannten Transaktion. 1-1-1 Welchen Namen hat das Datenelement, auf das sich das Eingabefeld fr die Fluggesellschaft bezieht? 1-1-2 Sind die Voraussetzungen gegeben, damit Sie an dieses Dynpro-Feld einen Feld-Exit knpfen knnen? 1-2 Wie legen Sie einen Feld-Exit an? 1-2-1 Legen Sie einen Feld-Exit zu dem unter 1-1 ermittelten Dynpro-Feld an. Beziehen Sie sich auf das entsprechende Datenelement. 1-2-2 Sie gelangen in den Function Builder. Knnen Sie die Schnittstelle des Funktionsbausteins verndern? Falls Sie eine Funktionsgruppe bentigen, legen Sie eine an mit dem Namen ZBC425_##. 1-2-3 Was mssen Sie im Quelltext unbedingt codieren? Programmieren Sie eine Berechtigungsprfung. Wie knnen Sie eine Berechtigungsprfung durchfhren? 1-2-4 Bei negativem Prfungsausgang senden Sie eine entsprechende Nachricht. Sie knnen diese selbst anlegen (Nachrichtenklasse ZBC425_##); oder Sie verwenden Nachricht 010 aus der Nachrichtenklasse BC425. 1-2-5 Aktivieren Sie den Funktionsbaustein und den Feld-Exit.

SAP AG

BC425

10-20

1-3

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

1-4

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

SAP AG

BC425

10-21

Lsungen
Kapitel: Anhang Thema: Feld-Exits
Einen Feld-Exit implementieren, mit dessen Hilfe Sie zustzliche Prfungen auf einem Dynpro-Feld durchfhren knnen.

Die von Ihren Anwendern zur Anzeige von Flgen genutzte Transaktion BC425_## ermglicht den Zugriff auf die Flge aller Fluggesellschaften. Die Kundenbetreuer sollen jedoch nur auf die Fluggesellschaften Zugriff haben, fr die sie explizit die Berechtigung besitzen. 1-1 Der Name des Programms zur Transaktion BC425_## lautet SAPBC425_FLIGHT##. Sie erhalten diese Information ber den Menpfad System Status. 1-1-1 Der Name des Datenelements, auf das sich das Eingabefeld fr die Fluggesellschaft bezieht, lautet S_CARRID##. Sie erhalten ihn, indem Sie auf dem entsprechenden Dynpro den Cursor auf das Feld "Fluggesellschaft" stellen. Dort whlen Sie F1, auf dem folgenden Dialogfenster Technische Info. 1-1-2 Um ganz sicher zu gehen, da die Voraussetzungen erfllt sind, verzweigen Sie in den Screen-Painter fr Dynpro 0100. Dort sehen Sie in den allgemeinen Attributen der Elementliste, da fr das Feld SFLIGHT00CARRID das Attribut "Dictionary" gesetzt ist. 1-2 Einen Feld-Exit legen Sie ber das Programm RSMODPRF an Starten Sie das Programm. Lassen sie das Selektionsbild initial. Ausfhren fhrt Sie auf die Liste der existierenden Feld-Exits. 1-2-1 Whlen Sie hier im Men Feldexit Anlegen. Geben Sie im nun erscheinenden Dialogfenster als Datenelement-Name S_CARRID ein und whlen Sie "Weiter". Sie gelangen in den Function Builder.

1-2-2 Sie gelangen in den Function Builder. Der Name des Funktionsbausteins ist im Eingabefeld bereits vorgegeben. Mit "Anlegen" wird der Funktionsbaustein angelegt. Sie mssen den Funktionsbaustein einer Funktionsgruppe zuordnen. Legen Sie in einem zweiten Modus die Funktionsgruppe ZBC425_## an. Sie knnen die Schnittstelle des Funktionsbausteins nicht verndern?
SAP AG BC425 10-22

1-2-3 Der Quelltext sollte folgendermaen aussehen: output = input. AUTHORITY-CHECK OBJECT S_CARRID ID CARRID FIELD input ID ACTVT FIELD 03. IF sy-subrc <> 0. MESSAGE e010(bc425). ENDIF. 1-3 Aktivieren Sie den Funktionsbaustein. Gehen Sie zurck. Sie gelangen wieder in die Liste der Feld-Exits. Aktivieren Sie den Feld-Exit unter Feldexit Aktivieren.

SAP AG

BC425

10-23

Das könnte Ihnen auch gefallen