Userexits/BADi's for SU01/PFCG

Hi All,
I need to check/validate the roles entered for a user, so im in need of a userexit/badi for this. It would be great if someone can help me with this. Or is there any other way i can meet this requierment.
Thanks & Regards,
Malinda

Hi,
User Exit for SU01 is,
SUSR0001            User exit after logon to SAP System
For finding BADi please do following steps,
1. Go to the TCode SE24 and enter CL_EXITHANDLER as object type.
2. In 'Display' mode, go to 'Methods' tab.
3. Double click the method 'Get Instance' to display it source code.
4. Set a breakpoint on 'CALL METHOD cl_exithandler => get_class_name_by_interface'.
5. Then run your transaction.
6. The screen will stop at this method.
7. Check the value of parameter 'EXIT_NAME'. It will show you the BADI for that transaction.
Thanks & Regards,
ShreeMohan

Similar Messages

  • Userexits/BAdi's for transaction SOLAR02 of solution manger

    Hi All
    In transaction SOLAR02 i have not given authorization for deletion for a row but what happening is when the user selects the row and chooses delete row ( - symbol )option he is able to delete that row. I want to do an authorization check before deleteing the row so is there any User exit or BAdi for doing this check ?
    Suggest me the best way to solve this problem.
    Thank you
    Pavan

    Hi Pavan,
    It would be fine if you post this in CRM forums as most of us dont have CRM system to check User Exits and BADIs of CRM
    regards,
    ram

  • BADI or User Exit for role/profile assignment SU01/PFCG

    Hi ABAP gurus,
    I need a way, BADI, UserExit to do some verifications over a role or a profile before is assigned in the Tcode: SU01 and PFCG.
    These verifications prevent the assigment of critical roles, transacction or access to tables.
    Any information about this topic it would be very helpful...
    thanks...

    Hi RAFAEL ,
    Only one exit is available for this  Tcode SU01.No Exits available for PFCG
    Enhancement     SUSR0001     User exit after logon to SAP System                    
    For SU01 we can check the profile assignment  in program MS01CU10 and some AUTHORITY-CHECK:
    AuthCheck     MS01CC10     S_DEVELOP     AUTHORITY-CHECK     ABAP Workbench                    
    AuthCheck     MS01CU10     S_TCODE     AUTHORITY-CHECK     Transaction Code Check at Transaction Start                    
    AuthCheck     MS01CC10     S_USER_AUT     AUTHORITY-CHECK     User Master Maintenance: Authorizations                    
    AuthCheck     MS01CC10     S_USER_GRP     AUTHORITY-CHECK     User Master Maintenance: User Groups                    
    AuthCheck     MS01CC10     S_USER_PRO     AUTHORITY-CHECK     User Master Maintenance: Authorization Profile                    
    AuthCheck     MS01CC10     S_USER_SYS     AUTHORITY-CHECK     User Master Maintenance: System for Central User Maintenance                    
    In the same way PFCG contains some AUTHORITY-CHECK:
    AuthCheck     LSUPRNU18     S_USER_TCD     AUTHORITY-CHECK     Authorizations: Transactions in Roles                    
    AuthCheck     LSUPRNU27     S_USER_PRO     AUTHORITY-CHECK     User Master Maintenance: Authorization Profile                    
    AuthCheck     LSUPRNU23     S_TCODE     AUTHORITY-CHECK     Transaction Code Check at Transaction Start                    
    AuthCheck     LPRGN_TREEI0O     S_USER_AGR     AUTHORITY-CHECK     Authorizations: Role Check                    
    I hope this may helpfull.
    Thank you,
    Thanks,
    AMS

  • Userexits/Badis for MIGO to update business area(GSBER) in FI constitution

    Hi ,
    I need to update business area field (GSBER)  for  accounts document after Goods Recieve (GR) through MIGO and Post Goods Issue (PGI) through VL02N.
    Can you please tell me the userexits/BADIS for this requirement
    Thanks in advance
    Sakti

    Hi Sujit,
    Thanks for reply
    I tried with both BADIs. After implementing I put break point.
    And goto MIGO. and filled req. fields and click on SAVE button, it should be stopped there.
    But it is not stopping there.
    Regards,
    Sakti

  • Userexits/BADI in ME31K for getting the contract number created.

    Dear Experts,
    Is there any userexits/BADI available in ME31K , for getting the contract number once it is created.
    Thanks&Regards,
    Anversha

    Hi
    find the BADI:
    1. Goto SE24
    2. Open the class "CL_EXITHANDLER"
    3. Open the Metnod "GET_INSTANCE"
    4. Put a Break point in the "  CASE sy-subrc."
    CALL METHOD cl_exithandler=>get_class_name_by_interface
        EXPORTING
          instance                      = instance
        IMPORTING
          class_name                    = class_name
        CHANGING
          exit_name                     = exit_name
        EXCEPTIONS
          no_reference                  = 1
          no_interface_reference        = 2
          no_exit_interface             = 3
          data_incons_in_exit_managem   = 4
          class_not_implement_interface = 5
          OTHERS                        = 6.
      CASE sy-subrc.
        WHEN 1.
          RAISE no_reference.
        WHEN 2.
          RAISE no_interface_reference.
        WHEN 3.
          RAISE no_exit_interface.
        WHEN 4.
          RAISE data_incons_in_exit_managem.
        WHEN 5.
          RAISE class_not_implement_interface.
      ENDCASE.
    5. Come Back and Execute the Transaction Code
    6. In the Debugging screen "exit_name" having the BADI Name for that Tcode.

  • Usre exit or badi for su01 save?

    hi experts,
    i want to trigger idoc when a new user is created in su01.i didnot get any BADI for this, so tried with user exit SUSR0001(suggested in sdn).....but there is no internal table or structure which stores the entered data during creation of user.
    what else i can do?
    Edited by: charudevrani on Jan 16, 2012 7:03 AM

    SUSR0001 is a user exit that triggers after every user logon and has nothing to do with user creation/save.
    I checked by putting a break point in CL_EXITHANDLER and found that BADI ADDRESS_UPDATE is called during saving of SU01 newly created user.This is a general multiple use BADI that is called during any address saving and should be used carefully, so that your code triggers only for SU01 save. Also you may not get all data that you want and may probably need to use call stack technique.

  • To find out BADI implementation for a standard transaction

    Like for User Exit is there any standard code to find the BADI implemetation for a Transaction Code.
    If so please paste the code.

    Hi pagal,
    The following is the code for the report program which lists Userexits and BAdi's for a given Tcode...
    Regards
    Karthik D
    <b>P.S.: Reward Points if this is Helpful</b>
    *& Report  ZDK_FIND_BADI
    REPORT  ZDK_FIND_BADI.
    TABLES : TSTC,
    TADIR,
    MODSAPT,
    MODACT,
    TRDIR,
    TFDIR,
    ENLFDIR,
    SXS_ATTRT ,
    TSTCT.
    DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.
    DATA : FIELD1(30).
    DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.
    PARAMETERS : P_TCODE LIKE TSTC-TCODE,
    P_PGMNA LIKE TSTC-PGMNA .
    DATA wa_tadir type tadir.
    START-OF-SELECTION.
    IF NOT P_TCODE IS INITIAL.
    SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.
    ELSEIF NOT P_PGMNA IS INITIAL.
    TSTC-PGMNA = P_PGMNA.
    ENDIF.
    IF SY-SUBRC EQ 0.
    SELECT SINGLE * FROM TADIR
    WHERE PGMID = 'R3TR'
    AND OBJECT = 'PROG'
    AND OBJ_NAME = TSTC-PGMNA.
    MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
    IF SY-SUBRC NE 0.
    SELECT SINGLE * FROM TRDIR
    WHERE NAME = TSTC-PGMNA.
    IF TRDIR-SUBC EQ 'F'.
    SELECT SINGLE * FROM TFDIR
    WHERE PNAME = TSTC-PGMNA.
    SELECT SINGLE * FROM ENLFDIR
    WHERE FUNCNAME = TFDIR-FUNCNAME.
    SELECT SINGLE * FROM TADIR
    WHERE PGMID = 'R3TR'
    AND OBJECT = 'FUGR'
    AND OBJ_NAME EQ ENLFDIR-AREA.
    MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
    ENDIF.
    ENDIF.
    SELECT * FROM TADIR INTO TABLE JTAB
    WHERE PGMID = 'R3TR'
    AND OBJECT in ('SMOD', 'SXSD')
    AND DEVCLASS = V_DEVCLASS.
    SELECT SINGLE * FROM TSTCT
    WHERE SPRSL EQ SY-LANGU
    AND TCODE EQ P_TCODE.
    FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
    WRITE:/(19) 'Transaction Code - ',
    20(20) P_TCODE,
    45(50) TSTCT-TTEXT.
    SKIP.
    IF NOT JTAB[] IS INITIAL.
    WRITE:/(105) SY-ULINE.
    FORMAT COLOR COL_HEADING INTENSIFIED ON.
    * Sorting the internal Table
    sort jtab by OBJECT.
    data : wf_txt(60) type c,
    wf_smod type i ,
    wf_badi type i ,
    wf_object2(30) type C.
    clear : wf_smod, wf_badi , wf_object2.
    * Get the total SMOD.
    LOOP AT JTAB into wa_tadir.
    at first.
    FORMAT COLOR COL_HEADING INTENSIFIED ON.
    WRITE:/1 SY-VLINE,
    2 'Enhancement/ Business Add-in',
    41 SY-VLINE ,
    42 'Description',
    105 SY-VLINE.
    WRITE:/(105) SY-ULINE.
    endat.
    clear wf_txt.
    at new object.
    if wa_tadir-object = 'SMOD'.
    wf_object2 = 'Enhancement' .
    elseif wa_tadir-object = 'SXSD'.
    wf_object2 = ' Business Add-in'.
    endif.
    FORMAT COLOR COL_GROUP INTENSIFIED ON.
    WRITE:/1 SY-VLINE,
    2 wf_object2,
    105 SY-VLINE.
    endat.
    case wa_tadir-object.
    when 'SMOD'.
    wf_smod = wf_smod + 1.
    SELECT SINGLE MODTEXT into wf_txt
    FROM MODSAPT
    WHERE SPRSL = SY-LANGU
    AND NAME = wa_tadir-OBJ_NAME.
    FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
    when 'SXSD'.
    * For BADis
    wf_badi = wf_badi + 1 .
    select single TEXT into wf_txt
    from SXS_ATTRT
    where sprsl = sy-langu
    and EXIT_NAME = wa_tadir-OBJ_NAME.
    FORMAT COLOR COL_NORMAL INTENSIFIED ON.
    endcase.
    WRITE:/1 SY-VLINE,
    2 wa_tadir-OBJ_NAME hotspot on,
    41 SY-VLINE ,
    42 wf_txt,
    105 SY-VLINE.
    AT END OF object.
    write : /(105) sy-ULINE.
    ENDAT.
    ENDLOOP.
    WRITE:/(105) SY-ULINE.
    SKIP.
    FORMAT COLOR COL_TOTAL INTENSIFIED ON.
    WRITE:/ 'No.of Exits:' , wf_smod.
    WRITE:/ 'No.of BADis:' , wf_badi.
    ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(105) 'No userexits or BADis exist'.
    ENDIF.
    ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(105) 'Transaction does not exist'.
    ENDIF.
    AT LINE-SELECTION.
    data : wf_object type tadir-object.
    clear wf_object.
    GET CURSOR FIELD FIELD1.
    CHECK FIELD1(8) EQ 'WA_TADIR'.
    read table jtab with key obj_name = sy-lisel+1(20).
    move jtab-object to wf_object.
    case wf_object.
    when 'SMOD'.
    SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).
    CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
    when 'SXSD'.
    SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).
    CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
    endcase.

  • Finding out  BADI's for  a Transaction

    Hi,
        I want to find out the Badi's for a Particular Transaction. Is there any Specific Method for finding out the Badi's for a Transaction.

    Hi Krish,
    Check out this Prgm and execute it ...
    TABLES : TSTC,
             TADIR,
             MODSAPT,
             MODACT,
             TRDIR,
             TFDIR,
             ENLFDIR,
             SXS_ATTRT ,
             TSTCT.
    DATA   : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.
    DATA   : FIELD1(30).
    DATA   : V_DEVCLASS LIKE TADIR-DEVCLASS.
    PARAMETERS : P_TCODE LIKE TSTC-TCODE,
                 P_PGMNA LIKE TSTC-PGMNA .
    DATA  wa_tadir type tadir.
    START-OF-SELECTION.
      IF NOT P_TCODE IS INITIAL.
        SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.
      ELSEIF NOT P_PGMNA IS INITIAL.
        TSTC-PGMNA = P_PGMNA.
      ENDIF.
      IF SY-SUBRC EQ 0.
        SELECT SINGLE * FROM  TADIR
                        WHERE PGMID = 'R3TR'
                         AND  OBJECT = 'PROG'
                         AND  OBJ_NAME = TSTC-PGMNA.
        MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
        IF SY-SUBRC NE 0.
          SELECT SINGLE * FROM  TRDIR
                          WHERE NAME = TSTC-PGMNA.
          IF TRDIR-SUBC EQ 'F'.
            SELECT SINGLE * FROM  TFDIR
                            WHERE PNAME = TSTC-PGMNA.
            SELECT SINGLE * FROM  ENLFDIR
                            WHERE FUNCNAME = TFDIR-FUNCNAME.
            SELECT SINGLE * FROM  TADIR
                            WHERE PGMID = 'R3TR'
                              AND OBJECT = 'FUGR'
                              AND OBJ_NAME EQ ENLFDIR-AREA.
            MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
          ENDIF.
        ENDIF.
        SELECT * FROM TADIR INTO TABLE JTAB
                      WHERE PGMID = 'R3TR'
                        AND OBJECT in ('SMOD', 'SXSD')
                        AND DEVCLASS = V_DEVCLASS.
        SELECT SINGLE * FROM  TSTCT
                        WHERE SPRSL EQ SY-LANGU
                        AND   TCODE EQ P_TCODE.
        FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
        WRITE:/(19) 'Transaction Code - ',
             20(20) P_TCODE,
             45(50) TSTCT-TTEXT.
        SKIP.
        IF NOT JTAB[] IS INITIAL.
          WRITE:/(105) SY-ULINE.
          FORMAT COLOR COL_HEADING INTENSIFIED ON.
    Sorting the internal Table
         sort jtab by OBJECT.
        data : wf_txt(60) type c,
               wf_smod type i ,
               wf_badi type i ,
               wf_object2(30) type C.
         clear  : wf_smod, wf_badi , wf_object2.
    Get the total SMOD.
          LOOP AT JTAB into wa_tadir.
          at first.
           FORMAT COLOR COL_HEADING  INTENSIFIED ON.
           WRITE:/1 SY-VLINE,
                 2 'Enhancement/ Business Add-in',
                41 SY-VLINE ,
                42 'Description',
                105 SY-VLINE.
           WRITE:/(105) SY-ULINE.
          endat.
          clear wf_txt.
            at new object.
             if wa_tadir-object = 'SMOD'.
             wf_object2 = 'Enhancement' .
             elseif wa_tadir-object = 'SXSD'.
             wf_object2 = ' Business Add-in'.
             endif.
             FORMAT COLOR COL_GROUP INTENSIFIED ON.
            WRITE:/1 SY-VLINE,
                   2 wf_object2,
                  105 SY-VLINE.
            endat.
           case wa_tadir-object.
            when 'SMOD'.
              wf_smod = wf_smod + 1.
                   SELECT SINGLE MODTEXT into  wf_txt
                                         FROM  MODSAPT
                                        WHERE  SPRSL = SY-LANGU
                                          AND  NAME = wa_tadir-OBJ_NAME.
             FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
            when 'SXSD'.
          For BADis
             wf_badi = wf_badi + 1 .
            select single TEXT into wf_txt
                               from SXS_ATTRT
                              where sprsl     = sy-langu
                                and EXIT_NAME = wa_tadir-OBJ_NAME.
             FORMAT COLOR COL_NORMAL INTENSIFIED ON.
            endcase.
            WRITE:/1 SY-VLINE,
                   2 wa_tadir-OBJ_NAME hotspot on,
                  41 SY-VLINE ,
                  42 wf_txt,
                  105 SY-VLINE.
             AT END OF object.
             write : /(105) sy-ULINE.
             ENDAT.
          ENDLOOP.
          WRITE:/(105) SY-ULINE.
          SKIP.
          FORMAT COLOR COL_TOTAL INTENSIFIED ON.
          WRITE:/ 'No.of Exits:' , wf_smod.
          WRITE:/ 'No.of BADis:' , wf_badi.
        ELSE.
          FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
          WRITE:/(105) 'No userexits or BADis exist'.
        ENDIF.
      ELSE.
        FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
        WRITE:/(105) 'Transaction does not exist'.
      ENDIF.
    AT LINE-SELECTION.
      data : wf_object type tadir-object.
      clear wf_object.
      GET CURSOR FIELD FIELD1.
      CHECK FIELD1(8) EQ 'WA_TADIR'.
      read table jtab with key obj_name = sy-lisel+1(20).
      move jtab-object to wf_object.
      case wf_object.
      when 'SMOD'.
        SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).
      CALL TRANSACTION 'SMOD' AND SKIP FIRST   SCREEN.
      when 'SXSD'.
         SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).
        CALL TRANSACTION 'SE18' AND SKIP FIRST   SCREEN.
      endcase.

  • Need BADI'S for QM01.

    hi,
    how do i search BADI's for T.code QM01.
    Thanks N Regards
    Priya.

    Hi Priya,
    Firstly you need to find the package of the transaction for what you are looking for the BAdi's. Go to that transaction there in the menu bar, Go to System--> status and then you double click on the transaction and then you will find the package name.
    Go to se84, there you select Enhancements> Business Add-ins> Definitions, and double click on that, There you give the package name and press execute button. Then you will be finding the list of badis for that package.
    (or)
    Please check this program and execute it. You will be shown all the exits and BAdi's for particular transaction. After executing it will ask for tcode, you give the code and then you press F8. Then you will be show all the Exits and BAdi's.
    report zbadifinding.
    TABLES : TSTC,
    TADIR,
    MODSAPT,
    MODACT,
    TRDIR,
    TFDIR,
    ENLFDIR,
    SXS_ATTRT ,
    TSTCT.
    DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.
    DATA : FIELD1(30).
    DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.
    PARAMETERS : P_TCODE LIKE TSTC-TCODE,
    P_PGMNA LIKE TSTC-PGMNA .
    DATA wa_tadir type tadir.
    START-OF-SELECTION.
    IF NOT P_TCODE IS INITIAL.
    SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.
    ELSEIF NOT P_PGMNA IS INITIAL.
    TSTC-PGMNA = P_PGMNA.
    ENDIF.
    IF SY-SUBRC EQ 0.
    SELECT SINGLE * FROM TADIR
    WHERE PGMID = 'R3TR'
    AND OBJECT = 'PROG'
    AND OBJ_NAME = TSTC-PGMNA.
    MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
    IF SY-SUBRC NE 0.
    SELECT SINGLE * FROM TRDIR
    WHERE NAME = TSTC-PGMNA.
    IF TRDIR-SUBC EQ 'F'.
    SELECT SINGLE * FROM TFDIR
    WHERE PNAME = TSTC-PGMNA.
    SELECT SINGLE * FROM ENLFDIR
    WHERE FUNCNAME = TFDIR-FUNCNAME.
    SELECT SINGLE * FROM TADIR
    WHERE PGMID = 'R3TR'
    AND OBJECT = 'FUGR'
    AND OBJ_NAME EQ ENLFDIR-AREA.
    MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
    ENDIF.
    ENDIF.
    SELECT * FROM TADIR INTO TABLE JTAB
    WHERE PGMID = 'R3TR'
    AND OBJECT in ('SMOD', 'SXSD')
    AND DEVCLASS = V_DEVCLASS.
    SELECT SINGLE * FROM TSTCT
    WHERE SPRSL EQ SY-LANGU
    AND TCODE EQ P_TCODE.
    FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
    WRITE:/(19) 'Transaction Code - ',
    20(20) P_TCODE,
    45(50) TSTCT-TTEXT.
    SKIP.
    IF NOT JTAB[] IS INITIAL.
    WRITE:/(105) SY-ULINE.
    FORMAT COLOR COL_HEADING INTENSIFIED ON.
    *Sorting the internal Table
    sort jtab by OBJECT.
    data : wf_txt(60) type c,
    wf_smod type i ,
    wf_badi type i ,
    wf_object2(30) type C.
    clear : wf_smod, wf_badi , wf_object2.
    *Get the total SMOD.
    LOOP AT JTAB into wa_tadir.
    at first.
    FORMAT COLOR COL_HEADING INTENSIFIED ON.
    WRITE:/1 SY-VLINE,
    2 'Enhancement/ Business Add-in',
    41 SY-VLINE ,
    42 'Description',
    105 SY-VLINE.
    WRITE:/(105) SY-ULINE.
    endat.
    clear wf_txt.
    at new object.
    if wa_tadir-object = 'SMOD'.
    wf_object2 = 'Enhancement' .
    elseif wa_tadir-object = 'SXSD'.
    wf_object2 = ' Business Add-in'.
    endif.
    FORMAT COLOR COL_GROUP INTENSIFIED ON.
    WRITE:/1 SY-VLINE,
    2 wf_object2,
    105 SY-VLINE.
    endat.
    case wa_tadir-object.
    when 'SMOD'.
    wf_smod = wf_smod + 1.
    SELECT SINGLE MODTEXT into wf_txt
    FROM MODSAPT
    WHERE SPRSL = SY-LANGU
    AND NAME = wa_tadir-OBJ_NAME.
    FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
    when 'SXSD'.
    *For BADis
    wf_badi = wf_badi + 1 .
    select single TEXT into wf_txt
    from SXS_ATTRT
    where sprsl = sy-langu
    and EXIT_NAME = wa_tadir-OBJ_NAME.
    FORMAT COLOR COL_NORMAL INTENSIFIED ON.
    endcase.
    WRITE:/1 SY-VLINE,
    2 wa_tadir-OBJ_NAME hotspot on,
    41 SY-VLINE ,
    42 wf_txt,
    105 SY-VLINE.
    AT END OF object.
    write : /(105) sy-ULINE.
    ENDAT.
    ENDLOOP.
    WRITE:/(105) SY-ULINE.
    SKIP.
    FORMAT COLOR COL_TOTAL INTENSIFIED ON.
    WRITE:/ 'No.of Exits:' , wf_smod.
    WRITE:/ 'No.of BADis:' , wf_badi.
    ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(105) 'No userexits or BADis exist'.
    ENDIF.
    ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(105) 'Transaction does not exist'.
    ENDIF.
    AT LINE-SELECTION.
    data : wf_object type tadir-object.
    clear wf_object.
    GET CURSOR FIELD FIELD1.
    CHECK FIELD1(8) EQ 'WA_TADIR'.
    read table jtab with key obj_name = sy-lisel+1(20).
    move jtab-object to wf_object.
    case wf_object.
    when 'SMOD'.
    SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).
    CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
    when 'SXSD'.
    SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).
    CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
    endcase.
    do 2 times.
    enddo.
    Finally, The BAdi's for QM01 are:
    Business Add-in
    WOC_FL_DETERMINE                        Determine Date for Determining Installation Loc. Equi.
    NOTIF_AUTHORITY_01                      Additional Authorization Checks for the Notification
    IWOC_OBJECTINFO_CHNG                    Changes to Data of Object Info Screen
    IWOC_LIST_TUNING                        Performance Tuning for Lists in PM/CS
    IWO1_SUBSCREEN_0170                     Display Additional Data on Object Screen 0170 PhysicalSample
    IQS_MASS_CHANGE                         BadI for Mass Changes to Notifications
    IQS0_STATUS_MAINTAIN                    Control of Changeability of User Status
    Reward points if it helps you.
    Cheers,
    Swamy Kunche

  • BADI's for the MD04 Transaction ?

    Hello All ,
               I want to know the BADI's for the MD04 Transaction.
    I want to incorporate one Custom-Authorization Object in this Transaction.
    Is it Posible ?
    If yes can anyone help me out ?`
    Regards,
    Deepu.K

    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.
    Also have a look at below report which will list BADIs.
    *& Report  ZNEGI16                                                     *
    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.
    endcase.
    I hope it helps.
    Best Regards,
    Vibha
    *Please mark all the helpful answers

  • Exit/BADI needed for updating the PERNR data in infotype 0105

    Hi team,
    We are getting the external system data through IDocs and we need to process the data in our systems,
    But the PERNR in external system is different than in our system.How we can handle this .
    is there any USerexits/Badi's available for this to handle.
    Please let me know the solution if anybody encounter this problem earlier.
    Thanks for your help
    Regards
    Murali

    Hello Murali,
    If you are using HRMD_A message type the function module IDOC_INPUT_HRMD contains lot of exits and badi's
    here are few
    EXIT_SAPLRHA0_003 - Include ZXHALU07
    EXIT_SAPLRHA0_002 - Include  ZXHALU06
    you may do more research in the function module  IDOC_INPUT_HRMD

  • BAdI UC_DATATRANSFER for BCS Mapping in "Load from Data Stream" method

    Hello Everyone,
    I need some help on finishing up the code for the UC_DATATRANSFER BAdI.
    I have looked up in the SDN and other places, but could not get comprehensive breakdown of documentation except for the "F1" documentation available on the BAdI.
    So, any help would be appreciated.
    The Steps so far completed,
    1. Have activated the BAdI and have created the filter value for the BAdI.
    2. After the BAdI has been activated, I was able to go into the MAP method and have written the logic for profit center derivation from consolidation hierarchy.
    The issue is there are four components for the Map method,
    IT_DATA_SOURCE
    IS_DATA_TARGET
    ES_DATA_TARGET
    ET_DATA_TARGET
    The data is available from Source system in the table IT_DATA_SOURCE.
    But this is not changeable as it is "Importing" type. Whereas the actual ET_DATA_TARGET which is passed over into FINALIZE method of the BAdI is not filled initially.
    When I try to do a MOVE-CORRESPONDING from the IT_DATA_TARGET into ET_DATA_TARGET I continuously am getting the short dumps as both the tables length is not the same.
    Did anyone else face the same issue as above when trying to do the BAdI implementation for Mapping.
    I will really appreciate if any one can provide me a sample code if possible.
    Let me know if you need additional information.
    Thanks
    Dharma.

    Hello,
    Thanks for looking into the question.
    I already had tried doing that, I get the Short dump stating the object tables are not convertible.
    When I looked into the table structures, I found out that the table structures "IS_DATA_TARGET", "ES_DATA_TARGET" & "ET_DATA_TARGET" belong to the same category in terms of these structures being flat structures or tables of length 484 as per the debugger.
    Whereas the structure "IT_DATA_SOURCE" has the length 404.
    Due to this reason when I say,
    ET_DATA_TARGET = IT_DATA_SOURCE, I keep getting the short dumps.
    Also, is your consolidation process legal or managerial.
    Our Consolidation process is legal and we have the Company and Profit Center fields assigned to the Consolidation Unit role in the Data Basis definition.
    Can you please let me know what is the structures length in your system.
    Thanks
    Dharma.

  • Mkfs: bad value for nbpi: must be at least 1048576 for multi-terabyte, nbpi

    Hi, guys!
    *1. I have a big FS (8 TB) on UFS which contains a lot of small files ~ 64B-1MB.*
    -bash-3.00# df -h /mnt
    Filesystem Size Used Avail Use% Mounted on
    /dev/dsk/c10t600000E00D000000000201A400020000d0s0
    8.0T 4.3T 3,7T 54% /mnt
    *2. But today I noticed in dmesg such errors: "ufs: [ID 682040 kern.notice] NOTICE: /mnt: out of inodes"*
    -bash-3.00# df -i /mnt
    Filesystem Inodes IUsed IFree IUse% Mounted on
    /dev/dsk/c10t600000E00D000000000201A400020000d0s0
    8753024 8753020 4 100% /mnt
    *3. So, I decided to make file system with new parameters:*
    -bash-3.00# mkfs -m /dev/rdsk/c10t600000E00D000000000201A400020000d0s0
    mkfs -F ufs -o nsect=128,ntrack=48,bsize=8192,fragsize=8192,cgsize=143,free=1,rps=1,nbpi=997778,opt=t,apc=0,gap=0,nrpos=1,maxcontig=128,mtb=y /dev/rdsk/c10t600000E00D000000000201A400020000d0s0 17165172656
    -bash-3.00#
    -bash-3.00# mkfs -F ufs -o nsect=128,ntrack=48,bsize=8192,fragsize=1024,cgsize=143,free=1,rps=1,nbpi=512,opt=t,apc=0,gap=0,nrpos=1,maxcontig=128,mtb=f /dev/rdsk/c10t600000E00D000000000201A400020000d0s0 17165172656
    *3. I've got some warnings about inodes threshold:*
    -bash-3.00# mkfs -F ufs -o nsect=128,ntrack=48,bsize=8192,fragsize=1024,cgsize=143,free=1,rps=1,nbpi=512,opt=t,apc=0,gap=0,nrpos=1,maxcontig=128,mtb=n /dev/rdsk/c10t600000E00D000000000201A400020000d0s0 17165172656
    mkfs: bad value for nbpi: must be at least 1048576 for multi-terabyte, nbpi reset to default 1048576
    Warning: 2128 sector(s) in last cylinder unallocated
    /dev/rdsk/c10t600000E00D000000000201A400020000d0s0: 17165172656 sectors in 2793811 cylinders of 48 tracks, 128 sectors
    8381432.0MB in 19538 cyl groups (143 c/g, 429.00MB/g, 448 i/g)
    super-block backups (for fsck -F ufs -o b=#) at:
    32, 878752, 1757472, 2636192, 3514912, 4393632, 5272352, 6151072, 7029792,
    7908512,
    Initializing cylinder groups:
    super-block backups for last 10 cylinder groups at:
    17157145632, 17158024352, 17158903072, 17159781792, 17160660512, 17161539232,
    17162417952, 17163296672, 17164175392, 17165054112
    *4.And my inodes number didn't change:*
    -bash-3.00# df -i /mnt
    Filesystem Inodes IUsed IFree IUse% Mounted on
    /dev/dsk/c10t600000E00D000000000201A400020000d0s0
    8753024 4 8753020 1% /mnt
    I found http://wesunsolve.net/bugid.php/id/6595253 that is a bug of mkfs without workaround. Is ZFS what I need now?

    Well, to fix the bug you referred to you can apply patch 141444-01 or 141445-01.
    However that bug is just regarding an irrelevant error message from mkfs, it will not fix your problem as such.
    It seems to me like the minimum value for nbpi on a multi-terabyte filesystem is 1048576, hence you won't be able to create a filesystem with more inodes.
    The things to try would be to either create two UFS filesystems, or go with ZFS, which is the future anyway ;-)
    .7/M.

  • Any standarad badi exits for tranction for bp ie in crm

    any standarad badi exits for chnaging or writing code in sap-crm standard tranction bp(busness patner) tr code is bp

    hello,
    BP is BDT (Business Data toolset) enabled (you can check it by adding break point in FM BUS_PBO and executing BP transaction). You can add your check directly to standard view (the check will be executed each time when user pushes enter) or you could add you check to appropriate action (during saving etc.) there are number of actions which you could use it depends on your requirements. You can find a lot of info about BDT (if you are not familiar) in Wiki.
    br,
    dez_

  • User Exit / Badi / BTE for Asset creation A ?

    Hi Experts,
    I need User Exit  / BADI / BTE for asset Creation.
    After saving newly created Asset from As01 we need to send a mail to the person for whom the Asset is assigned.
    i have tried all this.But no one is triggering after saving the As01 transaction.
    Exit Name           Description                                                                               
    AAPM0001            Integration of asset accounting and plant maintenance                    
    AFAR0003            External changeover method                                               
    AFAR0004            Determination of proportional values for retirement                      
    AINT0004            Change amount posted for certain areas                                   
    AINT0005            Dummy for extended syntax check. Do not use.                             
    AISA0001            Assign Inventory Number                                                  
    AIST0001            Exchange number range in master data maintenance                         
    AIST0002            Customer fields in asset master                                          
    AMSP0002            Determine relationship type for two company codes                        
    TRAN0001            User exit for asset transfer           
    Please suggest if anybody worked on this.
    regards,
    Imran

    Hi,
    Check out the following posts pertaining to similar topic.
    Change Asset Workflow
    Asset Management WORKFLOW
    Regards
    Sreekanth

Maybe you are looking for

  • Is there a way to create a transport to mass-delete objects from another system?

    I am facing a unique issue where I have to generate a transport that will successfully import into an external SAP system and delete over 1,000 objects (reports, data elements, UI elements, transactions, function groups, the whole lot...). All of the

  • Issue in CIF data between ECC to APO

    Hi Experts, We have ECC and APO system in our landscape. we have configured CIF and transferred data between ECC and APO however after ECC system refresh CIF configuration is not working. we verified and reconfigured the CIF configuration but still n

  • EMac Display issue

    This is a brand new eMac that has been working for 1 week, now the screen shakes and then goes back to normal, it is not one of the models in the eMac extended coverage program or what ever the name is I have already checked this. I am just wondering

  • Organizing photos in a traditional view

    I am an ex-PC user and I have pretty much filed all of my images chronologically, similar to: Pictures/2007-Present/2007/October/DCA/DSCF2683.JPG or Pictures/2008/March/DSCF2777.JPG I have thousands of images to go through and importing them in to iP

  • A lock icon on my iTune

    why there is a lock on the iTune next to the free space? How can I take it off,'cause I can't control my ipod on this situation does the restart can solve this problem?