Alles Flashcards
Was ist zur Kompatibilität von ABAP zu sagen?
Ist abwärtskompatibel.
Was ist mit Mehrsprachigkeit von ABAP zu sagen?
Wird unterstützt
Was ist mit SQL und ABAP?
SQL ist in ABAP eingebettet
Wonach ist ABAP stark ausgerichtet?
Ist ABAP Plattform- und Datenbankunabhängig?
Wie sieht es hinsichtlich der Kompilierung bei ABAP aus?
bei erster Ausführung kompiliert –> Liegt auch als Quelltext vor
Welche drei Ebenen gibt es bei der Kompilierung von ABAP-Code?
Präsentation (SAP GUI) –> Application (Application Server) –> Database (Databaseserver) (–> Quellcode/ Kompiliertes Programm)
Was ist bei mandantenunabhängig und was ist mandantenabhängig?
unabhängig: Repository (Tabellen, Programme, Funktionsbausteine…)
abhängig: Anwendungs- und Benutzerdaten, mandantenabhängiges customizing
Was wird benötigt, um mit ABAP zu entwickeln?
1. System mit Repository-Zugriff oder Entwicklungsmandant 2. User mit Entwicklerrechten und Entwicklerschlüssel 3. Gegebenenfalls ein eigenes Paket oder einen Transportauftrag 4. Verwendung des Namensraums YZ für Eigenentwicklungen
Welche Stufen gibt es bei der Einführung eines Programms?
DEV (Development) –> QAS (Quality Assurance) –> PROD (Production)
Wie ist die Hieriachie bei der Entwicklung eines Entwicklungs”projekts”?
Projekt 1 — n Transportauftrag 1 – n Aufgabe 1 – 1 Mitarbeiter
Wodurch wird “Code weitergeschoben” in die nächste Stufe?
Über Transportaufträge im Repository
Was muss getan werden, um Aufträge freizugeben?
Erst Aufgaben freigaben
Worüber sind Function- und Class-Builder erreichbar?
Werkzeuge - ABAP Workbench - Entwicklung (SE37/24)
Nenne die sechs grundlegenden Konzepte
- Datentypen und deren Deklaration
- Wichtige Befehle und Kontrollstrukturen
- Interne Tabellen
- Datentypen im Data Dictionary
- Lokale Modularisierung
- Hintergrundverarbeitung
Nenne vordefinierte Datentypen
d - Date t - Time i - Integer c - String String - String
Nenne benutzerdefinierte, strukturierte Datentypen
Feldleisten, Tabellen
Wie kann
DATA a TYPE c.
DATA b TYPE i.
alternativ geschrieben werden? (zeichenweise erklären)
DATA: a TYPE c, b TYPE i.
Wie können eigene Datentypen definiert werden? (Code)
TYPES: BEGIN OF str_adresse, name(40) TYPE c, strasse(40) TYPE c, ort(40) TYPE c, plz TYPE i, END OF str_adresse.
Wie erfolgt der Zugriff auf eine komplexe Datenstruktur?
Der Zugriff auf Felder einer Struktur erfolgt mit Bindestrichen:
WRITE adresse-name.
Was ist Syst?
• Die Struktur SYST enthält viele vom SAP-Systeme verwendete Systemvariablen • Die Struktur kann im Data Dictionary (Transaktionscode SE11) über die Anzeige des Datentyps SYST erreicht werden
Wie wird IF geschrieben? (zeichenweise erklären)
IF logischer Ausdruck 1. [Anweisungsblock 1] [ELSEIF logischer Ausdruck 2. [Anweisungsblock 2]] [ELSE. [Anweisungsblock n]] ENDIF.
Wie wird CASE geschrieben? (zeichenweise erklären)
CASE . [WHEN . [Anweisungsblock 1]] [WHEN . [Anweisungsblock 2]] [WHEN OTHERS. [Anweisungsblock 3]] ENDCASE.
Was gibt sy-index zurück? (Schleife)
– gibt die Zahl des aktuellen Schleifendurchlaufs an
– bezieht sich bei Schachtelung von Schleifen auf die
aktuelle Schleife
Nenne wichtige String-Operatoren
CONCATENATE SPLIT SEARCH REPLACE CONDENSE TRANSLATE …
Wo befindet sich der Inhalt interner Tabellen?
Im Arbeitsspeicher –> Nur zur Laufzeit verfügbar
Was ist ein wichtiges Merkmal interner Tabellen?
zu einem beliebigen Zeilentyp beliebig viele Zeilen im Arbeitsspeicher abgelegt werden können.
Was ist hinsichtlich Komplexität bei internen Tabellen wichtig?
Interne Tabellen können komplex strukturiert sein, d.h. Zeilen oder Komponenten von internen Tabellen können selbst wieder interne Tabellen sein.
Wie können alle Zeilen einer internen Tabelle gelöscht werden?
refresh
Was machen bei internen Tabellen table_line, sort und describe?
Aktuelle Zeile, nachträgliche Sortierung von Standardtabellen, aktuelle Anzahl an Zeilen
Welche Arten von internen Tabellen gibt es?
Standard, Sortiert, Hash
Wie sollte auf die jeweiligen Tabellentypen zugegriffen werden?
Standard: Index
Sortiert: Schlüssel
Hash: MUSS Schlüssel
Wie wird eine Tabelle deklariert? (Beispiel Hash)
DATA hashedTable1 TYPE HASHED TABLE
OF Zeichenkette
WITH UNIQUE KEY table_line.
Wie kann an Standardtabellen eine Zeile angehängt werden? Wie können die Tablenne befüllt werden?
append, insert
Wie kann auf einzelene Tabellenzeilen zugegriffen werden? Was sollte dabei beachtet werden?
read table;
Es ist dabei empfehlenswert, die entsprechende Variable mit der
Anweisung read table in eine Arbeitsvariable einzulesen, die
wiederum kompatibel zum Zeilentyp der internen Tabelle ist.
Was passiert beim Auslesen einer Standardtabelle mit den System-Strukturen sy-subrc und sy-tabix?
Wenn eine passende Tabellenzeile gefunden wird, erhält die
Systemvariable sy-subrc den Wert 0. Die Systemvariable
sy-tabix wird auf den Index des gefundenen Eintrags gesetzt.
Wie können Elemente in der internen Tabelle verändert werden?
modify
Was ist ein Dynpro?
Dynamische Programme. Haupt-Technologien in der Interaktion zwischen Benutzer und SAP-ERP-System
Wie können Systemfehler abgefangen werden?
CATCH SYSTEM-EXCEPTIONS conversion_errors = 4.
…
ENDCATCH.
Was ist der Unterschied vom Datentyp String zu C?
Es gelten die gleichen Angaben wie beim
Zielfeld C, bis auf die Tatsache, dass der String dynamisch angepasst
wird und daher nicht rechts abgeschnitten wird bzw. keine Leerzeichen
erzeugt werden.
Welche Kompatibilitäten gibt es bei der Datenobjektumwandlung?
• Statische Inkompatibilität
– Zwischen Objekten der Datentypen d (date) und t (time)
• Dynamische Inkompatibilität
– Zwischen ‘1234Hallo‘ und i (Zeichenkette und Zahl)
• Dynamische Kompatibilität
– ‘12345‘ und i (Zeichenkette und Zahl)
Wie kann aus:
myString1(50) TYPE C.
myString1 = ‘Offenburg’.
‘Offenbach’ gemacht werden? (zeichenweise)
myString1+5(4) = ‘bach’.
Wie können Strings aneinander gereiht werden?
CONCATENATE myString1
myString2
myString3
INTO myString4.
Wie können Zeichenketten zerlegt werden? (zeichenweise)
myString1 = ‘Hamburg;Berlin;Hannover;Kiel’.
Trennzeichen = ';'. SPLIT myString1 AT Trennzeichen INTO myString2 myString3 myString4 myString5.
Wie kann in Zeichenketten gesucht werden?
SEARCH myString1 FOR myString2.
Wie kann in Zeichenketten ersetzt werden?
REPLACE myString1 WITH myString2 INTO myString3.
Wie kann die Länge einer Zeichenkette bestimmt werden?
DATA myString(50) TYPE C. DATA myStringLength TYPE I.
myString = 'abcdefg'. myStringLength = strlen( myString ).
Was bietet das ABAP-Dictonary?
Bislang definierte Datentypen sind nur programmlokal verfügbar
Das ABAP-Dictionary bietet globale Datentypen, die in Programmen genutzt werden können (LIKE, TYPE, Vorwärtsnavigation, …)
Worüber (SAP-Befehlt) können Datentypüen im ABAP-Dictionary angelegt werden?
SE11
Wie kann über neu erstellte Datentypen des Dictionarys eine mehrdimensionale Tabelle erstellt werden?
REPORT ZZ_00_MEHRDIMTABELLE. DATA element TYPE zz_00_zeichenkette. DATA spalten TYPE zz_00_spalten. DATA zeilen TYPE zz_00_zeilen. REFRESH spalten. APPEND 'eins' TO spalten. APPEND 'zwei' TO spalten. APPEND 'drei' TO spalten. APPEND 'vier' TO spalten. APPEND spalten TO zeilen. REFRESH spalten.
Wie kann Modularisierung in ABAP realisiert werden?
- Include-Dateien (Befehl INCLUDE)
- Form‘s (Prozeduren bzw. Unterprogramme)
- Funktionsbausteine
Was sind Include-Dateien?
Include-Dateien
• Ausgliederung von Quellcode aus dem Programm
• Include-Objekte werden vor Ausführung in das
Hauptprogramm eingefügt
• Einbinden einer Include-Datei über den Befehl
„INCLUDE“
Was sind Form’s (Unterprogramme)?
• Unterprogramme können auf übergeordnete („globale“) Variablen des
Programms zugreifen.
• Innerhalb von Unterprogrammen können lokale Datenobjekte definiert
werden, die nur dort zur Ausführungszeit sichtbar und gültig sind.
• Der rekursive Aufruf von Unterprogrammen ist möglich.
Wir wird eine Form (Unterprogramm) im Hauptprogramm eingebunden?
PERFORM myForm1 USING meineZeichenkette1 meineZeichenkette2 CHANGING meineZeichenkette3 meineZeichenkette4.
Wie sieht eine Form im Unterprogramm bspw. aus?
FORM myForm1
USING eingabeparameter1 TYPE Zeichenkette
VALUE(eingabeparameter2) TYPE Zeichenkette
CHANGING ausgabeparameter1 TYPE Zeichenkette
VALUE(ausgabeparameter2) TYPE Zeichenkette.
ausgabeparameter1 = eingabeparameter1.
ausgabeparameter2 = eingabeparameter2.
ENDFORM.
Wa sind Funktionsbausteine?
• Kapselung von Quellcode zu Funktionsbausteinen
(anwendungsübergreifende wiederverwendbare
Softwarekomponenten)
• Funktionsbausteine können nicht auf übergeordnete
Variablen zugreifen
vollständige Parameterübergabe über
Schnittstelle
Wie wird ein Funktionsbaustein aufgerufen?
CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING titlebar = meinTitel text_question = meineFrage IMPORTING answer = meineAntwort.
Welche Funktionsbausteine gibt es?
Funktionsbausteine –> Remotefähige Funktionsbausteine –> BAPI
Was sind BAPIs?
• BAPI‘s sind nach betriebswirtschaftlicher Sichtweise gekapselte Funktionsbausteine • Entwickler müssen sich keine Gedanken um die Veränderung der entsprechenden Tabellen machen
Was ist die Hintergrundverarbeitung?
• Programme, die von Benutzern bedient werden,
verwenden kostbare Dialog-Workprozesse in
einem SAP-System
• Besonders lang laufende Programme sollten
daher in Hintergrund laufen
Wie erfolgen Datenbankzugriffe?
SELECT * “ was
FROM spfli “ woher
INTO waspfli “ wohin (das gibt es so nicht in SQL)
WHERE cityfrom = abflugo. “ Einschränkung
WRITE: / waspfli-cityto, waspfli-carrid, waspfli-fltime.
ENDSELECT. “ Schleife zur satzweisen Bearbeitung
Wie ist der Aufbau der Data Dictionary?
Domäne -> Datenelement -> Feld -> Struktur/Tabelle
Wie können Tabelleninhalte eingesehen werden? (SAP-Code)
SE16
Was wird gemacht, um den Datenzugriff aus Datenbanken erheblich zu beschleunigen?
● Einlesen von DB-Daten in interne Tabellen
● Interne Tabellen sind Tabellen, die nur während der
Programmausführung bestehen
–>
● Zurückschreiben der veränderten internen Tabelle oder Workarea
Wie werden Datenbankeinträge geändert/gelöscht?
MODIFY [CLIENT SPECIFIED] FROM TABLE .
DELETE FROM WHERE [SQL Bedingung].