Implementing BADIs CFX_STATUS_TRANS and CFX_STATUS_TRANS_UI

How would I go about implementing BADIs CFX_STATUS_TRANS and CFX_STATUS_TRANS_UI?  I have never used a BADI before but I have read documentation on implementing BADIs.  One example of such is https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d0456c54-0901-0010-f0b3-cd765fb99702 
What would I need to do to use either of these BADIs?  Specifially, I will need to
•     Get Project Details such as Description, Dates, etc and return these to cFolders for population in the Document
•     Get Project Partner details such as Names, addresses, email addresses etc for selection and population
Is it possible in these BADIs?  I was asked to begin with the two BADIs that I listed above but I am unsure how they will help.
Regards,
Davis

Hi Davis,
If you run the transaction SE18 using the Badi you mentioned, click of 'Display', then you will find a button 'Document', which you can find out, which purpose has the involved Badi.
Kind regards,
Zhenbo

Similar Messages

  • Badi creation and implementation

    HI all ,
    I want inforamtion on BADIs.
    How to search for BADI and also creating and implementing the badi .
    Regards
    SAntosh .

    There are two steps in User Exit creation.
    1} Identify the User Exit suitable for the requirement and that is available in the system:
    Code SE18 is used to Identify the BADI available.
    Look for the string 'CL_EXITHANDLER' in the standard program. This is a class which has a method 'GET_INSTANCE' which is used to trigger BADI's from the Standard Program. The interface parameter for this static method 'EXIT_NAME' is used to pass the BADI to the method.
    Open Standard Program and do a global search 'CL_EXITHANDLER'.
    SE18 > give the BADI name found through above search.
    CUSTOMER_ADD_DATA > which has a method SAVE_DATA.
    2} Implement the User Exit identified through above process.
    T.Code SE19 is used to Implement BADI.
    SE19 > give the implementation name > Give the Definition name as CUSTOMER_ADD_DATA and the Short Text.
    Check this blogs 2 find a BADI:
    How to find if we have a BADI in Transaction VB02
    Re: BADI for screen enhancement in MM01  transaction
    Re: BADI and User exits
    How To Define a New BAdI Within the Enhancement Framework (Some Basics About the BAdI,BAdI Commands in ABAP,
    When to Use a BAdI?)
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    How to implement a BAdI And How to Use a Filter
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
    Introducing Business Add-Ins
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f3202186-0601-0010-6591-b832b1a0d0de
    How to implement BAdi in Enhancement Framework
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d0456c54-0901-0010-f0b3-cd765fb99702
    Business Add-Ins
    http://help.sap.com/saphelp_47x200/helpdata/en/ee/a1d548892b11d295d60000e82de14a/frameset.htm
    BAdI: Customer-Defined Functions in the Formula Builder
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    Difference Between BADI and User Exits
    http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
    To Use BADI - Business Add In you need to Understand ABAP OO Interface Concept
    http://www.sap-img.com/abap/business-add-in-you-need-to-understand-abap-oo-interface-concept.htm
    You can check the links for Step by Step Badi Implemntation
    (very helpful self learning docs).
    BADI Step by Step Implementation.
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
    http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/63ee7f486cc143a560799d8803ce29/content.htm
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/srm/badi-general+information&
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
    http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
    The specified item was not found.
    http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    http://www.allsaplinks.com/badi.html
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-serieshttps:///people/alwin.vandeput2/blog/2006/04/13/how-to-search-for-badis-trace-it
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework /people/thomas.weiss/blog/2006/05/03/source-code-enhancements--part-5-of-the-series-on-the-new-enhancement-framework
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    http://www.esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/40921dd7-d5cf-2910-1894-bb62316afbd1
    http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
    http://esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    http://esnips.com/doc/365d4c4d-9fcb-4189-85fd-866b7bf25257/customer-exits--badi.zip
    http://esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
    http://help.sap.com//saphelp_470/helpdata/EN/eb/3e7cee940e11d295df0000e82de14a/frameset.htm
    Difference Between BADI and User Exits
    http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
    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.
    REPORT Z_BADI_TEST.
    test call Badi from standard abap. (Only from rel 6.40 and above)
    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 implemntation
    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 something like ZIF_EX***************
    You will see this in SE18/SE19.
    6) Instantiate your instance of the badi (method call get_instance)
    7) Now call any method(s) in the Badi.
    class cl_exithandler definition load. "Declaration
    data exit type ref to zif_ex__jimbotest. "Interface reference
    data yes type c.
    data: v_knvv type knvv. "Used in Fmod call in Badi methods
    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 method cl_exithandler=>get_instance "Factory method call
    exporting "Method
    exit_name = 'Z_JIMBOTEST' "Name of your BADI
    null_instance_accepted = yes
    changing instance = exit.
    if not exit is initial.
    break-point 1.
    if r1 = 'X'.
    call method exit->dispord . "Add-In call
    changing testparm1 = word.
    endif.
    if r2 = 'X'.
    call method exit->dispfakt.
    endif.
    if r3 = 'X'.
    call method exit->dispmat.
    endif.
    In the badi methods
    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
    FUNCTION Z_DISPLAY_CUST.
    ""Lokale interface:
    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.
    ""Lokale interface:
    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.
    ""Lokale interface:
    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.
    http://www.****************/Tutorials/ExitsBADIs/VL02/page1.htm
    Reward points..

  • Error while implementing BADI ME_GUI_PO_CUST

    Hi Experts,
    My requirment is to add a new tab in ME21N screen.We have to implement the BADI ME_GUI_PO_CUST and methods SUBSCRIBE and MAP_DYNPRO_FIELDS will create a new tab.however i have got a problem in method MAP_DYNPRO_FIELDS.
    i have defined 2 z fields and i have appended it in EKKo as well.now in method MAP_DYNPRO_FIELDS i have written the code like this...
    LOOP AT ch_mapping ASSIGNING <mapping>.
        CASE <mapping>-fieldname.
          WHEN 'ZZPAYMENT_AGRE'.      <mapping>-metafield =mmmfd_cust_03.      "mmmfd_mat_grp.
          WHEN 'ZZPROJECT'.           <mapping>-metafield = mmmfd_cust_04.
        ENDCASE.
      ENDLOOP.
    if i do like that...it's not displaying the new tab but when i replace any of the custome fields(mmmfd_cust_03,mmmfd_cust_04) with  "mmmfd_mat_grp.it is displaying the new tab.
    can any one tell me what is the wrong in my code.

    solved by myself

  • Problem on Implementing badi ME_GUI_PO_CUST

    Hi Expert,
    I have implement BADI ME_GUI_PO_CUST, to add the new tab.
    I have managed to View the tab in Both ME21N, and ME22N with implement SUBSCRIBE and MAP_DYNPRO_FIELDS.
    method IF_EX_ME_GUI_PO_CUST~SUBSCRIBE
      DATA: ls_subscriber LIKE LINE OF re_subscribers.
      CHECK im_application = 'PO'.
      CHECK im_element = 'ITEM'.
      CLEAR re_subscribers[].
      ls_subscriber-name = subscreen1.
      ls_subscriber-dynpro = '0002'.
      ls_subscriber-program = 'ZRPP_ME_GUI_PO_CUST_SCREEN'.
      ls_subscriber-struct_name = 'CI_EKPODB'.
      ls_subscriber-label = text-001.
      ls_subscriber-position = 7.
      ls_subscriber-height = 7.
      APPEND ls_subscriber TO re_subscribers.
    METHOD : IF_EX_ME_GUI_PO_CUST~MAP_DYNPRO_FIELDS
      FIELD-SYMBOLS: <mapping> LIKE LINE OF ch_mapping.
      LOOP AT ch_mapping ASSIGNING <mapping>.
        CASE <mapping>-fieldname.
          WHEN 'ZCNUM'.      <mapping>-metafield = mmmfd_cust_01.
        ENDCASE.
      ENDLOOP.
    Method IF_EX_ME_GUI_PO_CUST~MAP_DYNPRO_FIELDS
      DATA: lw_fieldselection LIKE LINE OF ch_fieldselection.
      LOOP AT ch_fieldselection INTO lw_fieldselection.
        lw_fieldselection-fieldstatus = '+'.
        MODIFY ch_fieldselection FROM lw_fieldselection.
      ENDLOOP.
    I need to store the value, and some of thread said it required methods:
    TRANSPORT_FROM_MODEL
    TRANSPORT_TO_DYNP
    TRANSPORT_FROM_DYNP
    TRANSPORT_TO_MODEL
    I have click on the subcreen, or enter at the field, but it will not able to trigger the Above Methods.
    How do I do for the to trigger above Methods? Or Should I added some additional code at screen program? I want SAVE the data actually into EKPO.
    Thanks in advance.

    Hi Sim,
    Recently we have the same reqirement.
    You can have a look at the below code..
    First method: SUBSCRIBE  
    DATA: ls_subscriber LIKE LINE OF re_subscribers.* we want to add a customer subscreen on the Header tab
        CHECK im_application = 'PO'.
        CHECK im_element     = 'HEADER'.* each line in re_subscribers generates a subscreen. We add one subscreen in this example
        CLEAR re_subscribers[].
    * the name is a unique identifier for the subscreen and defined in this class definition
        ls_subscriber-name = subscreen1.
    * the dynpro number to use
        ls_subscriber-dynpro = '0001'.
    * the program where the dynpro can be found
        ls_subscriber-program = 'SAPLZKMMM_KAU86037'.
    * each subscreen needs his own DDIC-Structure
        ls_subscriber-struct_name = 'CI_EKKODB'.
    * a label can be defined
        ls_subscriber-label = text-001.
    * the position within the tabstrib can be defined
        ls_subscriber-position = 13.
    * the height of the screen can be defined here. Currently we suport two screen sizes:
    * value <= 7 a sevel line subscreen
    * value > 7  a 16 line subscreen
        ls_subscriber-height = 7.    APPEND ls_subscriber TO re_subscribers.Here, parameter u2018im_elementu2019 is defined as u2018HEADERu2019 as we are adding new tab in header section of PO.  
    Define a function group and take the main program and define it in ls_subscriber-program.
    Also define a sub screen with the required fields and assign it to the parameter ls_subscriber-dynpro.  
    Then method MAP_DYNPRO_FIELDS  
    FIELD-SYMBOLS: <mapping> LIKE LINE OF ch_mapping.
        LOOP AT ch_mapping ASSIGNING <mapping>.    CASE <mapping>-fieldname.      WHEN 'ZZPAYMENT_AGRE'.      <mapping>-metafield = mmmfd_cust_03.
          WHEN 'ZZPROJECT'.                     <mapping>-metafield = mmmfd_cust_04.
        ENDCASE.  ENDLOOP.  TRANSPORT_FROM_MODEL:
    DATA:     l_header       TYPE REF TO if_purchase_order_mm,
                  ls_mepoheader  TYPE mepoheader,
                  ls_customer    TYPE CI_EKKODB.*--------------------------------------------------------------------*
    * system asks to transport data from the business logic into the view
    *--------------------------------------------------------------------*    CASE im_name.      WHEN subscreen1.* is it an Header? im_model can be header or item.
            mmpur_dynamic_cast l_header im_model.
            CHECK NOT l_header IS INITIAL.* transport standard fields
            ls_mepoheader = l_header->get_data( ).* store info for later use
            MOVE-CORRESPONDING ls_mepoheader TO dynp_data_pbo.
          WHEN OTHERS.
        ENDCASE.    TRANSPORT_TO_DYNP:
    Define a FM 'ZK_KAU86037_PUSH' to push the values.CASE im_name.      WHEN subscreen1.        CALL FUNCTION 'ZK_KAU86037_PUSH'
              EXPORTING
                im_dynp_data = dynp_data_pbo.      WHEN OTHERS.
        ENDCASE.    TRANSPORT_FROM_DYNP:
      Define another FM 'ZK_KAU86037_POP'.CASE im_name.      WHEN subscreen1.        CALL FUNCTION 'ZK_KAU86037_POP'
              IMPORTING
                ex_dynp_data = dynp_data_pai.        IF dynp_data_pai NE dynp_data_pbo.
    * something has changed therefore we have to notify the framework
    * to transport data to the model
              re_changed = mmpur_yes.
            ENDIF.      WHEN OTHERS.
        ENDCASE.  TRANSPORT_TO_MODEL:     
            DATA: l_header             TYPE REF TO if_purchase_order_mm,
              ls_mepoheader        TYPE mepoheader,
              ls_customer          TYPE CI_EKKODB,
              l_po_header_handle   TYPE REF TO cl_po_header_handle_mm.*--------------------------------------------------------------------*
    * data have to be transported to business logic
    *--------------------------------------------------------------------*    CASE im_name.      WHEN subscreen1.* is it an item? im_model can be header or item.
            mmpur_dynamic_cast l_header im_model.
            CHECK NOT l_header IS INITIAL.        ls_mepoheader = l_header->get_data( ).* standard fields changed?
            IF dynp_data_pbo-zzpayment_agre   NE dynp_data_pai-zzpayment_agre
            OR dynp_data_pbo-zzproject        NE dynp_data_pai-zzproject.* update standard fields
              ls_mepoheader-zzpayment_agre   = dynp_data_pai-zzpayment_agre.
              ls_mepoheader-zzproject  = dynp_data_pai-zzproject.
              CALL METHOD l_header->set_data
                EXPORTING
                  im_data = ls_mepoheader.
            ENDIF.
          WHEN OTHERS.    ENDCASE. 
    Then we have to implement one more BADI to display the tab and update the values.
    Implement the BADI ME_PROCESS_PO_CUST. This cannot be used multiple times.  
    In this, we have methods (PROCESS_HEADER,PROCESS_ITEM).if we need to any validations for the fields we can write the logic here in this methods. In my case I need to check for the document type which I implemented in the method (PROCESS_HEADER).  
    Hope it helps you.
    Thanks
    Arbind

  • Badi ME_GUI_PO_CUST and ME_PROCESS_PO_CUST

    Dear All,
    I am implementing a customer subscreen in the PO header. I have created the screen, implemented both Badi's int following way.
    Somehow, the customer data is not getting saved. It is not being passed into the Badi's, am not sur what I have missed because I have implemeted it exactly like the example implementation, only the example is for item and I am using a PO Header subscreen. This is what I have done, please suggest.
    First in ME_GUI_PO_CUST
    Methods :-
    METHOD if_ex_me_gui_po_cust~subscribe .
      ls_subscriber-name = subscreen1.
      ls_subscriber-dynpro = lc_dynpro.
      ls_subscriber-program =  lc_repid.
      ls_subscriber-struct_name = lc_struc.
      ls_subscriber-label = text-001.
      ls_subscriber-position = 10.
      ls_subscriber-height = 7.
      APPEND ls_subscriber TO re_subscribers.
    ENDMETHOD.
    METHOD if_ex_me_gui_po_cust~map_dynpro_fields .
      FIELD-SYMBOLS: <mapping> LIKE LINE OF ch_mapping.
      LOOP AT ch_mapping ASSIGNING <mapping>.
        CASE <mapping>-fieldname.
          WHEN 'ZZDEPT'.
            <mapping>-metafield = mmmfd_cust_01.
        ENDCASE.
      ENDLOOP.
    ENDMETHOD.
    METHOD if_ex_me_gui_po_cust~transport_from_model .
      DATA: l_header       TYPE REF TO if_purchase_order_mm,
            ls_mepoheader  TYPE mepoheader,
            ls_customer  TYPE ci_ekkodb.
      CASE im_name.
        WHEN subscreen1.
          mmpur_dynamic_cast l_header im_model.
          CHECK NOT l_header IS INITIAL.
          ls_mepoheader = l_header->get_data( ).
          MOVE ls_mepoheader-zzdept TO dynp_data_pbo-zzdept.
          MOVE gs_data-zzdept TO dynp_data_pbo-zzdept.
        WHEN OTHERS.
      ENDCASE.
    ENDMETHOD.
    METHOD if_ex_me_gui_po_cust~transport_to_dynp .
      CASE im_name.
        WHEN subscreen1.
          CALL FUNCTION 'ZF00MM_POHEADER_PUSH'
            EXPORTING
              im_dynp_data = dynp_data_pbo.
        WHEN OTHERS.
      ENDCASE.
    ENDMETHOD.
    METHOD if_ex_me_gui_po_cust~transport_from_dynp .
      CASE im_name.
        WHEN subscreen1.
          CALL FUNCTION 'ZF00MM_POHEADER_POP'
            IMPORTING
              ex_dynp_data = dynp_data_pai.
          IF dynp_data_pai NE dynp_data_pbo.
            re_changed = mmpur_yes.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
    ENDMETHOD.
    METHOD if_ex_me_gui_po_cust~transport_to_model .
      DATA: lv_header       TYPE REF TO if_purchase_order_mm,
            lw_ekkodb       TYPE mepoheader.
      CASE im_name.
        WHEN subscreen1.
          mmpur_dynamic_cast lv_header im_model.
          CHECK NOT lv_header IS INITIAL.
          lw_ekkodb = lv_header->get_data( ).
          IF dynp_data_pbo-zzdept NE dynp_data_pai-zzdept.
            MOVE dynp_data_pai-zzdept TO lw_ekkodb-zzdept.
            gs_data-zzdept = lw_ekkodb-zzdept.
          ENDIF.
          lv_header->set_data( lw_ekkodb ).
      ENDCASE.
    ENDMETHOD.
    ME_PROCESS_PO_CUST
    Set the field status in method IF_EX_ME_PROCESS_PO_CUST~FIELDSELECTION_HEADER
    METHOD if_ex_me_process_po_cust~open .
      DATA: ls_mepoheader TYPE mepoheader.
      CHECK im_trtyp EQ 'V' OR im_trtyp EQ 'A'.
      ls_mepoheader = im_header->get_data( ).
      SELECT SINGLE zzdept FROM ekko INTO gs_data_old-zzdept
                          WHERE ebeln = ls_mepoheader-zzdept.
      gs_data = gs_data_old.
    ENDMETHOD.
    METHOD if_ex_me_process_po_cust~post .
      DATA: ls_mepoheader  TYPE mepoheader.
      ls_mepoheader = im_header->get_data( ).
      ls_mepoheader-zzdept = gs_data-zzdept.
    ENDMETHOD.
    Can somebody please suggest what is going wrong ? All the methods are being called but the field ZZDEPT is not being transferred into the BADI structures and hence is not saved/changed or displayed.
    Appreciate your help.
    Thanks in advance.
    Edited by: SAP ABAPer on Jan 25, 2010 4:55 PM

    Tried very hard to improve the formatting of the post, but it doesn't seem to work for me !!

  • Help with MIRO Badi's and Translation Date (Exchange Rate Date Reference)

    Dear experts
    This is a problem I have read a lot about, but none of the answers work properly and I wanted to create a new thread in order to try to compile a final answer for this problem (at least in version 6.0)
    As you know Standar SAP uses posting date as translation date in MIRO for foreign currency.
    This is not always true (imagine Crude Imports with 3 dates: Invoice date, posting date and Bill of Lading date. The last one happens to be the fiscal date for exchange rate in my county and the other two are also mandatory).
    I am proposing thus to use 3 dates: Document date as invoice date; posting date as posting date and Invoice Receipt Date
    (REINDAT - RBKP) as Bill of Lading date. I would like to implement this third date as translation date.
    Lot of ways to do it, but none works properly as for the end user it is complicated to enter data in a certain way so that BADI's work properly. I have implemented note 574583 and only works with some restrictions.
    I have also used some more BADI's like MRM_HEADER_CHECK, FI_TRANS_DATE_DERIVE, INVOICE_UPDATE,... and all of them have some restrictions (depending always in data header taps data introduction or saving the exchange rate properly in MM TABLES but not in FI TABLES).
    I would really appreciate if anyone could help with this, ensuring that the Badi get's always the data and makes it work with no screen selection dependance.
    Thanks in advance.

    Dear All,
    I have found the solution with the help of ABAPer. The system has a bug for which SAP has given a  Sap Note no 22781.
    Actually what happened in the Invoice is, the system by default fetched the exchange rate for the Exchange Rate Type 'M' for the rate last maintained. Since we were using different Exchange rate it did not match. Also we came to know about the difference only because off-late the users had stopped updating Exchange Rate 'M' .
    The funny part is in the Invoice if we click on each tab at the header and come back to the first tab where we find the Exchange rate for accounting, the system picks up the actually rate as per the Exchange Rate maintained.
    Regards,
    Karthik.

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

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

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

  • Implementing Badi for additional tab page & creating views in cProjects 3.1

    Hi,
    I am implementing DPR_ADD_SAP_TAB_I for adding new tab page in Cprojects 3.1.
    Please tell me whether we have to create any veiw?
    if it is please tell me the procedure & steps

    Hi...
    Implement the BAdI DPR_ADD_SAP_TAB_I
    and write following code in its method GET_ADD_TAB_DATA
    method IF_EX_DPR_ADD_SAP_TAB_I~GET_ADD_TAB_DATA .
      field-symbols: <tab_data> type DPR_TS_SAP_TAB_CTRL.
      data: lt_tab_data type DPR_TT_SAP_TAB_CTRL.
      constants: lc_pre_ctrl   type string value 'CTRL_TAB_',
                         lc_suff_ctrl  type string value '.DO'.
      lt_tab_data = ct_comp_ctrl.
      loop at lt_tab_data assigning <tab_data>.
        case <tab_data>-obj_type.
       project definition
          when CL_DPR_CO=>SC_OT_PROJECT.
            <tab_data>-tab_title = 'otr(zotr_cust_txt/proj_txt)'.
            concatenate lc_pre_ctrl CL_DPR_CO=>SC_OT_PROJECT lc_suff_ctrl
    into <tab_data>-controller.
        endcase.
      endloop.
      ct_comp_ctrl = lt_tab_data.
      EV_BSP_APPL = 'CST_ADD'.
    endmethod.
    Regards,
    Reema.

  • Getting Exception when implementing badi 'hrpad00inftydb'

    Hi friends..
    My need is to update infotype 0207 when ever employee changes address thru ess.
    I implemented the badi 'HRPAD00INFTYDB' and inside it called 'HR_MAINTAIN_MASTERDATA'. But its giving the following two exception :
    1. Exception 'CX_HRPA_VIOLATED_PRECONDITION' occured in the    
        procedure "INITIALISE_PS_ADAPTER'.
    2. Exception named 'cx_sy_ref_is_initial' occured in the procedure 'HRXSS_PER_CLEANUP'.
    I have checked the implementation by running it separately. It is working fine and is updating 0207.
    Bt when i do the address change through portal, it is giving the above mentioned exceptions.
    Please post a solution, if possible.
    Thanks and Regards.
    abhi

    encountering the same error
    anybody has answer to these? why is the standard old FM for updating infotypes is not supported by this BADI?

  • Exception in implementing badi " hrpad00inftydb"

    Hi friends..
    My need is to update infotype 0207 when ever employee changes address thru ess.
    I implemented the badi 'HRPAD00INFTYDB' and inside it called 'HR_MAINTAIN_MASTERDATA'. But its giving the following two exception :
    1. Exception 'CX_HRPA_VIOLATED_PRECONDITION' occured in the    
        procedure "INITIALISE_PS_ADAPTER'.
    2. Exception named 'cx_sy_ref_is_initial' occured in the procedure 'HRXSS_PER_CLEANUP'.
    I have checked the implementation by running it separately. It is working fine and is updating 0207.
    Bt when i do the address change through portal, it is giving the above mentioned exceptions.
    Please post a solution, if possible.
    Thanks and Regards.
    abhi

    Hi...
    thnx for d reply..
    yes..tht i checked thoroughly..
    and anyways i independently executed my implementation, it is working fine.
    Thnks and Regards
    Abhi

  • Implementing BADI ALM_ME_001_ORDER

    Hi All,
    <i>MAM30 SR1</i>
    <i>MI25 SP15</i>
    I followed the guide for implementing BADI ALM_ME_001_ORDER to get more fields for the ORDER_OPERATION details.
    In the MI server, merep_mon says my fields and values are there and enhancement flags, and so as in the device - if I look in start.jsp.
    But they are nowhere to be found on the screen.  What did I miss?
    Here's what I did:
    1) added fields in CI_ALM_ME_ORDER_OPERATION structure
    2) implemented BADI method MAM30_GETDETAIL
    METHOD if_ex_alm_me_001_order~mam30_getdetail .
      DATA: l_oper     TYPE mam_30_order_operation,
            lce_oper   TYPE alm_me_custom_order_operation.
      LOOP AT order_operation INTO l_oper.
        clear lce_oper.
        lce_oper-zusr00 = l_oper-usr00.
        lce_oper-zusr01 = l_oper-usr01.
        lce_oper-zusr02 = l_oper-usr02.
        lce_oper-zusr03 = l_oper-usr03.
        lce_oper-key_activity = l_oper-activity.
        lce_oper-key_sub_activity = l_oper-sub_activity.
        APPEND lce_oper TO ce_order_operation.
        l_oper-enhancement_flag = 'X'.
        MODIFY order_operation
          FROM l_oper TRANSPORTING enhancement_flag.
      ENDLOOP.
    ENDMETHOD.
    3) implemented BADI method MAM30_GETLIST
    METHOD if_ex_alm_me_001_order~mam30_getlist .
      DATA l_order_list TYPE mam_30_order_header.
      LOOP AT order_list INTO l_order_list.
        l_order_list-enhancement_flag = 'X'.
        MODIFY order_list
          FROM l_order_list TRANSPORTING enhancement_flag.
      ENDLOOP.
    ENDMETHOD.
    <i></i>

    Hi Kuya!
    Did you activate your BADI implementation in SE19?
    Thank You
    Gisk

  • Implementing BADI TRIP_WEB_NUMBER, problem reading a field

    Hi All,
    Have anyone implemented BADI TRIP_WEB_NUMBER before,
    Interface : IF_EX_TRIP_WEB_NUMBER
    Method:     USER_EXIT_NUMBER_INTERNAL
    I need a help.
    In this method i have exporting parameter NUMBER_RANGE TYPE INRI-NRRANGENR
    so my requirement is just to change this parameter for particular conditon.
    Problem is to make condition i need a field SCHEMA
    You can check Structure HEAD_PERIO-SCHEM
    or elset T706S OR T706T...
    I need to read that field at runtime somehow, how can i achieve that pls help.
    i can able to read only the date....
    Pls help..
    Thanks

    Find out the main program name where the variable HEAD_PERIO-SCHEMA is declared. Then you can use the ABAP call stack method to retrieve the variable like below. This method can only be used to read a variable from ABAP call stack memory, that is the variable should be available in the scope of the program which is present in the run time call stack your BADI gets called in.
    DATA: lv_name_xvbak(30)  VALUE   '(SAPMV45A)VBAK'.
    FIELD-SYMBOLS: <xvbak> TYPE  vbak.
    * Retrieve Sales order details from abap stack
    ASSIGN (lv_name_xvbak) TO <xvbak>.
    IF sy-subrc NE 0.
      EXIT.
    ENDIF.
    In the above code you can replace SAPMV45A with the main program name where field SCHEMA is available and VBAK with HEAD_PERIO (the structure or internal table where the field you want is available)
    For accessing internal tables similarly
    DATA:  lv_name_xvbap(30)  VALUE   '(SAPMV45A)XVBAP[]'.
    FIELD-SYMBOLS: <xvbap> TYPE TABLE OF vbap.
    ASSIGN (lv_name_xvbap) TO <xvbap>.
    IF sy-subrc NE 0.
      EXIT.
    ENDIF.

  • Implementing BADI for PO

    Dear All,
    <b>In the PO creation badi, in create/change/save methods, i need to clear the purchase info record defaulted by SAP.
    Also in create method, PO price needs to be defaulted as the same as PR price, if the reference PR is found. User should be able to change this default price and save the PO.</b>  Hence, I have to restrict this logic only to create method.
    Now i am trying to implement BADI for PO def (ME_PROCESS_PO_CUST) with (impl name: ZMM_POCREATE). For clearing the purchase info record i put the code in 2 different methods
    1. PROCESS_ITEM
      DATA: ls_mepoitem TYPE mepoitem.
      break LAKSHMIS.
    Get the PO item Details
      ls_mepoitem = im_item->get_data( ).
      ls_mepoitem-INFNR = space.
    Set the item data
      CALL METHOD im_item->set_data
        EXPORTING
          im_data = ls_mepoitem.
    2. OPEN
      DATA:
      ls_header   TYPE mepoheader,
      ls_mepoitem TYPE mepoitem.
      break lakshmis.
      CALL METHOD im_header->get_data
        RECEIVING
          re_data = ls_header.
    Get the items for the PO using get items method and change the purch info record to SPACE and set the values using SET_DATA on item.
    <b>However, in both the cases the value doesnot get changed (as i dont see any changing parameters provided). However the documentation of BADI says that we can change the HEADER as well as ITEM information in this BADI.</b>
    Can anyone please suggest, where i am going wrong and what needs to be done in order to achieve the above two requirements.
    Thanks in advance.
    Regards,
    Lakshmi

    BADI
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
    http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/63ee7f486cc143a560799d8803ce29/content.htm
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/srm/badi-general+information&
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
    http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
    The specified item was not found.
    http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    http://www.allsaplinks.com/badi.html
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-serieshttps [original link is broken]:///people/alwin.vandeput2/blog/2006/04/13/how-to-search-for-badis-trace-it
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework /people/thomas.weiss/blog/2006/05/03/source-code-enhancements--part-5-of-the-series-on-the-new-enhancement-framework
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    http://www.esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/40921dd7-d5cf-2910-1894-bb62316afbd1
    http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
    http://esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    http://esnips.com/doc/365d4c4d-9fcb-4189-85fd-866b7bf25257/customer-exits--badi.zip
    http://esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
    http://help.sap.com//saphelp_470/helpdata/EN/eb/3e7cee940e11d295df0000e82de14a/frameset.htm
    Rewards if useful.........
    Minal

  • Any one implemented BADI :BADI_LE_SHIPMENT

    Hi all,
    Is anyone has implemented BADI: BADI_LE_SHIPMENT.
    I am trying to implement the method: AT_SAVE and i want to update: VTRLK.
    please let me know how should i implement AT_SAVE Method.
    Thanks.

    goto ->se19->givee name to implementation(classical)--->there it will ask for BADI definition -> and give all required ffild values->after that double click on the method which u want to active ---> u will get method screen
    like
    method
    code here
    endmethod
    and save and activate.
    Regards
    Peram

  • How can we implement BADI FI_HEADER_SUB_1300

    Hi,
    I have created a field in BKPF table , now I have to update this field while using FB01 tcode. can any  one tell me how can i update this field using BADI "BADI FI_HEADER_SUB_1300". please give the steps if possible
    thanks

    Pankaj,
    You need to create a implementation for the BADI using SE18 transaction. However, before that look at the parameters of the method of the BADI and see if your Custom field has reflected in there or not. Secondly, if it has, then whether you can modify the data or its in importin mode.
    If these two conditions are satisfied, then you can implement the method and update the field and it should reflect in the table.
    Regards,
    Ravi
    Note : Please mark the helpful answers.

Maybe you are looking for

  • Error On Creating New 2013 Workflow

    Hi; When i create a 2013 workflow on English site, everything is OK; But on creating 2013 workflow on non-English site (with language pack installed), i get following error: Server-side activities have been updated.You need to restart SharePoint Desi

  • How do i format a external hard drive?

    i got a external hard drive to use as a back out. but i have no idea how to format the external HD. what should i do? how? thank u

  • Dv7-3065dx esata port multiplier

    Anyone know if the dv7-3065dx esata port hardware can function as a port multiplier? I want to purchase a Thermaltake BlacX Duet USB 2.0 Portable External Hard Drive but it requires a port multiplier. I have the single slot thermaltake blackx right n

  • Getting two selection screen in one report

    Hello Friends, I am Making report, In my report on first screen i have given two pushbutton, like this : SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001. PARAMETERS : p1_but RADIOBUTTON GROUP g1,                          p2_but RADIOBUTT

  • Runtime Exception for Transaction MEREP_MON

    Can you please help me solving this problem? For last 3 days I am getting runtime exception for Transaction MEREP_MON. Error description is Time limit Exceeded. This is coming only for Direction Outbound ( When I chcking OutBound Checkbox) at the top