19
GESIS, MV, Folie 1, Braunschweig, 23. Juni 2016 Funktionsanalyse für einen programmgesteuerten Zugriff auf 3D-Modelle Programmieren für Fortgeschrittene Einführung in die Programmiersprache ABAP Robin Raetze Waldemar Gorbunov Braunschweig, 26.01.2017

Programmieren für Fortgeschrittene Einführung in die ... · PDF fileF i r m a, A b t e i l u n g, F o l i e 5, S a l z g i t t e r, x x. X x x x x 2 0 x x ABAP • Allgemeiner Berichts-Aufbereitungs-Prozessor

  • Upload
    buihanh

  • View
    218

  • Download
    2

Embed Size (px)

Citation preview

GE

SIS

, M

V, F

olie

1,

Bra

un

sch

we

ig, 2

3. J

uni

20

16

Funktionsanalyse für einen programmgesteuerten Zugriff auf 3D-Modelle

Programmieren für FortgeschritteneEinführung in die Programmiersprache ABAPRobin RaetzeWaldemar Gorbunov

Braunschweig, 26.01.2017

Fir

ma

, Abt

eilu

ng, F

olie

2,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

Überblick

1. Geschichte

2. Allgemeines

3. Grundlegende Sprachkonzepte

4. Beispiele

Fir

ma

, Abt

eilu

ng, F

olie

3,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

Geschichte von SAP/ABAP

1972: Gründung von SAP und des R/1

1981: Das erste Echtzeit laufende System R/2

1992: Erste Version von R/3 und ABAP

2001: ABAP-Objects

2008: SAP HANA

2015: SAP Fiori

Heute: 82.400 Mitarbeiten (2016) und 20,8Mrd Umsatz (2015) über 50 Ländern Weltweit

Fir

ma

, Abt

eilu

ng, F

olie

4,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP

Fir

ma

, Abt

eilu

ng, F

olie

5,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP

• Allgemeiner Berichts-Aufbereitungs-Prozessor

• Natürliche Sprache

• Über 300 Schlüsselwörter; Tendenz steigend

• Viele obsolete Schlüsselworte

• "Code schreibt sich wie ein Buch"

• Programmiersprache der 4. Generation

• rasch – mit möglichst wenigen Codezeilen - komplette Anwendungen schreiben

Fir

ma

, Abt

eilu

ng, F

olie

6,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP-Architektur

• Imperative Sprache mit • Deklarativen (OpenSQL) und

• Objektorientierten (ABAP-Objects) Bestandteilen

• Besitzt einen Compiler und Interpreter• ABAP wird in der VM interpretiert und in

LowLevel-Code umgewandelt• LL-Code wird auf jeder Maschine

individuell kompiliert

• Alle Programmelemente werden in einer Datenbank gespeichert 

• Bietet Anbindung zu anderen Sprachen

Fir

ma

, Abt

eilu

ng, F

olie

7,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP Dictionary

Das ABAP Dictionary ermöglich das Nachschlagen von global erstellten Bestandteilen des ABAP Systems z.B.

• Typen

• Tabellen

• Klassen

• Funktionsbausteine

• Views

• …

Fir

ma

, Abt

eilu

ng, F

olie

8,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP Syntax und Hallo-World

• Syntax ist angelehnt an COBOL

• Anweisung endet mit einem Punkt

• Blöcke beginnen und enden mit einem Keyword • IF – ENDIF, LOOP – ENDLOOP, …

• Leerzeichen als Trennsymbol

• Doppelpunkt als Kettenanweisung

• Kommentare mit einem " oder *

" Programm-BezeichnungREPORT zbc_demo_hello_world.

" Ausgabe eines StringsWRITE 'Hello World!'.

" Ausgabe einer KetteWRITE: 'Das ', 'ist ', 'eine ', 'Kette!'.

" Genau das gleiche wieWRITE 'Das '.WRITE 'ist '.WRITE 'keine '.WRITE 'Kette!'.

Fir

ma

, Abt

eilu

ng, F

olie

9,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP Logische Ausdrücke

• Vergleichsoperatoren• Zahlen • <,>,<>,=, <=,>=• LT,GT,NE,EQ,LE,GE

• Zeichenketten• CO (Contains), CN(Contains Not), ….

• Bitfolgen, Referenzen, ...

• Variablen prüfen• IS INIT

• Überprüft ob eine Variable initialisiert ist

• IS IN• Testet ob eine Variable in einer Tabelle enthalten in

• IS ASSIGNED• Checkt ob ein Feldsymbol implizit oder explizit zugewiesen ist

Fir

ma

, Abt

eilu

ng, F

olie

10,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP Kontrollstrukturen und Schleifen

• Kontrollstrukturen• If, Case-When

• Schleifen• Loop, While, Do, Select

• Kontrollanweisungen: Continue, Check, Exit

Fir

ma

, Abt

eilu

ng, F

olie

11,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP Typisierung

Elementare Datentypen

• Bool, Char, Int, Float

Zusammengesetzte Datentypen

• Strings, Strukturen, Tabellen

Zeigertypen

• Referenzen, Feldsymbole

Individuelle Datentypen

• Standardtypen von SAP, z.B. DATE

• Datentypen können selber definiert werden

TYPES mytext(10) TYPE c.

TYPES mynumber TYPE i.

TYPES: BEGIN OF hero, title(5) TYPE c, first_name(10) TYPE c, last_name(10) TYPE c, age TYPE i.END OF hero. 

Fir

ma

, Abt

eilu

ng, F

olie

12,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP und OpenSQL

• Eigener SQL-Dialekt der Firma SAP

• Native Integration von OpenSQL

ABAP

SELECT * 

FROM heroes

INTO  super_heroes

WHERE power_level GT 9000.

String JDBC_DRIVER = "[...]";String DB_URL = "jdbc:mysql://[...]";String USER = "username";String PASS = "password";

Connection conn = null;Statement stmt = null;Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection(DB_URL,USER,PASS);

stmt = conn.createStatement();String sql;sql = "SELECT * FROM heroes WHERE power_level GT 9000. ";ResultSet super_heroes = stmt.executeQuery(sql);

JAVA

Fir

ma

, Abt

eilu

ng, F

olie

13,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP Ausführbare Einheiten I

• Forms

• Vergleichbar mit einer lokalen Funktion

• Unterschiedliche Parameterübergaben• By Reference: CHANGING/USING

• By Value: CHANGING/USING VALUE()

• Funktionsbausteine

• Globale Funktion, die aus dem ganzen SAP System abrufbar ist

• Parameterübergabe durch IMPORT/EXPORT und immer By Reference

Fir

ma

, Abt

eilu

ng, F

olie

14,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP Ausführbare Einheiten II

• Methoden

• Wie bei Java an Klasse gebunden

• Parameterübergaben wie bei Funktionsbausteinen

• Wertwiedergabe • Einzelne per RETURN

• Mehrere per EXPORTING

• Können Exceptions werfen

• Dynpro / Web-Dynpro

• GUI Oberfläche

Fir

ma

, Abt

eilu

ng, F

olie

15,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP Klassen und Interfaces

• Klassen 

• Unterteilt in Definitions- und Implementationsbereich

• Ähnlich wie bei C++

• Vererbung von Klasse

• Keine Mehrfachvererbung

• Implementation von Interfaces

• Beliebig viele

• Events zur Interaktion zwischen Klassen

• For Event und Raise Event

Fir

ma

, Abt

eilu

ng, F

olie

16,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP Ereignisblöcke

• Definieren Ablauf des Programms

• Aufruf durch Ereignisschlüsselwörter

• INITIALZIATION

• AT SELECTION-SCREEN

• AT LINE-SELECTION

Fir

ma

, Abt

eilu

ng, F

olie

17,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP Fehlerbehandlung

• Sy-subrc

• Zeile der Systemtabelle, in der der Rückgabewert von Befehlen steht z.B. SELECT

• IF sy-subrc <> 0.    EXIT. ENDIF.

• Exceptions

• Methoden/Forms/... können Exceptions werfen

• Werden mit CATCH gefangen

Fir

ma

, Abt

eilu

ng, F

olie

18,

Sa

lzg

itter

, xx

. Xxx

xx 2

0xx

ABAP Beispiele

Genug von der Theorie

Herzlichen Dank für Ihre Aufmerksamkeit!