BADI in ECC 6.0

Hi Experts,
I had implemented a BADI in ECC 6.0. It is having some warnings. <b>But i am not able to activate the implementaion.</b>
This badi is basically to copy the PO reference for Repair, Rework & Refurb to vendors to all documents.
For this i found the BADi <b>LE_SHP_GOODSMOVEMENT</b>
In that i have the method <b>CHANGE_INPUT_HEADER_AND_ITEMS</b>
when i write the below logic here
method IF_EX_LE_SHP_GOODSMOVEMENT~CHANGE_INPUT_HEADER_AND_ITEMS.
**->Data declaration
  CONSTANTS:  C_LB TYPE LIKP-LFART VALUE 'LB',
              C_X  TYPE C VALUE 'X',
              C_O  TYPE MSEG-SOBKZ VALUE 'O',
              C_E TYPE SHP_BADI_ERROR_LOG-MSGTY VALUE 'E',
              C_ZM TYPE SHP_BADI_ERROR_LOG-MSGID VALUE 'ZM',
              C_999 TYPE SHP_BADI_ERROR_LOG-MSGNO VALUE '999',
              C_541 TYPE MSEG-BWART VALUE '541',
              C_542 TYPE MSEG-BWART VALUE '542'.
  DATA: WA_CTLOG TYPE SHP_BADI_ERROR_LOG,
        WA_XIMSEG TYPE IMSEGVB,
        WA_XLIPS  TYPE LIPSVB.
  DATA: L_EBELN  TYPE EKPO-EBELN,
        L_EBELP  TYPE EKPO-EBELP,
        L_LIFEX  TYPE LIKP-LIFEX,
        L_LIFNR  TYPE LIKP-LIFNR,
        L_CHECK   TYPE C,
        L_BDMNG  TYPE RESB-BDMNG,
        L_MENGE1 TYPE MSEG-MENGE.
  TYPES: BEGIN OF TY_RESB,
           BDMNG TYPE BDMNG,
         END   OF TY_RESB,
         BEGIN OF  TY_MSEG,
           BWART TYPE BWART,
           MENGE TYPE MENGE_D,
         END   OF TY_MSEG.
  DATA: IT_RESB TYPE STANDARD TABLE OF TY_RESB INITIAL SIZE 0,
        IT_MSEG TYPE STANDARD TABLE OF TY_MSEG INITIAL SIZE 0.
  DATA: WA_RESB TYPE TY_RESB,
        WA_MSEG TYPE TY_MSEG.
*-->Check for delivery type LB.
  CHECK IS_LIKP-LFART EQ C_LB.
*-->Check for Purchase doc Number.
  IF IS_LIKP-LIFEX IS INITIAL.
    WA_CTLOG-MSGV1 = 'PO Number is Blank in Delivery'(001).
    L_CHECK = C_X.
  ENDIF.
  IF L_CHECK NE C_X.
    MOVE IS_LIKP-LIFEX TO L_LIFEX.
    CONDENSE L_LIFEX.
    L_EBELN = L_LIFEX+0(10).
    L_EBELP = L_LIFEX+11(5).
*-->Get the PO Vendor
    SELECT SINGLE LIFNR INTO L_LIFNR FROM EKKO
                             WHERE EBELN EQ L_EBELN.
    IF SY-SUBRC EQ 0.
*-->Compare PO Vendor with the Delivery in Vendor
      IF IS_LIKP-LIFNR NE L_LIFNR.
        WA_CTLOG-MSGV1 =
        'PO Vendor does not match with Delivery Vendor'(002).
        L_CHECK = C_X.
      ELSE.
        READ TABLE IT_XLIPS INTO WA_XLIPS INDEX 1.
        IF SY-SUBRC EQ 0.
          SELECT BWART MENGE
                 INTO TABLE IT_MSEG FROM MSEG
                                 WHERE BWART IN (C_541,C_542) AND
                                       MATNR EQ WA_XLIPS-MATNR AND
                                       WERKS EQ WA_XLIPS-WERKS AND
                                       SOBKZ EQ C_O AND
                                       LIFNR EQ L_LIFNR AND
                                       EBELN EQ L_EBELN.
**Subrc Check not required.
          SELECT BDMNG INTO TABLE IT_RESB FROM RESB WHERE
                        KZEAR EQ SPACE AND
                        MATNR EQ WA_XLIPS-MATNR AND
                        EBELN EQ L_EBELN
                        AND LIFNR EQ L_LIFNR.
          IF SY-SUBRC EQ 0.
            CLEAR L_BDMNG.
            LOOP AT IT_MSEG INTO WA_MSEG.
              IF WA_MSEG-BWART EQ C_541.
                L_MENGE1 = L_MENGE1 + WA_MSEG-MENGE.
              ELSE.
                L_MENGE1 = L_MENGE1 - WA_MSEG-MENGE.
              ENDIF.
            ENDLOOP.
            LOOP AT IT_RESB INTO WA_RESB.
              L_BDMNG = L_BDMNG + WA_RESB-BDMNG.
            ENDLOOP.
            L_BDMNG = L_BDMNG - L_MENGE1.
            IF NOT WA_XLIPS-LFIMG LE L_BDMNG.
              MESSAGE I999(ZX) WITH
              'Delivery Quantity Greater than Components'(004)
                                    'Required for Purchase order'(005).
            ENDIF.
          ELSE.
            MESSAGE I999(ZX) WITH
            'Delivery Quantity Greater than Components'(004)
                                  'Required for Purchase order'(005).
          ENDIF.
          IF L_CHECK NE C_X.
*-->Populate PO Number in MSEG table
            LOOP AT CT_XIMSEG INTO WA_XIMSEG.
              WA_XIMSEG-EBELN = L_EBELN.
              WA_XIMSEG-EBELP = L_EBELP.
              MODIFY CT_XIMSEG FROM WA_XIMSEG.
            ENDLOOP.
          ENDIF.
        ENDIF.
      ENDIF.
    ELSE.
*-->Issue an error message if the PO entered in Delivery is Wrong
      WA_CTLOG-MSGV1 = 'Enter a Valid PO Number in the Delivery'(003).
      L_CHECK = C_X.
    ENDIF.
  ENDIF.
*-->Populate the error table
  IF L_CHECK EQ C_X.
    WA_CTLOG-VBELN = IS_LIKP-VBELN.
    WA_CTLOG-POSNR = WA_XLIPS-POSNR.
    WA_CTLOG-MSGTY = C_E.
    WA_CTLOG-MSGID = C_ZM.
    WA_CTLOG-MSGNO = C_999.
    APPEND WA_CTLOG TO CT_LOG.
    CLEAR WA_CTLOG.
  ENDIF.
endmethod.
it is giving an<b> warning</b>
<b>The feild LIFNR used in the where condition may contain Null values</b>
<b>and i am not able to activate the implementation.</b>

Hello Raghavendra
For some reasons (that I do not fully understand) the field LIFNR of the tables can contain NULL values. However, with the following modifications of your coding it is possible to get rid of the warnings and activate the BAdI implementation.
[code]  TYPES: BEGIN OF ty_resb,
  bdmng TYPE bdmng,
  lifnr TYPE lifnr,  " $field added
  END OF ty_resb,
  BEGIN OF ty_mseg,
  bwart TYPE bwart,
  menge TYPE menge_d,
  lifnr TYPE lifnr,  " $field added
  END OF ty_mseg.[/code]
[code]...
*-->Get the PO Vendor
    SELECT SINGLE lifnr INTO l_lifnr FROM ekko
    WHERE ebeln EQ l_ebeln.
    IF sy-subrc EQ 0.
   IF ( syst-subrc = 0 ) AND ( l_lifnr IS NOT INITIAL ).
*-->Compare PO Vendor with the Delivery in Vendor
      IF is_likp-lifnr NE l_lifnr.
        wa_ctlog-msgv1 =
        'PO Vendor does not match with Delivery Vendor'(002).
        l_check = c_x.
      ELSE.
        READ TABLE it_xlips INTO wa_xlips INDEX 1.
        IF sy-subrc EQ 0.
          SELECT bwart menge lifnr  " $ field LIFNR added
          INTO TABLE it_mseg FROM mseg
          WHERE bwart IN (c_541,c_542) AND
          matnr EQ wa_xlips-matnr AND
          werks EQ wa_xlips-werks AND
          sobkz EQ c_o AND
          lifnr EQ l_lifnr AND  " Here it works but Why???
          ebeln EQ l_ebeln.
**Subrc Check not required.
          SELECT bdmng lifnr  " $ field LIFNR added
          INTO TABLE it_resb FROM resb
          WHERE
          kzear EQ space AND
          matnr EQ wa_xlips-matnr AND
         lifnr EQ l_lifnr    AND  " Here it does not work but Why???
          ebeln EQ l_ebeln.
          DELETE it_resb WHERE ( lifnr NE l_lifnr ).
          DESCRIBE TABLE it_resb.  " fills sy-tfill.
         IF sy-subrc EQ 0.
          IF ( syst-tfill > 0 ).
            CLEAR l_bdmng.
...[/code]
Regards
  Uwe

Similar Messages

  • Remote Function Call (RFC) within a BAdI in ECC to CRM

    I've a remote enabled FM in a CRM system which I want to call within a BAdI implementation of a ECC system. As a result, the CRM system is the RFC server and the ECC system is the RFC client.
    The FM in CRM simply gets the relevant rows of a Z table which, of course, only exists in CRM and passes these rows to the calling program as per parameter supplied by the calling program.
    Now the BAdI in ECC is for changing 'Contracts' data in SAP (transactional data) before posting the contracts in the ECC database. The business uses a transaction where a large number of contracts are processed and documents posted in the system - and when this happens the system runs through (calls) the BAdI one contract at a time.
    If I call the RFC enabled FM anywhere within this BAdI, it gets the data for one contract only so it reduces a great deal of performance in regards to memory consumption, network load etc. So I want to avoid this and call the RFC FM once instead, if possible.
    Is it possible to call this RFC FM once only (to load the CRM Z table data for all contracts) and store it in a global table/area within the instantiated BAdI class (visibility public) so that when the BAdI is called the second time onwards it can read the global table/area by READ TABLE WITH KEY statement and avoid the RFC call for each BAdI call?
    I was also thinking about may be using ABAP Shared Memory if this is a possibility in order to avoid the repeated RFC call? But this table on the RFC server changes frequently....so it might not be a good idea? or....??
    I would greatly appreciate your inputs and thoughts regarding this; it would be great to hear if someone had had a similar experience.
    Cheers,
    Sougata.

    As the Z table is only updated via a particular program in CRM - we developed and called a RFC enabled FM in that report when its updating the Z table to update the Z table in ECC to keep it in sync.
    Short term benefit but might be long term pain if the Z table in CRM is updated by another program/process/application in the future! Not to mention any table field changes in CRM has to be also made in ECC everytime which is again a pain.
    This is a workaround and definitely not a full-proof solution - but I guess these days one has to shut up and deliver whatever the customer wants!

  • Finding BADI in ECC 6.0

    Dear All,
    I need to find BADI's in any particular Transactions in ECC 6.0. I am familiar with Classic BADIs regarding
    how to find them and implement them. However in ECC 6.0, badi calls are made through GET BADI and CALL BADI. Now, in order to find them, do we need to use any class or should we look for the strings GET BADI or CALL BADI in the program itself.
    Any help would be appreciated.
    p.s: Please advise on finding BADIs in ECC 6.0 only, i m familiar with finding classic badis through CL_exithandler.

    dear pradeep,
    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 give you the BADI name for the Transaction.
    Cheers
    fareed

  • Creating BADI in ECC 6.0 version

    hi guys,
             Can any one help me,
    1. when iam creating a BADI in ECC 6.0 version after giving the badi name and description, i dont find the INTERFACE tab.
       CAN ANY ONE GIVE ME THE STEPS TO CREATE BADI IN
    ECC 6.0 VERSIO.
    Thanks
    ahmed

    Hi,
    Check this thread...
    New to Badi
    Cheers
    VJ

  • How  can create SEGMENTS and IDOC TYPE in BADI in ECC 6.0 version

    Hi All,
                Can any one help, how  to create SEGMENTS and IDOC TYPE in BADI in ECC 6.0 version.This is my task.
    Given BADI name was----VENDOR_ADD_DATA_BI .
    Thanks

    Anil,
    look at this thread ..may be this helps you.
    Re: 824 IDOC and BADI/User Exit
    sateesh.

  • HOW TO CREATE  BADI IN ECC 6.0 with Enhanance Spot?

    HI,
          Anyone let me know how to create BADI in ECC 6.0 , which have mandtory to create enhanance spot before to create badi?  I dont understand the concept of Enhanance Spot and what is the purpose to create that . Will u plz let me know step wise procedure to create badi ...
    Thanks,
    saurin.

    Hi,
    Implementing Business Add-Ins (BADI)
    The use of object orientated code within SAP has lead to new method of enhancing standard SAP code called
    Business Add-Ins or BADI's for short. Although the implementation concept is based on classes, methods and
    inheritance you do not really have to understand this fully to implement a BADI. Simply think of methods
    as a function module with the same import and export parameters and follow the simple instructions below.
    Steps:
    1. Execute Business Add-In(BADI) transaction SE18
    2. Enter BADI name i.e. HRPBSGB_HESA_NISR and press the display
    button
    3. Select menu option Implementation->Create
    4. Give implementation a name such as Z_HRPBSGB_HESA_NISR
    5. You can now make any changes you require to the BADI within this
    implementation, for example choose the Interface tab
    6. Double click on the method you want to change, you can now enter
    any code you require.
    7. Please note to find out what import and export parameters a
    method has got return the original BADI definition
    (i.e. HRPBSGB_HESA_NISR) and double click on the method name
    for example within HRPBSGB_HESA_NISR contract is a method
    8. When changes have been made activate the implementation.
    http://esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    http://esnips.com/doc/365d4c4d-9fcb-4189-85fd-866b7bf25257/customer-exits--badi.zip
    http://esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
    SEE THE LINKS REGARDING SPOT
    /people/thomas.weiss/blog/2006/01/24/what-the-new-enhancement-framework-is-for-150-its-basic-structure-and-elements-for-beginners
    /people/thomas.weiss/blog/2006/03/15/the-new-enhancement-framework-part-2--what-else-you-need-to-know-before-building-an-enhancement
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    Regards
    Kiran Sure

  • Need Ways to implement Badis in ECC 6.0 (Enhancement Points)

    Hi experts,
    I am new to BADIs. I've a requirement to find a BADI for changing Customer number while posting customer invoice in SAP (the data is coming from XI system in IDOC format). I want to know any BADIs or userexits are there for my requirement. At the same time I want to know how to implement a BADI in ECC 6.0 .Any docs releated to this topic will be of great help.
    points will be awarded for sure..........

    hi Poorna Chandras... ,
    These steps should enable you to find any BADI related to any transaction in a matter of minutes.
    Procedure 1:
    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 is provided in your transaction.
    Business Add-Ins
    Procedure 2:
    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
    SAP Business Add-Ins (BAdIs) are one of the most important technologies used to adapt SAP software to specific requirements. BAdIs were introduced with Release 4.6 and replace function module exits. This technology is not limited to SAP applications. BAdI calls can be integrated in customer applications. These can then be enhanced by other customer applications. In the various SAP applications, BAdI calls are implemented at places where enhancements are appropriate.Business add-ins are enhancements to the standard version of the system. They can be inserted into the SAP System to accommodate user requirements too specific to be included in the standard delivery. Since specific industries often require special functions, SAP allows you to predefine these points in your software.
    In contrast to customer exits, Business Add-Ins no longer assume a two-level infrastructure (SAP and customer solutions), but instead allow for a multi-level system landscape (SAP, country-specific versions, industry solutions, partner, customer, and so on). You can create definitions and implementations of Business Add-Ins at any level of the system landscape.SAP guarantees the upward compatibility of all Business Add-In interfaces. Release upgrades do not affect enhancement calls from within the standard software nor do they affect the validity of call interfaces. You do not have to register Business Add-Ins in SSCR.
    The Business Add-In enhancement technique differentiates between enhancements that can only be implemented once and enhancements that can be used actively by any number of customers at the same time. In addition, Business Add-Ins can be defined according to filter values. This allows you to differentiate between Add-In implementations using the filter Country or other criteria.
    The enhancement technique is set up in such a way that it is possible to define interfaces for ABAP soure code, screens, GUI interfaces, and tables. These allow customers to include their own enhancements in the standard. A single Business Add-In contains all of the interfaces necessary to implement a specific task.
    BADI is just an object-oriented version of user-exit. Instead of entering program code into some function module (as in customer-exit), you define some class which has to implement predefined methods and those methods are fired at predefined points just like an old user-exit. Some BADI can have multiple independent implementations which is much better for software deployment as several developers can implement the same BADI independently. BADI/UserExists are used to enhance R/3 For customer Needs.
    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.
    Check this blogs 2 find a BADI:
    How to find if we have a BADI in Transaction VB02
    Re: BADI for screen enhancement in MM01  transaction
    Re: BADI and User exits
    How To Define a New BAdI Within the Enhancement Framework (Some Basics About the BAdI,BAdI Commands in ABAP,
    When to Use a BAdI?)
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    How to implement a BAdI And How to Use a Filter
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
    Introducing Business Add-Ins
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f3202186-0601-0010-6591-b832b1a0d0de
    How to implement BAdi in Enhancement Framework
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d0456c54-0901-0010-f0b3-cd765fb99702
    Business Add-Ins
    http://help.sap.com/saphelp_47x200/helpdata/en/ee/a1d548892b11d295d60000e82de14a/frameset.htm
    BAdI: Customer-Defined Functions in the Formula Builder
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    Difference Between BADI and User Exits
    http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
    To Use BADI - Business Add In you need to Understand ABAP OO Interface Concept
    http://www.sap-img.com/abap/business-add-in-you-need-to-understand-abap-oo-interface-concept.htm
    You can check the links for Step by Step Badi Implemntation
    (very helpful self learning docs).
    BADI Step by Step Implementation.
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
    http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/63ee7f486cc143a560799d8803ce29/content.htm
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/srm/badi-general+information&
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
    http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
    The specified item was not found.
    http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    http://www.allsaplinks.com/badi.html
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-serieshttps:///people/alwin.vandeput2/blog/2006/04/13/how-to-search-for-badis-trace-it
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework /people/thomas.weiss/blog/2006/05/03/source-code-enhancements--part-5-of-the-series-on-the-new-enhancement-framework
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    http://www.esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/40921dd7-d5cf-2910-1894-bb62316afbd1
    http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
    http://esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    http://esnips.com/doc/365d4c4d-9fcb-4189-85fd-866b7bf25257/customer-exits--badi.zip
    http://esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
    http://help.sap.com//saphelp_470/helpdata/EN/eb/3e7cee940e11d295df0000e82de14a/frameset.htm
    Difference Between BADI and User Exits
    http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
    New to Badi`s
    New to BADI
    New to BADI long question
    Badi
    /message/4866901#4866901 [original link is broken]
    Hope this helps
    Rewards if useful.........
    Cheers
    Kripa Rangachari.

  • Need to be same functionality badi in ECC 6.0 .

    Hi guys,
    I need to development a function exit in ECC 6.0 using EXIT_SAPLHRBEN00FEATURE_004.
    This function exit is in 4.7EE .
    Is there any badi exist for the above function exist with same functionality.
    Can any body help me.
    Revard poits applicable.
    Regards,
    See_nivas

    You don't really need minimum/maximum postal codes by Province, you can use configuration tables with a combination of Benefits User exits.
    IMG==>Personnel Management ==>> Benefits ==>> Define Employee Groupings ==> Define Cost Groupings
    Define Cost Groupings
    CGR1 = Alberta
    CGR2 = Ontario
    CGR3 = Quebec
    Etcâu20AC¦.
    SAP User Exits Function Exit Instead of Feature CSTV1 (Cost Grouping)
    FUNCTION EXIT_SAPLHRBEN00FEATURE_004 ( include ZXPEEU04)
    Determine Benefit Cost Groupings based on IT-0461-wrkar (Province of Employment)
    Read Infotype 0461
    Case P0461-wrkar
    When "AB"
    cstv1=cgr1
    When "ON"
    cstv1=cgr2
    When "QC"
    cstv1=cgr3
    etc âu20AC¦

  • Creation of  BADI in ECC 6.0

    HI Every 1,
    Pls any body let me know how to create the BADI in ECC6.0.
    I tried in 4.7 version but presently i m workin ECC 6.0,  finding different screens .
    anybody let me know .
    rewards will be there
    its very urgent pls......
    Madhu

    Hi Madhavi,
    Check these links.
    Check this weblog by Tom.
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    Step by Step Processes of creating BADI.
    http://www.allsaplinks.com/badi.html
    I think the same process can also be applied in ECC 6.0.
    I think the above docs will be useful.
    Reward Points if it is helpful.
    All the Best!
    Gokul

  • Badi for ECC to CRM Customer replication track changes

    Hi Experts,
    We have a requirement to call external web service whenever erp customers(BP) are getting replicated to crm both in case of creation and updation scenario.
    Any Badi which gets triggered in the above scenario which we can implement to track changes in bp or any other approach to implement this requirement.
    Thanks in advance..
    Cheers,
    Sumit Mittal

    Hi Robert,
    Thanks for providing details..
    We tried using the existing standard function module (CRM_REQ_RECORD_CREA_FROM_ORDER) as receiver function module and check FM (CRM_REQ_RECORD_CHECK_REQ_TYPE).. now when we try to create bp control doesn't hit in either of the FM's..  are we doing anything wrong?
    Instead of the standard if we provided our own z- FM what should be the interface that it expects?
    Thanks in advance..
    Cheers,
    Sumit

  • FM or BADI in ECC to check SPL status of partner in GTS

    Hello All,
    Looking for a  FM/ RFC call from ECC which can check the SPL screening status of partner ( blocked or not) from GTS.
    We need to check in ECC if a partner is SPL blocked in GTS or not and accordingly update a flag on partner.
    Will appreciate if you can provide some guidance around it.
    Regards
    Amit

    Hi Amit,
    Check this FM,the name says it all :
    /SAPSLL/SPL_BLOCKED_BP_GET_RFC
    You need to provide the original source logical system, ECC partner number (customer/vendor) and type of partner
    01
    Partner: Vendor
    02
    Partner: Customer
    Its RFC enabled and does pointer table translation as well, perhaps its good to double check if entries on Negative list are returned as blocked or ignored.
    Results will come back in the export parameters  ET_BLOCKED_PARTNER and  ET_RESULT.
    Hope this helps,
    Cheers,
    Branio
    Branislav Petricek

  • New BADI concept in ECC 6.0

    I am trying to gain an understanding of how I would implement one of the new BADIs in ECC 6.0 (badis implmented through and enhancement spot , get badi, call badi concept).
    I am  not looking for information on how to implement a classic badi through se18/se19.
    I have also ready through the SAP help on the new badis and it is still not clear to me. So, please do not provide links to the standard SAP help. I have that.
    I am wondering if anybody has a whitepaper, example, etc.  that explains the details of how to implement, use, trigger the  new badis linked to an enhancement spot.

    Hi  J.J,
    enhancement spot
    A repository object for the administration of explicitly created enhancement options. Enhancement spots are components of a tree structure hierarchy, of which the branches represent composite enhancement spots and the leaves are simple enhancement spots. Implicitly available enhancement options do not have any enhancement spots.
    composite enhancement spot
    Semantic combination of simple and other composite enhancement spots with the aim of providing structure.
    simple enhancement spot
    Reference to a set of enhancement spot element definitions. A simple enhancement spot can occur independently or as a component of a composite enhancement spot.
    ENHANCEMENT-POINT
    Defines a position in an ABAP program as an enhancement option,
    at which one or more source code plug-ins can be inserted.
    the syntax will be like
    ENHANCEMENT-POINT enh_id SPOTS spot1 spot2 ...
    STATIC
    INCLUDE BOUND.
    Enhancement Options
    Definition
    Enhancement options are positions in Repository objects where enhancements can be made. These options are either explicitly defined (by the developer) or exist implicitly. Explicit enhancement options are generally defined in a central initial system. Enhancements are made in follow-on systems.
    Use
    Explicit enhancement options can currently be defined by:
    1. Explicitly flagging source code points or sections in ABAP programs. For an enhancement, these can be enhanced or replaced by source code plug-ins.
    2. Including Business Add-Ins (BAdIs) in ABAP programs. These programs are then enhanced by object plug-ins with predefined interfaces.
    Explicit enhancement options are managed by enhancement spots and enhanced by enhancement implementations.
    Currently, implicit enhancement options are:
    1. Specific options in ABAP programs – such as the end of the program – which can be enhanced by source code plug-ins.
    2. Parameter interfaces of function modules, which can be enhanced with parameters.
    3. Attributes and parameter interfaces of global classes, which can be enhanced with attributes or parameters.
    Implicit enhancement options always exist and do not require enhancement spots. They are also enhanced by enhancement implementations.
    BAdIs Embedded in the Enhancement Concept
    Use
    The definition of BAdIs is managed by enhancement spots. A simple enhancement spot for BAdIs can contain several BAdI definitions as enhancement spot element definitions. BAdIs that would otherwise be spread out in the system can be grouped together semantically.
    This structuring is mirrored on the implementation side through the enhancement implementations. A BAdI can be implemented by several BAdI implementations that are managed by enhancement implementations. A simple enhancement implementation for object plug-ins can contain several BAdI implementations of an enhancement spot as enhancement implementation elements and can implement a BAdI multiple times. Therefore, several enhancement implementations can be assigned to one enhancement spot.
    A BAdI is always assigned to the same package, like the enhancement spot, to which it belongs.
    Example
    The structuring features of BAdIs in enhancement spots can be of a technical or a subject nature.
    If, in the definition of several BAdIs, you have the provision that they are to be used in the same context (this is a feature known only by the person who defines the BAdIs), they must be used by the same simple enhancement spot.
    From a subject point of view, all BAdIs must then be grouped together by affiliation to functional units – for example, payroll – in combined enhancement spots.
    Thanks and regards
    suma sailaja pvn

  • I need to create a Classic BADI definition in an ECC 6.0 Environment

    Greetings all,
    Let me start by saying that I work in a corporation with many SAP landscapes at various versions (4.7, ecc 6 etc.)  We have an application developed in an ECC 6.0 environment which needs to be pushed down to some 4.7 environments.  This development needs some BADIs defined to give the receiving systems some flexibility.  Here comes the problem, 4.7 cannot handle New BADIs and ECC 6.0 will not allow me to create Classic BADI definitions.  I've searched through notes to see if there is some kind of quick fix and I have not found any.  So I appeal to you the enhancement forum.  Is there a note?  How else can I create something and give the non original systems the flexibility needed?
    Thank You

    Yes Michelle, you are misunderstanding.  I am the Definer of the BADI, not the implementer.  I am setting up the hook in the program.  One can still implement a classic BADI in SE19 in ECC 6.0.  What we are prevented from doing is defining a new Classic BADI.  We are forced to define new BADIs.
    Try this:  Go to SE18, select BADI name and put in Ztestjunk.  Now hit the create button:
    Here is the error message you will get:
    "Create" operation is possible only for enhancement spots
    Message no. ENHANCEMENT269
    Diagnosis
    You wish to create a BAdI definition on the initial screen of the BAdI Builder.
    System Response
    It is not possible to directly create a BAdI definition. The BAdI definition can only be created as part of an enhancement spot.
    Procedure
    Either create an enhancement spot or process an enhancement spot that already exists. There you can create BAdI definitions as part of the enhancement spot.

  • Badi implementation in ECC 6 version using Enhancement spot

    Hi,
              I've to create an implementation for an already existing BADI in ECC 6.0 version.The interface method of the badi is getting called in main program in a standard include.Is it possible to create that using New badi Enhancement spot option in se19? If so where should i create the enhancement point because when i'm trying to create implementation i'm getting the message Enhancement point zbadi_le_shipment does not exist .
    Thanks in advance
    poornima

    Hi,
       First u need to implement the BADI badi_le_shipment
    Implementing Business Add-Ins (BADI)
    The use of object orientated code within SAP has lead to new method of enhancing standard SAP code called
    Business Add-Ins or BADI's for short. Although the implementation concept is based on classes, methods and
    inheritance you do not really have to understand this fully to implement a BADI. Simply think of methods
    as a function module with the same import and export parameters and follow the simple instructions below.
    Steps:
    1. Execute Business Add-In(BADI) transaction SE18
    2. Enter BADI name i.e.badi_le_shipment  and press the display
    button
    3. Select menu option Implementation->Create
    4. Give implementation a name such as Zbadi_le_shipment
    5. You can now make any changes you require to the BADI within this
    implementation, for example choose the Interface tab
    6. Double click on the method you want to change, you can now enter
    any code you require.
    7. Please note to find out what import and export parameters a
    method has got return the original BADI definition
    (i.e. badi_le_shipment ) and double click on the method name.Under this AT_SAVE  is the method put break point.
    8. When changes have been made activate the implementation
    YOu can go through these links...
    http://esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    http://esnips.com/doc/365d4c4d-9fcb-4189-85fd-866b7bf25257/customer-exits--badi.zip
    http://esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
    Regards
    Kiran Sure

  • Regading Implementing BADI's in ECC 6.0

    Hi Experts,
    I am new to ECC 6.0 can any one guide me how to Implement or create a BADI in ECC 6.0. What is Enhancement Category?.

    Hi,
    See the doc for enhancement category
    Enhancement Category Selection
    Structures and tables that were defined by SAP in the ABAP Dictionary can be enhanced subsequently by customers using Customizing includes or append structures. The enhancements do not only refer to structures/ tables themselves, but also to dependent structures that adopt the enhancement as an include or referenced structure. Append structures that only take effect at the end of the original structure can also cause shifts - in the case of dependent structures - even within these structures.
    You must select an enhancement category for the following reason: In programs where there is no active Unicode check, enhancements to tables and structures can cause syntax and runtime errors during type checks and particularly in combination with deep structures.
    In programs where there is an active Unicode check, statements, operand checks, and accesses with an offset and length are problematic - for example, if numeric or deep components are inserted into a purely character-type structure and the structure thus loses its character- type nature.
    Depending on the structure definition, the radio buttons allowed in the dialog box are ready for input. Choose one of the possible enhancement categories:
    Cannot be enhanced
    The structure must not be enhanced.
    Can be enhanced or character type
    All structure components and their enhancements must be character-type (C, N, D, or T). The original structure and all enhancements through Customizing includes or through append structures are subject to this limitation.
    Can be enhanced or character-type or numeric
    The structure and its enhancement must not contain any deep data types (tables, references, strings).
    Can be enhanced in any way
    The structure and its enhancement may contain components whose data type can be of any type.
    Not classified
    This category can be chosen, for example, for a transition status; however, it must not be chosen for creating structures.
    The rules for defining the enhancement category result implicitly from the structure setup and the classification of the types used. These rules are as follows:
    If the object contains at least one numeric type or a substructure or component (field has a structure/table/view as its type) that can be enhanced numerically, the object can no longer be enhanced character-type, but is itself, at most, enhanceable character-type or numeric.
    If the object contains a deep component (string, reference, or table type), or it contains a substructure or component that is marked as enhanceable in any way, then the object itself is enhanceable in any way.
    If the object does not contain any substructure or component that is marked as enhanceable, you can select cannot be enhanced. If the structure has not yet been enhanced, you can choose the categorycannot be enhanced in any case.
    If you are creating new tables and structures in the ABAP Dictionary, the system proposes the category can be enhanced in any way as standard value for the classification of the enhancement options. If the developer chooses a more restrictive classification than can be enhanced in any way for a particular structure, then only the classification levels that adhere to the rules above are allowed. It is not possible to choose an enhancement option of a structure that is more restrictive than the classification resulting immplicitly from the structure setup and from the classification of the types used. Therefore, only the allowed categories are proposed for selection in the maintenance user interface.
    If a structure depends on one or several other structures, the smallest category is chosen as implicit classification (in the order cannot be enhanced < can be enhanced and character-type < can be enhanced and character-type or numeric < can be enhanced in any way). This classification is greater than or less than the category in the other structures and also greater than or the same as the category that results from the actual setup in the original structure itself.
    For more information, refer to the online documentation (pushbutton "i").
    Once Table is activated a run time object is created for it , and it is globally available for all the purposes
    reward if it helps..
    regards,
    Omkar.

Maybe you are looking for

  • How do you change the album artwork size in the new itunes

    I just downloaded the laterst version of itunes, and I can't figure out how to change the size of the album artwork in the grid...I like to be able to see all of my albums at once, so I usually view them in the smallest size, but I can't figure out h

  • How edit saved draft in Mac Mail?

    In Mail 7.0 under OS X 10.9, I have a message I was composing saved in:   On My Mac > Drafts (Gmail) How do I open it for editing? No, it does not work just to click that item in the sidebar and then double-click the message in the right pane's list

  • What printers will work with  ipod

    what printer will work with ipod touch?

  • Run apex in oracle 12c

    i try to install apex in oracle 12c but it told me it's already installed & when i run : http://localhost:8888/apex it give me {"message": "Resource not found.", "type": "NoSuchResource", "brief": "error"} how can i install & run apex in oracle 12c 

  • Error code 5 when installing InDesign trial on Mac

    I've uninstalled and reinstalled and still get error 4.  Help?