Hello Experts,
I'm working on Order Aging Report: A Report of Orders that have been inactive for greater than 90 days.
I need to check the Posting Date of the Order is greater than the Start Date.
How can I do this?
If I read BSEG / BKPF Tables, it is taking a lot of time. Performance is getting affected.
Here's my code:
* Validation for Posting Date
* Display the orders that do not have had any activity during the past 90 days from wdate
LOOP AT aaufk.
SELECT SINGLE * FROM aufk WHERE aufnr = aaufk-aufnr.
IF sy-subrc EQ 0.
SELECT SINGLE belnr FROM bseg INTO w_belnr
WHERE bukrs EQ aufk-bukrs
AND gjahr EQ p_gjahr
AND aufnr EQ aaufk-aufnr
AND prctr EQ aufk-prctr.
IF sy-subrc EQ 0.
SELECT SINGLE budat INTO w_budat
FROM bkpf
WHERE bukrs EQ aufk-bukrs
AND belnr EQ w_belnr
AND gjahr EQ p_gjahr.
IF sy-subrc EQ 0.
IF w_budat GT strt-date.
* If Posting Date is GT Start Date, then delete the entry
* as the order had an activity in the last 90 days
DELETE aaufk WHERE user1 EQ aufk-user1
AND aufnr EQ aufk-aufnr.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
Since this is inside the LOOP, performance is really bad.
I need to delete the entries from an Internal Table where the Posting Date > Start Date (if it is within 90 days).
Which Table can I use to get the Posting Date of a Particular Order (AUFK-AUFNR)?
Please advise.
Thanks & Regards,
Sowmya