Einzelne Felder in Interner Tabelle abfüllen

Getting started ... Alles für einen gelungenen Start.

Einzelne Felder in Interner Tabelle abfüllen

Postby Domenik1852 » Thu Aug 08, 2013 9:02 am

Hallo Zusammen

Ich bin ganz neu mit dem ABAP Thema in Kontakt und arbeite zur Zeit an einem "Datenbeschaffungs-Programm"

Das Coding soll informationen aus verschiedenen Tabellen zusammen fassen und diese dann als DB Tabelle bereit stellen. Diese DB Tabelle soll dann die Daten weiter geben ans BW.

Mein Probelm das ich jetzt irgendwie nicht gelöst bekomme ist folgendes:

ich habe eine interne Tabelle mit dem Typ der DB-Tabelle. Die interne Tabelle dient als Sammler und beinhaltet die Werte aus den SAP Tabellen.
Ich soll jetzt jedoch noch 2 weitere Werte in die Tabelle abfüllen und zwar ein Feld für den Status (standardmässig mit "0" gefüllt) und das Datum wann der Datensatz gezogen wurde (Sy-Datum)

Diese beiden Felder bekomme ich jetzt aber leider nicht in die bestehende interne Tabelle. Habe mal etwas mit Modify versucht aber ich komme nicht wirklich weiter.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. DATA: gt_zsd_ordback  TYPE STANDARD TABLE OF zsd_orderbl WITH HEADER LINE,
  2.       gt_zsd_vbpa     TYPE STANDARD TABLE OF vbpa,
  3.  
  4.       stat(1)   TYPE c,          " Statusfeld für BW zur Kennzeichnung der Abholung
  5.       bwdat     LIKE sy-datum,   " Extraktionsdatum der Tabelle
  6.       count     TYPE i.          " Counter für Loop Schleife
  7.  
  8.  
  9.  
  10.  
  11. SELECT vbup~mandt               " Definition der Felder für den inner Join zur Datenbeschaffung
  12.        vbup~vbeln
  13.        vbup~posnr
  14.        vbup~lfsta
  15.        vbup~lfgsa
  16.  
  17.        vbak~erdat
  18.        vbak~vdatu
  19.        vbak~bukrs_vf
  20.  
  21.        vbap~matnr
  22.        vbap~lsmeng
  23.        vbap~kzwi1
  24.        vbap~netwr
  25.        vbap~waerk
  26.  
  27.        vbpa~kunnr
  28.        vbpa~parvw
  29.  
  30. FROM       vbup
  31. INNER JOIN vbap ON vbup~vbeln = vbap~vbeln AND vbup~posnr = vbap~posnr
  32. INNER JOIN vbak ON vbup~vbeln = vbak~vbeln
  33. INNER JOIN vbpa ON vbup~vbeln = vbpa~vbeln
  34.  
  35. INTO CORRESPONDING FIELDS OF TABLE gt_zsd_ordback
  36.  
  37. WHERE   vbpa~parvw = 'WE' AND
  38.       ( vbup~lfsta = 'A'  OR
  39.         vbup~lfsta = 'B'  AND
  40.         vbup~lfgsa = 'A'  OR
  41.         vbup~lfgsa = 'B').
  42.  
  43. " übergeben der Systemparameter an die Variablen
  44.       stat  = '0'.
  45.       bwdat = sy-datum.
  46.       count = 0.
  47.  
  48. LOOP AT gt_zsd_ordback.
  49.  
  50.   count = count + 1.
  51.   MODIFY gt_zsd_ordback FROM gt_zsd_ordback.
  52.   gt_zsd_ordback-bwdat = bwdat.
  53.   gt_zsd_ordback-stat  = stat.
  54.  
  55.   IF sy-subrc <> 0.
  56.      WRITE 'Fehler bei Mofify'.
  57.      EXIT.
  58.   ENDIF.
  59.  
  60. WRITE: 'Anzahl einträge in der Tabelle', count.
GeSHi ©


ich wäre froh wenn mir jemand auf die Sprünge helfen könnte wie ich diese beiden "Festwerte" noch in die bestehenden Zeilen der Tabelle einfügen könnte.

vielen Dank im Voraus!

Grüsse Hard
Domenik1852
.
.
 
Posts: 4
Joined: Thu Aug 08, 2013 9:02 am

Re: Einzelne Felder in Interner Tabelle abfüllen

Postby Domenik1852 » Thu Aug 08, 2013 12:54 pm

Hallo Zusammen

Ich habe im Coding den Fehler gefunden :oops:

Man muss zuerst die Werte ändern und kann erst dann die Sätze modifizieren.
Coding:
LOOP AT gt_zsd_ordback.

count = count + 1.
war vorher da
gt_zsd_ordback-bwdat = bwdat.
gt_zsd_ordback-stat = stat.
MODIFY gt_zsd_ordback FROM gt_zsd_ordback. dieser hier

IF sy-subrc <> 0.
WRITE 'Fehler bei Mofify'.
EXIT.
ENDIF.
ENDLOOP.
Coding Ende

Besten Dank für die Möglichkeit die Frage hier posten zu können. über das Verfassen des Beitrages konnte ich mein Problem beseitigen :oops:

viele Grüsse
Hard
Domenik1852
.
.
 
Posts: 4
Joined: Thu Aug 08, 2013 9:02 am

Re: Einzelne Felder in Interner Tabelle abfüllen

Postby Jonny2227 » Thu Aug 08, 2013 1:29 pm

Sali,

kliener Zusatz - wenn du neu im ABAP Umfeld bist - dann solltest du nach Möglichhkeit dir gleich angewöhnen nach den aktuellen Programmierrichtlinien dein Coding zu entwickeln / schreiben - damit du das verinnerlichst.
Bsp. im OO Umfeld sind interne Tabellen mit Header Line nicht mehr gestattet - daher wäre es besser

Variante 1.

data it_tabel type standard table of mara.
data ref_mara type ref to mara.

loop at it_mara reference into ref_mara.

enndloop.

Variante 2

data it_table type standard table of mara.
field-symbols <fs_table> type mara.

loop at it_marta assigning <fs_table>.

endloop.

... nur so als kleine Anregung für dich selber !

Gruss Jens
Jonny2227
....
....
 
Posts: 605
Joined: Wed Mar 01, 2006 3:16 pm


Return to ABAP® für Anfänger

Who is online

Users browsing this forum: No registered users and 12 guests