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

Similar Messages

  • 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 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.

  • How do I find bad music files?  I have thousands of files, but some are bad.  When I try to load them into iTunes, it just spins.  I need a routine to identify and remove the bad files.  Any ideas?

    How do I find bad music files?  I have thousands of files, but some are bad.  When I try to load them into iTunes, it just spins.  I need a routine to identify and remove the bad files.  Any ideas?

    Hi ajoddo20,
    Welcome to the Apple Support Communities!
    You can use Home Sharing to import music and other media from one computer to another. Please use the instructions and information located in the attached article for information on how to complete the process. 
    iTunes 11 for Mac: Use Home Sharing to import items from another iTunes library
    Cheers,
    Joe 

  • 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

  • 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!

  • 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 Find BADI for a particular FM

    Dear Abapers,
    How do I find a BADI for a Particular Function Module.
    I did google and found three methods but none helped.
    1) going to Transaction se37 to find your function module.  Locate the function SXV_GET_CLIF_BY_NAME.
    this doesnt help me because i dont want to find badi for a transaction.
    2) got se24 and put a break point in the method of class cl_exithandler. I tried this didnt help.
    3) taking the pacake name and going to se80 and enter it there, you see enhancements. I did this , found the package name of that FM which is WZRE. but there are lots of enhancements and badis. i cant find the related one with discription.
    my FM is IDOC_INPUT_SINGLSETTRQS_CREATE. I really need help to find the correct badi for this.
    any help is appreciated.
    thanks.

    Hi,
         To find a BADI for any enhancement follow these steps,
    1) Put a brak point in method CL_EXITHANDLER=>GET_INSTANCE. This will give you the EXIT_NAME and the implementing class name of the BADI.
    2) Remove IF_EX from the implementing class this provides you the BADI name.
    Regards
    Ram

  • Trying to Source 0COUNTRY_TEXT text but cant find it in ECC RSA5

    Trying to Source 0COUNTRY_TEXT text but cant find it in ECC RSA5 or when i transfer the application hierachy (RSA9).
    It does not appear under SAP-R3-IO or under 0CA-IO (Which is empty).
    Any ideas on how to find this datasource in R3?
    Thanks alot
    Victoria

    Hi,
    You should be able to find it in  "Cross Application Components" in RSA5 in R/3. Also check the ROOSOURCE table in R/3 for the datasource.
    Also check in CA_GD-IO.
    -Vikram

  • Finding Enhancments in ECC 6 using SMOD.

    HI all,
    I want to know an easy method of finding enhancments in ECC 6.
    In 4.6 there was a button 'SAP Applicaitons' through which we can see enhancments available in module wise.
    This is not present in ECC 6. How can i find all enhancments for a module like PS.  I want to know all enhanments for Project system module.
    Thanks.

    Hi,
    You can find them from SPRO in Project systems, as we find the other user exits for other modules apart from SMOD.
    there is a Custom program for finding this Enhancements also for the related transcation:
    *& Report Z_USEREXIT_DISPLAY
    REPORT Z_USEREXIT_DISPLAY
    NO STANDARD PAGE HEADING
    LINE-SIZE 200 MESSAGE-ID ZZ.
    T A B L E D E C L A R A T I O N S *
    TABLES: TFTIT,
    E071,
    E070.
    S T R U C T U R E D E C L A R A T I O N S *
    TYPES: BEGIN OF X_TSTC,
    TCODE TYPE TCODE,
    PGMNA TYPE PROGRAM_ID,
    END OF X_TSTC.
    TYPES: BEGIN OF X_TADIR,
    OBJ_NAME TYPE SOBJ_NAME,
    DEVCLASS TYPE DEVCLASS,
    END OF X_TADIR.
    TYPES: BEGIN OF X_SLOG,
    OBJ_NAME TYPE SOBJ_NAME,
    END OF X_SLOG.
    TYPES: BEGIN OF X_FINAL,
    NAME TYPE SMODNAME,
    MEMBER TYPE MODMEMBER,
    INCLUDE(15), "Include name
    END OF X_FINAL.
    I N T E R N A L T A B L E D E C L A R A T I O N S *
    DATA: IT_TSTC TYPE STANDARD TABLE OF X_TSTC WITH HEADER LINE.
    DATA: IT_TADIR TYPE STANDARD TABLE OF X_TADIR WITH HEADER LINE.
    DATA: IT_JTAB TYPE STANDARD TABLE OF X_SLOG WITH HEADER LINE.
    DATA: IT_FINAL TYPE STANDARD TABLE OF X_FINAL WITH HEADER LINE.
    V A R I A B L E S D E C L A R A T I O N S *
    U S E R I N P U T S S C R E E N *
    S E L E C T I O N S C R E E N *
    SELECTION-SCREEN: BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-T01.
    PARAMETERS: P_TCODE LIKE TSTC-TCODE OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK BLK01.
    S t a r t o f S e l e c t i o n *
    START-OF-SELECTION.
    PERFORM GET_TCODES. "Get Tcodes
    PERFORM GET_OBJECTS. "Get Objects
    E n d o f S e l e c t i o n *
    END-OF-SELECTION.
    PERFORM DISPLAY_RESULTS. "Display Results
    *& Form get_tcodes
    Get Tcodes
    FORM GET_TCODES.
    SELECT TCODE
    PGMNA
    INTO TABLE IT_TSTC
    FROM TSTC
    WHERE TCODE = P_TCODE.
    IF SY-SUBRC = 0.
    SORT IT_TSTC BY TCODE.
    ENDIF.
    ENDFORM. " get_tcodes
    *& Form get_objects
    Get Objects
    FORM GET_OBJECTS.
    DATA: L_FNAME LIKE RS38L-NAME,
    L_GROUP LIKE RS38L-AREA,
    L_INCLUDE LIKE RS38L-INCLUDE,
    L_NAMESPACE LIKE RS38L-NAMESPACE,
    L_STR_AREA LIKE RS38L-STR_AREA.
    DATA: V_INCLUDE LIKE RODIOBJ-IOBJNM.
    DATA: E_T_INCLUDE TYPE STANDARD TABLE OF ABAPSOURCE WITH HEADER
    LINE.
    DATA: L_LINE TYPE STRING,
    L_TABIX LIKE SY-TABIX.
    IF NOT IT_TSTC[] IS INITIAL.
    SELECT OBJ_NAME
    DEVCLASS
    INTO TABLE IT_TADIR
    FROM TADIR FOR ALL ENTRIES IN IT_TSTC
    WHERE PGMID = 'R3TR' AND
    OBJECT = 'PROG' AND
    OBJ_NAME = IT_TSTC-PGMNA.
    IF SY-SUBRC = 0.
    SORT IT_TADIR BY OBJ_NAME DEVCLASS.
    SELECT OBJ_NAME
    INTO TABLE IT_JTAB
    FROM TADIR FOR ALL ENTRIES IN IT_TADIR
    WHERE PGMID = 'R3TR' AND
    OBJECT = 'SMOD' AND
    DEVCLASS = IT_TADIR-DEVCLASS.
    IF SY-SUBRC = 0.
    SORT IT_JTAB BY OBJ_NAME.
    ENDIF.
    ENDIF.
    ENDIF.
    *- Get UserExit names
    LOOP AT IT_JTAB.
    SELECT NAME
    MEMBER
    INTO (IT_FINAL-NAME, IT_FINAL-MEMBER)
    FROM MODSAP
    WHERE NAME = IT_JTAB-OBJ_NAME AND
    TYP = 'E'.
    APPEND IT_FINAL.
    CLEAR IT_FINAL.
    ENDSELECT.
    ENDLOOP.
    *- Process it_final contents.
    LOOP AT IT_FINAL.
    L_TABIX = SY-TABIX.
    CLEAR: L_FNAME,
    L_GROUP,
    L_INCLUDE,
    L_NAMESPACE,
    L_STR_AREA.
    L_FNAME = IT_FINAL-MEMBER.
    CALL FUNCTION 'FUNCTION_EXISTS'
    EXPORTING
    FUNCNAME = L_FNAME
    IMPORTING
    GROUP = L_GROUP
    INCLUDE = L_INCLUDE
    NAMESPACE = L_NAMESPACE
    STR_AREA = L_STR_AREA
    EXCEPTIONS
    FUNCTION_NOT_EXIST = 1
    OTHERS = 2.
    IF SY-SUBRC = 0.
    IF NOT L_INCLUDE IS INITIAL.
    *- Get Source code of include.
    CLEAR: V_INCLUDE, E_T_INCLUDE, E_T_INCLUDE[].
    V_INCLUDE = L_INCLUDE.
    CALL FUNCTION 'MU_INCLUDE_GET'
    EXPORTING
    I_INCLUDE = V_INCLUDE
    TABLES
    E_T_INCLUDE = E_T_INCLUDE.
    IF SY-SUBRC = 0.
    LOOP AT E_T_INCLUDE.
    IF E_T_INCLUDE-LINE CS 'INCLUDE'.
    CLEAR L_LINE.
    L_LINE = E_T_INCLUDE-LINE.
    CONDENSE L_LINE NO-GAPS.
    TRANSLATE L_LINE USING '. '.
    L_LINE = L_LINE+7(9).
    IT_FINAL-INCLUDE = L_LINE.
    MODIFY IT_FINAL INDEX L_TABIX TRANSPORTING INCLUDE.
    ENDIF.
    ENDLOOP.
    ENDIF.
    ENDIF.
    ENDIF.
    ENDLOOP.
    ENDFORM. " get_objects
    *& Form display_results
    Display Results
    FORM DISPLAY_RESULTS.
    FORMAT COLOR COL_HEADING.
    WRITE:/1(150) SY-ULINE.
    WRITE:/ SY-VLINE,
    2(23) 'Extension Name',
    24 SY-VLINE,
    25(39) 'Exit Name',
    64 SY-VLINE,
    65(74) 'Description',
    140 SY-VLINE,
    141(9) 'Include',
    150 SY-VLINE.
    WRITE:/1(150) SY-ULINE.
    FORMAT RESET.
    SORT IT_FINAL BY NAME MEMBER.
    LOOP AT IT_FINAL.
    CLEAR TFTIT.
    SELECT SINGLE STEXT
    INTO TFTIT-STEXT
    FROM TFTIT
    WHERE SPRAS = 'EN' AND
    FUNCNAME = IT_FINAL-MEMBER.
    WRITE:/ SY-VLINE,
    IT_FINAL-NAME COLOR COL_KEY, 24 SY-VLINE,
    25 IT_FINAL-MEMBER, 64 SY-VLINE,
    65 TFTIT-STEXT, 140 SY-VLINE,
    141 IT_FINAL-INCLUDE, 150 SY-VLINE.
    WRITE:/1(150) SY-ULINE.
    ENDLOOP.
    ENDFORM. " display_results
    reward if useful
    regards,
    Anji

  • How can find BAdi

    Hi All.
    I need to find BAdi for Tcode:VL02N. how can find BAdi for particular transaction.
    Help me.
    To be Reward all helpfull answers.
    Regards.
    Jay

    Jay,
    Run the below code to find badis for a txn,
    report zbadi_find .
    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.
    Reward if helpful,
    karthik
    Message was edited by:
            Karthik Potharaju

  • How to find BADIs

    Hi all,
         How can we check the standard BADI those are available in SAP and to which transaction those will be useful.
    regards,
    Chandra.

    Hi,
    Followinf are the different ways of finding BADI's
    1) Search for BADI exits in the repository information system. se84.
    2) Search in IMG for 'BADI' most of the BADI's are given then for creating implementation.
    3) Search in the program for CL_EXITHANDLER
    4) Refine your search for some Application Component.
    5) Goto SE18 or SE19 and on F4 you can search this will lead to the same search of SE84.
    Regards,
    Sesh

  • How to find badi's

    hai all.
    can any one tell me briefly about finding the badi's.

    Business add-ins are enhancements to the standard version of the system.
    Business Add-In is a new SAP enhancement technique based on ABAP Objects.
    They can be inserted into the SAP system based on specific user requirements.
    Each Business Add-In has:
    • at least one Business Add-In definition
    • a Business Add-In interface
    • a Business Add-In class that implements the interface
    In order to enhance a program, a Business Add-In must first be defined
    Subsequently two classes are automatically generated:
    • An interface with ‘IF_EX_’ inserted between the first and second characters of the BADI name.
    • An adapter class with ‘CL_EX_’ inserted between the first and second characters of the BADI name.
    The Application developer creates an interface for this Add-In.
    There 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).
    1. Go to the Transaction, for which we want to find the BADI, take the example of Transaction VD02. Click on System->Status. Double click on the 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. Double click on the method to enter the source code.Definition of Instance would give you the Interface name.
    2. Start transaction ST05 (Performance Analysis).
    Set flag field "Buffer trace"
    Remark: We need to trace also the buffer calls, because BADI database tables are buffered. (Especially view V_EXT_IMP and V_EXT_ACT)
    Push the button "Activate Trace". Start transaction VA02 in a new GUI session. Go back to the Performance trace session.
    Push the button "Deactivate Trace".
    Push the button "Display Trace".
    The popup screen "Set Restrictions for Displaying Trace" appears.
    Now, filter the trace on Objects:
    • V_EXT_IMP
    • V_EXT_ACT
    Push button "Multiple selections" button behind field Objects
    Fill: V_EXT_IMP and V_EXT_ACT
    All the interface class names of view V_EXT_IMP start with IF_EX_. This is the standard SAP prefix for BADI class interfaces. The BADI name is after the IF_EX_.
    So the BADI name of IF_EX_CUSTOMER_ADD_DATA is CUSTOMER_ADD_DATA
    3. 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.
    Here you get a list of all the Enhancement BADI’s for the given package MB.
    Have a look at http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    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
    How to develop BADI
    Best Regards,
    Vibha Deshmukh
    <b>*Plz mark useful answers</b>

  • How to find BADI?

    Hi All,
    Can anyone guide me how do we find BADIs which are available for a given
    transaction ?
    Regards,
    Rahul

    REPORT ZNEGI16 .
    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.
    don't forget to reward
    Sameer

Maybe you are looking for