Tabelleninhalte bearbeiten (ABAP)

Aus MattWiki
Version vom 30. November 2018, 09:09 Uhr von Matt (Diskussion | Beiträge) (Matt verschob die Seite Tabelle kopieren (ABAP) nach Tabelleninhalte bearbeiten (ABAP), ohne dabei eine Weiterleitung anzulegen)

Codebeispiel für ein Programm mit folgenden Eigenschaften:

  • Interne Tabellen
  • Strukturen
  • Instanzierung von Tabellen
  • Datenbankdaten lesen
  • Veränderung von Datenbankdaten
  • Zurückschreiben von Datenbankdaten in die Datenbank


REPORT ztestcopytable.

DATA:
      " Interne Tabellen auf Basis von transparenten Tabellen erstellen
      lt_vkdat TYPE TABLE OF /bic/aznwvkdat00,
      lt_vkdat_res TYPE TABLE OF zlp_10_znwvkdat,
      " Lokale Struktur auf Basis einer internen Tabelle erstellen
      ls_vkdat LIKE LINE OF lt_vkdat,
      ls_vkdat2 TYPE zlp_10_znwvkdat,
      ls_vkdat_res LIKE LINE OF lt_vkdat_res,
      " Optional kann man eine interne Tabelle auf Basis eine Struktur anlegen
      lt_vkdat2 LIKE TABLE OF ls_vkdat2.


SELECT plant customer doc_number /bic/matnr1 quantity amount
  FROM /bic/aznwvkdat00
  INTO CORRESPONDING FIELDS OF TABLE lt_vkdat
  WHERE plant = '1060'.

LOOP AT lt_vkdat INTO ls_vkdat.
  MOVE-CORRESPONDING ls_vkdat TO ls_vkdat_res.
  ls_vkdat_res-p10_custno = ls_vkdat-customer.
  ls_vkdat_res-amount = ls_vkdat-amount + 2000.
  APPEND ls_vkdat_res TO lt_vkdat_res.
ENDLOOP.

DELETE FROM zlp_10_znwvkdat.

MODIFY zlp_10_znwvkdat FROM TABLE lt_vkdat_res.

UPDATE zlp_10_znwvkdat
  SET quantity = 2
  WHERE doc_number = '0224488123'.

WRITE 'Complete.'.