Andreas Blumenthal, Horst Keller ABAP - Fortgeschrittene Techniken und Tools



Ähnliche Dokumente
1 Einsatz des SAP Code Inspectors Konfiguration und Funktionen des SAP Code Inspectors... 67

Projekt: RFC to FTP. Szenario der serviceorientierten Anwendungsintegration. Sebastian Altendorf Dirk Brillski David Gebhardt

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

IAC-Programmierung HELP.BCFESITSIACPROG. Release 4.6C

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

Inhalt. TEIL I Grundlagen. 1 SAP HANA im Überblick Einführung in die Entwicklungsumgebung... 75

O REILLY. Oracle PL/SQL Programmierung Paris - - Steven Feuerstein. mit Bill Pribyl. Deutsche Übersetzung von Dorothea Reder 2.

3 Anwendungsarchitektur und Entwicklungsumgebung

PHP Kurs Online Kurs Analysten Programmierer Web PHP

SAP NetWeaver Gateway. 2013

Kurzeinführung Excel2App. Version 1.0.0

Objektorientierte Programmierung in Java

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Grundlagen von Python

5... Projekt»Flugbuchung«: Anforderungsanalyse und Umsetzungsplan

Einführung in die Java- Programmierung

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Dokumentation zur Anlage eines JDBC Senders

2 Aufruf eines SAP Webservices aus einer Adobe Flex 4.0- Applikationen

Datenmanagement in Android-Apps. 16. Mai 2013

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Secure Network Communications (BC-SEC-SNC)

Ein Ausflug zu ACCESS

Information-Design-Tool

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Xcelsius: Dashboarding mit SAP BusinessObjects

Inhaltsverzeichnis. Vorwort... 5 Grußwort von Safe Software Inc Über den Herausgeber Über die Autoren Einleitung...

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

JSP und Servlet Programmierung

Objektorientierte Programmierung OOP

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

PM/CS - Datenübernahme in Instandhaltung und Kundenservice

<Trainingsinhalt> XML und Datenbanken

Objektorientierte Programmierung

JetSym. Programmierung in Hochsprache ST nach IEC We automate your success.

Microsoft Access 2010 Bilder

Inhalt. TEIL I Grundlagen. Einleitung 15

4PLAN. Schulungskatalog. Software4You Planungssysteme GmbH

Macher Solutions Produktinformation SAP Crystal Reports 2011

Refactoring relationaler Datenbank. Shaoke Wu

NET.Compact Framework

Vorkurs C++ Programmierung

Auf einen Blick. Vorwort Einführung Sprachgrundlagen von VBScript Objektorientierte Programmierung mit. dem Windows Script Host 115

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Objektbasierte Entwicklung

Übungen zur Softwaretechnik

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

Der frühe Tester fängt den Bug

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

3. Stored Procedures und PL/SQL

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Rollover-Effekte für Schaltflächen mit Frontpage (2000/2002) Eine Hover-Schaltfläche erstellen Was ist in Ihrem Web passiert?...

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Innere Klassen in Java

Medienkompass1, Lehrmittelverlag des Kantons Zürich, 1. Ausgabe 2008, Thema 13 Sicher ist sicher, S.58-61

So importieren Sie einen KPI mithilfe des Assistenten zum Erstellen einer Scorecard

Praxishandbuch SAP BW 3-1

IBM Software Demos WebSphere Dashboard Framework

SIGNATUR IN MOZILLA THUNDERBIRD

Visuelles Programmieren. mit der neuen. Moskito Workbench

Objektorientierte Programmierung. Kapitel 12: Interfaces

Inhaltsverzeichnis. Vorwort Einleitung. 1 Die Philosophie Die neue Technologie: XAML, WPF und Silverlight 47

Gesicherte Prozeduren

Kurz-Anleitung. Die wichtigsten Funktionen. Das neue WEB.DE - eine Übersicht. s lesen. s schreiben. Neue Helfer-Funktionen

Outlook - CommuniGate Pro Schnittstelle installieren. Outlook - Elemente freigeben. Outlook - Freigegebene Elemente öffnen

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Kapitel 2 SAP Easy Access

Inhaltsverzeichnis. 1 Hallo 13

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Übersichtlichkeit im Dokumentenmanagement

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Fachhochschule Deggendorf Platzziffer:...

IT-Tutorial. Access Microsoft. Infos zur Migration von Access I MPRESSUM

Eine Anwendung mit InstantRails 1.7

Beheben von verlorenen Verknüpfungen

Workflow, Business Process Management, 4.Teil

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

7HVWHQYRQ6$3$QZHQGXQJHQPLWGHP([WHQGHG &RPSXWHU$LGHG7HVW7RROH&$77

Web2Lead. Konfiguration

Übung: Verwendung von Java-Threads

Praxishandbuch SAP NetWeaver" Pl - Entwicklung

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

Transparente Hausverwaltung Marketingschmäh oder doch: eine neue Dimension der Dienstleistung?

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Java Einführung Packages

Andreas Heuer Gunter Saake Kai-Uwe Sattler. Datenbanken. kompakt

Thomas Künneth. Android 3. Apps entwickeln mit dem Android SDK. Galileo Press

Zustandsgebundene Webservices

Technik der SAP-Anbindung Christian Aigner Team Entwicklung, Kranzberg

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Verarbeitung der -Adressen

C# im Vergleich zu Java

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Knasmüller.book Seite vii Mittwoch, 28. März : vii. Inhaltsverzeichnis

Transkript:

Andreas Blumenthal, Horst Keller ABAP - Fortgeschrittene Techniken und Tools Galileo Press

Inhalt Vorwort 13 1 Fallen bei grundlegenden ABAP-Operationen vermeiden 17 1.1 Falle Nr. 1: Durchführung arithmetischer Operationen in ABAP im Gegensatz zu C, C++ und Java 18 1.2 Falle Nr. 2: Ambivalentes Verhalten von Festpunkt- und Gleitpunktarithmetik des ABAP-Typs p 20 1.3 Falle Nr. 3: Falsches Runden in Feldern des ABAP-Typs f 23 1.4 Falle Nr. 4: Fehler bei der Arbeit mit Zahlenliteralen 27 1.5 Falle Nr. 5: Überflüssige Konvertierungen bei der Verwendung von Zeichenliteralen mit Zahlenwerten 29 1.6 Falle Nr. 6: Irrtümliche Verwendung von Zahlenliteralen statt Zeichenliteralen 31 1.7 Falle Nr. 7: Falscher Gebrauch von In-place-Datendeklarationen für Initialisierungen 33 1.8 Falle Nr. 8: Deklaration von Daten im falschen Kontext 36 1.9 Falle Nr. 9: Verwendung flacher Strukturen mit numerischen Komponenten als Textfelder 39 1.10 Falle Nr. 10: Verwendung flacher Strukturen mit numerischen Komponenten in anonymen Containern 42 1.11 Fazit 46 2 Dynamische und generische Programmierung 47 2.1 Konzepte und Vorteile der dynamischen Programmierung 48 2.1.1 Eine klassische statische Prozedur 49 2.1.2 Eine sowohl statische als auch dynamische Prozedur 49 2.1.3 Eine dynamische Prozedur 50 2.1.4 Vor- und Nachteile der dynamischen Programmierung 50 2.2 Generische Typen 52 2.2.1 Datentypen und Objekttypen 53 2.2.2 Komplexe Datentypen und Referenztypen 54 2.2.3 Generische Typen im Überblick 55 Inhalt 5

2.3 Dynamische Typen 57 2.3.1 Interne Tabellen 57 2.3.2 Strings 62 2.4 Feldsymbole 65 2.5 Referenzen 69 2.6 Dynamische Token-Angabe 76 2.7 Dynamischer Prozeduraufruf 80 2.8 Run Time Type Services 85 2.9 Programmgenerierung 93 2.9.1 Transiente Programmgenerierung 94 2.9.2 Persistente Programmgenerierung 96 3 Neue Ausnahmebehandlung in ABAP 99 3.1 Warum ein neues Ausnahmekonzept? 99 3.2 Hauptmerkmale des neuen Ausnahmekonzepts 101 3.3 Ausnahmen auslösen und behandeln 102 3.3.1 Ausnahmen auslösen 102 3.3.2 Ausnahmen abfangen und behandeln 103 3.4 Ausnahmen in Schnittstellen deklarieren 109 3.4.1 Syntax und Semantik der Deklaration 109 3.4.2 Nachteile einer erzwungenen Deklaration 111 3.4.3 Kategorien von Ausnahmen 114 3.4.4 Verletzung einer Prozedurschnittstelle 115 3.4.5 Ausnahmen in Ereignisbehandlern und statischen Konstruktoren 116 3.5 Ausnahmen definieren 117 3.5.1 Konstruktoren für Ausnahmen 117 3.5.2 Ausnahmetexte 118 3.5.3 Attribute und Methoden von Ausnahmen 121 3.6 Zusammenspiel mit bestehenden Verfahren zur Fehlerbehandlung 122 3.6.1 Klassische Ausnahmen bei Methoden und Funktionsbausteinen 123 3.6.2 Migration von abfangbaren Laufzeitfehlern 123 3.6.3 Nachrichten der Anweisung MESSAGE 125 3.6.4 Einschränkungen 126 3.7 Allgemeine Anwendungsfälle 127 3.7.1 Returncodes vs. Ausnahmen 127 3.7.2 Assertions vs. Ausnahmen 128 3.7.3 Verkettung von Ausnahmen 129 3.7.4 Gemeinsame Verwendung klassenbasierter und nicht-klassenbasierter Ausnahmen 130 3.7.5 Ausnahmen zu bereits verwendeten Methoden hinzufügen 131 3.8 Fazit 132 6 Inhalt

4 Dynamisches Open SQL 135 4.1 Allgemeines Konzept 136 4.1.1 Tabellennamen zur Laufzeit angeben 136 4.1.2 Dynamische interne Tabelle 139 4.2 Dynamische WHERE-Klausel 141 4.3 Neue Möglichkeiten mit dynamischem Open SQL 143 4.4 Dynamische SELECT-, GROUP BY- und HAVING-Klauseln 146 4.4.1 Die dynamischen SELECT-und GROUP BY-Klauseln 146 4.4.2 Die dynamische HAVING-Klausel 149 4.5 Ausnahmebehandlung 151 4.6 Änderungsoperationen 153 4.6.1 Verwendung von dynamischen Tabellennamen für Datenbankaktualisierungen 153 4.6.2 Verwendung dynamischer WHERE- und SET-Klauseln für Datenbankaktualisierungen 155 4.7 Komplexe dynamische FROM-Klauseln 157 4.8 Dynamische Datentypen für Arbeitsbereiche 162 4.9 Auswirkungen auf die Performance 166 4.10 Fazit 169 5 Persistente Objekte und Transaktionen mit Object Services 171 5.1 Was sind Object Services? 172 5.2 Funktionsweise des Persistenzdienstes 173 5.3 Objektrelationales Mapping zwischen Klassen und Tabellen 175 5.4 Eine persistente Klasse anlegen 176 5.5 Fortgeschrittene Überlegungen für objektrelationales Mapping 181 5.5.1 Verwaltung von Objektreferenzen 181 5.5.2 Behandlung von Vererbung 182 5.6 Mit persistenten Klassen arbeiten 184 5.6.1 Zugriff auf Klassenakteure 184 5.6.2 Lebenszyklus einer Instanz 185 5.6.3 Verwaltung des Lebenszyklus 186 5.6.4 Ein persistentes Objekt erzeugen 188 5.6.5 Ein persistentes Objekt laden 190 5.6.6 Ein persistentes Objekt löschen 192 5.7 Funktionsweise des Transaktionsdienstes 192 5.7.1 Transaktionsinteroperabilität 196 5.8 Tipps für die Arbeit mit Object Services 198 5.9 Fazit 199 In

6 Praktische Einführung in die ABAP- Dateischnittstelle 201 6.1 Grundlegendes zur Ein-und Ausgabe von Dateien 201 6.1.1 Öffnen einer Datei 204 6.1.2 Schließen einer Datei 206 6.1.3 Lesen aus einer Datei 207 6.1.4 Schreiben in eine Datei 208 6.2 Fallen bei der Ein- und Ausgabe von Dateien 208 6.2.1 Probleme impliziter Mechanismen der ABAP-Laufzeit 209 6.2.2 Plattformabhängige Probleme 211 6.2.3 Probleme in Hinblick auf den Öffnungsmodus 211 6.2.4 Probleme bei gleichzeitigem Zugriff mehrerer Benutzer 212 6.2.5 Netzwerkprobleme 213 6.3 Die ABAP-Dateischnittstelle seit Release 6.10 214 6.3.1 Neue Anforderungen durch Unicode 215 6.3.2 Textformaterweiterungen 216 6.3.3 Erweiterte Prüfungen in UC-Programmen 217 6.3.4 Kompatibilitäts-und Umsetzungsprobleme 219 6.4 Weitere neue Merkmale 222 6.4.1 Unterstützung für große Dateien 222 6.4.2 Positionierung des Dateizeigers 222 6.4.3 Festlegen und Ändern von Eigenschaften geöffneter Dateien... 224 6.4.4 Dateinamen mit Leerzeichen 225 6.5 Fazit 226 7 ABAP und XML - XSLT als Brücke 227 7.1 Hintergründe zu XML und XSLT 229 7.1.1 Warum hat XSLT diese XML-Syntax? 230 7.1.2 XML und XSLT im SAP-System 232 7.2 XML, ABAP und XSLT: Zwei Datenmodelle und eine Brücke 233 7.2.1 Ein XML-Format für ABAP-Datenstrukturen 233 7.2.2 Der Umgang mit externen XML-Formaten 237 7.2.3 Baumtransformation mit XSLT 238 7.3 XSLT im SAP Web Application Server 241 7.3.1 Implementierung von XSLT im SAP Web Application Server 241 7.3.2 Die Pflege von XSLT-Programmen in der ABAP Workbench 243 7.3.3 XSLT-Programme aus ABAP heraus aufrufen 247 7.3.4 ABAP aus XSLT aufrufen und andere SAP XSLT-Erweiterungen.. 249 7.3.5 Dokumentzentrische Anwendungen 252 7.4 Fazit 254 7.5 Beispielprogramme 255 8 Inhalt

8 ABAP und XML - Serlalisierung mit dem asxml-format 265 8.1 Überblick über die ABAP-XML-Serialisierung 266 8.1.1 Die Rolle des ABAP-Datentyps 267 8.1.2 Serialisierung aus ABAP aufrufen 268 8.1.3 Einführung in das asxml-format 270 8.1.4 Serialisierung eines Strings 271 8.2 Darstellung von Datenwerten in asxml 272 8.2.1 ABAP-Bindungsnamen und XML-Elementnamen 272 8.2.2 Darstellung elementarer Datentypen 273 8.2.3 Darstellung von Strukturen 277 8.2.4 Darstellung interner Tabellen 278 8.3 Darstellung von Referenzen 279 8.3.1 Herausforderungen bei der Darstellung von Referenzen inasxml 280 8.3.2 Darstellung von Referenzvariablen 281 8.3.3 Darstellung anonymer Datenobjekte 283 8.3.4 Darstellung von Objekten 286 8.4 Darstellung von Werten serialisierbarer Objekte 287 8.4.1 Die Aufteilung von Objektwerten in Objektteile 288 8.4.2 Standarddarstellung eines Objektteils 290 8.4.3 Selbst definierte Darstellung eines Objektteils 293 8.5 Fazit 297 8.6 XML-Namensräume 298 9 Erstellung von BSP- und MVC-basierten Webanwendungen 301 9.1 Überblick 301 9.1.1 Web AS vs. Internet Transaction Server 301 9.1.2 WebASundJava/J2EE 302 9.2 Einführung in Business Server Pages 304 9.2.1 Web Application Builder 305 9.3 Erstellung einer BSP-Anwendung 307 9.3.1 Anlegen einer neuen BSP-Anwendung 308 9.3.2 Seitenparameter hinzufügen 310 9.3.3 HTML-Tags einfügen 311 9.3.4 Daten und Code in der Seite einbetten 313 9.3.5 Eventhandler hinzufügen 314 9.3.6 Seite fertig stellen 315 9.3.7 Zusätzliche Formatierungen 316 9.4 Verarbeitung von Benutzereingaben 320 9.5 Testen und Debugging 325

9.6 MIME Repository und WebDAV-Zugriff 327 9.6.1 Das MIME Repository 327 9.6.2 Zugriff über WebDAV 330 9.7 BSP-Extensions 331 9.7.1 Wie funktionieren BSP-Extensions? 332 9.7.2 Webanwendung mithilfe von BSP-Extensions erstellen 334 9.7.3 Einzelheiten zu HTMLB-Extensions 337 9.7.4 Webanwendung mithilfe von BSP-Extensions erweitern 338 9.8 Model View Controller (MVC) 346 9.8.1 BSP-Unterstützung für das MVC-Modell 348 9.8.2 Hilfreiche Hinweise für die Verwendung des MVC-Modells 354 9.9 Fazit 355 10 Qualitätsüberprüfung mit dem Code Inspector 357 10.1 Dynamische und statische Tests zur Bestimmung der Programmqualität 358 10.2 Die Prüfumgebung des Code Inspectors 360 10.2.1 Inspektion 362 10.2.2 Prüfvariante 362 10.2.3 Objektmenge 363 10.2.4 Globale und lokale Elemente 364 10.3 Mit dem Code Inspector arbeiten 364 10.3.1 Den Code Inspector für ein Einzelobjekt aufrufen 365 10.3.2 Den Code Inspector für mehrere Objekte aufrufen 366 10.3.3 Top-Down-Methode 379 10.4 Standardprüfungen im Code Inspector 380 10.4.1 Syntaxprüfungen und Programmgenerierung 380 10.4.2 Sicherheitsprüfungen 382 10.4.3 Performance-Prüfungen 386 10.4.4 Suchfunktionen 395 10.4.5 Namenskonventionen (ab Release 6.40) 396 10.4.6 Anweisungsstatistik (ab Release 6.40) 396 10.5 Fazit 397 11 Verbesserte Testabdeckung mit dem Coverage Analyzer 399 11.1 Funktionsweise des Coverage Analyzers 399 11.1.1 Auswirkungen auf die gesamte Systemperformance 402 11.1.2 Nützliche Eigenschaften für das Testen in einer realen Testumgebung 402 11.2 Inbetriebnahme des Coverage Analyzers 404 10 Inhalt

11.3 Verwendung des Coverage Analyzers 404 11.3.1 Was ist ein guter Test? 405 11.3.2 Wie wird ein Programm verwendet? 411 11.3.3 Wie weit ist ein Projekt zur Umstellung auf Unicode? 414 11.4 Hilfreiche Hinweise 415 11.5 Fazit 416 Herausgeber und Autoren 417 Index 423 Inhalt 11