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
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
Kundenbedrfnisse durch
Standards
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
durchzufhren.
SAP AG 2002
SAP AG
BC425
1-2
modifizieren
Customer-Exits , Business Transaction Events und Business Add Ins realisieren Modifikationsassistenten durchfhren und abgleichen
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
z Transaktions varianten
4 5 6 7
z berblick
SAP AG 2002
SAP AG
BC425
1-5
Gesamtunternehmensszenario
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
SAP AG 1999
SAP AG
BC425
1-6
Inhalt:
z berblick ber die nderungsebenen z Entscheidungsdiagramm z nderungstechniken
SAP AG 1999
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
z Transaktions varianten
4 5 6 7
z berblick
SAP AG 2002
nderungsebenen
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.
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.
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.
Entwicklungssystem
Folgesystem
Kundenobjekt
Kundenobjekt
korrigiertes Original
Kopie
SAP-Objekt
SAP-Objekt
SAP-Objekt
korrigiertes Original
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.
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
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
Prozemodell
Unternehmensorganisation
Purchase requisition
Objektorientiertes Datenmodell
Vendor inquiry Vendor quotation Purchase information Shipping notification Purchase order Vendor scheduling agreement
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.
Kundenprogramme
Eigenent wicklung z Mit Aufruf von SAP Objekten z Ohne Aufruf von SAP Objekten
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
Datenbank
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
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>.
Customer-Exit
Exit-Funktionsbaustein
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.
SAP
Customer-Exit: Funktionsbaustein-Exit Aufruf Verwaltung Schnittstelle Dokumentation Business Add Ins Business Transaction Events
Kunde
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.
SAP
Menu 1 Menu 2 Menu 3 Menu 1 Menu 2
Kunde
Menu 3
Kundenfunktion
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-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.. ... ... ... * 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.
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
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
4 5 6 7
z berblick
SAP AG 2002
SAP AG
BC425
3-4
Personalisierungsebenen
Unternehmen: z Unternehmensstruktur z Geschftsprozesse
TOP-DOWN Konfiguration
Rollenspezifische Konfiguration
Ber. mens
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)
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.
SAP AG
BC425
3-6
Transaktionsvarianten: Beispiel
Program
100
Program
100
Ankunftstadt Abflugzeit
Button1
New York
TA 200 Variante
Program Buchen Info
200
Fluggesellschaft Verbindung Flugdatum
Buchen
Program
Info
z z z
SAP AG 1999
In diesem Beispiel sehen Sie zwei Dynpros einer SAP-Transaktion, die mit Hilfe einer Transaktionsvariante umgestaltet werden sollen. Dynpro 100 wird folgendermassen abgendert: Felder werden ausgeblendet; Feldattribute werden gendert; Drucktasten werden ausgeblendet. Dynpro 200 zeigt folgende nderungen: Drucktasten verschoben sowie Bild eingefgt (mit GuiXT). Auf die Verwendung von GuiXT werden wir weiter unten eingehen.
SAP AG
BC425
3-7
Transaktionsvarianten: Prinzip
Transaktions-Variante
Screen-Variante ztest_0200
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
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
100
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
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
Beenden u. Sichern
z Skript-Editor
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
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
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
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
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
Inhalt:
z Append-Strukturen z Customizing-Includes z Texterweiterungen
SAP AG 2002
SAP AG
BC425
4-1
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
z Transaktions varianten
4 5 6 7
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
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
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
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
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
Datenelemente
SAP R/3
System Hilfe
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
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
Kunde
Release x.x
SAP R/3 System Hilfe
Schlsselwort Kunde
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
Kunde
Globale Erweiterungen Datenelemente
Dokumentation
SAP R/3
System Hilfe
Kundendokumentation
SAP R/3
System Hilfe
SAP-Dokumentation:
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
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 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
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
Inhalt:
z Einfhrung z Erweiterungsverwaltung z Funktionsbaustein-Exits z Men-Exits z Dynpro-Exits
SAP AG 1999
SAP AG
BC425
5-1
Transportsystem erlutern
Erweiterungsprojekt unterscheiden
SAP AG 1999
SAP AG
BC425
5-2
z Transaktions varianten
4 5 6 7
z Customer-Exits
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
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
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
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
Exit-Funktionsbausteine
Komponenten Komponenten des des Erweiterungsprojekts Erweiterungsprojekts bearbeiten bearbeiten
Men-Eintrge Subscreen-Dynpros
Kundendokumentation: Kundendokumentation:
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
Projekt
Teilobjekte
Anlegen
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
Projekt
Teilobjekte
Anlegen
Anzeigen
ndern
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
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
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
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
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
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*
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
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
SAPLXAAA LXAAATOP
LXAAAUXX LXAAAU01
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
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
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
SAPLXAAA LXAAATOP
... ...
LXAAAUXX
Alle Funktionsbausteine
...
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
...
LXAAAUXX
...
Alle Funktionsbausteine
...
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
...
*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>
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
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
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
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 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
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
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
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
abcd
PROCESS AFTER INPUT. MODULE ... CALL CUSTOMER-SUBSCREEN abcd. MODULE ...
SAP AG 1999
An allen Stellen in der Ablaufsteuerung eines Dynpros, an denen zum PBO-Zeitpunkt der Aufruf CALL CUSTOMER-SUBSCREEN <subscreen-area> INCLUDING <X-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
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
abcd
CALL CUSTOMERSUBSCREEN... MODULE... CALL CUSTOMERFUNCTION 002 IMPORTING e_vars = 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
Projekt
Teilobjekte
Anlegen
Dynpro-Exit SAPMabbc1234_abcd_SAPLXaaa1234
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
Dynpro vorhanden?
Ja
Screen Painter
Dynprotyp
* SAPLXaaa Dynpro 0444 PROCESS BEFORE OUTPUT. MODULE a . ... PROCESS AFTER INPUT. MODULE m.
Subscreen
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
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
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
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
z Transaktions varianten
4 5 6 7
z berblick
SAP AG 2002
SAP AG
BC425
6-3
BTE: Software-Auslieferungswege
z Auslieferungswege mit Customer-Exits SAP Kunde CustomerExits
SAP
IBU
Partner
Kunde
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
z Erweiterungsform, die im Finanzwesen (FI) entwickelt wurde z Vordefinierte Schnittstellen, an denen der Verwender Erweiterungen anhngen kann z Unterscheide zwei Arten von Schnittstellen:
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
SAP-Transaktion
Schnittstellen Datenflu
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
SAP-Transaktion
Schnittstellen Datenflu
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
z Prozess-Schnittstellen
IBU
SAP-Transaktion
SAP-Transaktion
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
Funktionsbaustein OPEN_FI_PERFORM_<nr>
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
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
SAP
definieren Event
Kunde
Produkt anlegen FB ber Produkt dem Event zuordnen Funktionsbaustein
registrieren
SAMPLE_INTERFACE_<n> anlegen
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
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
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)
Key
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
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
Funktionsbaustein
SAMPLE_INTERFACE_<n>_E Z_*
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
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
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
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
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
z Transaktions varianten
4 5 6 7
z berblick
SAP AG 2002
SAP AG
BC425
7-4
Mehrfach verwendbar
Verwaltungsebene
SAP AG 1999
SAP AG
BC425
7-5
Software-Auslieferungswege
z frher SAP Kunde CustomerExits
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
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
Funktionsgruppe 1 Funktionsbaustein
Funktionsgruppe 2 Funktionsbaustein
Daten
...
Daten
...
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
n. Instanz, Klasse m 1. Instanz, Klasse m Daten Funktions- Daten baustein Daten Schnittstelle
... ... ...
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
Nach Behandlung dieses Themas knnen Sie: z Business Add Ins zur Realisierung von Programmerweiterungen einsetzen
SAP AG 2002
SAP AG
BC425
7-12
IBU
Partner
Kunde
SAP Programm
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
Eigensch.
BAdI
INTERFACE <badi-interface>. DATA: a1 ...
Generierte BAdIKlasse
Subscreens
Rufendes Programm <prog>
SAP AG 2002
In einem Business Add In sind die Komponenten der Erweiterung zusammengefasst. Ein Business Add In kann folgende Erweiterungsmglichkeiten anbieten: y Programmerweiterung: Im Business Add In sind die Schnittstellen fr die Programmerweiterungen in Form von Methoden eines Interfaces definiert. Dieses Interface wird bei der Implementierung der Erweiterung verwendet. Das SAP Programm ruft die 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
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
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
Implementierungsname Anzeigen
<impl>
ndern
Anlegen
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
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
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
Implementierungsname Anzeigen
<impl>
ndern
Anlegen
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
SAP
Menu 1 Menu 2 Menu 3 Menu 1
Kunde
Menu 2 Menu 3
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
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
Eigensch.
Programm /namespace/...
Interface
FCodes
Beschreibung
Funktionscode +xxx
Eigensch.
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
<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
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
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
Eigensch.
Programm
Interface
FCodes
Beschreibung
Funktionscode
Eigensch.
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
Eigensch.
Programm /namespace/...
Interface
FCodes
Beschreibung
Funktionscode +xxx
Eigensch.
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
Interfacename
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
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
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
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
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
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-Klasse <badi-class>
PBO.
PUT DATA
abcd
PAI. GET DATA
PUT DATA
GET DATA
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
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.
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
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
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
CL_EXITHANDLER
ABAP
exit TYPE REF TO <badi-interface>.
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
CL_EXITHANDLER
ABAP
exit TYPE REF TO <badi-interface>.
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
CL_EXITHANDLER
ABAP
exit TYPE REF TO <badi-interface>.
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
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 =..
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
CL_EXITHANDLER
ABAP
exit TYPE REF TO <badi-interface>.
MODULE... MODULE... MODULE... MODULE... CALL SUBSCREEN abcd INCLUDING prog dynnr. dynnr.
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
CL_EXITHANDLER
ABAP
exit TYPE REF TO <badi-interface>.
abcd
CALL SUBSCREEN abcd INCLUDING prog dynnr. dynnr.
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
SAP AG 2002
SAP AG
BC425
7-45
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
CL_EXITHANDLER
Dynpro
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
CL_EXITHANDLER
Dynpro
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
CL_EXITHANDLER
Dynpro
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
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
Texttabelle Texttabelle
Key
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
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
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
z Interface
z Methoden
Namen beliebig
SAP AG 1999
SAP AG
BC425
7-54
BAdI-Implementierung: Namenskonventionen
z BAdI-Implementierung
z Interface
z Methoden
z Implementierende Klasse
SAP AG 1999
SAP AG
BC425
7-55
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
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
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.
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
,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
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
4 5 6 7
z berblick
SAP AG 2002
SAP AG
BC425
8-3
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
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
Entwicklungssystem
Folgesystem
Kundenobjekt
Kundenobjekt
korrigiertes Original
Kopie
SAP-Objekt
SAP-Objekt
SAP-Objekt
korrigiertes Original
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
Nach Behandlung dieses Themas knnen Sie: z Beschreiben, was beim Durchfhren von Modifikationen zu beachten ist.
SAP AG 2002
SAP AG
BC425
8-7
Kundensystem
Objekt registrieren
System Hilfe
SAPNet R/3-Frontend
System Hilfe
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
Programm
SSCR Schlssel
Warnung
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
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
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
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
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)
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
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
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
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 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
z Screen Painter z z z z
z Layout z Ablauflogik
z Modifikationsmodus
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
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
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
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
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
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
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
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
IMG
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
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
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
z Abhngigkeiten automatisch behandeln z Mit anderen SAP Hinweisen z Mit Support Packages z Mit Modifikationen
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 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
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
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;
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
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
Laden
Protokoll
SAP AG 2002
SAP AG
BC425
8-39
Laden
0000333443 Text
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 AG 2002
SAP AG
BC425
8-41
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
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
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
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
Vergleichen
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
SPDD
SPDD
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
Release i
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
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
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
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
*{ *\
*}
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
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
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
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
Datenbank
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
Funktionsbaustein OPEN_FI_PERFORM_<nr>
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
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
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
SAP
Menu 1 Menu 2 Menu 3 Menu 1
Kunde
Menu 2 Menu 3
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 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-Klasse <badi-class>
PBO.
PUT DATA
abcd
PAI. GET DATA
PUT DATA
GET DATA
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
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
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
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
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
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
FIELD_EXIT_GLOB
Abflugstadt___
Datenelement GLOB
Program two
Ankunftstadt__
FIELD_EXIT_ LOC_1
Datenelement LOC
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
SAP AG
BC425
10-5
z Feld-Exit Anlegen
Function Builder
Funktionsbaustein__ FIELD_EXIT_<DE>
Anzeigen ndern Anlegen
Function Builder
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
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
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
...
...
(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
Nach Behandlung dieses Themas knnen Sie: z Beschreiben, welche Erweiterungsmglichkeiten das Business Data Toolset bietet
SAP AG 2002
SAP AG
BC425
10-12
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
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
Da
te n
er n
Feldmodifikation
nderungsbel.Auswert.
Service
hti gu ng en
Be rec
n ze i t o
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
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
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
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
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