Regarding BADI's in ABAP

Hi,
Can anybody tell me What is meant BY <b>BADI's</b>!
Also what are the main diffrences between <b>User-Exits and BADI's</b>!
Can anybody explain me wether any diffrent types of <b>BADI's</b> are available!
Can anybody provide me documentation with the examples
for <b>BADI's</b>.
If anybody is having good material on the same please post it.
(or)
Please send the material to
My Personnal Mail id : <b>[email protected]</b>
Thanks in advanace.
Thanks & Regards,
Rayeez.

I.What is Badi?
1.New SAP enhancement technique
2.To accommodate user requirements not available / too specific to be included in the SAP standard Program
3.Based on ABAP Objects – It has Interfaces & Methods
4.Guaranteed 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
II.BAdi & Customer-Exit
1.Though different enhancement technique, BAdi has following distinct features
-Uses Object oriented approach
-Two parts - Definition and its Implementation - definition can either be SAP provided or user may also create it
-no longer assumes a two-system infrastructure (SAP and customers)
-allows multiple levels of software development (by SAP, partners, and customers, and as country versions, industry solutions, and the like)
3.BAdi – where to find
1.Look for BAdi in IMG and in component hierarchy (using transaction SE18)
2.Create own implementation of the add-in (complete coding for Methods) and activate
3.Enhancement's active components are called at runtime.
BAdi Definition (SE18)1.To include Business Add-Ins in the program
- Define an interface for the enhancement in the SAP menu under Tools-> ABAP Workbench -> Utilities -> Business Add-Ins -> Definition (transaction SE18)
-Call the interface at the appropriate point in application program
-Customers can then select the add-in and implement it according to their needs
BAdi Implementation (SE19)
1.ABAP Workbench ->Utilities -> Business Add-Ins -> Implementation (transaction SE19)
2.Find the suitable Business Add-Ins present in system (Use IMG or Component hierarchy)
3.Use Add-Ins Documentation to understand functionality & to decide
4.Implement the Add-Ins
-a class is created with the same interface
-Finalize coding for the method
5.Implementations are discrete transport objects and lie within the namespace of the person or organization implementing them
check the SAP help link on BADI's
http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
/people/sergey.korolev/blog/2005/03/14/the-time-for-me-to-have-a-badi-of-my-own
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/ef6c0507-0701-0010-7395-e526c68bbc4e
Thanks & Regards,

Similar Messages

  • Provide me Technical Speck or Functional Speck regarding BADIs

    Hi,
    can any one provide me the Technical Speck or Functional Speck regarding BADIs  its very urgent for me. you can send to my mail id: [email protected]
    waiting for your cooperation.
    Ramarao
    Message was edited by:
            rama rao

    Hi Rama !
    You can visit the following link:
    http://mysapbi.blogspot.com/2006/12/abap-certification.html
    You will find documentation and tutorials for whatever material you wish.
    Apart from that would be sending you step by step docs for both ALE and BADI.
    Reward if its helpful.
    Abir

  • Example of how to call a BadI from an Abap and use the NEW OO ALV Grid

    Very easy to do.
    <b>REPORT  Z_BADI_TEST.
    test call Badi from standard abap.
    *Only from rel 6.40
    do the following
    1) define the Badi  (SE18).
    For Abap call test uncheck multiple use
    and filter boxes
    2) Implement the badi (SE19).
    Add any methods here in the implementation
    3) activate
    4)  define the standard class exithandler to the
    Abap. This class is the "Badi caller
    5)  define an exit variable referring to your Badi
    Implementation interface
    this interface  will normally be
    called something like 
    ZIF_EX***************
      You will see the actual name in SE18/SE19.
    6)  Instantiate your instance of the badi
    via  method call get_instance
    7)  Now call any method(s) in the Badi.
    *****************start of abap code **************
    Define the Badi calling class (standard sap class)
      class cl_exithandler definition load.   "Declaration
    *Interface reference  
      data exit type ref to zif_ex__jimbotest.    
         data yes type c.
    Used in Fmod call in Badi methods
        data: v_knvv type knvv.
        start-of-selection.
        yes = ' '.
      selection-screen  begin of block b1.
      parameters: r1  radiobutton  group rad1,
                  r2  radiobutton group rad1,
                  r3  radiobutton group rad1.
      selection-screen end of block b1.
        parameters: p_kunnr type knvv-kunnr.
        select  single * into v_knvv
        from knvv
         where kunnr eq p_kunnr.
         export v_knvv to memory id 'CUST6A'.
    *Save customer data for the function module call
    call method cl_exithandler=>get_instance 
           exporting 
           exit_name    = 'Z_JIMBOTEST' "Your Badi Name
           null_instance_accepted = yes
              changing instance = exit.
       if not exit is initial.
           if r1 = 'X'.
         call method exit->dispord .  "Badi call
          endif.
    if r2 = 'X'.
    call method exit->dispfakt.     "Badi Call
    endif.
    if r3 = 'X'.
    call method exit->dispmat.      "Badi call
    endif.
    end of calling abap******** </b>
    In the badi   methods code as shown
    1)
    method ZIF_EX__JIMBOTEST~DISPORD.
    CALL FUNCTION 'Z_DISPLAY_CUST'.
    endmethod.
    2)
    method ZIF_EX__JIMBOTEST~DISPFAKT.
    CALL FUNCTION 'Z_DISPLAY_FAKT'.
    endmethod
    3)
    method ZIF_EX__JIMBOTEST~DISPMAT.
    CALL FUNCTION 'Z_DISPLAY_CUST'.
    endmethod.
    Copy via SE 41 the status SALV_STANDARD from  standard SAP program SALV_DEMO_METADATA into the main program where you've created the 3 function modules below (SAP______TOP)
    Global Data for the three function modules I'm calling
    FUNCTION-POOL Z_BADI_KNVV.                  "MESSAGE-ID ..
    include <color>.
    include <icon>.
    include <symbol>.
    tables: zknvv.
    data: v_zzkvgr6  TYPE KNVV-ZZKVGR6.
    data: choice1  type c.
    data: choice2 type c.
    data: choice3 type c.
    data: choice4 Type c.
    data: ok-code(5) type c.
    data: answer type string.
    data: value1 type SPOP-VARVALUE1.
    data: answer1  type string.
    tables:  vbak, vbap,  vakpa, vbrk, vrkpa.
    data: lr_functions type ref to cl_salv_functions_list.
    constants: gc_true  type sap_bool value 'X',
               gc_false type sap_bool value space.
    add for colour displays
       data: ls_color type lvc_s_colo.
       DATA : LV_SALV_COLUMNS_TABLE TYPE REF TO CL_SALV_COLUMNS_TABLE.
      data: lr_columns type ref to cl_salv_columns_table,
            lr_column  type ref to cl_salv_column_table.
    Data:
            gr_table TYPE REF TO cl_salv_table.
    data: z_datum type sy-datum.
    data: v_knvv type knvv.
    data : begin of s_vbak,
              vkorg   type vakpa-vkorg,
              vkgrp   type vakpa-vkgrp,
              vtweg   type vakpa-vtweg,
              spart   type vakpa-spart,
              auart   type vakpa-auart,
              vbeln   type vakpa-vbeln,
              bstnk   type vakpa-bstnk,
              audat   type vakpa-audat,
              netwr   type vbak-netwr,
           end of s_vbak.
    data : begin of s_vbrk,
              vbeln   type vrkpa-vbeln,
              vkorg   type vrkpa-vkorg,
              fkart   type vrkpa-fkart,
              fkdat   type vrkpa-fkdat,
              netwr   type vbrk-netwr,
           end of s_vbrk.
      data: begin of s_vbap,
             matnr   type vbap-matnr,
             arktx   type vbap-arktx,
             netwr   type vbap-netwr,
             kwmeng  type vbap-kwmeng,
          end of s_vbap.
    data: t_vbap like table of s_vbap.
    data:   t_vbak
            like table of s_vbak.
      data:   t_vbrk
            like table of s_vbrk.
    data:   s_name  type tabname.
    data: gr_selections type ref to cl_salv_selections.
    data: gr_events type ref to cl_salv_events_table.
    Source code of the function modules.
    Function modules themselves
    FUNCTION Z_DISPLAY_CUST.
    s_name = 'S_VBAK'.
    orders in last 6 months
    z_datum = sy-datum - 180.
    import v_knvv from memory id 'CUST6A'.
    get data
       select avkorg aaudat avkgrp avtweg aspart aauart abstnk avbeln b~netwr
          into corresponding fields of  table t_vbak
          up to 100 rows
             from (  vakpa as a
              inner join vbak as b
               on avbeln eq bvbeln )
            where a~kunde eq v_knvv-kunnr
            and a~parvw eq 'AG'
           and a~vkorg eq 'EN01'
            and a~trvog eq '0'
            and a~audat gt z_datum.
    sort t_vbak by audat descending.
    *data: gt_hyperlink type standard table of g_type_s_hyperlink.
    Instead of if_salv_c_bool_sap=>false, you can pass the
    value if_salv_c_bool_sap=>true to this method to
    see your ALV as a list.
    display data in Grid / List
      TRY.
          CALL METHOD cl_salv_table=>factory
            EXPORTING
              list_display   = if_salv_c_bool_sap=>false
            IMPORTING
              r_salv_table   = gr_table
            CHANGING
              t_table    = t_vbak.
        CATCH cx_salv_msg.
      ENDTRY.
    try.
    LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
          ls_color-col = col_negative.
          ls_color-int = 0.
          ls_color-inv = 0.
          lr_column->set_color( ls_color ).
      catch cx_salv_not_found.
    endtry.
    try.
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'VBELN' ).
    ls_color-col = col_negative.
          ls_color-int = 1.
          ls_color-inv = 1.
          lr_column->set_color( ls_color ).
    catch cx_salv_not_found.
    endtry.
    try.
    *LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
    lr_column->set_short_text( 'Short' ).
    lr_column->set_medium_text( 'Medium' ).
    lr_column->set_long_text( 'Net Value' ).
    *lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'URL' ).
    catch cx_salv_not_found.
    endtry.
    gr_table->set_screen_status( pfstatus = 'SALV_STANDARD'
    report = sy-repid
    set_functions = gr_table->c_functions_all ).
    this statement actually does the display.
      gr_table->display( ).
    ENDFUNCTION.
    FUNCTION Z_DISPLAY_FAKT.
    s_name = 'S_VBRK'.
    invoices in last 6 months
    z_datum = sy-datum - 180.
    import v_knvv from memory id 'CUST6A'.
    get data
       select avbeln afkart avkorg afkdat
         b~netwr
          into corresponding fields of  table t_vbrk
          up to 100 rows
             from (  vrkpa as a
              inner join vbrk as b
               on avbeln eq bvbeln )
            where a~kunde eq v_knvv-kunnr
            and a~parvw eq 'RG'
           and a~vkorg eq 'EN01'
            and a~vbtyp eq 'M'
            and a~fkdat gt z_datum.
    sort t_vbrk by fkdat descending.
    *data: gt_hyperlink type standard table of g_type_s_hyperlink.
    Instead of if_salv_c_bool_sap=>false, you can pass the
    value if_salv_c_bool_sap=>true to this method to
    see your ALV as a list.
    display data in Grid / List
      TRY.
          CALL METHOD cl_salv_table=>factory
            EXPORTING
              list_display   = if_salv_c_bool_sap=>false
            IMPORTING
              r_salv_table   = gr_table
            CHANGING
              t_table    = t_vbrk.
        CATCH cx_salv_msg.
      ENDTRY.
    try.
    LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
          ls_color-col = col_negative.
          ls_color-int = 0.
          ls_color-inv = 0.
          lr_column->set_color( ls_color ).
          catch cx_salv_not_found.
    endtry.
    try.
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'VBELN' ).
    ls_color-col = col_negative.
          ls_color-int = 1.
          ls_color-inv = 1.
          lr_column->set_color( ls_color ).
    catch cx_salv_not_found.
    endtry.
    try.
    *LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
    lr_column->set_short_text( 'Short' ).
    lr_column->set_medium_text( 'Medium' ).
    lr_column->set_long_text( 'Net Value' ).
    *lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'URL' ).
    catch cx_salv_not_found.
    endtry.
    gr_table->set_screen_status( pfstatus = 'SALV_STANDARD'
    report = sy-repid
    set_functions = gr_table->c_functions_all ).
    this statement actually does the display.
      gr_table->display( ).
    ENDFUNCTION.
    FUNCTION Z_DISPLAY_MATERIAL.
    s_name = 'S_VBAP'.
    invoicesrs in last 6 months
    z_datum = sy-datum - 180.
    import v_knvv from memory id 'CUST6A'.
    get data
    select avbeln bmatnr barktx bnetwr b~kwmeng
    into corresponding fields of  table t_vbap
          up to 100 rows
    from (  vakpa as a
              inner join vbap as b
               on avbeln eq bvbeln )
            where a~kunde eq v_knvv-kunnr
            and a~parvw eq 'AG'
           and a~vkorg eq 'EN01'
            and a~trvog eq '0'
            and a~audat gt z_datum.
    TRY.
          CALL METHOD cl_salv_table=>factory
            EXPORTING
              list_display   = if_salv_c_bool_sap=>false
            IMPORTING
              r_salv_table   = gr_table
            CHANGING
              t_table    = t_vbap.
        CATCH cx_salv_msg.
      ENDTRY.
    try.
    LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
          ls_color-col = col_negative.
          ls_color-int = 0.
          ls_color-inv = 0.
          lr_column->set_color( ls_color ).
      catch cx_salv_not_found.
    endtry.
    try.
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'ARKTX' ).
    ls_color-col = col_negative.
          ls_color-int = 1.
          ls_color-inv = 1.
          lr_column->set_color( ls_color ).
    catch cx_salv_not_found.
    endtry.
    try.
    *LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
    lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
    lr_column->set_short_text( 'Short' ).
    lr_column->set_medium_text( 'Medium' ).
    lr_column->set_long_text( 'Net Value' ).
    *lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'URL' ).
    catch cx_salv_not_found.
    endtry.
    gr_table->set_screen_status( pfstatus = 'SALV_STANDARD'
    report = sy-repid
    set_functions = gr_table->c_functions_all ).
    this statement actually does the display.
      gr_table->display( ).
    ENDFUNCTION.
    You can extend this as far as you like -- it's really easy and MUCH MUCH easier than the old way with fieldcatalogs etc etc.

    If the pagecontainer_mc holds another movieclip that contains the button you are trying to target, then you need to include that loaded movieclip in the targeting.  And if contacts is that movieclip, then you should be able to target it directly using...
    var contacts:contatti = new contatti;
    contacts.contacts_btn.addEventListener(MouseEvent.CLICK,showContacts);

  • Help needed regarding BADI in SAP-CRM 2007.

    hi all,
    i need some help regarding BADI for new creation and enhancement.
    plz help, you will be rewarded accordingly.
    regards.
    raman.

    Hi Raman,
    visit this link
    http://help.sap.com/saphelp_nw70/helpdata/en/32/a83942424dac04e10000000a1550b0/content.htm
    http://help.sap.com/saphelp_crm40/helpdata/en/c3/69bf4abf1045e0966badb60d6160dd/content.htm
    Regards
    Anup.

  • Regarding BADI implementation in Debugging

    Hi,
       i have a doubt regarding BADI.There are multiple badi implementations for VA02 transaction. now i am processing the VA02 transaction. Can i know which implementation is processing for the transaction.

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

  • Can somebody provide a real time dummy object regarding BADI

    hi guru.
    it's urgent.can somebody provide a real time dummy object regarding BADI.
    please forward me.
    deffinitely good points waiting for u.
    thanks&regards.
    subhasis.

    Please check .
    http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm

  • User-exit/BADI during outbound ABAP proxy call

    Hello,
    I want to introduce certain check during outbound ABAP proxy calls to PI. This is a generic check, failure of which would stop the proxy call to proceed and raise an exception.
    I would like to place this at the generic place which is called for all the outbound ABAP proxy calls, rather than coding this in each and every outbound proxy class as the check is generic.
    Is there some user-exit/BADI where i can introduce this? Maybe within class CL_PROXY_OUTBOUND or somewhere else where i can introduce this check.
    Any help in this regard would be appreciated.
    Best Regards,
    Gajendra.

    Dear Gajendra ,
    i agree with sabrish, you must be having a z report on the application system that must be calling that outbound proxy...may be if the check is generic it may not be related to a proxy so you can code a FM and then call it before you call that proxy in the z report
    Giving points is another way to say thanks

  • Help needed regarding BADI.

    hi all,
    can anyone plz tell me how to define BADI and how create an interface.
    plz tell from everything regarding that, i have work with basic ABAP only.
    anykind of links and any kind of matter will be helpful and you will be rewarded with points for your help difinatly.
    regards.
    raman.

    Hi Raman,
    Please search the forum and you have lots and lots of links in it. For you to start with, try these links,
    The specified item was not found.
    BADI
    Best Regards.

  • Regarding BADI's

    Hi ALL,
    What is BADI, how many types of badi, and what is filter dependent BADI.
    please provide me any links or examples regarding above will be appreciated.
    Points will be awarded..
    thanks,
    vinesh.

    Hi,
    Business Add-Ins
    Business Add-Ins are a new SAP enhancement technique based on ABAP Objects. 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.
    As with customer exits (SMOD/CMOD [Page 40]), two different views are available:
    • In the definition view, an application programmer predefines exit points in a source that allow specific industry sectors, partners, and customers to attach additional software to standard SAP source code without having to modify the original object.
    • In the implementation view, the users of Business Add-Ins can customize the logic they need or use a standard logic if one is available.
    In contrast to customer exits, Business Add-Ins no longer assume a two-system infrastructure (SAP and customers), but instead allow for multiple levels of software development (by SAP, partners, and customers, and as country versions, industry solutions, and the like). Definitions and implementations of Business Add-Ins can be created at each level within such a system infrastructure.
    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 control add-in implementation and make it dependent on specific criteria (on a specific Country value, for example). All ABAP sources, screens, GUIs, and table interfaces created using this enhancement technique are defined in a manner that allows 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. In Release 4.6A, program and menu enhancements can be made with Business Add-Ins. The actual program code is enhanced using ABAP Objects. In order to better understand the programming techniques behind the Business Add-In enhancement concept, SAP recommends reading the section on ABAP Objects
    DEFINING THE BADI
    1) execute Tcode SE18.
    2) Specify a definition Name : ZBADI_SPFLI
    3) Press create
    4) Choose the attribute tab. Specify short desc for badi.. and specify the type :
    multiple use.
    5) Choose the interface tab
    6) Specify interface name: ZIF_EX_BADI_SPFLI and save.
    7) Dbl clk on interface name to start class builder . specify a method name (name,
    level, desc).
    Method level desc
    Linese;ection instance methos some desc
    8) place the cursor on the method name desc its parameters to define the interface.
    Parameter type refe field desc
    I_carrid import spfli-carrid some
    I_connid import spefi-connid some
    9) save , check and activate…adapter class proposed by system is
    ZCL_IM_IM_LINESEL is genereated.
    IMPLEMENTATION OF BADI DEFINITION
    1) EXECUTE tcode se18.choose menuitem create from the implementation menubar.
    2) Specify aname for implementation ZIM_LINESEL
    3) Specify short desc.
    4) Choose interface tab. System proposes a name fo the implementation class.
    ZCL_IM_IMLINESEL which is already generarted.
    5) Specify short desc for method
    6) Dbl clk on method to insert code..(check the code in “AAA”).
    7) Save , check and activate the code.
    Some useful URL
    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
    Now write a sample program to use this badi method..
    Look for “BBB” sample program.
    “AAA”
    data : wa_flights type sflight,
    it_flights type table of sflight.
    format color col_heading.
    write:/ 'Flight info of:', i_carrid, i_connid.
    format color col_normal.
    select * from sflight
    into corresponding fields of table it_flights
    where carrid = i_carrid
    and connid = i_connid.
    loop at it_flights into wa_flights.
    write:/ wa_flights-fldate,
    wa_flights-planetype,
    wa_flights-price currency wa_flights-currency,
    wa_flights-seatsmax,
    wa_flights-seatsocc.
    endloop.
    “BBB”
    *& Report ZBADI_TEST *
    REPORT ZBADI_TEST .
    tables: spfli.
    data: wa_spfli type spfli,
    it_spfli type table of spfli with key carrid connid.
    *Initialise the object of the interface.
    data: exit_ref type ref to ZCL_IM_IM_LINESEL,
    exit_ref1 type ref to ZIF_EX_BADISPFLI1.
    selection-screen begin of block b1.
    select-options: s_carr for spfli-carrid.
    selection-screen end of block b1.
    start-of-selection.
    select * from spfli into corresponding fields of table it_spfli
    where carrid in s_carr.
    end-of-selection.
    loop at it_spfli into wa_spfli.
    write:/ wa_spfli-carrid,
    wa_spfli-connid,
    wa_spfli-cityfrom,
    wa_spfli-deptime,
    wa_spfli-arrtime.
    hide: wa_spfli-carrid, wa_spfli-connid.
    endloop.
    at line-selection.
    check not wa_spfli-carrid is initial.
    create object exit_ref.
    exit_ref1 = exit_ref.
    call method exit_ref1->lineselection
    EXPORTING
    i_carrid = wa_spfli-carrid
    i_connid = wa_spfli-connid.
    clear wa_spfli.
    With Regards
    Madhu

  • Info required regarding BADI's

    Hi All,
    Recently i have started learning the ABAP programming so i need help to develop my skills. Upto know i have idea in classical and interactive reporting. Know i  want to know some more new topics like BADI's,UserExits, ALE, IDOCS.
    So can any one tell me where they will use these above things and please provide some material relating to this or please tell me how to find relavent material in order to learn these topics individually.
    Thanks and regards,
    Lisa

    hi,
    For BADI creation look into this blog,
    /people/sergey.korolev/blog/2005/03/14/the-time-for-me-to-have-a-badi-of-my-own
    ALE:
    ALE is SAP proprietary technology that enables data communications between two or more SAP R/3 systems and/or R/3 and external systems. When a new enterprise resource planning (ERP) solution such as R/3 is implemented, companies have to interface the ERP system with legacy systems or other ERP systems.
    ALE provides intelligent mechanisms where by clients can achieve integration as well as distribution of applications and data.
    ALE technology facilitates rapid application prototyping and application interface development, thus reducing implementation time.
    The ALE components are inherently integrated with SAP applications and are robust, leading to a highly reliable system.
    ALE comes with application distribution/integration scenarios as well as a set of tools, programs, data definitions, and methodologies that you can easily configure to get an interface up and running.
    IDOC:
    Standard SAP format for electronic data interchange between systems (Intermediate Document). Different message types (such as delivery confirmations or purchase orders) normally represent different specific formats, the IDoc types. However, multiple message types with related content can be assigned to one IDoc type: For example, the IDoc type ORDERS01 transfers the "logical" message types ORDERS (purchase order) and ORDRSP (order confirmation).
    regs,
    jaga

  • Regarding parallel queries in ABAP same as in oracle 10g

    Hi,
       Is there any way we can write parallel queries in ABAP, in the same way we do in oracle 10g.Kindly see below;
    alter table emp parallel (degree 4);
    select degree from user_tables where table_name = 'EMP';
    select count(*) from emp;
    alter table emp noparallel;
    SELECT /*+ PARALLEL(emp,4) / COUNT()
    FROM emp;
    The idea here is to distribute the load of select query in multiple CPUs for load balancing & performance improvement.
    Kindly advise.
    Thanks:
    Gaurav

    Hi,
    >    Is there any way we can write parallel queries in ABAP, in the same way we do in oracle 10g.
    sure. Since it is just a hint...
    SELECT *
      FROM t100 INTO TABLE it100
      %_HINTS ORACLE 'PARALLEL(T100,4)'.
    will give you such an execution plan for example:
    SELECT STATEMENT ( Estimated Costs = 651 , Estimated #Rows = 924.308 )
           4 PX COORDINATOR
               3 PX SEND QC (RANDOM) :TQ10000
                 ( Estim. Costs = 651 , Estim. #Rows = 924.308 )
                 Estim. CPU-Costs = 33.377.789 Estim. IO-Costs = 646
                   2 PX BLOCK ITERATOR
                     ( Estim. Costs = 651 , Estim. #Rows = 924.308 )
                     Estim. CPU-Costs = 33.377.789 Estim. IO-Costs = 646
                       1 TABLE ACCESS FULL T100
                         ( Estim. Costs = 651 , Estim. #Rows = 924.308 )
                         Estim. CPU-Costs = 33.377.789 Estim. IO-Costs = 646
    PX = Parallel eXecution...
    But be sure that you know what you do with the parallel execution option... it is not scalable.... .
    Kind regards,
    Hermann

  • Regarding badi bom_exit

    coding inside badi bom_exit  
    hi friends
    thanks in advance.
    in se19 i need to implement that badi for that help me in coding.
    this is the badi for making field alterations in screen 100 for CS02 transaction in ecc 5.0
    now the thing is , i need to make the field aennr(change number inside the effectivity block as mandatory field) so please help me out in coding this , as i am new to badi.
    with regards
    S.Janagar

    Janagar
    Create the Implementation for BADI BOM_EXIT. Add following code to the Interface START_SCREEN_CHECK in the Implementation:
      IF i_rc29n-aennr IS INITIAL.
        MESSAGE e208(00) WITH 'Change number is Mandatory'.
      ENDIF.
    Thanks
    Amol Lohade

  • Regarding BADI FAA_EE_CUSTOMER

    Hi Gurus,
    I have a requirement of BADI FAA_EE_CUSTOMER ( new depreciatioin calculation ), the thing is i am new to BADIs,
    i have created the BADI Z_FAA_EE_CUSTOMER and inserted a break-point in the set_base_value interface. but i am unable to find the tcode for which this badi will trigger... and can any give me some help to work out on this ...this is available in ecc6.0. i have opened the tcodes OABZ and AOBK but how to go into my code ...if they are the correct tcodes?
    Waiting for ur reply....
    Regards
    Srinath

    goto se24
    type cl_exithandler and "display"
    double click on "get_instance"
    set a break-point on  CALL METHOD cl_exithandler=>get_class_name_by_interface
    run the transaction ,in the debugger you will see the badis name in "exit_name" variable.
    These badi's are the ones you can use in your transaction....
    have you activated your implemetation????

  • Regarding BAdi : Customer's Own Screens in Enjoy Purchase Order

    Hi freinds
    If we activate the above mentioned BAdi what enhancements will we get in comparition with std functionality.
    Regards
    Eldee

    Hi
    By implement ting this BAdi you can define your own screens which will be visible in ME21n screen at the time of purchase order creation.
    Certain screens or fields which are  not present in the standard  but required by the client can be accomplished using this BAdi.
    Thanks & Regards
    Kishore

  • Regarding the Authorization in ABAP-HR

    Hi all,
        I want to know about the Authorizations in the ABAP-HR. If any body is having any material regarding the can you plz share with me...
    thanks in advance,
    Suresh

    Hi Kutam,
    Chk these Links....
    Can i have the list of infotypes .
    abap hr
    http://www.asug.com/client_files/Calendar/Upload/HR_STRUCTURAL_AUTHORIZATIONS.ppt
    Reward Points if Useful
    All the Best
    Gokul

Maybe you are looking for

  • Performance problem in IDoc receive (DELFOR01)

    Hi, I have serious problems in receive of Idoc Delfor01 (IDOC_INPUT_DELINS). We receive more than 3000 Idoc daily of this type and the process of then during all day.... One of more common error is foreing_lock of VBAK table. This error occurs in the

  • Steven Please Help

    Hi Steve, I feel you can give me better suggestion for my question. We are suppose to develop an Application which is little big, I mean it may have around 200 forms.This has to be done for a Supermarket which is placed at around 20 centres.Now we ar

  • SelectNodes with namespaces

    Hi, I'm parsing the XML document of a forms module that looks something like <?xml version = '1.0' encoding = 'UTF-8'?> <Module version="101020002" xmlns="http://xmlns.oracle.com/Forms"> <FormModule Name="HAN101" ParentType="29" DirtyInfo="true" Menu

  • Why is iPhoto automatically opening every time I plug in my phone?

    Every time I plug my iPhone into my Macbook it automatically opens up iPhoto whether or not I have new photos to import, which I usually don't. It's really annoying. My husband has the same phone and his doesn't do this. Is there some way to stop it?

  • Random thick lines and loss of sensativity

    Hello. I've been having a problem with random sensativity in lines. On my other computer, which is several years older then the one I'm working on now, working on PS with a tablet that was Bamboo, I would draw and quite often, every other stroke or s