2006 Mar 08 9:11 AM
Hi Friends..
Can any body let me know example of screen or menu enhancement using BADI. I just want a requirement in which screen or menu enhancement is there.I just want a t-code or BADI name in which we can do screen enhancement.
This just update my knowledge.
I am sure of Reward points.
Thanks in Advance.
2006 Mar 08 9:14 AM
hi Jak,
Function Code and Screen Enhancements
Use
The main use of BAdIs is to enhance ABAP programs using object plug-ins. For reasons of compatibility, and to be able to use the classic means for designing a user interface for an ABAP-based SAP system (GUI status and screens,) menu enhancements and screen enhancements were adopted almost unchanged from the classic BAdIs into the BAdIs of the new enhancement concept. These enhancements represent a concept that is independent of enhancements through object plug-ins and they are not supported using special ABAP statements.
Features
Function Code Enhancements
Menu enhancements have been adopted under the new name Function Code Enhancements, whereby the classic concept has been kept in its entirety. The use of the ABAP statements GET BADI und CALL BADI is not necessary. The runtime environment inserts the implementation of a function code enhancement automatically during program regeneration.
Screen Enhancements
In the case of screen enhancements, the class concept has been adopted with the following exceptions:
キ The previous call to the method CL_EXITHANDLER=>GET_PROG_AND_DYNP_FOR_SUBSCR, has been replaced by the call CL_ENH_BADI_RUNTIME_FUNCTIONS=>GET_PROG_AND_DYNP_FOR_SUBSCR with the same interface.
キ The methods PUT_DATA_TO_SCREEN and GET_DATA_FROM_SCREEN will no longer be generated. You can create your own BAdI methods for data transport and call them using CALL BADI.
キ You no longer need to call the CL_EXITHANDLER=>SET_INSTANCE_FOR_SUBSCREENS and CL_EXITHANDLER=>GET_INSTANCE_FOR_SUBSCREENS methods. These methods are now unnecessary as they only place the BAdI reference in a temporary storage.
SET_INSTANCE_FOR_SUBSCREENS is no longer necessary.
GET_INSTANCE_FOR_SUBSCREENS can, if necessary, be replaced by GET BADI.
<b>check this link for further details</b>
http://help.sap.com/saphelp_erp2005/helpdata/en/c1/133442d692af04e10000000a1550b0/frameset.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/32/a83942424dac04e10000000a1550b0/frameset.htm
Regards,
Santosh P
hi Jak,
Function Code and Screen Enhancements
Use
The main use of BAdIs is to enhance ABAP programs using object plug-ins. For reasons of compatibility, and to be able to use the classic means for designing a user interface for an ABAP-based SAP system (GUI status and screens,) menu enhancements and screen enhancements were adopted almost unchanged from the classic BAdIs into the BAdIs of the new enhancement concept. These enhancements represent a concept that is independent of enhancements through object plug-ins and they are not supported using special ABAP statements.
Features
Function Code Enhancements
Menu enhancements have been adopted under the new name Function Code Enhancements, whereby the classic concept has been kept in its entirety. The use of the ABAP statements GET BADI und CALL BADI is not necessary. The runtime environment inserts the implementation of a function code enhancement automatically during program regeneration.
Screen Enhancements
In the case of screen enhancements, the class concept has been adopted with the following exceptions:
キ The previous call to the method CL_EXITHANDLER=>GET_PROG_AND_DYNP_FOR_SUBSCR, has been replaced by the call CL_ENH_BADI_RUNTIME_FUNCTIONS=>GET_PROG_AND_DYNP_FOR_SUBSCR with the same interface.
キ The methods PUT_DATA_TO_SCREEN and GET_DATA_FROM_SCREEN will no longer be generated. You can create your own BAdI methods for data transport and call them using CALL BADI.
キ You no longer need to call the CL_EXITHANDLER=>SET_INSTANCE_FOR_SUBSCREENS and CL_EXITHANDLER=>GET_INSTANCE_FOR_SUBSCREENS methods. These methods are now unnecessary as they only place the BAdI reference in a temporary storage.
SET_INSTANCE_FOR_SUBSCREENS is no longer necessary.
GET_INSTANCE_FOR_SUBSCREENS can, if necessary, be replaced by GET BADI.
<b>check this link for further details</b>
http://help.sap.com/saphelp_erp2005/helpdata/en/c1/133442d692af04e10000000a1550b0/frameset.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/32/a83942424dac04e10000000a1550b0/frameset.htm
Regards,
Santosh P
2006 Mar 08 9:14 AM
hi Jak,
Function Code and Screen Enhancements
Use
The main use of BAdIs is to enhance ABAP programs using object plug-ins. For reasons of compatibility, and to be able to use the classic means for designing a user interface for an ABAP-based SAP system (GUI status and screens,) menu enhancements and screen enhancements were adopted almost unchanged from the classic BAdIs into the BAdIs of the new enhancement concept. These enhancements represent a concept that is independent of enhancements through object plug-ins and they are not supported using special ABAP statements.
Features
Function Code Enhancements
Menu enhancements have been adopted under the new name Function Code Enhancements, whereby the classic concept has been kept in its entirety. The use of the ABAP statements GET BADI und CALL BADI is not necessary. The runtime environment inserts the implementation of a function code enhancement automatically during program regeneration.
Screen Enhancements
In the case of screen enhancements, the class concept has been adopted with the following exceptions:
キ The previous call to the method CL_EXITHANDLER=>GET_PROG_AND_DYNP_FOR_SUBSCR, has been replaced by the call CL_ENH_BADI_RUNTIME_FUNCTIONS=>GET_PROG_AND_DYNP_FOR_SUBSCR with the same interface.
キ The methods PUT_DATA_TO_SCREEN and GET_DATA_FROM_SCREEN will no longer be generated. You can create your own BAdI methods for data transport and call them using CALL BADI.
キ You no longer need to call the CL_EXITHANDLER=>SET_INSTANCE_FOR_SUBSCREENS and CL_EXITHANDLER=>GET_INSTANCE_FOR_SUBSCREENS methods. These methods are now unnecessary as they only place the BAdI reference in a temporary storage.
SET_INSTANCE_FOR_SUBSCREENS is no longer necessary.
GET_INSTANCE_FOR_SUBSCREENS can, if necessary, be replaced by GET BADI.
<b>check this link for further details</b>
http://help.sap.com/saphelp_erp2005/helpdata/en/c1/133442d692af04e10000000a1550b0/frameset.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/32/a83942424dac04e10000000a1550b0/frameset.htm
Regards,
Santosh P
2006 Mar 08 9:18 AM
Hi Jak,
Refer to the link
<a href="http://help.sap.com/saphelp_erp2005/helpdata/en/6a/8b14e5340d11d5b3ba0050dae02d7c/frameset.htm">http://help.sap.com/saphelp_erp2005/helpdata/en/6a/8b14e5340d11d5b3ba0050dae02d7c/frameset.htm</a>
and
<a href="http://help.sap.com/saphelp_erp2005/helpdata/en/c1/133442d692af04e10000000a1550b0/frameset.htm">Function code and Screen Enhancements</a>
Lokesh
Message was edited by: Lokesh Aggarwal
2006 Mar 08 9:24 AM
hi jai,
<b>Implementing Business Add-Ins (BADI)</b>
The use of object orientated code within SAP has lead to new method of enhancing standard SAP code called
Business Add-Ins or BADI's for short. Although the implementation concept is based on classes, methods and
inheritance you do not really have to understand this fully to implement a BADI. Simply think of methods
as a function module with the same import and export parameters and follow the simple instructions below.
Steps:
1. Execute Business Add-In(BADI) transaction SE18
2. Enter BADI name i.e. HRPBSGB_HESA_NISR and press the display
button
3. Select menu option Implementation->Create
4. Give implementation a name such as Z_HRPBSGB_HESA_NISR
5. You can now make any changes you require to the BADI within this
implementation, for example choose the Interface tab
6. Double click on the method you want to change, you can now enter
any code you require.
7. Please note to find out what import and export parameters a
method has got return the original BADI definition
(i.e. HRPBSGB_HESA_NISR) and double click on the method name
for example within HRPBSGB_HESA_NISR contract is a method
8. When changes have been made activate the implementation
check this link..it has some more info about implementations of screen and menu exits using BADI
http://help.sap.com/saphelp_47x200/helpdata/en/ee/a1d548892b11d295d60000e82de14a/frameset.htm
Message was edited by: Ashok Kumar Prithiviraj
2006 Mar 08 9:26 AM
Hi Jak,
for example you take this BADI <b>LE_SHP_TAB_CUST_OVER</b> this is used in Delivery transaction for user defined screens. you go to SE18 and see the sample implementation of the BADI.
if you want to add your own implementation use SE19 and create a Ztype and then implement all the methods..
http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
regards
vijay
2006 Mar 08 10:01 AM
Hi Vijay,
Thanks a lot...
This BADI LE_SHP_TAB_CUST_OVER is for screen or for menu enhancement..
Thanks&Regards
2006 Mar 08 10:18 AM
Hi Jak,
it is for used for Customer Screen, it is a tab page. here you can show your own data, and item details etc.
if you go to SE18 you can find about it, it is related to Screen .
regards
vijay
2006 Mar 08 11:22 AM
Hi Vijay
Thank you..
DO you have any step by step procedure for creating screen enhancement BADI..I am not getting any thing just by reading documentation..
Your help is highly appreciated..
Thanks in Advance..
2006 Mar 08 11:25 AM
Hi Jak,
Refer this link
<a href="http://dctcspd2/saphelp/EN/ee/a1d548892b11d295d60000e82de14a/frameset.htm">Step by step procedure to create a BADI</a>
<a href="http://dctcspd2/saphelp/EN/ee/a1d548892b11d295d60000e82de14a/frameset.htm">http://dctcspd2/saphelp/EN/ee/a1d548892b11d295d60000e82de14a/frameset.htm</a>
I think this is the best and simplest documents available online.
OR
Goto se18 -> find the BADI definition -> take any example... Go through the interface, see all the methods available.
Goto se19 -> Create an implementation of the BADI.
You can also see the example implementation of the BADI to get an idea of how you should code....
Also Refer to the application help of the transactions Se18 and Se19.
Hope it helps...
Lokesh
pls. reward appropriate points
Message was edited by: Lokesh Aggarwal
2006 Mar 08 11:32 AM
<b>Implementing Screen Enhancements</b>
For general information on how to implement Business Add-Ins, refer to the section <b>Implementing Business Add-Ins</b>.
The user of the screen enhancement should perform the following steps:
...
1. Create a screen of the Subscreen type. Arrange the required fields on the screen.
2. Write the program for the screen by creating either a module pool or a function group. The program could have the following contents, for example:
Topinclude:
DATA: exit TYPE REF TO if_ex_badi_screen,
flight TYPE sflight.
TABLES sflview.
At PBO time:
MODULE status_0100 OUTPUT.
IF exit IS INITIAL.
CALL METHOD cl_exithandler=>get_instance_for_subscreens
CHANGING
instance = exit
EXCEPTIONS
OTHERS = 6.
...
ENDIF.
CALL METHOD exit->get_data_from_screen
IMPORTING
flight = flight
EXCEPTIONS
reserved = 1
OTHERS = 2.
...
SELECT SINGLE * FROM sflview
WHERE carrid = flight-carrid AND
connid = flight-connid AND
fldate = flight-fldate.
..
ENDMODULE.
At PAI time:
If data has been changed, the method PUT_DATA_TO_SCREEN is called at PAI.
MODULE user_command_0100 INPUT.
CALL METHOD exit->put_data_to_screen
EXPORTING
flight = flight
EXCEPTIONS
reserved = 1
OTHERS = 2.
IF sy-subrc <> 0.
...
ENDMODULE.
3. Choose the Subscreens tab. Enter the name of the called program and of the subscreen.
4. Choose the Interfaces tab.
If required, add any lines necessary to the sample code.
<b>for implementing BADI see my previous post</b>
<b>reward if useful</b>
2006 Mar 08 11:34 AM
Hi,
First find out the BADI .
Go to SE19 , now create the Implementation
Specify Z*
click on Create.....
it will ask you the definition Name. Give Descriptions.
now click on the tab Interface.
now double click on each method and implement.
for the above Badi.
ACTIVATE_TAB_PAGE
this is the implementation..
method IF_EX_LE_SHP_TAB_CUST_OVER~ACTIVATE_TAB_PAGE .
"create your own page here....
EF_CAPTION = 'Page Name'.
EF_PROGRAM = 'Program Name'.
EF_DYNPRO = '0100'. "Screen number
endmethod.TRANSFER_DATA_TO_SUBSCREEN
method implementation.
here you will pass data to screen .
TRANSFER_DATA_FROM_SUBSCREEN
get the data from screens...
PASS_FCODE_TO_SUBSCREEN
______________________________
Regards
vijay
Message was edited by: Vijay Babu Dudla
2006 Mar 08 11:36 AM
2006 Mar 08 11:46 AM
Hi Jak,
Try this link is
<a href="http://help.sap.com/saphelp_erp2005/helpdata/en/ee/a1d548892b11d295d60000e82de14a/frameset.htm">http://help.sap.com/saphelp_erp2005/helpdata/en/ee/a1d548892b11d295d60000e82de14a/frameset.htm</a>
Also what I feel is you should go through the application help of the transactions SE18 first and then SE19. it has the easiest and complete step by step procedure for BADIs...
Hope it helps....
Lokesh..
pls. reward appropriate points
Message was edited by: Lokesh Aggarwal
2006 Mar 08 11:49 AM
2006 Mar 08 9:38 AM
Hi,
Have a look at the following links.
I have gone thru it and it is really useful.
http://help.sap.com/saphelp_erp2005/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/frameset.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/frameset.htm
Regards,
Shashank
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |