‎2010 Jun 23 7:35 AM
Hi,
My requirement is to find last no of sales order. I am taking latest no fron number range object. But suppose that order is deleted then i have to find previous no. I am using below code but it is not workng..can anyone give inputs.
DATA: V_VBELN LIKE VBAK-VBELN,
V_AUDAT LIKE VBAK-AUDAT.
DATA: IND(1) TYPE C.
V_VBELN = '1133720517'.
WHILE IND = 'X'.
SELECT SINGLE AUDAT FROM VBAK INTO V_AUDAT WHERE VBELN = V_VBELN.
IF SY-SUBRC = 0.
IND = 'X'.
ENDIF.
V_VBELN = V_VBELN - 1.
ENDWHILE.
‎2010 Jun 23 7:46 AM
Hi,
I think till u dont get the order u want to fetch the record from vbak , so u can write the condition as
WHILE IND ne 'X'.
SELECT SINGLE AUDAT FROM VBAK INTO V_AUDAT WHERE VBELN = V_VBELN.
IF SY-SUBRC = 0.
IND = 'X'.
ENDIF.
V_VBELN = V_VBELN - 1.
ENDWHILE.
‎2010 Jun 23 7:40 AM
Hi,
Use the below code.
TYPES: BEGIN OF TY_VBELN,
VBELN TYPE VBELN_VA,
END OF TY_VBELN.
DATA: T_VBELN TYPE STANDARD TABLE OF TY_VBELN,
WA_VBELN TYPE TY_VBELN.
SELECT VBELN INTO TABLE T_VBELN FROM VBAK. "You can also add order type, Sales Area here....
SORT T_VBELN BY VBELN DESCENDING.
READ TABLE T_VBELN INTO WA_VBELN INDEX 1.
Hence You get the latest Sales Order in field WA_VBELN-VBELN...
Regards,
Birendra
‎2010 Jun 23 7:43 AM
Hi,
I can use this but in this performance issue will come. is there any other solution like conditional loop.
‎2010 Jun 23 7:50 AM
‎2010 Jun 23 7:46 AM
Hi,
I think till u dont get the order u want to fetch the record from vbak , so u can write the condition as
WHILE IND ne 'X'.
SELECT SINGLE AUDAT FROM VBAK INTO V_AUDAT WHERE VBELN = V_VBELN.
IF SY-SUBRC = 0.
IND = 'X'.
ENDIF.
V_VBELN = V_VBELN - 1.
ENDWHILE.
‎2010 Jun 23 7:50 AM