Skip to Content
author's profile photo Former Member
Former Member

I want BADI for PO .

Hi Abappers,

i want BADI for PO in which the delivery date should be greater than the Document date.

In the TCode ME23n the delivery date should be greater than the document date.

i want to code for which BADI <removed_by_moderator>

<removed_by_moderator>

Regards,

sri.

Edited by: Julius Bussche on Aug 11, 2008 9:33 AM

Add a comment
10|10000 characters needed characters exceeded

Related questions

3 Answers

  • Best Answer
    Posted on Aug 04, 2008 at 10:00 AM

    Vani,

    badi:ME_PROCESS_PO_CUST

    method:PROCESS_HEADER

    sampal code:

    BAdI Name: ZCHECK_PO_LINE_ITEM (Implementation name) PO Account assignment
    Definition Name: ME_PROCESS_PO_CUST
    Interface Name : IF_EX_ME_PROCESS_PO_CUST
    Implementing Class: ZCL_IM_BADIN_ACCOUNT_ASSGN
    Method : PROCESS_HEADER
    ************************************************************************
    METHOD if_ex_me_process_po_cust~process_header .
    DATA : re_data TYPE mepoheader.
    *get the item data
    CALL METHOD im_header->get_data
    RECEIVING
    re_data = re_data.
    re_header = re_data.
    IF ( re_data-bsart NE 'ZOC' AND re_data-bsart NE 'ZPC' ).
    
    IF ( re_data-bsart 'ZIC' AND re_data-bsart 'UB' ).
    IF re_data-bukrs NE '1001'.
    MESSAGE ID 'ZM_MSG' TYPE 'E' NUMBER '000' WITH 'Use only Sipchem Company'
    'Code for External Procurement'.
    ENDIF.
    ENDIF.
    
    ENDIF.
    ENDMETHOD.
    ************************************************************************
    Method : PROCESS_ITEM
    ************************************************************************
    METHOD if_ex_me_process_po_cust~process_item .
    DATA: v_menge TYPE bamng, " PR Quantity
    v_statu. " PR Status
    DATA : re_data TYPE mepoitem,
    re_data1 TYPE mepoaccounting,
    re_accountings TYPE purchase_order_accountings ,
    header TYPE purchase_order_accounting.
    *get the item data
    CALL METHOD im_item->get_data
    RECEIVING
    re_data = re_data.
    
    IF ( re_header-bsart NE 'ZOC' AND re_header-bsart NE 'ZPC' ).
    
    IF re_header-bsart EQ 'ZRL'.
    IF re_data-konnr EQ space.
    MESSAGE ID 'ZM_MSG' TYPE 'E' NUMBER '000' WITH 'You cant create a Release order'
    'without a reference to Outline Agreeement'.
    ENDIF.
    ENDIF.
    u2022	IF ( re_header-bsart NE 'ZOC' AND re_header-bsart NE 'ZPC' ). 
    IF ( re_data-banfn EQ space AND re_data-anfnr EQ space ).
    MESSAGE ID 'ZM_MSG' TYPE 'E' NUMBER '000' WITH 'You can create a Purchase order'
    'only with reference to a PR or RFQ'.
    ENDIF.
    u2022	ENDIF. 
    
    u2022	
    o	call method IM_ITEM->GET_ACCOUNTINGS 
    o	RECEIVING 
    o	RE_ACCOUNTINGS = RE_ACCOUNTINGS. 
    **get the accounting reference variable,this reference is needed to get
    **the GL account *number and Asset number
    *loop at RE_ACCOUNTINGS into header.
    **get the accounting info.
    u2022	call method header-ACCOUNTING->GET_DATA 
    u2022	RECEIVING 
    u2022	re_data = re_data1. 
    **if the account assignment is K then check for GL account
    **if its A then check for Asset number
    u2022	if re_data-KNTTP eq 'K'. 
    u2022	if re_data1-SAKTO IS INITIAL. 
    u2022	MESSAGE ID 'ZM_MSG' 
    u2022	TYPE 'E' NUMBER '000' WITH 'Enter G/L account'. 
    u2022	ENDIF. 
    u2022	ELSEIF re_data-KNTTP eq 'A'. 
    u2022	if re_data1-ANLN1 IS INITIAL. 
    *
    u2022	MESSAGE ID 'ZM_MSG' TYPE 'E' NUMBER '000' WITH 'Enter Asset Number'. 
    u2022	ENDIF. 
    u2022	ENDIF. 
    *endloop.
    IF re_data-knttp NE 'K' AND re_data-pstyp NE '9' .
    IF syst-cprog EQ 'RM_MEPO_GUI'.
    IF re_data-uebto IS NOT INITIAL OR
    re_data-uebtk IS NOT INITIAL OR
    re_data-untto IS NOT INITIAL.
    MESSAGE ID 'ZM_MSG' TYPE 'E' NUMBER '000' WITH 'You cant change delivery settings'.
    ENDIF.
    ENDIF.
    ENDIF.
    ENDIF.
    u2022	Checking PO quantity with PR Quantity 
    u2022	select single statu menge into (v_statu, v_menge) from eban 
    u2022	where banfn = re_data-banfn and 
    u2022	bnfpo = re_data-bnfpo. 
    *
    u2022	if v_statu 'B'. 
    u2022	if re_data-menge gt v_menge. 
    u2022	message e000(zm_msg) with 'You cant create PO exceeding' 'the PR Quantity'. 
    u2022	endif. 
    u2022	else. 
    u2022	MESSAGE e000(ZM_MSG) WITH 'You cant create a PO with reference' 'to Completed PR'. 
    u2022	endif. 
    
    ENDMETHOD.

    Amit.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Aug 04, 2008 at 10:14 AM

    Hi,

    Check the BADI ME_PROCESS_PO

    Thanks,

    Phani Diwakar.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Aug 11, 2008 at 12:00 PM

    Hi Amit,

    The sample code by u is not working for me.My version is ECC 6.0. it is not working ya. i request u to send the code which is suitable for this version.i debug it but it is giving an

    Exception error to me.

    plz do needful,

    Regards,

    sri.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.