BADI Customer Screen Enhancement

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

Creating Custom Screen in XD01

By Suresh Kumar Parvathaneni

Go to Transaction SPRO à Logistics – General à Business Partner à Customers à Control à Adoption of Customer’s
own Master Data fields à Prepare Modification à Free enhancement of Customer Master Record. 

Following screen appears:

Go to CHANGE mode and Click ‘New Entries’ button. Then add a Screen Group (SK here)and meaningful
description. Save the entry and then SELECT that entry and Click on ‘Label Tab Pages’.

Add a Label Tab Page i.e. enter a Screen Number, Function Code and Meaningful Description.

Save the entry and come back to the SPRO screen. Click  Business Add-in: Processing Master Data Enhancements 
 

Create one Implementation by giving implementation name (must start with Z. ZSURESHKUMAR here). Give
meaningful description and press enter. The following screen appears. 

Go to Interface and Click on ‘CHECK_ADD_ON_ACTIVE’ method. Add the following code and save. 

method IF_EX_CUSTOMER_ADD_DATA~CHECK_ADD_ON_ACTIVE .
data: l_flg_active type BOOLE-BOOLE.

if i_screen_group = 'SK'. 

e_add_on_active = 'X'. 

endif.

endmethod. 

Activate that and come back to SPRO initial screen. Click  Business Add-in: Customer Subscreens 

The following screen will appear. Create one implementation (ZSURESHKUMAR1 here).  
 

Press enter. The following screen will come. Enter a meaningful Description and Screen Group (which we created
earlier) as shown below. 
Then go to Interface  

Create a Function Pool SAPLZSURESHKUMAR. (See the code of the program for other details). Create a Screen
‘1111’ with field old Customer Number – screen group PSK (SE51)

Click on GET_TAXI_SCREEN method and add the following code. 

method IF_EX_CUSTOMER_ADD_DATA_CS~GET_TAXI_SCREEN .

case i_taxi_fcode.

when 'SK_TAB'.

e_screen = '1111'. "Eart + Objekt

e_program = 'SAPLZSURESHKUMAR'.

e_headerscreen_layout = ' '.

endcase.

endmethod. 
 

Activate and leave the transaction. 

Go to KNA1 (Customer Master) table and add a custom field as shown below. Activate the table. 

Now go to XD01 transaction. 

The screen we created will appear as shown in the above screen-shot. Click the button. The following screen will appear. 
 

Enter a customer number and save the transaction. Now go to KNA1 table and check the value of the Old Customer Number field’s value. The value
you entered in this screen will appear on there. 

Until now, we have written code for creating the Custom field. Now we need to disable that field when we
are opening the transaction in DISPLAY mode. 

Go to include – LZSURESHKUMARTOP and enter the following code and activate the program. 
 

Now execute the Transaction in display mode and check the output.  

Populating the data in our custom fields

Add the following code to the program SAPLZSURESHKUMAR, screen number 1111.

MODULE STATUS_1111 OUTPUT.


* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
*
data:
l_oldcustno type kna1-zzold_cust_no.
constants: c_oldcustno(24) value '(SAPMF02D)KNA1-ZZOLD_CUST_NO'.
field-symbols: <fse>.
assign (c_oldcustno) to <fse>.
if sy-subrc = 0.
l_oldcustname = <fse>. "l_oldcustname is the screen name of old cust
field
endif.
If sy-tcode = 'XD03'.
Loop at screen.
If screen-group1 = 'PSK'.
Screen-input = 0.
Modify screen.
Endif.
Endloop.
Endif.
ENDMODULE. "STATUS_1111 OUTPUT

Saving the data back to database from screen field

In the interface IF_EX_CUSTOMER_ADD_DATA_CS, add the following code in the


method GET_DATA

method IF_EX_CUSTOMER_ADD_DATA_CS~GET_DATA .
data:l_zztest type kna1-zztest.
constants: c_oldcustno(24) value '(SAPLZSURESHKUMAR)l_oldcustname'.
field-symbols: <fse> type any.
assign (c_oldcustno) to <fse>.
if sy-subrc = 0.
s_kna1- ZZOLD_CUST_NO = <fse>.
endif.
endmethod.

You might also like