Das Upgrade auf mySAP ERP 2005 und die oft damit verbundene Migration auf Unicode bewirken, dass eine Reihe von eigenentwickelten ABAP-Anwendungen und Schnittstellen zu Fremdsystemen nicht mehr korrekt arbeiten. Wichtig ist, die potentiellen Probleme bereits rechtzeitig vor der Umstellung zu erkennen und die notwendigen Anpassungen vorzunehmen.
In seinem Vortrag wird Ihnen Manfred Sprenger, GEDOPLAN, typische Probleme darstellen und erläutern, wie Sie vorgehen sollten. Zusätzlich erfahren Sie, welche Möglichkeiten Ihnen das neue Enhancement Framework bietet. Es wurde von SAP entwickelt, um Kunden mehr Möglichkeiten einzuräumen, modifikationsfrei an SAP-Anwendungen Änderungen bzw. Ergänzungen vorzunehmen.
ABAP und Unicode
* Warum Unicode ?
* Auswirkungen auf ABAP-Programme
* Überprüfung auf Unicode-Fähigkeit
Enhancement-Framework
* Erweiterungstechniken im Vergleich
* Kernel-BADIs
* Enhancement-Points, Enhancement-Sections
mySAP ERP 2005 und Auswirkungen auf die ABAP-Entwicklung
1. Treffpunkt Semicolon
Treffpunkt Semicolon
mySAP ERP 2005 und Auswirkungen
auf die ABAP-Entwicklung
1
Treffpunkt Semicolon
Agenda
Neuer Editor und neuer Debugger
Code-Inspector und Coverage Analyzer
ABAP und Unicode
Enhancement Framework
Shared Objects
SAP List Viewer
……
2
www.gedoplan.de 1
2. Treffpunkt Semicolon
Treffpunkt Semicolon
ABAP und Unicode
3
Treffpunkt Semicolon
SAP-System mit einer Standard-Codepage
Sprachen innerhalb einer Ellipse können in einem SAP-System mit
einer Standard-Codepage kombiniert werden.
Griechisch
Japanisch
Russisch Chinesisch
Ukrainisch Englisch
Deutsch
Kroatisch
Dänisch
Tschechisch
Niederländisch
Ungarisch
Französisch
Polnisch
Italienisch
Rumänisch
Spanisch
Slowakisch
Schwedisch
Slowenisch
Finnisch
4
www.gedoplan.de 2
3. Treffpunkt Semicolon
Treffpunkt Semicolon
SAP-System mit MDMP (Multi-Display/Multi-Processing)
Anmeldesprache des Anwenders legt die Codepage fest
Deutsch Japanisch Koreanisch
5
Treffpunkt Semicolon
SAP-System mit Unicode
Alle Zeichen unabhängig von Anmeldesprache darstellbar
Unicode
6
www.gedoplan.de 3
4. Treffpunkt Semicolon
Treffpunkt Semicolon
Zeichendarstellung in Unicode
Jedes Zeichen hat einen eindeutigen Schlüssel (Unicode-Codepoint)
Notation : U+nnnn nnnn = Hexadizimale Zahl
Zeichenübersicht und weitere Informationen :
http://www.unicode.org
7
Treffpunkt Semicolon
Unicode-Varianten
UTF16 : Unicode Transformation Format, 16 bit encoding
Feste Länge, 1 Zeichen = 2 Byte
Plattformabhängige Byte-Reihenfolge
UTF8 : Unicode Transormation Format, 8 bit encoding
Variable Länge, 1 Zeichen = 1 bis 4 Byte
Plattformunabhängig
Kompatibel zu 7 Bit US-ASCII
8
www.gedoplan.de 4
5. Treffpunkt Semicolon
Treffpunkt Semicolon
Unicode und ABAP-Programme
Verschiedene Kernelversionen für Unicode- und Nicht-Unicode-Systeme
Nur ein ABAP-Quelltext für Unicode- und Nicht-Unicode-Systeme
Keine speziellen Unicode-Datentypen
1 Zeichen = 1 Byte
(für Datentypen C, N, D, T, STRING)
1 Zeichen = 2 Byte (UTF16)
(für Datentypen C, N, D, T, STRING)
Datentypen X und XSTRING
nicht mehr zeichenartig !
9
Treffpunkt Semicolon
Unicode erfordert Syntaxänderungen bei einigen ABAP-Kommados
Programm muss auf Unicode-Systemen verschärften Syntaxregeln
genügen.
Auf Unicode-Systemen muss das Unicode-Check-Flag gesetzt sein,
sonst ist Programm nicht ausführbar. Auf Non-Unicode-Systemen
kann es gesetzt werden, um (weitestgehende) Kompatibiltät nach
einer Unicode-Umstellung zu gewährleisten.
10
www.gedoplan.de 5
6. Treffpunkt Semicolon
Treffpunkt Semicolon
Beispiel : CONCATENATE
Syntax Fehler bei gesetztem Unicode-Flag, da „htab“ (TYPE x) nicht mehr
zeichenartig interpretiert wird !
Unicode-Lösung
11
Treffpunkt Semicolon
Beispiel : OFFSET
12
www.gedoplan.de 6
7. Treffpunkt Semicolon
Treffpunkt Semicolon
Beispiel : OPEN DATASET
13
Treffpunkt Semicolon
Beispiel : OPEN DATASET
TRANSFER 'ABC-ÄÖÜ'. Ergibt 12 Byte in Datei !
TRANSFER 'ABC-ÄÖÜ'. Ergibt 9 Byte in Datei !
DEFAULT = UTF-8 bei Unicode-Systemen
= NON-UNICODE bei NON-Unicode-Systemen
14
www.gedoplan.de 7
8. Treffpunkt Semicolon
Treffpunkt Semicolon
Auswirkungen auf ABAP-Listen
Es gilt nicht mehr pauschal „Zeichenzahl = Anzahl Ausgabespalten“
15
Treffpunkt Semicolon
Beispiel : GET CURSOR
Spalte 5 Zeichen 5
Spalte 5 Zeichen 4
16
www.gedoplan.de 8
9. Treffpunkt Semicolon
Treffpunkt Semicolon
Beispiel : WRITE
WRITE-Anweisung positioniert automatisch gemäß der
Zeichenzahl, nicht gemäß der notwendigen Ausgabelänge. Für ‚txt‘
ist das Ausgabefenster nur 12 Spalten breit. Daher wird der
japanische Text überschrieben (angedeutet durch ‚>‘)
17
Treffpunkt Semicolon
Unicode-Ausgabe
18
www.gedoplan.de 9
10. Treffpunkt Semicolon
Treffpunkt Semicolon
RFC zwischen SAP-Unicode-Systemen
Bei RFC zwischen 2 SAP-Unicode-Systemen wird im UTF-16-
Zeichensatz übertragen. Die eventuell notwendige Konvertierung
„big/little endian“ wird automatisch durchgeführt.
19
Treffpunkt Semicolon
RFC zwischen SAP-Unicode- und Non-Unicode-Systemen
Bei RFC zwischen einem SAP-Unicode- und einem Non-Unicode-
System wird in den Zeichensatz des Zielsystems konvertiert.
Bei Übertragung in ein Non-Unicode-System werden die nicht in
Zielzeichensatz darstellbare Zeichen durch ein konfigurierbares
Zeichen ersetzt.
20
www.gedoplan.de 10
11. Treffpunkt Semicolon
Treffpunkt Semicolon
Konfiguration der RFC-Destinations
21
Treffpunkt Semicolon
Unicode-Check mit UCCHECK
Auswahl der zu prüfenden Objekte
Prüfergebnis
22
www.gedoplan.de 11
12. Treffpunkt Semicolon
Treffpunkt Semicolon
Migration zu Unicode
Schritt 1 (in einem Non-Unicode-System) *
Transaktion UCCHECK ausführen
ABAP-Programme anpassen
Unicode-Flag setzen
Schritt 2
Unicode-System aufsetzen
Nur Programme mit Unicode-Flag sind ausführbar
Eventuell auftretende Laufzeitfehler analysieren
Schnittstellen überprüfen
Listenlayout überprüfen
Testen, Testen, Testen, …
* Auf Basis NetWeaver 2004s
23
Treffpunkt Semicolon
Weitere Infos
24
www.gedoplan.de 12
13. Treffpunkt Semicolon
Treffpunkt Semicolon
Enhancement Framework
Das neue Erweiterungskonzept
25
Treffpunkt Semicolon
Anpassungsmöglichkeiten bisher
Eigenentwicklung
User-Exit
Customer-Exit
Business Transaction Events (BTE)
Business AddIn (BAdI)
Modifikation
Problem : Unterschiedlichste Techniken
Jeweils eigene Implementierungswerkzeuge
26
www.gedoplan.de 13
14. Treffpunkt Semicolon
Treffpunkt Semicolon
Das neue Erweiterungskonzept (Enhancement Framework)
Enhancement Framework
Enhancement Spot
Enhancement Point
Enhancement Section
Kernel BAdIs
Klassische BAdIs
27
Treffpunkt Semicolon
Enhancement Points
Ziel : Modifikationsfreies Einfügen von Quelltexten, Variablen- und
Parameterdeklarationen in SAP-Programmen, SAP-Funktionsbausteinen
und SAP-Methoden.
Unterschieden werden:
Expliziter Enhancement Point
Von SAP vorbereitete Einfügemöglichkeit
Impliziter Enhancement Point
an bestimmten Stellen standardmäßig, also ohne Vorgabe durch
SAP-Entwickler Erweiterungsmöglichkeit.
28
www.gedoplan.de 14
15. Treffpunkt Semicolon
Treffpunkt Semicolon
Expliziter Enhancement Point
Einfügepunkt im Coding SAP-seitig vorgedacht.
Zu Enhancement Point kann Implementierung angelegt werden.
Eventuell bereits vorhandene Implementierungen können redefiniert
.(ersetzt) oder zurückgenommen werden.
Mehrfache Implementierungen zum gleichen Enhancement Point
sind möglich.
29
Treffpunkt Semicolon
Implementierung anlegen
30
www.gedoplan.de 15
16. Treffpunkt Semicolon
Treffpunkt Semicolon
Impliziter Enhancement Point
Erweiterungsstelle nicht von SAP vorgedacht, aber dennoch nicht
frei wählbar.
Zulässige Stellen für implizite Source Code PlugIns können im Editor
angezeigt werden.
31
Treffpunkt Semicolon
Implizite Enhancement Points
Am Ende einer Strukturdefinition vor „END OF …“ zur Aufnahme
zusätzlicher Komponenten.
Am Anfang und am Ende von Unterprogrammen, Funktionsbausteinen
und Methoden lokaler bzw. globaler Klassen zum Einfügen zusätzlichen
Codings.
Am Ende des IMPORTING-/EXPORTING-/CHANGING-Deklarationsblocks
von Methoden lokaler Klassen zur Aufnahme zusätzlicher Parameter
Am Ende der Public/Private/Protected Section einer lokalen Klasse zur
Definition zusätzlicher Attribute und Methoden
Am Ende des Implementation-Block lokaler Klassen zur
Implementierung der zusätzlich deklarierten Methoden
32
www.gedoplan.de 16
17. Treffpunkt Semicolon
Treffpunkt Semicolon
Implizite Enhancement Points
In Schnittstellen-Definitionen von Funktionsbausteinen und Methoden
globaler Klassen zur Aufnahme zusätzlicher Parameter Zu globalen
Klassen können beliebige Attribute und Methoden hinzugefügt werden.
Zu Methoden von globalen Klassen können so genannte Pre- und Post-
Methoden definiert werden, die automatisch ausgeführt werden.
SAP-Methoden können durch Overwrite-Methode ersetzt werden.
Am Ende von Includes
Aber Achtung, es
gibt Ausnahmen !
33
Treffpunkt Semicolon
Enhancement Section
Möglichkeit zur modifikationsfreien Ersetzung von SAP-Quelltext in
Programm, Funktionsbausteinen und Methoden.
Es gibt keine impliziten Enhancement Points
34
www.gedoplan.de 17
18. Treffpunkt Semicolon
Treffpunkt Semicolon
Enhancement Spots
Explizite Enhancement Points, Enhancement Sections und Kernel
BAdIs werden mit Hilfe von Enhancement Spots zusammengefasst
und verwaltet.
Zusammengesetzte Enhancement Spots können elemenentare
Enhancement Spots und andere zusammengesetzte Spots bündeln.
Enhancement
Points/Sections
Enhancement Spot 2 Enhancement Spot 3
Enhancement Spot 1 Enhancement Spot 4
KernelBAdIs Zusammengesetzter Enhancement Spot A
35
Treffpunkt Semicolon
Auffinden von Enhancement Spots und Implementierung
Enhancement Spots können
mit Hilfe des „Erweiterungs-
infosystems“ in der SE80
ermittelt und Implemen-
tierungen verwaltet werden
36
www.gedoplan.de 18
19. Treffpunkt Semicolon
Treffpunkt Semicolon
Neue BAdI-Technik (Kernel-BAdIs)
Ziel
Integration in das Enhancement Framework
Integration in das Switch Framework
Performance-Steigerung
Realisierung von Zusatzfunktionen
Klassische BAdI-Technik noch vorhanden, wird aber nicht mehr
weiterentwickelt
Migration klassischer BAdIs möglich
37
Treffpunkt Semicolon
Klassische BAdI-Technik
Instanz der Adapterklasse erzeugen
Interface-Methode aufrufen, die gleichnamige Methoden aktiver
Implementierungen aufruft.
38
www.gedoplan.de 19
21. Treffpunkt Semicolon
Treffpunkt Semicolon
Switch Framework (Zuordnung von Objekten zu Schalter)
Einem Schalter
werden Pakete,
Dynproelemente,
Menü-Eintrage, …
zugeordnet
41
Treffpunkt Semicolon
Switch Framework (Business Functions und Business Function Sets)
Einer Business-Function werden Schalter zugeordnet Ein Business-Function-Set fasst Business-Functions
zusammen und wird bei Bedarf aktiviert.
42
www.gedoplan.de 21
22. Treffpunkt Semicolon
Treffpunkt Semicolon
Weitere Infos
43
Treffpunkt Semicolon
Vielen Dank für Ihre Aufmerksamkeit!
44
www.gedoplan.de 22