Wednesday, February 2, 2011

Adding a custom screen in XD01

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 into 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: .
  assign (c_oldcustno) to .
if sy-subrc = 0.
l_oldcustname = . "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:  type any.
  assign (c_oldcustno) to .
if sy-subrc = 0.
s_kna1- ZZOLD_CUST_NO = .
endif.
endmethod.



No comments:

Tutorials on SAP-ABAP

Adobe Interactive Forms Tutorials

Business Server Pages (BSP)

Userexits/BADIs

Web Dynpro for ABAP (Step by step procedure for web dynpro,Tutorials on Web Dynpro,)

ALV Tutorials

Blog Archive

goodsites