<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: BADI Implementation in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521851#M847107</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;As the name of BADI suggest ,it is called on some "check " event before Save.&lt;/P&gt;&lt;P&gt;I think you must be aware on the application you are working.So put breakpoints in&lt;/P&gt;&lt;P&gt;our code and if it passes the filter condition then your implementation will be called,once you run the application.Contact the people who assigned the task for starting point of application.&lt;/P&gt;&lt;P&gt;Once in debug mode ,you can see the call stack and understand from where your implementation is called.As suggested by some other people ,explore Se19 , 18.&lt;/P&gt;&lt;P&gt;If there are multiple implemenations then control  sequence of your code being called might not be implicitly possible.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Abhishek&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 05 Mar 2008 05:08:16 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-03-05T05:08:16Z</dc:date>
    <item>
      <title>BADI Implementation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521843#M847099</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am new to BADI. I have got an object in which i have to create a custom implementation.&lt;/P&gt;&lt;P&gt;They have given me name of SAP BADI and also the method name.&lt;/P&gt;&lt;P&gt;But they have not mentioned how this BADI will be triggered.&lt;/P&gt;&lt;P&gt;Can anyone guide me how to proceed?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;Sunanda.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Feb 2008 11:55:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521843#M847099</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-27T11:55:12Z</dc:date>
    </item>
    <item>
      <title>Re: BADI Implementation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521844#M847100</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;Goto SE19- create the implementation for the same &lt;/P&gt;&lt;P&gt;then enter the implementation and go inside the BADI then double click on the implementation and &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;write the code inside it&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Shiva&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Feb 2008 11:57:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521844#M847100</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-27T11:57:43Z</dc:date>
    </item>
    <item>
      <title>Re: BADI Implementation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521845#M847101</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;1) Identify the User Exit suitable for the requirement and that is available in the system:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Code SE18&lt;/STRONG&gt; is used to Identify the BADI available.&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;Open Standard Program and do a global search 'CL_EXITHANDLER'.&lt;/P&gt;&lt;P&gt;SE18 &amp;gt; give the BADI name found through above search.&lt;/P&gt;&lt;P&gt;CUSTOMER_ADD_DATA &amp;gt; which has a method SAVE_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;2) Implement the User Exit identified through above process.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;T.Code SE19&lt;/STRONG&gt; is used to Implement BADI.&lt;/P&gt;&lt;P&gt;SE19 &amp;gt; give the implementation name &amp;gt; Give the Definition name as CUSTOMER_ADD_DATA and the Short Text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Feb 2008 12:00:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521845#M847101</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-27T12:00:33Z</dc:date>
    </item>
    <item>
      <title>Re: BADI Implementation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521846#M847102</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sunanda,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The person who gave you the BAdi and method has obviously did his/her homework and hence knows where the BAdi is called from.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All you need to do is creaet an implementation for the BAdi from SE19 and code within the method mentioned the required logic for manipulation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Activate the implementation and then put a break point in the method code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then run the main SAP program and the control will stop @ break point in your implementation. In debugging, then check the call stack.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Feb 2008 12:00:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521846#M847102</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-27T12:00:59Z</dc:date>
    </item>
    <item>
      <title>Re: BADI Implementation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521847#M847103</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;But i dont know the main program from where i have to execute.&lt;/P&gt;&lt;P&gt;I am using BAdI.. DOCUMENT_MAIN01 method BEFORE_SAVE.&lt;/P&gt;&lt;P&gt;I have done coding in this method but dont know how to check whether it is working fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &lt;/P&gt;&lt;P&gt;Sunanda.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Mar 2008 10:30:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521847#M847103</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-04T10:30:25Z</dc:date>
    </item>
    <item>
      <title>Re: BADI Implementation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521848#M847104</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;u can put break point in ur implementation then u can find when it is triggering&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Mar 2008 10:34:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521848#M847104</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-04T10:34:38Z</dc:date>
    </item>
    <item>
      <title>Re: BADI Implementation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521849#M847105</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try running T code CV01N  or CV02N &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Shiva&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Mar 2008 18:37:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521849#M847105</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-04T18:37:28Z</dc:date>
    </item>
    <item>
      <title>Re: BADI Implementation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521850#M847106</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hai.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT Z_BADI_TEST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;test call Badi from standard abap. (Only from rel 6.40 and above)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;do the following&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;1) define the Badi (SE18). For Abap call test uncheck multiple use&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and filter boxes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;2) Implement the badi (SE19). Add any methods here in the implemntation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;3) activate&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;4) define the standard class exithandler to the abap. This class is the "Badi caller&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;"&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;5) define an exit variable referring to your Badi Implementation interface&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this interface will normally be something like ZIF_EX***************&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;You will see this in SE18/SE19.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;6) Instantiate your instance of the badi (method call get_instance)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;7) Now call any method(s) in the Badi.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;class cl_exithandler definition load. "Declaration&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data exit type ref to zif_ex__jimbotest. "Interface reference&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data yes type c.&lt;/P&gt;&lt;P&gt;data: v_knvv type knvv. "Used in Fmod call in Badi methods&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;yes = ' '.&lt;/P&gt;&lt;P&gt;selection-screen begin of block b1.&lt;/P&gt;&lt;P&gt;parameters: r1 radiobutton group rad1,&lt;/P&gt;&lt;P&gt;r2 radiobutton group rad1,&lt;/P&gt;&lt;P&gt;r3 radiobutton group rad1.&lt;/P&gt;&lt;P&gt;selection-screen end of block b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_kunnr type knvv-kunnr.&lt;/P&gt;&lt;P&gt;select single * into v_knvv&lt;/P&gt;&lt;P&gt;from knvv&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where kunnr eq p_kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;export v_knvv to memory id 'CUST6A'. "Save customer data for the function module&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call method cl_exithandler=&amp;gt;get_instance "Factory method call&lt;/P&gt;&lt;P&gt;exporting "Method&lt;/P&gt;&lt;P&gt;exit_name = 'Z_JIMBOTEST' "Name of your BADI&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;null_instance_accepted = yes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;changing instance = exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if not exit is initial.&lt;/P&gt;&lt;P&gt;break-point 1.&lt;/P&gt;&lt;P&gt;if r1 = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call method exit-&amp;gt;dispord . "Add-In call&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;changing testparm1 = word.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if r2 = 'X'.&lt;/P&gt;&lt;P&gt;call method exit-&amp;gt;dispfakt.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;if r3 = 'X'.&lt;/P&gt;&lt;P&gt;call method exit-&amp;gt;dispmat.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the badi methods&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) &lt;/P&gt;&lt;P&gt;method ZIF_EX__JIMBOTEST~DISPORD.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'Z_DISPLAY_CUST'.&lt;/P&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2)&lt;/P&gt;&lt;P&gt;method ZIF_EX__JIMBOTEST~DISPFAKT.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'Z_DISPLAY_FAKT'.&lt;/P&gt;&lt;P&gt;endmethod&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3) &lt;/P&gt;&lt;P&gt;method ZIF_EX__JIMBOTEST~DISPMAT.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'Z_DISPLAY_CUST'.&lt;/P&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Global Data for the three function modules I'm calling&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION-POOL Z_BADI_KNVV. "MESSAGE-ID ..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;include &amp;lt;color&amp;gt;.&lt;/P&gt;&lt;P&gt;include &amp;lt;icon&amp;gt;.&lt;/P&gt;&lt;P&gt;include &amp;lt;symbol&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables: zknvv.&lt;/P&gt;&lt;P&gt;data: v_zzkvgr6 TYPE KNVV-ZZKVGR6.&lt;/P&gt;&lt;P&gt;data: choice1 type c.&lt;/P&gt;&lt;P&gt;data: choice2 type c.&lt;/P&gt;&lt;P&gt;data: choice3 type c.&lt;/P&gt;&lt;P&gt;data: choice4 Type c.&lt;/P&gt;&lt;P&gt;data: ok-code(5) type c.&lt;/P&gt;&lt;P&gt;data: answer type string.&lt;/P&gt;&lt;P&gt;data: value1 type SPOP-VARVALUE1.&lt;/P&gt;&lt;P&gt;data: answer1 type string.&lt;/P&gt;&lt;P&gt;tables: vbak, vbap, vakpa, vbrk, vrkpa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: lr_functions type ref to cl_salv_functions_list.&lt;/P&gt;&lt;P&gt;constants: gc_true type sap_bool value 'X',&lt;/P&gt;&lt;P&gt;gc_false type sap_bool value space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add for colour displays&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ls_color type lvc_s_colo.&lt;/P&gt;&lt;P&gt;DATA : LV_SALV_COLUMNS_TABLE TYPE REF TO CL_SALV_COLUMNS_TABLE.&lt;/P&gt;&lt;P&gt;data: lr_columns type ref to cl_salv_columns_table,&lt;/P&gt;&lt;P&gt;lr_column type ref to cl_salv_column_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Data:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;gr_table TYPE REF TO cl_salv_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: z_datum type sy-datum.&lt;/P&gt;&lt;P&gt;data: v_knvv type knvv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of s_vbak,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vkorg type vakpa-vkorg,&lt;/P&gt;&lt;P&gt;vkgrp type vakpa-vkgrp,&lt;/P&gt;&lt;P&gt;vtweg type vakpa-vtweg,&lt;/P&gt;&lt;P&gt;spart type vakpa-spart,&lt;/P&gt;&lt;P&gt;auart type vakpa-auart,&lt;/P&gt;&lt;P&gt;vbeln type vakpa-vbeln,&lt;/P&gt;&lt;P&gt;bstnk type vakpa-bstnk,&lt;/P&gt;&lt;P&gt;audat type vakpa-audat,&lt;/P&gt;&lt;P&gt;netwr type vbak-netwr,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end of s_vbak.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of s_vbrk,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vbeln type vrkpa-vbeln,&lt;/P&gt;&lt;P&gt;vkorg type vrkpa-vkorg,&lt;/P&gt;&lt;P&gt;fkart type vrkpa-fkart,&lt;/P&gt;&lt;P&gt;fkdat type vrkpa-fkdat,&lt;/P&gt;&lt;P&gt;netwr type vbrk-netwr,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end of s_vbrk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of s_vbap,&lt;/P&gt;&lt;P&gt;matnr type vbap-matnr,&lt;/P&gt;&lt;P&gt;arktx type vbap-arktx,&lt;/P&gt;&lt;P&gt;netwr type vbap-netwr,&lt;/P&gt;&lt;P&gt;kwmeng type vbap-kwmeng,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end of s_vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: t_vbap like table of s_vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: t_vbak&lt;/P&gt;&lt;P&gt;like table of s_vbak.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: t_vbrk&lt;/P&gt;&lt;P&gt;like table of s_vbrk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: s_name type tabname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: gr_selections type ref to cl_salv_selections.&lt;/P&gt;&lt;P&gt;data: gr_events type ref to cl_salv_events_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Source code of the function modules.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Function modules&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION Z_DISPLAY_CUST.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Lokale interface:&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;s_name = 'S_VBAK'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;orders in last 6 months&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;z_datum = sy-datum - 180.&lt;/P&gt;&lt;P&gt;import v_knvv from memory id 'CUST6A'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select a&lt;SUB&gt;vkorg a&lt;/SUB&gt;audat a&lt;SUB&gt;vkgrp a&lt;/SUB&gt;vtweg a&lt;SUB&gt;spart a&lt;/SUB&gt;auart a&lt;SUB&gt;bstnk a&lt;/SUB&gt;vbeln b~netwr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;into corresponding fields of table t_vbak&lt;/P&gt;&lt;P&gt;up to 100 rows&lt;/P&gt;&lt;P&gt;from ( vakpa as a&lt;/P&gt;&lt;P&gt;inner join vbak as b&lt;/P&gt;&lt;P&gt;on a&lt;SUB&gt;vbeln eq b&lt;/SUB&gt;vbeln )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where a~kunde eq v_knvv-kunnr&lt;/P&gt;&lt;P&gt;and a~parvw eq 'AG'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and a~vkorg eq 'EN01'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;and a~trvog eq '0'&lt;/P&gt;&lt;P&gt;and a~audat gt z_datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sort t_vbak by audat descending.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*data: gt_hyperlink type standard table of g_type_s_hyperlink.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Instead of if_salv_c_bool_sap=&amp;gt;false, you can pass the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;value if_salv_c_bool_sap=&amp;gt;true to this method to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;see your ALV as a list.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;display data in Grid / List&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TRY.&lt;/P&gt;&lt;P&gt;CALL METHOD cl_salv_table=&amp;gt;factory&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;list_display = if_salv_c_bool_sap=&amp;gt;false&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;r_salv_table = gr_table&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;t_table = t_vbak.&lt;/P&gt;&lt;P&gt;CATCH cx_salv_msg.&lt;/P&gt;&lt;P&gt;ENDTRY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;LV_SALV_COLUMNS_TABLE = gr_table-&amp;gt;get_columns( ).&lt;/P&gt;&lt;P&gt;lr_column ?= LV_SALV_COLUMNS_TABLE-&amp;gt;get_column( 'NETWR' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_color-col = col_negative.&lt;/P&gt;&lt;P&gt;ls_color-int = 0.&lt;/P&gt;&lt;P&gt;ls_color-inv = 0.&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_color( ls_color ).&lt;/P&gt;&lt;P&gt;catch cx_salv_not_found.&lt;/P&gt;&lt;P&gt;endtry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;lr_column ?= LV_SALV_COLUMNS_TABLE-&amp;gt;get_column( 'VBELN' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_color-col = col_negative.&lt;/P&gt;&lt;P&gt;ls_color-int = 1.&lt;/P&gt;&lt;P&gt;ls_color-inv = 1.&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_color( ls_color ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;catch cx_salv_not_found.&lt;/P&gt;&lt;P&gt;endtry.&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*LV_SALV_COLUMNS_TABLE = gr_table-&amp;gt;get_columns( ).&lt;/P&gt;&lt;P&gt;lr_column ?= LV_SALV_COLUMNS_TABLE-&amp;gt;get_column( 'NETWR' ).&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_short_text( 'Short' ).&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_medium_text( 'Medium' ).&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_long_text( 'Net Value' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*lr_column ?= LV_SALV_COLUMNS_TABLE-&amp;gt;get_column( 'URL' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;catch cx_salv_not_found.&lt;/P&gt;&lt;P&gt;endtry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;gr_table-&amp;gt;set_screen_status( pfstatus = 'SALV_STANDARD'&lt;/P&gt;&lt;P&gt;report = sy-repid&lt;/P&gt;&lt;P&gt;set_functions = gr_table-&amp;gt;c_functions_all ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this statement actually does the display.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;gr_table-&amp;gt;display( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION Z_DISPLAY_FAKT.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Lokale interface:&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;s_name = 'S_VBRK'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;invoices in last 6 months&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;z_datum = sy-datum - 180.&lt;/P&gt;&lt;P&gt;import v_knvv from memory id 'CUST6A'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select a&lt;SUB&gt;vbeln a&lt;/SUB&gt;fkart a&lt;SUB&gt;vkorg a&lt;/SUB&gt;fkdat&lt;/P&gt;&lt;P&gt;b~netwr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;into corresponding fields of table t_vbrk&lt;/P&gt;&lt;P&gt;up to 100 rows&lt;/P&gt;&lt;P&gt;from ( vrkpa as a&lt;/P&gt;&lt;P&gt;inner join vbrk as b&lt;/P&gt;&lt;P&gt;on a&lt;SUB&gt;vbeln eq b&lt;/SUB&gt;vbeln )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where a~kunde eq v_knvv-kunnr&lt;/P&gt;&lt;P&gt;and a~parvw eq 'RG'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and a~vkorg eq 'EN01'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;and a~vbtyp eq 'M'&lt;/P&gt;&lt;P&gt;and a~fkdat gt z_datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sort t_vbrk by fkdat descending.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*data: gt_hyperlink type standard table of g_type_s_hyperlink.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Instead of if_salv_c_bool_sap=&amp;gt;false, you can pass the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;value if_salv_c_bool_sap=&amp;gt;true to this method to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;see your ALV as a list.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;display data in Grid / List&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TRY.&lt;/P&gt;&lt;P&gt;CALL METHOD cl_salv_table=&amp;gt;factory&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;list_display = if_salv_c_bool_sap=&amp;gt;false&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;r_salv_table = gr_table&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;t_table = t_vbrk.&lt;/P&gt;&lt;P&gt;CATCH cx_salv_msg.&lt;/P&gt;&lt;P&gt;ENDTRY.&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;LV_SALV_COLUMNS_TABLE = gr_table-&amp;gt;get_columns( ).&lt;/P&gt;&lt;P&gt;lr_column ?= LV_SALV_COLUMNS_TABLE-&amp;gt;get_column( 'NETWR' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_color-col = col_negative.&lt;/P&gt;&lt;P&gt;ls_color-int = 0.&lt;/P&gt;&lt;P&gt;ls_color-inv = 0.&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_color( ls_color ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;catch cx_salv_not_found.&lt;/P&gt;&lt;P&gt;endtry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lr_column ?= LV_SALV_COLUMNS_TABLE-&amp;gt;get_column( 'VBELN' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_color-col = col_negative.&lt;/P&gt;&lt;P&gt;ls_color-int = 1.&lt;/P&gt;&lt;P&gt;ls_color-inv = 1.&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_color( ls_color ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;catch cx_salv_not_found.&lt;/P&gt;&lt;P&gt;endtry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;*LV_SALV_COLUMNS_TABLE = gr_table-&amp;gt;get_columns( ).&lt;/P&gt;&lt;P&gt;lr_column ?= LV_SALV_COLUMNS_TABLE-&amp;gt;get_column( 'NETWR' ).&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_short_text( 'Short' ).&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_medium_text( 'Medium' ).&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_long_text( 'Net Value' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*lr_column ?= LV_SALV_COLUMNS_TABLE-&amp;gt;get_column( 'URL' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;catch cx_salv_not_found.&lt;/P&gt;&lt;P&gt;endtry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;gr_table-&amp;gt;set_screen_status( pfstatus = 'SALV_STANDARD'&lt;/P&gt;&lt;P&gt;report = sy-repid&lt;/P&gt;&lt;P&gt;set_functions = gr_table-&amp;gt;c_functions_all ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this statement actually does the display.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;gr_table-&amp;gt;display( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION Z_DISPLAY_MATERIAL.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Lokale interface:&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;s_name = 'S_VBAP'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;invoicesrs in last 6 months&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;z_datum = sy-datum - 180.&lt;/P&gt;&lt;P&gt;import v_knvv from memory id 'CUST6A'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select a&lt;SUB&gt;vbeln b&lt;/SUB&gt;matnr b&lt;SUB&gt;arktx b&lt;/SUB&gt;netwr b~kwmeng&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;into corresponding fields of table t_vbap&lt;/P&gt;&lt;P&gt;up to 100 rows&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;from ( vakpa as a&lt;/P&gt;&lt;P&gt;inner join vbap as b&lt;/P&gt;&lt;P&gt;on a&lt;SUB&gt;vbeln eq b&lt;/SUB&gt;vbeln )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where a~kunde eq v_knvv-kunnr&lt;/P&gt;&lt;P&gt;and a~parvw eq 'AG'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and a~vkorg eq 'EN01'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;and a~trvog eq '0'&lt;/P&gt;&lt;P&gt;and a~audat gt z_datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TRY.&lt;/P&gt;&lt;P&gt;CALL METHOD cl_salv_table=&amp;gt;factory&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;list_display = if_salv_c_bool_sap=&amp;gt;false&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;r_salv_table = gr_table&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;t_table = t_vbap.&lt;/P&gt;&lt;P&gt;CATCH cx_salv_msg.&lt;/P&gt;&lt;P&gt;ENDTRY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;LV_SALV_COLUMNS_TABLE = gr_table-&amp;gt;get_columns( ).&lt;/P&gt;&lt;P&gt;lr_column ?= LV_SALV_COLUMNS_TABLE-&amp;gt;get_column( 'NETWR' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_color-col = col_negative.&lt;/P&gt;&lt;P&gt;ls_color-int = 0.&lt;/P&gt;&lt;P&gt;ls_color-inv = 0.&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_color( ls_color ).&lt;/P&gt;&lt;P&gt;catch cx_salv_not_found.&lt;/P&gt;&lt;P&gt;endtry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;lr_column ?= LV_SALV_COLUMNS_TABLE-&amp;gt;get_column( 'ARKTX' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_color-col = col_negative.&lt;/P&gt;&lt;P&gt;ls_color-int = 1.&lt;/P&gt;&lt;P&gt;ls_color-inv = 1.&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_color( ls_color ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;catch cx_salv_not_found.&lt;/P&gt;&lt;P&gt;endtry.&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*LV_SALV_COLUMNS_TABLE = gr_table-&amp;gt;get_columns( ).&lt;/P&gt;&lt;P&gt;lr_column ?= LV_SALV_COLUMNS_TABLE-&amp;gt;get_column( 'NETWR' ).&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_short_text( 'Short' ).&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_medium_text( 'Medium' ).&lt;/P&gt;&lt;P&gt;lr_column-&amp;gt;set_long_text( 'Net Value' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*lr_column ?= LV_SALV_COLUMNS_TABLE-&amp;gt;get_column( 'URL' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;catch cx_salv_not_found.&lt;/P&gt;&lt;P&gt;endtry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;gr_table-&amp;gt;set_screen_status( pfstatus = 'SALV_STANDARD'&lt;/P&gt;&lt;P&gt;report = sy-repid&lt;/P&gt;&lt;P&gt;set_functions = gr_table-&amp;gt;c_functions_all ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this statement actually does the display.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;gr_table-&amp;gt;display( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this also.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;u can find BADI's in different ways...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1&amp;gt;First go to any transaction-&amp;gt;iN THE menu bar SYSTEM-&amp;gt;STATUS-&amp;gt;Get the program name -&amp;gt;double click-&amp;gt;u will go to the program attached to the tcode.Now search term will be CALL CL_EXITHANDLER.Now u will get list of BADI'S available..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2&amp;gt;Goto SE24-&amp;gt;Give class name as CL_EXITHANDLER-&amp;gt;Display-&amp;gt;double click on get_instance mathod-&amp;gt;Now u will go inside the method-&amp;gt;Now put break point on the cl_exithandler.Now go to any transaction code and pass dat..U will see that it will be stopped on the break point which u set on the cl_exithandler...In the exit name u can find list of badi's attached to the tcode..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are multiple ways of searching for BADI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;#149; Finding BADI Using CL_EXITHANDLER=&amp;gt;GET_INSTANCE&lt;/P&gt;&lt;P&gt;&amp;#149; Finding BADI Using SQL Trace (TCODE-ST05).&lt;/P&gt;&lt;P&gt;&amp;#149; Finding BADI Using Repository Information System (TCODE- SE84).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Go to the Transaction, for which we want to find the BADI, take the example of Transaction VD02. Click on System-&amp;gt;Status. Double click on the program name. Once inside the program search for &amp;#145;CL_EXITHANDLER=&amp;gt;GET_INSTANCE&amp;#146;.&lt;/P&gt;&lt;P&gt;Make sure the radio button &amp;#147;In main program&amp;#148; is checked. A list of all the programs with call to the BADI&amp;#146;s will be listed.&lt;/P&gt;&lt;P&gt;The export parameter &amp;#145;EXIT_NAME&amp;#146; for the method GET_INSTANCE of class CL_EXITHANDLER will have the user exit assigned to it. The changing parameter &amp;#145;INSTANCE&amp;#146; will have the interface assigned to it. Double click on the method to enter the source code.Definition of Instance would give you the Interface name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. Start transaction ST05 (Performance Analysis).&lt;/P&gt;&lt;P&gt;Set flag field "Buffer trace" &lt;/P&gt;&lt;P&gt;Remark: We need to trace also the buffer calls, because BADI database tables are buffered. (Especially view V_EXT_IMP and V_EXT_ACT)&lt;/P&gt;&lt;P&gt;Push the button "Activate Trace". Start transaction VA02 in a new GUI session. Go back to the Performance trace session. &lt;/P&gt;&lt;P&gt;Push the button "Deactivate Trace".&lt;/P&gt;&lt;P&gt;Push the button "Display Trace".&lt;/P&gt;&lt;P&gt;The popup screen "Set Restrictions for Displaying Trace" appears.&lt;/P&gt;&lt;P&gt;Now, filter the trace on Objects: &lt;/P&gt;&lt;P&gt;&amp;#149; V_EXT_IMP &lt;/P&gt;&lt;P&gt;&amp;#149; V_EXT_ACT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Push button "Multiple selections" button behind field Objects &lt;/P&gt;&lt;P&gt;Fill: V_EXT_IMP and V_EXT_ACT &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All the interface class names of view V_EXT_IMP start with IF_EX_. This is the standard SAP prefix for BADI class interfaces. The BADI name is after the IF_EX_.&lt;/P&gt;&lt;P&gt;So the BADI name of IF_EX_CUSTOMER_ADD_DATA is CUSTOMER_ADD_DATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. Go to &amp;#147;Maintain Transaction&amp;#148; (TCODE- SE93).&lt;/P&gt;&lt;P&gt;Enter the Transaction VD02 for which you want to find BADI.&lt;/P&gt;&lt;P&gt;Click on the Display push buttons.&lt;/P&gt;&lt;P&gt;Get the Package Name. (Package VS in this case)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Go to TCode: SE84-&amp;gt;Enhancements-&amp;gt;Business Add-inns-&amp;gt;Definition&lt;/P&gt;&lt;P&gt;Enter the Package Name and Execute.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here you get a list of all the Enhancement BADI&amp;#146;s for the given package MB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The simplese way for finding BADI is &lt;/P&gt;&lt;P&gt;1. chooes Tcode Program &amp;amp; package for that Tcode.&lt;/P&gt;&lt;P&gt;2. Go to Tcode se18&lt;/P&gt;&lt;P&gt;3. Press F4&lt;/P&gt;&lt;P&gt;4. search by package or by program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;regards.&lt;/P&gt;&lt;P&gt;sowjanya.b&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Mar 2008 04:28:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521850#M847106</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-05T04:28:11Z</dc:date>
    </item>
    <item>
      <title>Re: BADI Implementation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521851#M847107</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;As the name of BADI suggest ,it is called on some "check " event before Save.&lt;/P&gt;&lt;P&gt;I think you must be aware on the application you are working.So put breakpoints in&lt;/P&gt;&lt;P&gt;our code and if it passes the filter condition then your implementation will be called,once you run the application.Contact the people who assigned the task for starting point of application.&lt;/P&gt;&lt;P&gt;Once in debug mode ,you can see the call stack and understand from where your implementation is called.As suggested by some other people ,explore Se19 , 18.&lt;/P&gt;&lt;P&gt;If there are multiple implemenations then control  sequence of your code being called might not be implicitly possible.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Abhishek&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Mar 2008 05:08:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-implementation/m-p/3521851#M847107</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-05T05:08:16Z</dc:date>
    </item>
  </channel>
</rss>

