ABAP/4 ABAP/4 22.03.2000.

Slides:



Advertisements
Ähnliche Präsentationen
Eine dynamische Menge, die diese Operationen unterstützt,
Advertisements

LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Objekt – Relationales – Modell Tomasz Makowski IN
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
Zusammenfassung der Vorwoche
MySQL.
10. Grundlagen imperativer Programmiersprachen
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Allgemeine Technologien II
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 – Offenes Hashing) Prof. Th. Ottmann.
SQL als Abfragesprache
SQL als Abfragesprache
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Otto-von-Guericke-Universität Magdeburg Gamal Kassem 1 Tabellenzeile mit READ lesen READ TABLE itab INDEX idx READ TABLE itab WITH KEY comp1 = f1.... Compn.
Modularisierungstechniken
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Dialogorientierte Programmierung in ABAP
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Datenintegrität Referentielle Integrität create table
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
Einführung MySQL mit PHP
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
20:00.
Java programmieren mit JavaKara
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
HORIZONT 1 XINFO ® Das IT - Informationssystem Assembler HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
Einführung in Datenbankmodellierung und SQL
Freiwillige Feuerwehr der Stadt Perg
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Das IT - Informationssystem
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
MODULA-2.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
Montag, 9. Juli 2001  ====!"§==Systems = Seite 1 Projekt SAPscript  Dana Stepanek SAPscript  Symbole MitSymbolen können Programm- bzw. Systemdaten oder.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
Das IT - Informationssystem
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
TypoScript.
(Syntax, Strings/Zahlen, Variablen, Arrays)
PHPmyadmin Maya Kindler 6c.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
Dirk Schuirmann W+M AG Theorie in der Praxis 1. CPGJDBC Schreiben aus dem CICS Lesen aus dem Batch 2. Programmdokumentation 3. Preismodell bei CA.
DB2 UDB im z/VSE Heinz Peter Maassen – Lattwein GmbH COURSE Tagung Bad Hersfeld 2008.
Chapter 5 – Dynamic programs
Create Table, Rechte und Rollen
(Structured Query Language)
 Präsentation transkript:

ABAP/4 ABAP/4 22.03.2000

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

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

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

Einleitung Dialogschritte ABAP/4

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

Einleitung Das Datenbank-Interface ABAP/4

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

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

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

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

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

Einleitung Logische Datenbank ABAP/4

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

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

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

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

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

ABAP Syntax und Programm-Struktur Vordefinierte Datentypen: Charakter String (C) Länge: 1 - 65535 Numeric Charakter String (N) Länge: 1 - 65535 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

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

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

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

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

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

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

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

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

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

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

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

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

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: 1 0 0 2 1 1 3 11 22 4 2 4 ABAP/4

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

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

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: 1 1 1 2 2 111 3 3 9 4 4 16 5 11 25 ABAP/4

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

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

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

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

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

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

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