Delivery Address Creation

Hi SRM Experts:
SRM 4.0 SL 09 – Classic Scenario
I have 4 CoCds and need to create several delivery addresses per CoCd. The problem I have is that when on edit internal address & add address for CoCd I am able to create only one additional delivery address per company. When I tried to add more addresses the system overrides the first additional entry because is forces me to select is as a default address. The final result is that I end up with only one delivery address in addition to the CoCd address, If the CoCd address is selected as the default one the no additional address is possible. The same symptom happens on edit external address for BP if I want to define more than one ordering address per BP.
Would anyone tell me what I am doing wrong? And is done?
Thanks in advance. Points to be rewarded!

Hi Mr A
Please tell me which user exit did you use to resolve this issue because I have to also do extra validations and changes to some PO Items when user creates PO with ME21N.
Thanks

Similar Messages

  • Suggestion Required for delivery address creation process

    Dear All,
    in my business process here i have suggested the creation of delivery address at the compnay code level. That is all the delivery address  are attached to the business partner of company code so that the delivery address across organization is visible to all the  users  and they can search and select any delivery address they want.
    please let me know if that has  got any performnce  issue or if that is the righ procatice .. considering we have thousands of delivery addresss to be created.
    cheers
    Iftekhar Alam

    Hello lrsapsd
    You first need to decide the business processes that you would (can) cover within SAP and which will be out of SAP.  Check out SAP for Real Estate Industry Solution, If you can not go that way, here is my proposal:
    1. Adv in News Papers: Outside SAP
    2. Selling of tender forms: Outside SAP
    3. Accept tenders with refundable deposits: Enter them as quotes, You may use AV-Quotation f.Contract or AG-Quotation. Bidders (Renters) will be sold-tos or Prospects and quote will be priced manually with the amount they bid to pay for rent. Deposits may be collected via a Debit Memo and posted to a Temporary  Holding Account.
    4. Agreement with highest Quoted: Reject all the Bids except the one with highest quote, Convert that quote into Rental Contract (MV) with Periodic Billing Plan. Billing Plan Type- 02; Date Determination Rule- 50.
    5. Collect 3 months rent in Advance: Can be managed with Billing Plan and/or down payment.
    6. collect the rent every month- Monthly billing of rent using Periodic Billing Plan
    7. At the end of the period refund the deposit- Credit Memo Req and Credit Memo, can be automated using contract end date and triggered by workflow with Status control  of contract if needed.
    Hope this helps.

  • How to populate VENDOR in Delivery ADDRESS tab durinG PO creation/Change

    Hi Expert,
                     which structure is used to populate VENDOR in Delivery Address TAB in PO creation /Change  using BAPI (BAPI_PO_CREATE1/BAPI_PO_CHANGE).
      VENDOR SCREEN FIELD NAME IS CMMDA-EMLIF. Actually  this field is available in EKPO and I have been asked to modify this filed only corresponding to PO. But direct modification of EKPO is not good practice . what I'm trying is, using BAPI_PO_Change to make this change. can we do this at time of PO creation using BAPI_PO_Create1?
    Thanks in advance

    Hi,
    You can use the above BAPI's and fill the structure -POITEM  with the field : SUPP_VENDOR{Vendor to be supplied/who is to receive delivery}
    Simultaneously you need to update the field SUPP_VENDOR  to X of the BAPI structure POITEMX
    Hope this helps
    Regards
    Shiva

  • Delivery address in PO Creation through ME21N

    Hi All,
    I want to change the Delivery Address in ME21N. By default this delivery address is the Plant address which we enter at the line item level. Now my requirement is to default the delivery address to other address based on the vendor given at the header level.
    I had tried User exit, MMDA0001 but this is not triggering, then tried BADI ME_PROCESS_PO_CUST method PROCESS_ITEM , even this does not help.
    Can anybody please let me if you had requirement like this and how you solve this problem.
    Thanks n Regards
    Maruthi

    Hi Mr A
    Please tell me which user exit did you use to resolve this issue because I have to also do extra validations and changes to some PO Items when user creates PO with ME21N.
    Thanks

  • Creation of delivery addresses(not for plants) in the table ADRC!

    Hi,
    We are running on  SRM 5.0(Standalone scenario).We have the following issues:
    We need to create the delivery addresses also thorugh a custom program i.e. the Address number needs to be created in the ADRC table.There is a std FM "BAPI_BUPA_ADDRESS_ADD" for creating ship to addresses  for a BP (namely Organisation) but we cannot use that as we need to create the addresses in the ADRC table in the same way as we  create the addresses in the BASIC DATA tab of the SHOP transaction.Any idea how this can be done?
    Any input will be highly appreciated.
    BR,
    SRM Tech

    Not sure try this FM ADDR_COMM_MAINTAIN.
    Regards, IA

  • Required Delivery address in a Purchase Order

    Hi All,
    In purchase order at item level "DELIVERY ADDRESS" is mandatory. We do  this in the customizing : SPRO ->MM->Purchasing->Purchase Order->Define Scree Layout at Document Level .
    But during the creation of a PO when we enter an address  the system generates an error : ME 083 : Please enter an address
    We don't find OSS notes.
    Thanks for your reply
    Sam

    Thanks for your answer.
    I followed your explanation, but I always have the same message.
    We use ECC 6.0.
    Thanks a lot.
    Sam

  • User exit/BADI for Return PO item delivery Address

    Hi Guyz,
    We have a requirement where in when a PO item is marked as return PO item(In ME21n/ME22n/ME23n We have check box at item level) and click on enter/Check/Save, In delivery address of item details we have to populate Vendor address. By default SAP populates Plant address. If we manually give Vendor number in item details=>Delivery address tab then it populates vendor address. We want to automate this functionality.
    Is there any Exit/BADI which serve this purpose.
    Note: We need this functionality for few doc types(i.e PO doc type should also be available in the exit).
    Any ideas could be really helpfull.
    Thanks,
    Vinod.

    Hi,
    there are some user-exit & enhancements....
    MEQUERY1                                Enhancement to Document Overview ME21N/ME51N
    MEVME001                                WE default quantity calc. and over/ underdelivery tolerance
    MM06E001                                User exits for EDI inbound and outbound purchasing documents
    MM06E003                                Number range and document number
    MM06E004                                Control import data screens in purchase order
    MM06E005                                Customer fields in purchasing document
    MM06E007                                Change document for requisitions upon conversion into PO
    MM06E008                                Monitoring of contr. target value in case of release orders
    MM06E009                                Relevant texts for "Texts exist" indicator
    MM06E010                                Field selection for vendor address
    MMAL0001                                ALE source list distribution: Outbound processing
    MMAL0002                                ALE source list distribution: Inbound processing
    MMAL0003                                ALE purcasing info record distribution: Outbound processing
    MMAL0004                                ALE purchasing info record distribution: Inbound processing
    MMDA0001                                Default delivery addresses
    MMFAB001                                User exit for generation of release order
    MRFLB001                                Control Items for Contract Release Order
    MELAB001                                Gen. forecast delivery schedules: Transfer schedule implem.
    AMPL0001                                User subscreen for additional data on AMPL
    LMEDR001                                Enhancements to print program
    LMELA002                                Adopt batch no. from shipping notification when posting a GR
    LMELA010                                Inbound shipping notification: Transfer item data from IDOC
    LMEQR001                                User exit for source determination
    LMEXF001                                Conditions in Purchasing Documents Without Invoice Receipt
    LWSUS001                                Customer-Specific Source Determination in Retail
    M06B0001                                Role determination for purchase requisition release
    M06B0002                                Changes to comm. structure for purchase requisition release
    MEFLD004                                Determine earliest delivery date f. check w. GR (only PO)
    MEETA001                                Define schedule line type (backlog, immed. req., preview)
    ME590001                                Grouping of requsitions for PO split in ME59
    M06E0005                                Role determination for release of purchasing documents
    M06E0004                                Changes to communication structure for release purch. doc.
    M06B0005                                Changes to comm. structure for overall release of requisn.
    M06B0004                                Number range and document number
    M06B0003                                Number range and document number
    Some BADI s:
    ME_PROCESS_PO                           Enhancements for Processing Enjoy Purchase Order: Intern.
    ME_PROCESS_COMP                         Processing of Component Default Data at Time of GR: Customer
    ME_PO_SC_SRV                            BAdI: Service Tab Page for Subcontracting
    ME_PO_PRICING_CUST                      Enhancements to Price Determination: Customer
    ME_PO_PRICING                           Enhancements to Price Determination: Internal
    ME_INFOREC_SEND                         Capture/Send Purchase Info Record Changes - Internal Use
    ME_HOLD_PO                              Hold Enjoy Purchase Orders: Activation/Deactivation
    ME_GUI_PO_CUST                          Customer's Own Screens in Enjoy Purchase Order
    ME_FIELDSTATUS_STOCK                    FM Account Assignment Behavior for Stock PR/PO
    ME_DP_CLEARING                          Clearing (Offsetting) of Down Payments and Payment Requests
    ME_DEFINE_CALCTYPE                      Control of Pricing Type: Additional Fields
    ME_COMMTMNT_REQ_RE_C                    Check of Commitment Relevance of Purchase Requisitions
    ME_COMMTMNT_REQ_RELE                    Check of Commitment Relevance of Purchase Requisitions
    ME_PROCESS_PO_CUST                      Enhancements for Processing Enjoy Purchase Order: Customer
    SMOD_MRFLB001                           Control Items for Contract Release Order
    MM_EDI_DESADV_IN                        Supplementation of Delivery Interface from Purchase Order
    MM_DELIVERY_ADDR_SAP                    Determination of Delivery Address
    ME_WRF_STD_DNG                          PO Controlling Reminder: Extension to Standard Reminder
    ME_TRIGGER_ATP                          Triggers New ATP for Changes in EKKO, EKPO, EKPV
    ME_TRF_RULE_CUST_OFF                    BADI for Deactivation of Field T161V-REVFE
    ME_TAX_FROM_ADDRESS                     Tax jurisdiction code taken from address
    ME_REQ_POSTED                           Purchase Requisition Posted
    ME_REQ_OI_EXT                           Commitment Update in the Case of External Requisitions
    ME_RELEASE_CREATE                       BAdI: Release Creation for Sched.Agrmts with Release Docu.
    ME_PURCHDOC_POSTED                      Purchasing Document Posted
    ME_PROCESS_REQ_CUST                     Enhancements for Processing Enjoy PReqs: Customer
    ME_PROCESS_REQ                          Enhancements for Processing Enjoy PReqs: Internal
    ME_COMMTMNT_PO_REL_C                    Check for Commitment-Relevance of Purchase Orders
    ME_CCP_BESWK_AUTH_CH                    BAdI for authorization checks for procuring plant
    ME_CCP_ACTIVE_CHECK                     BAdI to check whether CCP process is active
    ME_BSART_DET                            Change document type for automatically generated POs
    ME_BAPI_PR_CREATE_02
    ME_BAPI_PR_CREATE_01
    ME_BAPI_PO_CREATE_02
    ME_BAPI_PO_CREATE_01
    ME_BADI_DISPLAY_DOC                     BAdI for Internal Control of Transaction to be Invoked
    ME_ACTV_CANCEL_PO                       BAdI for Activating the Cancel Function at Header Level
    MEGUI_LAYOUT                            BAdI for Enjoy Purchasing GUI
    EXTENSION_US_TAXES                      Extended Tax Calculation with Additional Data
    ARC_MM_EKKO_WRITE                       BAdI: Enhancement of Scope of Archiving (MM_EKKO)
    ARC_MM_EKKO_CHECK                       BAdI: Enhancement of Archivability Check (MM_EKKO)
    ME_CCP_DEL_DURATION                     Calc. of Delivery Duration in CCP Process (Not in Standard)
    ME_COMMTMNT_PO_RELEV                    Check for Commitment-Relevance of Purchase Orders
    ME_COMMITMENT_STO_CH                    BadI for checking if commitments for STOs are active
    ME_COMMITMENT_RETURN                    Commitment for return item
    ME_CIP_REF_CHAR                         Enables Reference Characteristics in Purchasing
    ME_CIP_ALLOW_CHANGE                     Configuration in Purchasing: Changeability Control
    ME_CIN_MM06EFKO                         Copy PO data for use by Country version India
    ME_CIN_LEINRF2V                         BADI for LEINRF03 excise_invoice_details
    ME_CIN_LEINRF2R                         BADI for CIN India - Delivery charges
    ME_CHECK_SOURCES                        Additional Checks in Source Determination/Checking
    ME_CHECK_OA                             Check BAdI for Contracts
    ME_CHECK_ALL_ITEMS                      Run Through Items Again in the Event of Changes in EKKO
    ME_CHANGE_OUTTAB                        Enrich ALV Output Table in Purchasing
    ME_CHANGE_CHARACTER                     Customer-Specific Characteristics for Product Allocation
    No.of Exits:         35
    No.of BADis:         55
    Arunima

  • Want to copy Delivery address of one line item in shopping cart to all item

    Hi Experts,
                    We are upgrading from SRM 5.0 to SRM 7.0,In SC Creation We want to copy Delivery address of one line item in shopping cart to all line items in Shopping cart by clicking Change All Items button.This is custom button we added this button and we had written code to achieve the functionality but it is not working.This is same like Change All Items button in Account Assigment for copy accont details of one line item to all other line items in SC.
    Web Dynpro Component:/SAPSRM/WDC_UI_DO_SHIPTO
    Web Dynpro View:V_DODC_SHIPTO
    Thanks,
    Aarthi.

    Hi Prasad,
                   Our customer needs that button,they want whenever they are clicking the button delivery address should copy to all line items.
    In my action ONCHANGE_ALL_ITEMS i called this method
    wd_this->mo_dodm_shipto->zchange_all_items( ).
    zchange_all_items( ) is  implemented in class /SAPSRM/CL_CH_WD_DODM_SHIPTO.
    the code i wrote inside zchange_all_items( )
    *Error
      DATA: LX_PDO_ABORT               TYPE REF TO /SAPSRM/CX_PDO_ABORT,  " Class for Fatal error caught by PDO Layer
            LX_PDO_ERROR               TYPE REF TO /SAPSRM/CX_PDO_ERROR.  " Class for PDO General Exception
    Object Instances
      DATA: LO_MSG_CONSUMER            TYPE REF TO /SAPSRM/IF_PDO_MSG_CONSUMER,
            LO_PDO_SHIPTO              TYPE REF TO /SAPSRM/IF_PDO_DO_PARTNER.
    Context-Data
      DATA: lte_cll_shipto              TYPE /sapsrm/if_ch_wd_set_facade=>gt_guid_element,
            loe_cll_shipto              TYPE REF TO /sapsrm/if_ch_wd_set_element.
    Field Symbols
      FIELD-SYMBOLS <lse_cll_shipto>    LIKE LINE OF lte_cll_shipto.
    DATA : lo_pdo_acc TYPE REF TO /sapsrm/if_pdo_do_acct_assgmnt.
      DATA : ls_shipto_cll type /SAPSRM/S_CLL_SHIPTO,
             lt_pdo_partnerdetails      TYPE bbp_pdt_partner,
             ls_pdo_partnerdetails      TYPE bbp_pds_partner,
              LV_GUID          TYPE BBP_GUID,
              lv_item_guid type bbp_guid,
             lv_filled TYPE wdy_boolean.
    *exceptions
      DATA : LX_ABORT                  TYPE REF TO /SAPSRM/CX_PDO_ABORT.
    *Constants
      CONSTANTS : LC_OBJECT_ID         TYPE CRMT_SUBOBJECT_CATEGORY_DB VALUE 'BUS2121001',
                  LC_ADDR_ORIGIN       TYPE /SAPSRM/S_CLL_SHIPTO-ADDR_ORIGIN VALUE 'B'.
      IF LV_FILLED = ABAP_TRUE.
    Downcasting to shipto
        LO_PDO_SHIPTO ?= MO_PDO.
    insert the clipboard into facade and update and submit update
        me->/sapsrm/if_cll_do_mapper~insert_from_clipboard( io_set_facade = mon_cll_set_facade ).
    Add new Accounting entries.
        lte_cll_shipto = mon_cll_set_facade->get_data_elements( ). "get all elements from the context
        LOOP AT  lte_cll_shipto ASSIGNING <lse_cll_shipto>.
          loe_cll_shipto = <lse_cll_shipto>-set_element.
          loe_cll_shipto->get_static_attributes( IMPORTING rv_attributes = ls_shipto_cll ).
    Map ui-structure to pdo-structure
          MOVE-CORRESPONDING ls_shipto_cll TO ls_pdo_partnerdetails.
          IF LS_SHIPTO_CLL-PARTNER_FCT =  mv_part_func.
            LS_PDO_PARTNERDETAILS-PARTNER_FCT = ''.
          ELSE.
            LS_PDO_PARTNERDETAILS-PARTNER_FCT = LS_SHIPTO_CLL-PARTNER_FCT.
          ENDIF.
          IF ls_pdo_partnerdetails-del_ind NE 'X'.
            CALL FUNCTION 'GUID_CREATE'
              IMPORTING
                ev_guid_16 = ls_pdo_partnerdetails-p_guid.
           mv_acc_guid_split = ls_pdo_shipto-guid .
            IF mo_scope = 1.
              ls_pdo_partnerdetails-p_guid = mon_cll_set_facade->get_bo_guid( ).
            ELSE.
              ls_pdo_partnerdetails-p_guid = mo_parent_bo_mapper->items_get_lead_selection( ).
            ENDIF.
            APPEND ls_pdo_partnerdetails TO lt_pdo_partnerdetails.
          ENDIF.
          CLEAR : ls_pdo_partnerdetails, ls_shipto_cll.
        ENDLOOP.
    Add New items to PDO
        IF NOT lt_pdo_partnerdetails[] IS INITIAL.
          TRY.
              LO_PDO_SHIPTO->update_item_partners( EXPORTING it_partner = lt_pdo_partnerdetails
                                                               iv_item_guid       = lv_item_guid
                                                   CHANGING co_message_handler = mo_pdo_message_consumer ).
            CATCH /sapsrm/cx_pdo_abort INTO lx_pdo_abort.
              mo_cll_message_handler->set_abort( io_pdo_abort_exception = lx_pdo_abort ).
            CATCH /sapsrm/cx_pdo_error INTO lx_pdo_error.
              mo_cll_message_handler->add_exception( io_pdo_error_exception = lx_pdo_error ).
          ENDTRY.
    Update PDO with the changed data.
          TRY.
              mo_pdo->submit_update( ).
            CATCH /sapsrm/cx_pdo_abort INTO lx_pdo_abort.
              mo_cll_message_handler->set_abort( io_pdo_abort_exception = lx_pdo_abort ).
            CATCH /sapsrm/cx_pdo_error INTO lx_pdo_error.
              mo_cll_message_handler->add_exception( io_pdo_error_exception = lx_pdo_error ).
          ENDTRY.
    Fire refresh of DO Mappers registered for refresh since the item table has acc related data.
          mo_parent_bo_mapper->fire_event_refresh( iv_perform_updates = abap_false ).
        ENDIF.
      ENDIF.
    Thanks,
    Aarthi.

  • SRM 7.0 Shopping Cart Item - customizing Delivery Address Tab fields

    Hi experts,
    I have to make the fields of tab Delivery Address in the Shopping Cart (Item detail) only readable.
    In other threads I found similar questions: in SRM 7.0 I have to go in Customizing
    SAP Supplier Relationship Management -> SRM Server -> Cross Application Basic Settings -> Extensions and Field Control (Personalization) -> Configure field control
    and add fields for which I want properties to be changed.
    The problem is that at start of the SC creation the fields are blank again, they became gray only if, for example, I take an address with the match code on NAME field, that populate the other field of the tab. Or if I check the document after I've insert the address Name.
    Thank you in advance.
    Enrico Righetto

    Hello,
    Check here how the delivery address determination works:
    http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=230261594
    If field is made as read only when address is maintained, the best option would be to maintain a standard address number in ADDR_SHIPT attribute in PPOMA_BBP.
    Regards,
    Ricardo

  • Post code in delivery address when creating PO

    Hi friends,
    when creating PO, the post code field under delivery address tab is a required field. while some of our delivery address do not has post code. it seems a mandatory filed.
    How could I change it to a optional field.
    Thanks,
    Linda

    Ask your ABAPer to assist you on this.
    Path to Screen Variant
    Choose Basis Components - Application Personalization - Tailoring of Application Transactions - Configure Transaction-Related Display Values for Fields
    Screen variants allow you to simplify screen editing by:
    Inserting default values in fields
    Hiding and changing the ready for input status of fields
    Hiding and changing the attributes of table control columns
    A screen variant contains field values and attribute for exactly one screen. A screen variant may be assigned to multiple transaction variants, however. Screen variants are always cross-client; they may, however, be assigned to a client-specific transaction. They can also be called at runtime by a program. The different possibilities for calling screen variants guarantee great flexibility of use. A specific namespace has been designated for screen variants and they are automatically attached to the Change and Transport System.
    Check following lInk:
    http://wiki.sdn.sap.com/wiki/display/Snippets/TransactionVariant-AStepbyStepGuidefor+Creation
    Thanks & Regards
    JP

  • Updating Delivery Address in PO

    Hi guys,
    I have successfully created PO using BAPI_PO_CREATE1. 
    After creation of PO, in the same program, I am trying to use BDC to insert data into the field ADRN2 ( under delivery address tab in ME22n ), but I keep getting error message saying that <PO number> is locked by myself.
    Any idea how I can pass along the ADRN2 during PO creation? or any idea how can I 'unlock' the PO so that I can proceed with the BDC data insertion?
    Thanks!

    Hi,
    In the same bapi try to fill the table POADDRDELIVERY .....with address data.
    Thanks,
    Shailaja Ainala.

  • Delivery Address ZIP CODE in Purchase Order

    Hi MM Experts,
    I am an abaper & i am tryin to connect Taxwar & SAP during the prcess of PO creation.
    Now my req is to find if the plant address & the Delivery address are different ( need to compare the ZIP codes).
    Can anyone sugget an exit where i can do thi comparison?
    regards,
    Kevin.

    .

  • Delivery Address coming as a default in the home screen for creating a SHC

    Dear Experts
    I have done some changes in the delivery address and while saving it was asking to maintain as a default address otherwise it was not able to save the changes I made.So I maintained it as a default and saved the changes.
    Now the issue is when we are in the home screen for creating a SHC this delivery address is coming as default.As we dont want this dekivery address to be default on  the screen and the requirement is that user should be able to search the delivery address.
    So we dont want that defaulted address.The other reasons were also checked and no where in the attributes we ahave maintained this default delivery adress.
    Can you please help us how can we remove this defaulted delivery addres in the SHC creation screen.
    Thanks and Regards
    Vikas

    HI Muthu
    Thanks for the reply.
    I again repeat I think you have not understood my question.These are very basic things you are mentioning about how to change the delivery address.i know all about this and in my query I have clearly asked that during the change option its asking to maintain the default delivery address and even if I dont select it my changes wont be saved.Second is even if I maintain another delivery address only then from the first delivery address the default screen will be unticked.
    Because the issue here is that what ever the delivery address is maintained its defaulting in the shop screen for the creation of the SHC.
    So my reequirement is how to set this.I have checked attributes and nowhere this delivery address has been maintained.
    Brief about Issue:
    We have done some changes in the delivery address (Transaction Edit
    internal addresses in the URL screen)and during the save it was asking
    us to maintain it as a default address without which it was not able to
    save.So after saving on the creation of the shopping cart screen this
    delivery address is coming as a default value.
    We dont want this to be defaulted and the user should have the search
    functionality for the delivery address.This problem is happening for
    the org id for which I have done the changes.When i assign my user id
    to the other org id the defaulted delivery address is not shown on the
    shopping cart creation home screen.
    We have checked in the attributes of the user and the org id and
    nowhere this delivery address has been maintained.
    I have checked the settings for the other org id for which it was not
    showing as defaulted on the shopping cart creation screen and compared
    these two and was not able to find any difference.Could you plase let
    us know the problem in this case.
    Regards
    Vikas

  • Upload delivery address

    hi friends,
    I want to upload in SRM from R/3 only  the delivery address.
    There is a report for a mass upload?
    thx

    Hi,
    There is no std report available.
    See these threads for solution pointers:
    Re: Mass creation of delivery address
    Creat delivery address
    BR,
    Disha.

  • Need an Exit  to find ZIP code of Delivery address in PO.

    Hi Experts,
    I am an abaper & i am tryin to connect Taxwar & SAP during the prcess of PO creation.
    Now my req is to find if the plant address & the Delivery address are different ( need to compare the ZIP codes).
    Can anyone sugget an exit where i can do thi comparison?
    regards,
    Kevin.

    Hi kevin,
    Use the below given code, after executing this it will ask the transaction code of which u are requiring exit, give the tcode over there u can get exits available for that tcode.
    ABLES : tstc, "SAP Transaction Codes
             tadir, "Directory of Repository Objects
           modsapt, "SAP Enhancements - Short Texts
            modact, "Modifications
             trdir, "System table TRDIR
             tfdir, "Function Module
           enlfdir, "Additional Attributes for Function Modules
            tstct, "Transaction Code Texts
           RSSTCD,
            TRKEY.
    *& Definition of Types                                                  *
    TYPES: BEGIN OF t_badi_list,
                    obj_name TYPE sobj_name ,
                    devclass TYPE devi_class ,
                     dlvunit TYPE dlvunit,
                    imp_name TYPE exit_imp ,
                    packname TYPE devclass ,
                    dlvunit2 TYPE dlvunit,
                        text TYPE sxc_attrt-text,
          END OF t_badi_list.
    TYPES: BEGIN OF t_badi_list2,
                    obj_name TYPE sobj_name ,
                    devclass TYPE devi_class ,
                     dlvunit TYPE dlvunit,
           END OF t_badi_list2.
    *& Data Declaration                                                     *
    DATA: lt_badi_list TYPE TABLE OF t_badi_list,
         lt_badi_list2 TYPE TABLE OF t_badi_list2,
          ls_badi_list TYPE t_badi_list OCCURS 0 WITH HEADER LINE,
         ls_badi_list2 TYPE t_badi_list2.
    RANGES: r_badi FOR tadir-obj_name ,
           rt_badi FOR tadir-obj_name .
    *& Variables                                                            *
    DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE,
        P_TRKEY LIKE TRKEY.
    DATA : field1(30),
           BADINAME(20),
           COUNT TYPE P.
    DATA : v_devclass LIKE tadir-devclass,
          p_devclass LIKE tadir-devclass,
          p_old_langu LIKE sy-langu,
          p_mod_langu LIKE sy-langu.
    *& Selection Screen Parameters                                          *
    SELECTION-SCREEN BEGIN OF BLOCK a01 WITH FRAME TITLE text-001.
    SELECTION-SCREEN SKIP.
    PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN END OF BLOCK a01.
    *& Start of report                                                      *
    START-OF-SELECTION.
    Validate Transaction Code
    SELECT SINGLE * FROM tstc WHERE tcode EQ p_tcode.
    *Find Repository Objects for transaction code
    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.
    This section is used if a FGR is involved\!
        CALL FUNCTION 'RS_ACCESS_PERMISSION'
             EXPORTING
                   global_lock = 'X'
                        object = p_tcode
                  object_class = 'TRAN'
                          mode = 'SHOW'
             language_upd_exit = 'RS_TRANSACTION_LANGUAGE_EXIT'
       suppress_language_check = space
            IMPORTING
           new_master_language = p_old_langu
         modification_language = p_mod_langu
                 transport_key = p_trkey
                      devclass = p_devclass
           EXCEPTIONS
              canceled_in_corr = 1
                        OTHERS = 2.
        IF SY-SUBRC = 0. " Success
          MOVE: p_devclass TO v_devclass.
        ELSE. " For the case that nothing is found\!
          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 = p_devclass.
            MOVE: tadir-devclass TO v_devclass.
          ENDIF.
        ENDIF.
      ENDIF.
    *Find SAP Modifactions
        SELECT * FROM tadir INTO TABLE jtab
                            WHERE pgmid = 'R3TR'
                             AND object = 'SMOD'
                           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.
        FORMAT COLOR COL_POSITIVE INTENSIFIED ON.
        SKIP.
        WRITE:/1 'The application area is:', v_devclass.
        SKIP.
        IF NOT jtab[] IS INITIAL.
          WRITE:/(95) sy-uline.
          FORMAT COLOR COL_HEADING INTENSIFIED ON.
          WRITE:/1 sy-vline, 2 'Exit Name', 21 sy-vline, 22 'Description', 95 sy-vline.
          WRITE:/(95) sy-uline.
          LOOP AT jtab.
            SELECT SINGLE * FROM modsapt
                           WHERE sprsl = sy-langu
                              AND name = jtab-obj_name.
            FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
            WRITE:/1 sy-vline, 2 jtab-obj_name HOTSPOT ON, 21 sy-vline , 22 modsapt-modtext,
            95 sy-vline.
          ENDLOOP.
          WRITE:/(95) sy-uline.
          DESCRIBE TABLE jtab.
          SKIP.
          FORMAT COLOR COL_TOTAL INTENSIFIED ON.
          WRITE:/ 'No of Exits:' , sy-tfill.
          SKIP.
          WRITE:/(83) sy-uline.
          FORMAT COLOR COL_HEADING INTENSIFIED ON.
          WRITE:/1 sy-vline, 2 'Badi Name', 22 sy-vline, 23 'Description', 83 sy-vline.
          WRITE:/(83) sy-uline.
    select the BAdI Definitions from the tables sxc_exit and sxc_attr
          SELECT tobj_name tdevclass tcdlvunit sximp_name sat~text
                       INTO CORRESPONDING FIELDS OF TABLE lt_badi_list
                       FROM ( ( ( ( tadir AS t
                       INNER JOIN
                         tdevc AS tc ON tdevclass = tcdevclass )
                       INNER JOIN
                         sxc_exit AS sx ON sxexit_name = tobj_name )
                       INNER JOIN
                         sxc_attr AS sa ON sximp_name = saimp_name )
                       INNER JOIN
                         sxc_attrt AS sat ON sximp_name = satimp_name )
                       WHERE t~pgmid = 'R3TR'
                       AND t~object = 'SXSD' "means BAdI
                       AND t~devclass = v_devclass "narrow down seach with Dev.Class
                       AND sat~sprsl = sy-langu.
          SORT lt_badi_list.
          DELETE ADJACENT DUPLICATES FROM lt_badi_list.
    create Ranges
          LOOP AT lt_badi_list INTO ls_badi_list .
            r_badi-sign = 'I' .
            r_badi-option ='EQ' .
            r_badi-low = ls_badi_list-imp_name .
            r_badi-high = ls_badi_list-imp_name .
            APPEND r_badi TO rt_badi .
          ENDLOOP.
    select the implementations
          SELECT tobj_name tdevclass tc~dlvunit
                INTO CORRESPONDING FIELDS OF TABLE lt_badi_list2
                FROM tadir AS t
                INNER JOIN
                  tdevc AS tc ON tdevclass = tcdevclass
                FOR ALL ENTRIES IN rt_badi
                WHERE t~obj_name = rt_badi-low
                AND t~pgmid = 'R3TR'
                AND t~object = 'SXCI'.
          FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
          WRITE:/(83) sy-uline.
          COUNT = '0'.
          LOOP AT lt_badi_list INTO ls_badi_list .
            WRITE:/1 sy-vline, 2 ls_badi_list-obj_name HOTSPOT ON, 22 sy-vline,
                  23 ls_badi_list-text, 83 sy-vline.
            COUNT = COUNT + 1.
          ENDLOOP.
          WRITE:/(83) sy-uline.
          DESCRIBE TABLE ls_badi_list.
          SKIP.
          FORMAT COLOR COL_TOTAL INTENSIFIED ON.
          WRITE:/ 'No of BADIs:' , COUNT.
        ELSE.
          FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
          WRITE:/(95) 'No User Exit exists'.
        ENDIF.
      ELSE.
        FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
        WRITE:/(95) 'Transaction Code Does Not Exist'.
      ENDIF.
    *& Call SMOD or SE18 to lead the user to the selected exit or badi      *
    AT LINE-SELECTION.
    GET CURSOR FIELD field1.
    IF field1(4) EQ 'JTAB'.
      SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
      CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
    ELSEIF field1(12) EQ 'LS_BADI_LIST'.
      CALL FUNCTION 'SXO_BADI_SHOW'
           EXPORTING
             EXIT_NAME = sy-lisel+1(20)
           EXCEPTIONS
             ACTION_CANCELED
             ACCESS_FAILURE
             BADI_NOT_EXIXTING.
    ELSE.
    ENDIF.
    Regards
    Arani Bhaskar

Maybe you are looking for