Cmod/badi for FB02

hi guys,
any user exit for tcode FB02 , item detail, plz advice ..thanks

Hi Ester,
What is exactly that you want to check/perform during the document edit?
Regards,
Eli

Similar Messages

  • User exit/ badi for fb02 transaction

    Hi,
    what are the appropriate user exit/ badi for fb02 transaction for a disabling(graying out) a
    payment block field for particular users..?
    Regards,
    Avi

    Following are the exits available for FB02
    F050S001            FIDCMT, FIDCC1, FIDCC2: Edit user-defined IDoc segment
    F050S002            FIDCC1: Change IDoc/do not send
    F050S003            FIDCC2: Change IDoc/do not send
    F050S004            FIDCMT, FIDCC1, FIDCC2: Change outbound IDoc/do not send
    F050S005            FIDCMT, FIDCC1, FIDCC2 Inbound IDoc: Change FI document
    F050S006            FI Outgoing IDoc: Reset Clearing in FI Document
    F050S007            FIDCCH Outbound: Influence on IDoc for Document Change
    F180A001            Balance Sheet Adjustment
    FARC0002            Additional Checks for Archiving MM Vendor Master Data
    FEDI0001            Function Exits for EDI in FI
    RFAVIS01            Customer Exit for Changing Payment Advice Segment Text
    RFEPOS00            Line item display: Checking of selection conditions
    RFKORIEX            Automatic correspondence
    SAPLF051            Workflow for FI (pre-capture, release for payment)

  • User Exit or BADi for FB02

    Hi
    Does somebody knows some user exit or BADI for add validations to FB02 when user changes some position data.
    I need to validate some header BKPF (Company, Currency) and detail BSEG (Posting Key, Account Bank)  data when change the position.
    Does somebody knows one user exit or Badi wich i can use to do it  ?
    Thanks
    Frank

    Thanks for your answers.
    I need to make validations for send error messages and i can not use FI Validations and Sustitutions because i send several differents messages  and wuold need N steps (one step for each message).
    The enhancement points called in CHANGE_TO_MODIFY are executed when ok-code is 'CHAE' that is when the user calls FB03 and then change to modify mode for make changes like if he goes to FB02 , but these enhancements are no executed any more when the data changes are made and user press save.
    I already found some enhancement executed just before data saving (it's in FORM belegsummen_pruefen) so i make the validation and send the error message , but when error message appears the screen get protected so the user can not change any screen field for make the data corrections.
    Best Regards
    Frank

  • Userexit/BAdi for CBIH102  (HR-EHS module)

    Hi guru's,
    Please help find the userexit/BAdi for Transaction code: CBIH102. The Requirement is to auto-populate the Accident Category  (CCIHT_IPEVA-IALPCAT) field  during the Creation/Change mode. I tried the below exits/BAdi & set all the breakpoints, activated CMOD projects and even implemented BAdi. It is not triggering. Enhancement Framew
    Object Name                                 Description
    EHSIAHM1                                     EH&S: Menu Exit 1 for Incident/Accident Log Header
    EHSIAHM2                                     EH&S: Menu Exit 2 for Incident/Accident Log Header
    EHSIAPM1                                     EH&S: Menu Exit 1 for Incident/Accident Log Person
    EHSIAPM2                                     EH&S: Menu Exit 2 for Incident/Accident Log Person
    EHSMPHM1                                   EHS: Menu Exit 1 for Measurement Project Header Data
    EHSMPHM2                                   EHS: Menu Exit 2 for Measurement Project Header Data
    EHSMPJM1                                    EHS: Menu Exit 1 for Measurement Project Measurements
    EHSMPJM2                                    EHS: Menu Exit 2 for Measurement Project Measurements
    EHSSARA                                     EHS: Check/Edit Lines in SARA List Before Printout
    BAdi Name                                    Description
    EHSI_AC_COSTC                          EHS: Cost Calculation in Safety Measures
    EHSI_ANNC_RATCP                      EHS: Calculation of Rating of Standardized Criteria
    EHSI_ER_MEX_01                          EHS: Risk Assessment Menu Exit 1
    EHSI_ER_MEX_02                          EHS: Risk Assessment Menu Exit 2
    EHSI_ER_MEX_03                          EHS: Risk Assessment Menu Exit 3
    EHSI_ER_MEX_04                          EHS: Risk Assessment Menu Exit 4
    EHSI_FAL_***_SRV_SCR           EHS: Screen Enhancement: Injury/Illness Log-Service Assignmt
    EHSI_FAL_MEX_01                        EHS: Injury/Illness Log Menu Exit 1
    EHSI_FAL_MEX_02                        EHS: Injury/Illness Log Menu Exit 2
    EHSI_FAL_MEX_03                        EHS: Injury/Illness Log Menu Exit 3
    EHSI_FAL_MEX_04                        EHS: Injury/Illness Log Menu Exit 4
    EHSI_IA_RPHDFLG_COMP             EHS: Determ. of Reportable Event Indicator in Inc./Acc. Hdr
    EHSI_INT_ORG_1403                     EHS: Write Long-Term Average to Infotype 1403
    EHSI_MJVA_MATCHUP                  EHS: Transfer Measured Values - Amounts
    EHSI_MJ_IMPORT                           EHS: Import Measured Values
    EHSI_MJ_MEX_01                           EHS: Measurement Management - Measurement - Menu Exit 1
    EHSI_MJ_MEX_02                           EHS: Measurement Management - Measurement - Menu Exit 2
    EHSI_MP_CREATE                          EHS: Create Measurement Projects
    EHSI_MP_DV_SCR                         EHS: Screen Exit: Device List in Measurement Management
    EHSI_MP_EPI_IMP                           EHS: Import Exposure Profile
    EHSI_MP_METHOD_HELP               EHS: F4 Help for Measurement Method
    EHSI_MP_MEX_01                           EHS: Measurement Management - Meas. Project - Menu Exit 1
    EHSI_MP_MEX_02                          EHS: Measurement Management - Meas. Project - Menu Exit 2
    EHSI_WA_MEX_01                         EHS: Work Area Menu Exit 1
    EHSI_WA_MEX_02                         EHS: Work Area Menu Exit 2
    EHSI_WA_MEX_03                         EHS: Work Area Menu Exit 3
    EHSI_WA_MEX_04                         EHS: Work Area Menu Exit 4
    EHSI_WA_OVERALL_RAT             BAdI Default Impl.: Work Area Overall Rating
    EHSI_WA_RECEIVED_RAT             BAdI Default Impl.: Work Area Received Rating
    EHSI_ACPM_DATA_TRANS           BAdI Default Impl.: Work Area Received Rating
    EHSI_CLM_HEAD_SCR                  BAdI Default Impl.: Work Area Received Rating
    EHSI_CLM_MEX_1                          BAdI Default Impl.: Work Area Received Rating
    EHSI_CLM_MEX_2                          BAdI Default Impl.: Work Area Received Rating
    EHSI_CLM_PAY_SCR                    BAdI Default Impl.: Work Area Received Rating
    EHSI_IAL_COSTS_SCR                 BAdI Default Impl.: Work Area Received Rating
    EHSI_IPEVA_TIMDAT                     EHS: Make the Multiple Absences in the I/A Log flexible
    Regards,
    Vinayak

    Up please )

  • Badi for making gross weight field mandatory in MM01.

    Hi,
    Pls tell me the Badi for making gross weight field mandatory in MM01/MM02.
    Thanks in Advance.

    Hi!
    if it is not working with customizing I would do it in this userexit (CMOD)
    MGA00001
    it is the user exit before saving the material master data.
    have fun
    Flo

  • BADI for XD02

    Hi,
    Is there a BADI for XD02 when I click the COMPLETE TECHNICALLY BUTTON(ctrl+F12)?
    thanks...
    james

    Hi,
    These steps should enable you to find any BADI related to any transaction in a matter of minutes.
    Procedure 1:
    1) Goto se24 (Display class cl_exithandler)
    2) Double click on the method GET_INSTANCE.
    3) Put a break point at Line no.25 (CASE sy-subrc).
    4) Now Execute SAP standard transaction
    5) Press the required button for which you need to write an exit logic, the execution will stop at the break point.
    6) Check the values of variable 'exit_name', it will give you the BADI name called at that time.
    7) This way you will find all the BADIs called on click of any button in any transaction
    Actually there is no transaction to find when and where the BADI
    is called.
    1. You can see the BADI description to find why it is called.
    2. Once you implemented and activated the BADI, put some break points
    in the BADI and see "where else used" option to check in what all
    programs this BADI is called. In the ITS debug, when you are doing
    the operation what exactly the BADI description tells, it will take
    to the break points and you have to do manually debug the whole thing.
    I know its bit difficult to do manual debug the whole thing, it
    takes lot of time, but you have to be very patience when you are
    dealing with BADI's.
    Transaction SE18 is the BADI equivalent of transaction SMOD
    Transaction SE19 is the BADI equivalent of transaction CMOD .
    To find the BADI to be implemented and then implement this via SE19.
    To find badis for any transactions --->
    1. Go to Transaction SE24
    2. Enter the Object Type CL_EXITHANDLER and click on Display.
    3. Double Click on method "GET_INSTANCE".
    4. Put a Break-point on
    Call method cl_exithandler=>get_class_name_by_interface
    5. Run any Transaction for which you need enhancements.
    6. The execution will stop at the break point. Check the values of variable 'exit_name', it will give you the BADI name called at that time.
    here are multiple ways of searching for BADI.
    • Finding BADI Using CL_EXITHANDLER=>GET_INSTANCE
    • Finding BADI Using SQL Trace (TCODE-ST05).
    • Finding BADI Using Repository Information System (TCODE- SE84).
    •Finding BADI Using CL_EXITHANDLER=>GET_INSTANCE
    Go to the Transaction, for which we want to find the BADI,
    Get the Program Name of Corresponding Transaction.
    (Click on System->Status. Double Click on Program Name)
    Once inside the program search for ‘CL_EXITHANDLER=>GET_INSTANCE’.
    Make sure the radio button “In main program” is checked.
    A list of all the programs with call to the BADI’s will be listed.
    The export parameter ‘EXIT_NAME’ for the method GET_INSTANCE of class CL_EXITHANDLER will have the user exit assigned to it.
    The changing parameter ‘INSTANCE’ will have the interface assigned to it.
    •Finding BADI Using SQL Trace (TCODE-ST05).
    •Finding BADI Using Repository Information System (TCODE- SE84).
    Go to “Maintain Transaction” (TCODE- SE93).
    Enter the Transaction VD02 for which you want to find BADI.
    Click on the Display push buttons.
    Get the Package Name. (Package VS in this case)
    Go to TCode: SE84->Enhancements->Business Add-inns->Definition
    Enter the Package Name and Execute.
    Procedure 2:
    1) Go to the transaction SE37 to find your function module.
    2) Locate the function SXV_GET_CLIF_BY_NAME.
    3) Put a breakpoint there.
    4) Now open a new session.
    5) Go to your transaction.
    6) At that time, it will stop this function.
    7) Double click on the function field EXIT_NAME.
    8) That will give you name of the BADI that
    The following code lists Userexits and BAdi's for a given Tcode...
    REPORT Z_FIND_BADI.
    TABLES : TSTC,
    TADIR,
    MODSAPT,
    MODACT,
    TRDIR,
    TFDIR,
    ENLFDIR,
    SXS_ATTRT ,
    TSTCT.
    DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.
    DATA : FIELD1(30).
    DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.
    PARAMETERS : P_TCODE LIKE TSTC-TCODE,
    P_PGMNA LIKE TSTC-PGMNA .
    DATA wa_tadir type tadir.
    START-OF-SELECTION.
    IF NOT P_TCODE IS INITIAL.
    SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.
    ELSEIF NOT P_PGMNA IS INITIAL.
    TSTC-PGMNA = P_PGMNA.
    ENDIF.
    IF SY-SUBRC EQ 0.
    SELECT SINGLE * FROM TADIR
    WHERE PGMID = 'R3TR'
    AND OBJECT = 'PROG'
    AND OBJ_NAME = TSTC-PGMNA.
    MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
    IF SY-SUBRC NE 0.
    SELECT SINGLE * FROM TRDIR
    WHERE NAME = TSTC-PGMNA.
    IF TRDIR-SUBC EQ 'F'.
    SELECT SINGLE * FROM TFDIR
    WHERE PNAME = TSTC-PGMNA.
    SELECT SINGLE * FROM ENLFDIR
    WHERE FUNCNAME = TFDIR-FUNCNAME.
    SELECT SINGLE * FROM TADIR
    WHERE PGMID = 'R3TR'
    AND OBJECT = 'FUGR'
    AND OBJ_NAME EQ ENLFDIR-AREA.
    MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
    ENDIF.
    ENDIF.
    SELECT * FROM TADIR INTO TABLE JTAB
    WHERE PGMID = 'R3TR'
    AND OBJECT in ('SMOD', 'SXSD')
    AND DEVCLASS = V_DEVCLASS.
    SELECT SINGLE * FROM TSTCT
    WHERE SPRSL EQ SY-LANGU
    AND TCODE EQ P_TCODE.
    FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
    WRITE:/(19) 'Transaction Code - ',
    20(20) P_TCODE,
    45(50) TSTCT-TTEXT.
    SKIP.
    IF NOT JTAB[] IS INITIAL.
    WRITE:/(105) SY-ULINE.
    FORMAT COLOR COL_HEADING INTENSIFIED ON.
    Sorting the internal Table
    sort jtab by OBJECT.
    data : wf_txt(60) type c,
    wf_smod type i ,
    wf_badi type i ,
    wf_object2(30) type C.
    clear : wf_smod, wf_badi , wf_object2.
    Get the total SMOD.
    LOOP AT JTAB into wa_tadir.
    at first.
    FORMAT COLOR COL_HEADING INTENSIFIED ON.
    WRITE:/1 SY-VLINE,
    2 'Enhancement/ Business Add-in',
    41 SY-VLINE ,
    42 'Description',
    105 SY-VLINE.
    WRITE:/(105) SY-ULINE.
    endat.
    clear wf_txt.
    at new object.
    if wa_tadir-object = 'SMOD'.
    wf_object2 = 'Enhancement' .
    elseif wa_tadir-object = 'SXSD'.
    wf_object2 = ' Business Add-in'.
    endif.
    FORMAT COLOR COL_GROUP INTENSIFIED ON.
    WRITE:/1 SY-VLINE,
    2 wf_object2,
    105 SY-VLINE.
    endat.
    case wa_tadir-object.
    when 'SMOD'.
    wf_smod = wf_smod + 1.
    SELECT SINGLE MODTEXT into wf_txt
    FROM MODSAPT
    WHERE SPRSL = SY-LANGU
    AND NAME = wa_tadir-OBJ_NAME.
    FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
    when 'SXSD'.
    For BADis
    wf_badi = wf_badi + 1 .
    select single TEXT into wf_txt
    from SXS_ATTRT
    where sprsl = sy-langu
    and EXIT_NAME = wa_tadir-OBJ_NAME.
    FORMAT COLOR COL_NORMAL INTENSIFIED ON.
    endcase.
    WRITE:/1 SY-VLINE,
    2 wa_tadir-OBJ_NAME hotspot on,
    41 SY-VLINE ,
    42 wf_txt,
    105 SY-VLINE.
    AT END OF object.
    write : /(105) sy-ULINE.
    ENDAT.
    ENDLOOP.
    WRITE:/(105) SY-ULINE.
    SKIP.
    FORMAT COLOR COL_TOTAL INTENSIFIED ON.
    WRITE:/ 'No.of Exits:' , wf_smod.
    WRITE:/ 'No.of BADis:' , wf_badi.
    ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(105) 'No userexits or BADis exist'.
    ENDIF.
    ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(105) 'Transaction does not exist'.
    ENDIF.
    AT LINE-SELECTION.
    data : wf_object type tadir-object.
    clear wf_object.
    GET CURSOR FIELD FIELD1.
    CHECK FIELD1(8) EQ 'WA_TADIR'.
    read table jtab with key obj_name = sy-lisel+1(20).
    move jtab-object to wf_object.
    case wf_object.
    when 'SMOD'.
    SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).
    CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
    when 'SXSD'.
    SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).
    CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
    endcase.
    Reward If Helpfull,
    Naresh.

  • Reg. Exit/BADI for changing item data of PO in ME22N

    Hi all,
    My requirement is to update the field LABNR (Order Ack.) of few specific line items of a PO, in the Transaction ME22N, using Exit/BADI.
    I have tried the BADI  ME_PROCESS_PO_CUST. But the PROCESS_ITEM method of this BADI processes only the line item which has been changed/inserted in ME22N transaction. But my requirement is to update line items irrespective of whether that line item was "changed/not changed" during the process in ME22N screen.
    Could you please suggest me some suitable Exit/BADI for this requirement.
    Regards,
    Anbarasan K

    Thanks Martin.
    Problem solved by implementing the method Process_Header.
    1. Get the items from Header                              -  im_header->get_items
    2. Loop the item list and get the line item record   - re_item-item->get_data
    3. <- Logic to Update the line item - >.
    4. Update the line item                                       - re_item-item->set_data
    Thank you very much.. Martin.
    Regards,
    Anbarasan K

  • Do you have any idea what is the BADI for creation of Purchase Order?

    Hi Gurus, I would like to ask regarding the BADI for the P.O creation in SRM. I have a requirement that if the Account Assignment Type is "asset" it should tick the checkbox (goods receipt/confirmation of performance of service) in the related documents tab of item.  Thanks a lot. I hope you can help me gurus.

    Thanks for the help.

  • User Exit/ BADI for PO release

    Hi Experts,
    Can anyone please tell me about the User Exit or BADI for Sub contract PO release.Also tel me how to proceed for the following 2 requirement ,
    i have to send an IDOC as & when the Sub contract PO releases.
    And automatically resent if changes are made in PO with the repeat output function in ME22N.
    Regards,
    Nik

    Hi,
      Use trx SE19 to implement your BADI: create an ZME_PROCESS_PO_CUST using ME_PROCESS_PO_CUST as definition.
    Now in Interface Tabs you can see the METHODs you can use as "user-exit", in particular there's PROCESS_ITEM to manage items data.
    You have to write your code into this method.
    This method has IM_ITEM like parameter in its interface, and it's like the type IF_PURCHASE_ORDER_ITEM_MM.
    This type has the method IF_LONGTEXTS_MM~SET_TEXT, you can try to use it to set your text in item.
    This is code for example:
    DATA: TLINE TYPE MMPUR_T_TEXTLINES.
    CALL METHOD IM_ITEM->IF_LONGTEXTS_MM~SET_TEXT
    EXPORTING
    IM_TDID = <YOUR ID>
    IM_TEXTLINES = TLINE.
    So you should read the text you want to copy and pass it to TLINE.
    You can use the METHOD PROCESS_HEADER to read the text you need. This METHOD has IM_HEADER as parameter and it's like the type IF_PURCHASE_ORDER_MM, this type has the method IF_LONGTEXTS_MM~GET_TEXT to read header logn text.
    Anyway while you're in implementation of the BADI go to:
    GoTo->Sample Code
    Here you can try an example how to implement the method you need to use.
    Regards

  • User exit / BADI for training and event management

    Hi all,
    Can anybody tell me if there is any user exit / BADI for training and event management module?
    Thanks & regards,
    LOI

    Hi
    BADI's for Training and Event Management
    HRTEM00MASTERDATA      HR: Training and Event Management - Master Data
    HRTEM00NET_ACTIVITY      Determine Activities of an Attendee (e.g. ESS PV8I)
    HRTEM00NET_WEBST      Set Cancellation Reason in ESS PV8I
    HRTEM_CORR_NOTIF_REQ      Customer Enhancement:Confirmation on Send (R/3 Mail, E-Mail)
    HRTEM_HANDLE_BOOKING      HR-TEM BAdI: Employee Leaves Company - Update TEM Data
    HRTEM_INT_ZW           HR-TEM: Badi for Integration TEM - Time Management
    HRTEM_READ_OBJECT      Customer Enhancement: Name Format
    RHPV0001 Customer      Enhancement for Additional Checks for Booking
    Enhancemnet Spot:
    HRTEM00MASTERDATA      HR: Training and Event Management - Master Data
    ~~~Ganesh Kumar K.

  • How to create a BADI for the sceanrio

    Hi abapers,
    I have a scenario as follows.
    I create a Transaction where in i put the details of the product and quantity for a particular project's site. The amount gets calculated based on the products  unit value and its displayed in net value field. Now the user saves the transaction and a number gets generated. If the net value amount is less than 500 then the user can approve , if its greater than 501 and less than 1500 then a mail should be generated to his superior who is able to approve and ifs amount is greater than 1501 then a mail should be generated to the top of hierarchy who should approve it.
    Now the real challenge is if the same project card  has more than 1  new request and the amount is less than 500 the user should not be able to approve  instead it should generate a mail to his hierarchy for approval  since  the site has already been exceeded its limit of approval. bcoz earlier 500 and current 400 which will make it to greater than 500.similarly for the hiearchy.How do i go about  it.
    Now i want to create a BADI  on the save event of transaction to check the net value amount as well as check for earlier amounts saved for the particular site.
    Any help will be appreciated.
    Regards,
    Navin .

    hai navin
    r u using ECC 6.0 or 4.7 if 4.7 u can create badi defintiion directly form se18 transaction
    and define the interface and its methods , once u define them activate them
    and to use in ur code u create an instance of ur badi name
    and then use
                     cl_exithandler=>get_instance  method in instance name parameter just pass ur badi name and this will create a badi defintion in ur code, and an oen can implement it
    if u r usign ecc6.0 then u can either create new badis usign enhancments or classical badis
    for clasical badis just go to menu  utilites and create classical badis and follw the sam eprocedure
    regards
    m.a

  • Regarding Error message in ME_PROCESS_PO_CUST badi for validation.

    hi Friends,
    I am Using ME_PROCESS_PO_CUST badi for validation in Purchase order (ME21N),
    For that I implemented PROCESS_ITEM method which fires during each row now i  add another validation in same implementation for plant  should be same through out the all line item. Now following code is woking fine but when for second line item user changese plant then it shows error message as per logic which is fine but even after changing plant to correct one the error message is still coming why is it so?
    following is my current validation code
    method IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM.
      DATA:ls_poitem TYPE mepoitem,
           ls_poitem_set TYPE mepoitem.
      DATA:ls_poheader TYPE MEPOHEADER.
      DATA:lm_poheader TYPE ref to IF_PURCHASE_ORDER_MM.
      DATA:w_mara TYPE mara.
      DATA:IT_ZMMTBL039 TYPE STANDARD TABLE OF ZMMTBL039 ,
           WA_ZMMTBL039 TYPE ZMMTBL039 .
      DATA:ls_poitem1 TYPE mepoitem.
      DATA:V_KUNNR1 TYPE KNA1-KUNNR.
      DATA:V_KUNNR2 TYPE KNA1-KUNNR.
      DATA:W_WERKS(4),
           w_werks_tmp(4),
           w_flag(1).
      ls_poitem = im_item->get_data( ).
      lm_poheader = im_item->GET_HEADER( ).
      ls_poheader = lm_poheader->GET_DATA( ).
      IF ls_poitem-werks IS NOT INITIAL.
        w_werks = ls_poitem-werks.
        import w_flag to w_flag from MEMORY ID 'FLAG'.
        if w_flag is initial.
          w_flag = 'X'.
          EXPORT w_werks_tmp FROM w_werks TO MEMORY ID 'MEMO1'.
          export w_flag from w_flag to MEMORY ID 'FLAG'.
          clear: w_flag.
        endif.
      ENDIF.
      IMPORT w_werks_tmp TO w_werks FROM MEMORY ID 'MEMO1'.
    break swaroopb.
      IF ls_poitem-werks NE w_werks.
          MESSAGE E010(zparts) with 'Different plants are not allowed in single PO.'.
      ENDIF.
      CLEAR: WA_ZMMTBL039,w_mara.
      REFRESH:IT_ZMMTBL039[] .
      SELECT *
        INTO TABLE IT_ZMMTBL039
        FROM ZMMTBL039
       WHERE bsart EQ ls_poheader-bsart.
      IF sy-subrc EQ 0.
        CLEAR: WA_ZMMTBL039,w_mara.
        SELECT SINGLE *
          INTO w_mara
          FROM mara
         WHERE matnr EQ ls_poitem-MATNR.
        IF SY-SUBRC EQ 0.
          READ TABLE IT_ZMMTBL039 INTO WA_ZMMTBL039 WITH KEY  bsart = ls_poheader-bsart
                                                              mtart = w_mara-mtart
                                                              spart = w_mara-spart.
          IF SY-SUBRC NE 0.
            MESSAGE E009(zparts) WITH ls_poitem-MATNR w_mara-spart ls_poheader-bsart .
          ENDIF.
        ENDIF.
      ENDIF.
    end method

    Hello Swarup
    Since you want to compare all items together (having the same plant) I would suggest to implement this logic either in method CHECK or POST of the interface.
    However, if you want to make your checks within the PROCESS_ITEM method then you should change your logic.
    It does not make sense to work with the ABAP memory within a BAdI implementing class because the class itself is your "memory".
    I would use the following logic to implement your validation:
      lo_poheader = im_item->get_header( ).  " retrieve header instance
      lt_items = lo_poheader->get_items( ).   " retrieve all items
      ls_detail_x = im_item->get_detail( ).  " details of currently processed item
      LOOP AT lt_items INTO ls_item.
        ls_detail = ls_item-item->get_detail( ).
        IF ( ls_detail-werks NE ls_detail_x-werks ).  " validation failed
        " do something...
       ENDIF.
      ENDLOOP.
    However, I would prefer to do this kind of validation in CHECK or POST method.
    Regards,
      Uwe

  • Project settlement to CO-PA and BAdI for automatic creation of rules

    Hello SAP experts!
    I have managed to implement settlement rule strategy to CO-PA for sales project WBS-elements, which automatically creates the settlement rules for WBS-elements with billing indicator. One or more sales order items are assigned to the WBS-elements. When the system derives settlement rules, it generates profitability segments that contain the characteristic values of the WBS elements and the sales orders assigned to them. The problem is, that only one single settlement receiver is determined for each WBS-element. And if more that one sales order item is assigned to the same WBS-element only those characteristics are copied to the settlement rule that are same in all sales order items.
    For example; it products are different in all sales order items, the automatically created settlement rule does not contain the characteristic value product or neighter other caracteristics derived from product.
    Do You have experience of using BAdI for influencing the generation of settlement rules? What it actually makes possible?
    Br, Nina

    Dear Waman,
    thank you for your reply !
    Yet - this still does not solve our problem. In that note (and also in the related note 201445) there is no valuable information included concerning transaction currency:
    Our WBS elements (and also other cost objects, e.g. sales order items) are being debited in all of the three currencies.....but the credit (during settlement) only takes place in two of them:  object and CO area currency.
    I really appreciate additional help on this. It would be hard to believe that we are the only SAP customer having this kind of problem.
    Best regards,
    Thomas

  • Need exit or Badi for updating Warranty data in IE02 while Prod Order conf.

    Hi All,
    I need a user exit or Badi for updating the Warranty data in IE02(Equipment Master) while production order confirmation(CO15)?
    I need to update the Begin guarantee date from Production order and warranty master type in IE02 while confirming the production order.
    Thanks,
    Sudha

    Hi,
    Are you saying first create notification,then service order
    and then Sales order.
    But the requirement is create notification then sales order and when you go in va02 and while modifying the sales order and create service order.
    Thanks & regards,
    chetan.

  • BADI for Claims search in trade promotion management

    Hi Experts,
    I am enhancing the Claims search in trade promotion management with a custom field. I added a custom field in the search screen of claims.
    I want to filter the records based on that custom field. The component is BT311S_CSR and the search query is BTQCSR.
    Is there any BADI for claims so that I can filter the records.
    I tried to put a breakpoint in the badi CRM_BADI_RF_Q1O_SEARCH and searched but it is not stopping.
    Does this badi works for claims? Or first do i have to create a implementation with the filter object as BTQCSR then try to check whether it will stop in the badi while searching the claims.
    Please suggest me.
    Regards,
    Dinesh.

    Hi Dinesh,
    Now this becomes tricky. Since your requirement is very specific there is no way that standard sap can help. You may end up in enhancing n number of classes.
    I can propose a solution though Please put of in front of your business/ functional team and then go ahead..
    Now we will change our approach...Please follow below steps:
    1. Add a altogether new field to your claim transaction using AET for sales office (description as 'Sales Office').
    2. Make this field search and result relevant.
    3. Whenever a sold to party is selected for claim transaction, based on the sold to party you would set value of this field.
    4. Since your field is search relevant it will automatically appear in your search query (control this in view configuration.)
    5. You may or may not display this field to end user in claim detail screen, You can control this by configuration.
    6. Depending on your requirement you can show/hide standard sales office field in search query.
    If you follow this approach then it will serve the purpose.
    Trust this solves your issue. Give points if it helps.
    Regards,
    Bhushan

Maybe you are looking for