This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
� Ursprung im R/2-System: Allgemeiner Berichts-Aufbereitungs-Prozessor• Für Reporting-Zwecke
� Ständige Erweiterung der Sprache im R/3-SystemAdvanced Business Application Programming Language• Alle betriebswirtschaftlichen Anwendungen in ABAP implementiert• Nur kleiner Systemkern in C• /4 symbolisiert, dass es sich um eine 4GL-Sprache handelt• Neuerdings: nur noch ABAP, um Entwicklung in Richtung
� Abarbeitung von ABAP-Programmen:• ABAP-Sourcen werden kompiliert in Bytecode (“Generieren”)• Bytecode wird interpretiert• Programmsourcen und Bytecode werden in der Datenbank verwaltet
– Dies beinhaltet auch Abhängigkeiten zu anderen Schemaobjekten
• Bei Bedarf erfolgt Neugenerierung vor Interpretation des Bytecodes– Wenn z.B. bei Überprüfung der Abhängigkeiten festgestellt wird,
dass ein benötigtes Objekt in einer neueren Version vorliegt
� Release 4.5x: über 250 Schlüsselwörter, Tendenz steigend!� Sehr schwach ausgeprägte Orthogonalität
Wie so viele Sprachen besitzt ABAP den,Anspruch der natürlichen Sprache zu ähneln.
In ABAP bedeutet dies konkret dass jede,Anweisung mit einem Punkt beendet werden,muss (eine Anweisung heisst daher Satz).Wenn ein Satz,aus mehreren Teilen besteht dann muss jeder,dieser Teile mit einem Komma abgetrennt,werden.
Ein: Doppelpunkt besagt dass,Schlüsselwort für mehrere Parameter gilt.
REPORT Zreportname.* Ein Stern als erstes Zeichen markiert* eine KommentarzeileTYPES: ... . “ alles folgende gilt auchDATA: ... . “ als KommentarTABLES: ... .PARAMETERS: ... .Anweisungen .Perform Unterprogramm USING Parameterliste.Anweisungen .
FORM Unterprogramm USING Parameterliste.Anweisungen .
� Like-Operator: Typ von Objekten wird aus dem Data Dictionary übernommen
z.B. Variable saldo soll den Typ des Attributs kontostand der Tabelle ZOHO00KON besitzen
DATA: saldo LIKE zoho00kon-kontostand .
� Ohne Like-Operator darf nur ABAP-Datentyp gewählt werden, der den “externen” Datentyp aufnimmt(ABAP-Datentypen und Datentypen des Dictionarys bzw. der unterliegenden Datenbank sind nicht vollständig kompatibel)
z.B. C(n) für CHAR nP((n+2)/2) DECIMALS m für CURR n, m…
FOR ALL ENTRIES IN itab WHERE condition]“ Angabe einer Menge von Vergleichswerten in Tabelle itab
[GROUP BY fieldlist]
[HAVING condition]
[ORDER BY fieldlist | ORDER BY PRIMARY KEY]
Beliebige ABAP-Anweisungen.
[ENDSELECT.] “ ENDSELECT ist nicht erforderlich bei“ - SELECT SINGLE Statements, bei“ - Aggregatfunktionen ohne GROUP BY und bei“ - INTO TABLE-Konstrukten
“ Alle Anweisungen nach Ende des SELECT“ Statements, aber VOR dem ENDSELECT werden“ für JEDEN Datensatz ausgeführt!
� Anfrageergebnise werden tupelweise zurückgegeben• Select-Statement muss mit ENDSELECT. abgeschlossen werden• Zwischen SELECT ...ENDSELECT. wird über alle Ergebnistupel
� In der FROM-Klausel sind pro Open-SQL-Select-Statement nur maximal zwei Tabellen erlaubt• Explizite Joins sind in Open-SQL nur zwischen zwei transparenten Tabellen
möglich (Pool- oder Clustertabellen sowie Projektionsviews sind nichterlaubt)
• Join wird an die Datenbank weitergeschickt
� Alternative: View definieren (Join in View-Definition einbetten)oder Joins in ABAP-Programmen selbst berechnen:TABLES: zautor, zwerk. “ zautor und zwerk nicht transparent
SELECT * FROM zautor.
SELECT * FROM zwerkWHERE autorid = zautor-autorid.