Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

© 2000 Sören Berger22.03.2000ABAP/4. © 2000 Sören Berger ABAP/422.03.2000ABAP/4Seite: 2 Gliederung n Einleitung n ABAP Syntax & Programmstruktur n Interne.

Ähnliche Präsentationen


Präsentation zum Thema: "© 2000 Sören Berger22.03.2000ABAP/4. © 2000 Sören Berger ABAP/422.03.2000ABAP/4Seite: 2 Gliederung n Einleitung n ABAP Syntax & Programmstruktur n Interne."—  Präsentation transkript:

1 © 2000 Sören Berger ABAP/4

2 © 2000 Sören Berger ABAP/ ABAP/4Seite: 2 Gliederung n Einleitung n ABAP Syntax & Programmstruktur n Interne Tabellen n DB-Zugriff mit ABAP & Open-SQL n ABAP-Dictionary

3 © 2000 Sören Berger ABAP/ ABAP/4Seite: 3 Einleitung ABAPABAP dvanced usiness pplication rogramming Language 4 Was heißt ABAP/4?

4 © 2000 Sören Berger ABAP/ ABAP/4Seite: 4 Einleitung Logischer Aufbau von SAP/R3 und ABAP/4:

5 © 2000 Sören Berger ABAP/ ABAP/4Seite: 5 Einleitung Dialogschritte

6 © 2000 Sören Berger ABAP/ ABAP/4Seite: 6 Einleitung Struktur eines Workprozesses (WP): n Kontrolliert Flow Logic n über Dispatcher Kommunikation zw. GUI und WP n Kommunikation mit DB und ABAP Dictionary n Kontrolliert Processing Logic n Kommuniziert mit SP, welches Modul der Flow Logic als nächstes ausgeführt wird n Kommuniziert mit DBI

7 © 2000 Sören Berger ABAP/ ABAP/4Seite: 7 Einleitung Das Datenbank-Interface

8 © 2000 Sören Berger ABAP/ ABAP/4Seite: 8 Einleitung Screens: n Jeder Screen besitzt Eingabemaske mit Input/Output n Zwei Events getriggert: –Process Before Output (PBO), der vor der Maske dargestellt wird –Process After Input (PAI), nach User-Interaktion n Jeder Screen ist gelinkt zu einem PBO bzw PAI n PAI und nachfolgender PBO bilden Dialogschritt Screens werden über Screen-Painter erzeugt, oder alternativ als Selection-Screen oder als Liste mit Hilfe von ABAP-Statements (wichtige Keywords: MODULE, FIELD, CHAIN und LOOP )

9 © 2000 Sören Berger ABAP/ ABAP/4Seite: 9 Einleitung n ABAP-Programme sind verantwortlich für das Bearbeiten von Daten innerhalb der Dialogschritte. ÜABAP-Programme sind modular Aufbau eines ABAP-Programms

10 © 2000 Sören Berger ABAP/ ABAP/4Seite: 10 Einleitung Verschiedene ABAP-Programmodi n Typ 1 (Report) u werden nicht durch Screens kontrolliert u werden durch SUBMIT-Statement von anderen ABAP-Programmen, oder durch Eintippen des Programmnamens bzw. Transaktionscodes gestartet u starten ihrerseits unsichtbares Systemprogramm, das einem festen Programmfluß folgt, der aber verlassen werden kann u der feste Programmfluß dient zum Auslesen der DB und zum Darstellen der Informationen (daher Report) u brauchen keinen User-Input u können logische DB verwenden

11 © 2000 Sören Berger ABAP/ ABAP/4Seite: 11 Einleitung n Typ M u können nur durch Screen Flow Logic kontrolliert werden u Start durch Transaktionscode (mit Anfangsmaske Initial Screen) u man muß seine eigenen Screens mit dem Screen-Painter erstellen u Initial Screen aktiviert Dialogmodul des ABAP-Prog. u Dialogmodul kann versch, Aufgaben übernehmen, z.B. andere Screens aktivieren, andere Ausführungsblöcke im ABAP-Prog., oder andere Programme (mit CALL TRANSACTION (für Typ M), oder mit SUBMIT (für Typ 1)) u werden als Modul-Pool bezeichnet und für dialogorientierte Programme mit einer großen Anzahl von Screens verwendet n gibt noch Typ F (Funktionen-Gruppen, für globale Fkt.) und Typ I (Includes)

12 © 2000 Sören Berger ABAP/ ABAP/4Seite: 12 Einleitung Logische Datenbank: n Liest Daten aus DB n vergleichbar mit VIEW-Befehl n wird über Workbenchbefehle bearbeitet und mit dem ABAP- Programm gelinkt n kann von mehreren Programmen genutzt werden n können nur von Typ 1 benutzt werden n hat folgende Struktur:

13 © 2000 Sören Berger ABAP/ ABAP/4Seite: 13 Einleitung Logische Datenbank

14 © 2000 Sören Berger ABAP/ ABAP/4Seite: 14 Einleitung Logische Datenbank n Structure: welche Tabellen gelesen werden, die Hierarchie (über Foreign Keys) wird beibehalten n Selection Part: welche Felder dargestellt werden, können durch das ABAP-Programm auch geändert werden n Database Program: Container für Subroutinen, die die Daten lesen

15 © 2000 Sören Berger ABAP/ ABAP/4Seite: 15 Einleitung Namenskonventionen in ABAP: Kundenprogramme(Reports) sollten folgender Konvention folgen: Yaxxxxxx oder Zaxxxxxx wobei a durch den ID-Code der Applikation und xxxxxx durch einen bel. Bezeichner ersetzt wird. SAP-Programme werden mit Raxxxxxx bezeichnet.

16 © 2000 Sören Berger ABAP/ ABAP/4Seite: 16 Gliederung n Einleitung n ABAP Syntax & Programmstruktur n Interne Tabellen n DB-Zugriff mit ABAP & Open-SQL n ABAP-Dictionary

17 © 2000 Sören Berger ABAP/ ABAP/4Seite: 17 ABAP Syntax und Programm-Struktur n Kommentare werden durch * (für ganze Zeile) und (für Teil der Zeile) eingeleitet n ABAP-Ausdrücke beginnen mit einem Keyword und enden mit einem Punkt (.) n Deklarative Ausdrücke sind z.B.: DATA, TYPES, TABLES n Modulare Ausdrücke sind unterteilt in: u Event Keywords wie AT SELECTION SCREEN, START-OF- SELECTION, AT-USER-COMMAND u Definitions-Ausdrücke werden zur Definition von Subroutinen, Funktionsmodulen, Methoden u.ä. verwendet, z.B.: FORM...ENDFORM, FUNCTION...ENDFUNCTION, MODUL...ENDMODUL

18 © 2000 Sören Berger ABAP/ ABAP/4Seite: 18 ABAP Syntax und Programm-Struktur n Call-Ausdrücke werden zum Aufrufen von Programmblöcken im selben oder einem anderen Programm verwendet. Bsp: PERFORM, CALL, SUBMIT, SET USER-COMMAND n Operations-Ausdrücke bearbeiten Daten, die über die deklarativen Ausdrücke definiert werden. Bsp.: WRITE, MOVE, ADD n Open-SQL: nur Ausdrücke wie INSERT, SELECT, DELETE kein: CREATE TABLE, CREATE INDEX

19 © 2000 Sören Berger ABAP/ ABAP/4Seite: 19 ABAP Syntax und Programm-Struktur n Vordefinierte Datentypen: u Charakter String (C) Länge: u Numeric Charakter String (N) Länge: u Date (D) Format: YYYYMMDD u Time (T) Format: HHMMSS u Hexadecimel (X) u Integer (I) von -2^31 - 2^31-1 u Floating-Point Number (F) 1x10^-307 bis 1x10^308 u Packed Number (P) max. 16byte mit bis zu 14 Stellen Für Berechnungen sollte man nur Typ I und F verwenden.

20 © 2000 Sören Berger ABAP/ ABAP/4Seite: 20 ABAP Syntax und Programm-Struktur User-Definierte Datentypen TYPES: NUMBER TYPE I, LENGTH TYPE P DECIMALS 2, CODE(3) TYPE C DATA: NO_FLIGHTS TYPE NUMBER, NO_PASSENGERS TYPE NUMBER, DISTANCE TYPE LENGTH, HEIGHT TYPE LENGTH,.... CITY_CODE TYPE CODE, COUNTRY_CODE TYPE CODE,......

21 © 2000 Sören Berger ABAP/ ABAP/4Seite: 21 ABAP Syntax und Programm-Struktur DATA für Strukturen DATA: BEGIN OF ADDRESS, NAME(20) TYPE C, STREET(20) TYPE C, NUMBER TYPE P, POSTCODE(5) TYPE N, CITY(20) TYPE C, END OF ADDRESS. CONSTANTS: BEGIN OF MYADDRESS, NAME(20) TYPE C VALUE 'Fred Flintstone', STREET(20) TYPE C VALUE 'Cave Avenue', NUMBER TYPE P VALUE 11, POSTCODE(5) TYPE N VALUE 98765, CITY(20) TYPE C VALUE 'Bedrock', END OF MYADDRESS. Als konst. Ausdruck: z.B.:Zugriff über ADDRESS-NAME

22 © 2000 Sören Berger ABAP/ ABAP/4Seite: 22 ABAP Syntax und Programm-Struktur TABLES-Befehl Syntax: TABLES ist ein ABAP-Dictionary-Objekt, diese werden im Workbench definiert Bsp: TABLES: SPFLI. SELECT * FROM SPFLI. WRITE: SPFLI-MANDT, SPFLI-CARRID, SPFLI-CONNID, ENDSELECT.

23 © 2000 Sören Berger ABAP/ ABAP/4Seite: 23 ABAP Syntax und Programm-Struktur Bsp. für interne Tabellen PROGRAM SAPMZTST. TYPES: BEGIN OF MYSTRING, NUMBER TYPE I, NAME(10) TYPE C, END OF MYSTRING. TYPES MYTAB TYPE MYSTRING OCCURS 5. DATA STRING TYPE MYSTRING. DATA ITAB TYPE MYTAB. STRING-NUMBER = 1. STRING-NAME = 'John'. APPEND STRING TO ITAB. STRING-NUMBER = 2. STRING-NAME = Paul. APPEND STRING TO ITAB. STRING-NUMBER = 3. STRING-NAME = 'Ringo'. APPEND STRING TO ITAB. STRING-NUMBER = 4. STRING-NAME = 'George'. APPEND STRING TO ITAB. LOOP AT ITAB INTO STRING. WRITE: / STRING- NUMBER,STRING-NAME. ENDLOOP. Ausgabe: 1 John 2 Paul 3 Ringo 4 George

24 © 2000 Sören Berger ABAP/ ABAP/4Seite: 24 ABAP Syntax und Programm-Struktur MOVE-CORRESPONDING Syntax: MOVE-CORRESPONDING TO Beispiel: DATA: BEGIN OF ADDRESS, FIRSTNAME(20) VALUE 'Fred', SURNAME(20) VALUE 'Flintstone', INITIALS(4) VALUE 'FF', STREET(20) VALUE 'Cave Avenue, NUMBER TYPE I VALUE '11'. POSTCODE TYPE N VALUE '98765'. CITY(20) VALUE 'Bedrock', END OF ADDRESS. DATA: BEGIN OF NAME, SURNAME(20), FIRSTNAME(20), INITIALS(4), TITLE(10) VALUE 'Mister', END OF NAME. MOVE-CORRESPONDING ADDRESS TO NAME.

25 © 2000 Sören Berger ABAP/ ABAP/4Seite: 25 ABAP Syntax und Programm-Struktur Schleifen und IF - Anweisung n While-Schleifen werden mit WHILE.... ENDWHILE eingegrenzt n DO-Schleifen mit DO... ENDDO (Bsp: Do 4 TIMES..... ENDDO.) n ebenso wird IF-Anweisung mit IF... ENDIF eingegrenzt

26 © 2000 Sören Berger ABAP/ ABAP/4Seite: 26 Gliederung n Einleitung n ABAP Syntax & Programmstruktur n Interne Tabellen n DB-Zugriff mit ABAP & Open-SQL n ABAP-Dictionary

27 © 2000 Sören Berger ABAP/ ABAP/4Seite: 27 Interne Tabellen... lesen (Teile von) festen Strukturen aus und speichern sie im Arbeitsspeicher von ABAP.... besitzen eine zweigeteilte Datenstruktur, bestehend aus Line Type (kann jeder Datentyp sein) und Key (der die Tabellenzeilen identifiziert).... der Key ist wiederum aufgeteilt in Standard Key und User- defined Key.

28 © 2000 Sören Berger ABAP/ ABAP/4Seite: 28 Interne Tabellen Drei Arten von Tabellen: n Standard Table: Daten werden über Table-Index oder Key angesprochen (Key muß nicht definiert werden) n Sorted Table: Daten nach Key sortiert, Zugriff wie Standard Table n Hash Table: kein linearer Index, Zugriff nur über Key, Key muß UNIQUE sein

29 © 2000 Sören Berger ABAP/ ABAP/4Seite: 29 Interne Tabellen Zugriffsmethoden: Es gibt zwei Arten, wie mit Internen Tabellen gearbeitet werden kann: n Die ganze Tabelle, z.B. mit MOVE n oder über Workarea, wenn nur bestimmte Zeilen bearbeitet werden sollen Befehlsübersicht: INSERT; APPEND; COLLECT READ MODIFY, DELETE

30 © 2000 Sören Berger ABAP/ ABAP/4Seite: 30 Interne Tabellen Erstellen von internen Tabellen 1. Möglichkeit: Neue Tabelle Syntax: TYPES OCCURS Bsp.: TYPES itab TYPE I OCCURS Möglichkeit: Neue Tabelle aus einer alten Syntax: DATA [WITH HEADER LINE] Bsp.: TYPES: BEGIN OF LINE, COLUMN1 TYPE I, COLUMN2 TYPE I, COLUMN3 TYPE I, END OF LINE. TYPES ITAB TYPE LINE OCCURS 10. DATA TAB1 TYPE ITAB. DATA TAB2 LIKE TAB1 WITH HEADER LINE.

31 © 2000 Sören Berger ABAP/ ABAP/4Seite: 31 Interne Tabellen Füllbefehle im Überblick APPEND: Syntax: APPEND [ TO | INITIAL LINE TO] COLLECT: sammelt Daten mit denselben Keys und addiert restlichen Werte Syntax: COLLECT [ INTO] INSERT: fügt an beliebigen Stelle eine Zeile ein Syntax: INSERT [ INTO|INITIAL LINE INTO] [INDEX ].

32 © 2000 Sören Berger ABAP/ ABAP/4Seite: 32 Interne Tabellen Beispiel zu INSERT DATA: BEGIN OF LINE, COL1 TYPE I, COL2 TYPE I, END OF LINE. DATA ITAB LIKE LINE OCCURS 10. DO 2 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2. APPEND LINE TO ITAB. ENDDO. LINE-COL1 = 11. LINE-COL2 =22. INSERT LINE INTO ITAB INDEX 2. INSERT INITIAL LINE INTO ITAB INDEX 1. LOOP AT ITAB INTO LINE. WRITE: / SY-TABIX, LINE-COL1, LINE-COL2. ENDLOOP. Ausgabe:

33 © 2000 Sören Berger ABAP/ ABAP/4Seite: 33 Interne Tabellen Auslesen einer Tabelle LOOP: zeilenweise Syntax: LOOP AT [INTO ] [FROM ] [TO ] [WHERE ] ENDLOOP. READ: eine einzelne Zeile Syntax: READ TABLE [INTO ] INDEX.

34 © 2000 Sören Berger ABAP/ ABAP/4Seite: 34 Interne Tabellen MODIFY: (Teile) einer Zeile ändern Syntax: MODIFY [FROM ] [INDEX ] [TRANSPORTING... [WHERE ]]. Bsp: DATA NAME(4) VALUE 'COL2'. DATA: BEGIN OF LINE, COL1 TYPE I, COL2 TYPE I, END OF LINE. DATA ITAB LIKE LINE OCCURS 10. DO 5 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2. APPEND LINE TO ITAB. ENDDO.....

35 © 2000 Sören Berger ABAP/ ABAP/4Seite: 35 Interne Tabellen (MODIFY 2)... LINE-COL2 = 111. MODIFY ITAB FROM LINE INDEX 2 TRANSPORTING (NAME). LINE-COL1 = 11. MODIFY ITAB FROM LINE TRANSPORTING COL1 WHERE COL2 = 25. LOOP AT ITAB INTO LINE. WRITE: / SY-TABIX, LINE-COL1, LINE-COL2. ENDLOOP. Ausgabe:

36 © 2000 Sören Berger ABAP/ ABAP/4Seite: 36 Gliederung n Einleitung n ABAP Syntax & Programmstruktur n Interne Tabellen n DB-Zugriff mit ABAP & Open-SQL n ABAP-Dictionary

37 © 2000 Sören Berger ABAP/ ABAP/4Seite: 37 DB-Zugriff mit ABAP und Open-SQL Sollen Open-SQL Ausdrücke verwendet werden, müssen folgende Bedingungen erfüllt sein: n Die DB muß von SAP unterstützt werden. n Die DB-Tabellen müssen im ABAP-Dictionary definiert sein. Wichtige Systemfelder: SY-SUBRC: =0, wenn Operation erfolgreich, sonst <>0 SY-DBCNT: zeigt an, wie viele Felder bearbeitet, geändert wurden

38 © 2000 Sören Berger ABAP/ ABAP/4Seite: 38 DB-Zugriff mit ABAP und Open-SQL Allg.: Zugriff aller Operationen erfolgt wie bei einer normalen DB, müssen jedoch in einer Schleifenstruktur eingeschlossen werden. SELECT Syntax von SELECT: SELECT FROM [INTO ] [WHERE ] [GROUP BY ] [ORDER BY ].

39 © 2000 Sören Berger ABAP/ ABAP/4Seite: 39 DB-Zugriff mit ABAP und Open-SQL Bsp zu SELECT: TABLES SPFLI. SELECT * FROM SPFLI WHERE CITYFROM EQ 'FRANKFURT'.... WRITE: / SPFLI-CARRID, SPFLI-CONNID, SPFLI-CITYFROM, SPFLI-CITYTO.... ENDSELECT.

40 © 2000 Sören Berger ABAP/ ABAP/4Seite: 40 DB-Zugriff mit ABAP und Open-SQL FROM - Ergänzung: Syntax: FROM [CLIENT SPECIFIED] [BYPASSING BUFFER] [UP TO ROWS] BYPASSING BUFFER liest direkt aus DB und nicht aus SAP-Buffer! CLIENT SPECIFIED liest aus Tabelle, egal auf welchem Client der User eingeloggt ist.

41 © 2000 Sören Berger ABAP/ ABAP/4Seite: 41 Gliederung n Einleitung n ABAP Syntax & Programmstruktur n Interne Tabellen n DB-Zugriff mit ABAP & Open-SQL n ABAP-Dictionary

42 © 2000 Sören Berger ABAP/ ABAP/4Seite: 42 ABAP-Dictionary Tabellen und Felder im Dictionary erstellen: Im ersten Fenster des Dic. wird der Tabellenname eingeben, anschließend auf Create klicken. 1. Im Feld Short Text einen erklärenden Text eingeben. 2. Definiere eine delivery class für die Tabelle 3. Für jedes Tabellenfeld einen Namen vergeben 4. Bestimme einen Key. Alle Keys müssen am Anfang der Tabelle liegen. Bis zu 16 Keys sind pro Tabelle gestattet. 5. Benenne das Daten-Element auf das sich das Feld bezieht. 6. Für Felder der Typen Quantity (QUAN) und Currency amount (CURR) müssen Bezugsfelder und -tabellen angeben werden. 7. Speichern


Herunterladen ppt "© 2000 Sören Berger22.03.2000ABAP/4. © 2000 Sören Berger ABAP/422.03.2000ABAP/4Seite: 2 Gliederung n Einleitung n ABAP Syntax & Programmstruktur n Interne."

Ähnliche Präsentationen


Google-Anzeigen