This is a test message to test the length of the message box.
Login
ABAP Obsolet Add
Erstellt von Software-Heroes

ABAP Obsolet - Add

Im heutigen Artikel beschäftigen wir uns mit dem obsoleten Sprachelement Add, wie ein Nachfolger dafür nun aussieht und was uns dabei gefällt oder auch nicht gefällt.

Werbung

Das Sprachelement des heutigen Artikels ist vor allem noch in vielen alten Programmen im System zu finden und sollte dir daher nicht all zu großes Kopfzerbrechen bereiten. Es gibt ihn in der sehr einfach Form, um auf eine Variable einen Wert zu addieren, ...


" alte Form
ADD 1 TO ld_num.

" neue Form
ld_num = ld_num   1.

... und in der komplexeren Variante, die wir heute besprechen wollen.

 

Vorbereitung

Als Vorbereitung nehmen wir das Beispiel aus der Dokumentation des Objekts (mehr dazu im Link am Ende des Artikels) und erstellen uns eine Struktur, die wir dann befüllen. In dem Beispiel von SAP wird es einfacher dargestellt, wir definieren uns aber zuerst die Typen und erzeugen im Anschluss die Variablen, die wir dann auch befüllen.


" Typen
TYPES:
  tv_num TYPE p LENGTH 8 DECIMALS 0,

  BEGIN OF ts_numbers,
    one   TYPE tv_num,
    two   TYPE tv_num,
    three TYPE tv_num,
    four  TYPE tv_num,
    five  TYPE tv_num,
  END OF ts_numbers.

" Variablen
DATA:
  ls_numbers TYPE ts_numbers,
  ld_sum     TYPE i.
FIELD-SYMBOLS:
  < ld_num > TYPE tv_num.

" Initialbefüllung
ls_numbers = VALUE #( one = 10 two = 20 three = 30 four = 40 five = 50 ).

In dem Beispiel aus der offiziellen Dokumentation werden die Felder, die aufeinander folgen und den selben Typ haben, miteinander addiert. Im OO-Kontext ist diese Art der Definition aber nicht mehr möglich und auch verboten. Dafür wird in der Dokumentation aber auch auf eine ähnliche Funktion verwiesen, mit der wir die gleiche Wirkung erzielen können.

 

Durchführung

Anders als in dem ursprünglichen Befehl musst du für das Addieren etwas mehr programmieren und Coding produzieren. Dies widerspricht zwar dem Gedanken, der bisher vorgestellten Befehle, etwas schneller zu werden, aber es macht die Funktion viel klarer.

Wir gehen mit einer Schleife so oft über die Struktur, wie in p_cnt definiert. Dabei beginnen wir mit dem ersten Element und addieren alle Werte auf.


DO p_cnt TIMES.
  DATA(ld_idx) = sy-index - 1.

  ASSIGN ls_numbers-one INCREMENT ld_idx TO < ld_num > RANGE ls_numbers.
  IF sy-subrc = 0.
    ld_sum = ld_sum   < ld_num >.
  ENDIF.
ENDDO.

 

Der Assign beginnt mit dem Feld "one" und Index 0 aus der Range der Struktur. Wir wollen das erste Feld ebenfalls in unsere Addition einbeziehen und dürfen hier den Index nicht erhöhen.

 

Fazit

Nicht jeder neue Sprachbefehl ist unbedingt leichter und einfacher als Quellcode zu erzeugen, doch die neuen Sprachelemente machen es auch fremden Entwicklern einfacher zu verstehen. Mit unserem kleinen Tipp bist du auf jeden Fall gut vorbereitet, falls du mal so ein Konstrukt ablösen sollst.

 

Quelle:
ABAP Dokumentation Add-Until


Enthaltene Themen:
ObsoletAdd
Kommentare (0)
Werbung

ABAP - Namenskonventionen

Kategorie - ABAP

Wie wichtig sind heutzutage noch die Einhaltung von Namenskonventionen oder überhaupt die Verwendung von Namenskonventionen im modernen ABAP Umfeld? Das wollen wir uns in diesem Artikel anschauen.

09.04.2021

ABAP - INSERT verwenden

Kategorie - ABAP

APPEND hat in ABAP bereits eine lange Geschichte, doch dieser wird in Zukunft immer weniger eine Rolle spielen. Wir zeigen dir wieso.

11.12.2020

ABAP Obsolet - Zuweisung und Berechnung

Kategorie - ABAP

Wie funktioniert das eigentlich mit den Zuweisungen und der Berechnung in ABAP? Hier erfährst du die aktuellen Sprachkonstrukte und was du vermeiden solltest.

26.06.2020

ABAP Obsolet - Range und Kopfzeilen

Kategorie - ABAP

Eine ordentliche Range zur Übergabe erzeugen? Tabellen mit oder ohne Kopfzeilen? Wir zeigen dir was noch geht und was du lieber sein lassen solltest.

12.06.2020

ABAP Obsolet - DESCRIBE

Kategorie - ABAP

Wieder haben wir für dich einen meist genutzten ABAP Begriff, für den es bereits eine neue Alternative gibt, dieses mal aber nicht nur Eine.

15.11.2019

Wir verwenden Cookies für unsere Dienste und Funktionen. Mehr Informationen