2007 Jun 20 9:06 AM
Hi Everybody,
this is my first thread in SDN...
my problem follows...
A report is be created that selects all sales orders created by e-Sales that are more than 20 minutes old and still have a delivery block:
tables:
VBAK sales document: header data
selection fields:
VBAK-LIFSK ≠ <BLANK>
VBAK-ERNAM = userID used by e-Sales / IVE
(EP-BATCH / EAI-BATCH)
VBAK-ERDAT <= Current system Date
VBAK-ERZET <= Current system Time - 20 minutes
These orders should be deleted from SAP system.
This report should be scheduled to run regularly every 10 minutes.
my doubt : is ther any BAPI or Function module to delete entries from a standard table...if no what is the way to delete the enteries from a std table...
best replies will be rewarded....
regards
Reddy
Hi Everybody,
this is my first thread in SDN...
my problem follows...
A report is be created that selects all sales orders created by e-Sales that are more than 20 minutes old and still have a delivery block:
tables:
VBAK sales document: header data
selection fields:
VBAK-LIFSK ≠ <BLANK>
VBAK-ERNAM = userID used by e-Sales / IVE
(EP-BATCH / EAI-BATCH)
VBAK-ERDAT <= Current system Date
VBAK-ERZET <= Current system Time - 20 minutes
These orders should be deleted from SAP system.
This report should be scheduled to run regularly every 10 minutes.
my doubt : is ther any BAPI or Function module to delete entries from a standard table...if no what is the way to delete the enteries from a std table...
best replies will be rewarded....
regards
Reddy
2007 Jun 20 9:13 AM
HI,
look at the function module WY_VBAK_SINGLE_DEL_FROM_BUFFER
Thanks
Ashu
2007 Jun 20 9:17 AM
Hello Ganga,
U can't delete a Sales order from SAP Completely.
But you can make it for deleteion.
think you have to use the BAPI BAPI_SALESORDER_CHANGE, try to set D as value of flag for updating:
A) Delete the Sales Order
SALESDOCUMENT = <doc. number>.
ORDER_HEADER_INX-UPDATEFLAG = 'D'.
B) Delete an item of Sales Order
SALESDOCUMENT = <doc. number>.
ORDER_ITEM_IN-ITM_NUMBER = <item number>.
ORDER_ITEM_INX-ITM_NUMBER = <item number>.
ORDER_ITEM_INX-UPDATEFLAG = 'D'.
Regards,
Vasanth
2007 Jun 23 7:32 AM
Hi Vasanth ,
thanks for your reply.
i tried in the same manner what u mentioned.
but how to pass only one parameter to the functionmodule..
here in this case we have to pass only update flag as 'D'..
i did the same it giving dump..
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_DYN_CALL_ILLEGAL_TYPE', was
not caught and
therefore caused a runtime error.
The reason for the exception is:
The call to the function module "BAPI_SALESORDER_CHANGE" is incorrect:
In the function module interface, you can specify only
fields of a specific type and length under "ORDER_HEADER_INX".
Although the currently specified field
"INT_ORDER_HEADER_INX" is the correct type, its length is incorrect.
***************************************************************************************
my pgm :
&----
*& Report YNEW_ORDER_DELETION
*&
&----
*&
*&
&----
REPORT ynew_order_deletion.
TABLES:vbak.
PARAMETERS:
p_lifsk LIKE vbak-lifsk DEFAULT '02'.
SELECT-OPTIONS:
s_lifsk FOR vbak-lifsk DEFAULT '10',
s_ernam FOR vbak-ernam,
s_erdat FOR vbak-erdat,"DEFAULT sy-datum.
s_erzet FOR sy-uzeit.
*PARAMETERS:
p_erzet LIKE sy-uzeit.
*
s_erdat like vbak-erdat,
s_erzet like vbak-erzet.
DATA:
BEGIN OF int_final OCCURS 0,
w_vbeln TYPE vbak-vbeln,
END OF int_final.
DATA:
int_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
DATA: int_order_header_inx LIKE bapisditmx OCCURS 0 WITH HEADER LINE.
DATA:
wf_time TYPE sy-uzeit.
INITIALIZATION.
s_ernam-low = 'KULKARMA'.
s_ernam-sign = 'I'.
s_ernam-option = 'EQ'.
APPEND s_ernam.
s_ernam-low = 'EAI-BATCH'.
s_ernam-sign = 'I'.
s_ernam-option = 'EQ'.
APPEND s_ernam.
wf_time = sy-uzeit - 1200.
p_erzet = sy-uzeit - 1200.
p_erzet-low = wf_time.
APPEND s_erzet.
int_order_header_inx-updateflag = 'D'.
APPEND int_order_header_inx.
START-OF-SELECTION.
SELECT vbeln FROM vbak
INTO TABLE int_final
WHERE lifsk EQ p_lifsk
AND ernam IN s_ernam
AND erdat IN s_erdat
AND erzet IN s_erzet.
IF sy-subrc = 0.
LOOP AT int_final.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = int_final-w_vbeln
ORDER_HEADER_IN =
order_header_inx = int_order_header_inx
SIMULATION =
BEHAVE_WHEN_ERROR = ' '
INT_NUMBER_ASSIGNMENT = ' '
LOGIC_SWITCH =
NO_STATUS_BUF_INIT = ' '
TABLES
return = int_return
ORDER_ITEM_IN =
ORDER_ITEM_INX =
PARTNERS =
PARTNERCHANGES =
PARTNERADDRESSES =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
SCHEDULE_LINES =
SCHEDULE_LINESX =
ORDER_TEXT =
ORDER_KEYS =
CONDITIONS_IN =
CONDITIONS_INX =
EXTENSIONIN =
.
ENDLOOP.
LOOP AT int_return.
WRITE:/ int_return-type,
int_return-id,
int_return-number,
int_return-message.
ENDLOOP.
ENDIF.
please help me ..its a very urgent issue to be solved...
am waiting for ur reply...
regards
gangareddy
2007 Jun 24 6:18 AM
Change your declaration to this..
DATA: int_order_header_inx type bapisditmx .
Siva