Beruflich Dokumente
Kultur Dokumente
Mit den Datentypen haben wir auch schon ein wenig Datenobjekte eingeführt.
Datenobjekte können aber außer mit der Anweisung DATA auch mit den
Anweisungen PARAMETERS (Eingabe durch User), SELECT-OPTIONS
(Mehrfacheingabe durch User), und CONSTANTS(Konstante) deklariert werden.
Das ist auch wieder nur ein Ausschnitt dessen, was sonst noch geht. Insbesondere
neuere Sprachelemente eröffnen hier noch einige Möglichkeiten. Wir bleiben
klassisch. Die Konstante braucht zwingend einen Default-Wert, (Zusatz Value),
parameters und data können aber müssen keinen Default-Wert erhalten. Dieser
ist dann der typgerechte Defaultwert.
1
diese Übersicht, von der Sie in die jeweils benötigte Anweisung navigieren und
sich die Beispiele anschauen.
Nützlich sind auch die Operatoren und Vergleichsoperatoren.
Stringtemplates
Falls Sie in Python oder einer anderen Programmiersprache schon Stringtemplates
kennengelernt haben. lohnt es sich zu schauen, ob Sie sie verwenden wollen. In
ABAP heißen Sie Zeichenketten-Templates und sind auch so in der Doku zu
finden. Es muss aber nicht sein.
Aufgabe Schauen Sie sich alle Anweisungen aus der Übersicht an, kopieren Sie
sich die einfachsten Beispiel in ein neu angelegtes Programm und passen Sie diese
falls nötig wie oben an. Die Anweisung replace dürfen Sie per copy und paste
2
einbauen. Prägen Sie sich grob die Möglichkeiten der Stringverarbeitung ein und
lernen Sie in der Workbench wie man ein Programm in die Favoritenleiste der
Workbench (nicht im Easy Access) packt.
Aufgabe Deklarieren Sie eine Variable namens 'satz' vom Typ STRING und dem
Defaultwert 'Das Betreten der Baustelle ist verboten'
Wieviele Vokale hat dieser Satz? Nutze Sie die Anweisung TRANSLATE um
alle Buchstaben in Kleinbuchstaben umzuwandeln. Nutzen Sie die Anweisung
FIND mit einer Variante, die Matches zählen kann Nutzen Sie als Pattern
REGEX'[aeiou]' (mussten Sie dazu vorher LOWER CASE anwenden?
Kann man diesen Satz ohne Vokale lesen? Löschen Sie alle Vokale des Satzes,
indem Sie die Vokale mit '' ersetzen. Nutzen Sie die Anweisung REPLACE mit
dem oben genannten Pattern. Geben Sie den Satz aus!
Und nun ohne Leerzeichen. Splitten Sie den Satz bei den Leerzeichen in noch zu
definierende Variablen und setzen Sie ihn ohne Leerzeichen wieder zusammen
(SPLIT, CONCATENATE). Geben Sie den Satz aus.
Und nun alles zusammen. Definieren Sie zwei parameter (Anweisung PARAME-
TERS statt DATA) p_leer und p_ovok vom Typ C und wandeln Sie diese in
Checkboxen um (F1 auf Schlüsselwort PARAMETERS).
Wenn p_leer gesetzt ist, sollen alle Leerzeichen gelöscht werden wenn p_ovok
gesetzt ist, sollen alle Vokale gelöscht werden. Kontrollstrukturen können Sie
noch nicht
if not p_leer is initial. *Lösche die Leerzeichen endif.
Geben Sie dem Satz abhängig von der Benutzerwahl aus. Lassen Sie sich vom
Program Z00123STRINGVERARBEITUNG inspirieren.
3
Zahlen - numerische Operatoren und Funktionen
Zu den numerischen Operatoren gibt es nicht viel zu sagen. Die Doku birgt
keinerlei Überraschungen. +,-,*./.div ,mod sind die Operatoren und auch die
Funktionen wie sin,cos,abs,... beherrscht ABAP.
data: s1 type i value 3, s2 type i value 4, result type p decimals 2. result = s1 +
s2. write result. result = s1 / s2. result = sin( s1 ). write result.
Datum
An ein Datenobjekt vom Typ d dürfen Sie relativ hohe Ansprüche stellen. Sie
können mit einem Datumstyp rechnen. Die Ausgabe ist nicht schön wenn Sie
nicht formatiert ist. Das Datum ist intern im Format YYYYMMDD Hier sehen
Sie zwei Möglichkeiten zum formatieren.
" Erster Tag im Jahr 2023 add 1 to dtm. write: / dtm.
" F1 auf das Schlüsselwort write int_format_options write: / dtm dd/mm/yyyy.
" mit Template write: / |{ dtm COUNTRY = 'DE ' }|. "Achtung Country hat
3(!) STellen
Aufgabe Lassen Sie den Anwender eine Jahreszahl eingeben (Anweisung parame-
ters typ N der Länge 4) und geben Sie aus, ob diese Jahreszahl ein Schaltjahr
ist. Das geht sehr einfach, indem Sie überprüfen, welcher Tag dem 28.2. des
Jahres folgt. Ab der 6. Stelle fängt der Tag an.(SHIFT)
if tag = '01'. "Es ist ein Schaltjahr endif.
Konvertierung
Faustregel: Wenn es klappt, dann klappt es. Diese Faustregel lässt sich leichter
merken als die offiziellen Konvertierunggsregeln. Seien Sie optimistisch und
weisen Sie den String '2021111' einem Datum zu . Denken Sie nicht an JAVA
sonder folgen Sie Ihrer Intuition. " Das müsste doch eigentlich gehen " ist ein
guter Ansatz.