Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

ABAP/4 ABAP/4 22.03.2000.

Ähnliche Präsentationen


Präsentation zum Thema: "ABAP/4 ABAP/4 22.03.2000."—  Präsentation transkript:

1 ABAP/4 ABAP/4

2 Gliederung Einleitung ABAP Syntax & Programmstruktur Interne Tabellen
DB-Zugriff mit ABAP & Open-SQL ABAP-Dictionary ABAP/4

3 Einleitung A B P dvanced usiness pplication rogramming Language 4
Was heißt ABAP/4? A B P dvanced usiness pplication rogramming Language 4 ABAP/4

4 Einleitung Logischer Aufbau von SAP/R3 und ABAP/4: ABAP/4

5 Einleitung Dialogschritte ABAP/4

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

7 Einleitung Das Datenbank-Interface ABAP/4

8 Einleitung Screens: Jeder Screen besitzt Eingabemaske mit Input/Output
Zwei Events getriggert: „Process Before Output“ (PBO), der vor der Maske dargestellt wird „Process After Input“ (PAI), nach User-Interaktion Jeder Screen ist gelinkt zu einem PBO bzw PAI 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) ABAP/4

9 Einleitung ABAP-Programme sind verantwortlich für das Bearbeiten von Daten innerhalb der Dialogschritte. ABAP-Programme sind modular Aufbau eines ABAP-Programms ABAP/4

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

11 Einleitung Typ M können nur durch „Screen Flow Logic“ kontrolliert werden Start durch Transaktionscode (mit Anfangsmaske „Initial Screen“) man muß seine eigenen Screens mit dem Screen-Painter erstellen Initial Screen aktiviert Dialogmodul des ABAP-Prog. 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)) werden als Modul-Pool bezeichnet und für dialogorientierte Programme mit einer großen Anzahl von Screens verwendet gibt noch Typ F (Funktionen-Gruppen, für globale Fkt.) und Typ I (Includes) ABAP/4

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

13 Einleitung Logische Datenbank ABAP/4

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

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. ABAP/4

16 Gliederung Einleitung ABAP Syntax & Programmstruktur Interne Tabellen
DB-Zugriff mit ABAP & Open-SQL ABAP-Dictionary ABAP/4

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

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

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

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, ...... ABAP/4

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. z.B.:Zugriff über ADDRESS-NAME Als konst. Ausdruck: ABAP/4

22 ABAP Syntax und Programm-Struktur
TABLES-Befehl Syntax: TABLES <dbtab> <dbtab> ist ein ABAP-Dictionary-Objekt, diese werden im Workbench definiert Bsp: TABLES: SPFLI. SELECT * FROM SPFLI. WRITE: SPFLI-MANDT, SPFLI-CARRID, SPFLI-CONNID,...... ENDSELECT. ABAP/4

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’. STRING-NUMBER = 3. STRING-NAME = 'Ringo'. 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 ABAP/4

24 ABAP Syntax und Programm-Struktur
MOVE-CORRESPONDING Syntax: MOVE-CORRESPONDING <string1> TO <string2> 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. ABAP/4

25 ABAP Syntax und Programm-Struktur
Schleifen und IF - Anweisung While-Schleifen werden mit WHILE .... ENDWHILE eingegrenzt DO-Schleifen mit DO ... ENDDO (Bsp: Do 4 TIMES ENDDO.) ebenso wird IF-Anweisung mit IF ... ENDIF eingegrenzt ABAP/4

26 Gliederung Einleitung ABAP Syntax & Programmstruktur Interne Tabellen
DB-Zugriff mit ABAP & Open-SQL ABAP-Dictionary ABAP/4

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. ABAP/4

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

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

30 Interne Tabellen Erstellen von internen Tabellen
1. Möglichkeit: Neue Tabelle Syntax: TYPES <t> <type> OCCURS <n> Bsp.: TYPES itab TYPE I OCCURS 10. 2. Möglichkeit: Neue Tabelle aus einer alten Syntax: DATA <f> <type> [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. ABAP/4

31 Interne Tabellen Füllbefehle im Überblick APPEND:
Syntax: APPEND [<wa> TO | INITIAL LINE TO] <itab> COLLECT: sammelt Daten mit denselben Keys und addiert restlichen Werte Syntax: COLLECT [<wa> INTO] <itab> INSERT: fügt an beliebigen Stelle eine Zeile ein Syntax: INSERT [<wa> INTO|INITIAL LINE INTO] <itab> [INDEX<idx>]. ABAP/4

32 Interne Tabellen Beispiel zu INSERT DATA: BEGIN OF LINE, COL1 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: ABAP/4

33 Interne Tabellen Auslesen einer Tabelle LOOP: zeilenweise
Syntax: LOOP AT <itab> [INTO <wa>] [FROM <n1>] [TO <n2>] [WHERE <condition>]. ..... ENDLOOP. READ: eine einzelne Zeile Syntax: READ TABLE <itab> [INTO <wa>] INDEX <idx>. ABAP/4

34 Interne Tabellen MODIFY: (Teile) einer Zeile ändern
Syntax: MODIFY <itab> [FROM <wa>] [INDEX <idx>] [TRANSPORTING <f1>... <f2> [WHERE <condition>]]. 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. .... ABAP/4

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: ABAP/4

36 Gliederung Einleitung ABAP Syntax & Programmstruktur Interne Tabellen
DB-Zugriff mit ABAP & Open-SQL ABAP-Dictionary ABAP/4

37 DB-Zugriff mit ABAP und Open-SQL
Sollen Open-SQL Ausdrücke verwendet werden, müssen folgende Bedingungen erfüllt sein: Die DB muß von SAP unterstützt werden. 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 ABAP/4

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 <result> FROM <source> [INTO <target>] [WHERE <condition>] [GROUP BY <fields>] [ORDER BY <sort_order>]. ABAP/4

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. ABAP/4

40 DB-Zugriff mit ABAP und Open-SQL
FROM - Ergänzung: Syntax: FROM <dbtab> [CLIENT SPECIFIED] [BYPASSING BUFFER] [UP TO <n> 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. ABAP/4

41 Gliederung Einleitung ABAP Syntax & Programmstruktur Interne Tabellen
DB-Zugriff mit ABAP & Open-SQL ABAP-Dictionary ABAP/4

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 ABAP/4


Herunterladen ppt "ABAP/4 ABAP/4 22.03.2000."

Ähnliche Präsentationen


Google-Anzeigen