Hallo zusammen,
ich habe mich an meinem ersten SAP Report probiert. Dieser soll alle Angebote selektieren, die das gültig bis Datum überschritten haben.
Leider updatet mir ersten immer nur die erste Position im Angebot (deshalb das Do 99). Zweites Problem ist, dass ich das Änderungsprotokoll im Angebot nicht aktualisiert, sondern das hart in die Tabelle geschrieben wird.
Hier der Report:
REPORT Z_TEST_ANGEBOTE_ABSAGEN.
TABLES: vbak, vbap.
DATA: it_vbak TYPE STANDARD TABLE OF vbak,
wa_vbak TYPE vbak,
it_vbap TYPE STANDARD TABLE OF vbap,
wa_vbap TYPE vbap.
DO 99 TIMES.
IF sy-mandt = '900'.
SELECT *
FROM vbak
INTO TABLE it_vbak
WHERE vkorg IN ('8000', '8910', '8920')
AND auart IN ('ZBAG', 'ZBAL', 'ZBAS')
AND bnddt < sy-datum.
LOOP AT it_vbak INTO wa_vbak.
SELECT *
FROM vbap
INTO TABLE it_vbap
WHERE vbeln = wa_vbak-vbeln
AND abgru = ' '.
LOOP AT it_vbap INTO wa_vbap.
SELECT *
FROM vbap
INTO TABLE it_vbap
WHERE vbeln = wa_vbak-vbeln
AND posnr = wa_vbap-posnr
AND abgru = ' '.
IF sy-subrc = 0.
wa_vbap-abgru = 'Z1'.
UPDATE vbap FROM wa_vbap.
ENDIF.
ENDLOOP.
ENDLOOP.
MESSAGE 'Es wurden Angebote geändert'(dat) TYPE 'S'.
ENDIF.
ENDDO.