Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

is there any BAPI or function module to delete entries from a table (VBAK)

Former Member
0 Likes
1,791

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 &#8800; <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 &#8800; <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

4 REPLIES 4
Read only

Former Member
0 Likes
1,041

HI,

look at the function module WY_VBAK_SINGLE_DEL_FROM_BUFFER

Thanks

Ashu

Read only

Former Member
0 Likes
1,041

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

Read only

0 Likes
1,041

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

Read only

0 Likes
1,041

Change your declaration to this..

DATA: int_order_header_inx type bapisditmx .

Siva