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

reg:BADI

Former Member
0 Likes
343

i need some documents on BADI...pld help me..

i need some documents on BADI...pld help me..

1 REPLY 1
Read only

Former Member
0 Likes
313

Hi,

Tcode for Business ADDIN's is SE18 and SE19 (implimentation)

Go through the links:

http://help.sap.com/saphelp_nw04/helpdata/en/eb/3e7cf7940e11d295df0000e82de14a/frameset.htm

and

http://help.sap.com/saphelp_nw04/helpdata/en/eb/3e7cf7940e11d295df0000e82de14a/frameset.htm

One example:

BAdI Name: ZMB_DOCUMENT_BADI (Implementation name) Controlling the Unlimited GR in PO from MIGO

Definition Name: MB_DOCUMENT_BADI

Interface Name : IF_EX_MB_DOCUMENT_BADI

Implementing Class: ZCL_IM_MB_DOCUMENT_BADI

Method : MB_DOCUMENT_BEFORE_UPDATE

************************************************************************

method IF_EX_MB_DOCUMENT_BADI~MB_DOCUMENT_BEFORE_UPDATE .

DATA : return TYPE STANDARD TABLE OF bapiret2 INITIAL SIZE 0 ,

poitem TYPE STANDARD TABLE OF bapimepoitem INITIAL SIZE 0,

poitemx TYPE STANDARD TABLE OF bapimepoitemx INITIAL SIZE 0,

i_ekbe TYPE STANDARD TABLE OF ekbe INITIAL SIZE 0.

DATA : xmkpf1 TYPE mkpf,

xmseg1 TYPE mseg,

w_ekbe TYPE ekbe,

w_ekpo TYPE ekpo,

poitem1 TYPE bapimepoitem,

gv_qty TYPE menge13,

poitemx1 TYPE bapimepoitemx.

*BEFORE

LOOP AT xmseg INTO xmseg1.

IF xmseg1-bwart EQ '103' AND xmseg1-grund EQ '0001'.

poitem1-po_item = xmseg1-ebelp.

poitem1-unlimited_dlv = 'X'.

APPEND poitem1 TO poitem.

poitemx1-po_item = xmseg1-ebelp.

poitemx1-unlimited_dlv = 'X'.

APPEND poitemx1 TO poitemx.

CALL FUNCTION 'BAPI_PO_CHANGE'

EXPORTING

purchaseorder = xmseg1-ebeln

TABLES

return = return

poitem = poitem

poitemx = poitemx.

ELSEIF xmseg1-bwart EQ '104' AND xmseg1-grund EQ '0001'.

*

COMMIT WORK .

WAIT UP TO 3 SECONDS.

poitem1-po_item = xmseg1-ebelp.

poitem1-unlimited_dlv = space.

APPEND poitem1 TO poitem.

poitemx1-po_item = xmseg1-ebelp.

poitemx1-unlimited_dlv = 'X'.

APPEND poitemx1 TO poitemx.

CALL FUNCTION 'BAPI_PO_CHANGE'

EXPORTING

purchaseorder = xmseg1-ebeln

TABLES

return = return

poitem = poitem

poitemx = poitemx.

read TABLE return with key type = 'S'

ID = '06'

NUMBER = '023' TRANSPORTING NO FIELDS.

IF SY-SUBRC EQ 0.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

ENDIF.

ELSEIF xmseg1-bwart EQ '105'.

  • SELECT * INTO TABLE i_ekbe FROM ekbe WHERE ebeln = xmseg1-ebeln AND

  • ebelp = xmseg1-ebelp AND

  • bwart = '105' OR bwart = '106'.

  • LOOP AT i_ekbe INTO w_ekbe.

  • IF w_ekbe-bwart EQ '105'.

  • gv_qty = gv_qty + w_ekbe-menge.

  • ELSE.

  • gv_qty = gv_qty - w_ekbe-menge.

  • ENDIF.

  • ENDLOOP.

*

  • SELECT single * INTO w_ekpo FROM ekpo WHERE ebeln = xmseg1-ebeln AND

  • ebelp = xmseg1-ebelp.

  • gv_qty = w_ekpo-menge - gv_qty.

  • IF xmseg1-menge > gv_qty.

  • MESSAGE ID 'ZM_MSG' TYPE 'E' NUMBER '012' raising .

  • MESSAGE ID 'ZM_MSG' TYPE 'E' NUMBER '000' WITH 'You already reached the PO quantity'

  • raising exception error_message.

  • ENDIF.

ENDIF.

ENDLOOP.

endmethod.

reward if useful.

regards,

Anji