Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

custom transaction for maintaining a table

Former Member
0 Likes
813

I have created a ztable . Instead of SM30 i have to create a custom transaction to maintain the table. How can i do it.

1 ACCEPTED SOLUTION
Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
776

Go to SE93, enter the name of the tcode, click create, enter description, choose "Transaction with parameters". Click green check. Enter SM30 in transaction field, then click "Skip intiial screen". Now in the table at the bottom, you need to enter two parameters and there values.

VIEWNAME         <your_table_Name>
UPDATE              X

Now save it

Regards,

Rich Heilman

I have created a ztable . Instead of SM30 i have to create a custom transaction to maintain the table. How can i do it.

4 REPLIES 4
Read only

Former Member
0 Likes
776

Hi,

You can create module pool program.

Design screen accodring to ur requirement and handle the accordingly.

Eg:

&----


*& Module pool ZMSV5_MOD *

*& *

&----


*& *

*& *

&----


PROGRAM zmsv5_mod .

TABLES: kna1, knbk.

DATA: v_check TYPE c.

DATA: v_kunnr LIKE kna1-kunnr,

v_name1 LIKE kna1-name1.

DATA: BEGIN OF it_tab OCCURS 0,

it_banks LIKE knbk-banks,

it_bankl LIKE knbk-bankl,

it_bankn LIKE knbk-bankn,

it_bkont LIKE knbk-bkont,

it_koinh LIKE knbk-koinh,

check TYPE c,

END OF it_tab.

CONTROLS: tc1 TYPE TABLEVIEW USING SCREEN '0200'.

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

CASE sy-ucomm.

WHEN 'DISP' OR 'CHAN'.

IF sy-subrc NE 0.

MESSAGE e000(zz) WITH 'Customer No not valid '.

ENDIF.

LEAVE TO SCREEN 200.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module valid INPUT

&----


  • text

----


MODULE valid INPUT.

SELECT SINGLE kunnr name1 FROM kna1 INTO (v_kunnr,v_name1)

WHERE kunnr = v_kunnr.

SELECT banks bankl bankn bkont koinh

FROM knbk INTO

TABLE it_tab

WHERE kunnr = v_kunnr.

ENDMODULE. " valid INPUT

&----


*& Module STATUS_0200 OUTPUT

&----


  • text

----


MODULE status_0200 OUTPUT.

SET PF-STATUS 'MM2'.

SET TITLEBAR 'TC'.

  • describe table it_tab lines tc1-lines.

ENDMODULE. " STATUS_0200 OUTPUT

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'MM2'.

SET TITLEBAR 'MM'.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module valid1 OUTPUT

&----


  • text

----


MODULE valid1 OUTPUT.

BREAK-POINT.

ENDMODULE. " valid1 OUTPUT

**&----


**

**& Module delete INPUT

**&----


**

    • text

**----


**

*module delete input.

*endmodule. " delete INPUT

&----


*& Module save INPUT

&----


  • text

----


MODULE save INPUT.

  • IF v_check = 'X'.

  • it_tab-check = 'X'.

  • ELSE.

  • it_tab-check = ' '.

  • ENDIF.

*

  • CASE sy-ucomm.

  • WHEN 'SAVE'.

IF v_check = 'X'.

it_tab-check = 'X'.

MODIFY it_tab INDEX tc1-current_line.

ENDIF.

  • else.

  • clear it_tab-check.

  • WHEN 'DELT'.

  • IF it_tab-check = 'X'.

  • DELETE it_tab INDEX TC1-CURRENT_LINE.

  • DESCRIBE TABLE it_tab LINES tc1-lines.

  • ENDIF.

  • ENDCASE.

ENDMODULE. " save INPUT

&----


*& Module USER_COMMAND_0200 INPUT

&----


  • text

----


MODULE user_command_0200 INPUT.

CASE sy-ucomm.

WHEN 'DELT'.

DELETE it_tab WHERE check = 'X'.

DESCRIBE TABLE it_tab LINES tc1-lines.

  • CLEAR it_tab.

WHEN 'INST'.

tc1-lines = tc1-lines + 1.

  • describe table it_tab lines tc1-lines.

CLEAR it_tab.

APPEND it_tab.

WHEN 'LIST'.

LEAVE TO LIST-PROCESSING.

SET PF-STATUS 'MM2'.

SET TITLEBAR 'MM3'.

LOOP AT it_tab.

WRITE:/1(50) sy-uline.

WRITE:/ sy-vline ,3 it_tab-it_banks,

sy-vline,10 it_tab-it_bankl,

sy-vline,18 it_tab-it_bankn,

sy-vline,28 it_tab-it_bkont,

sy-vline, 35 it_tab-it_koinh,

50 sy-vline.

ENDLOOP .

WRITE:/1(50) sy-uline.

ENDCASE.

CLEAR sy-ucomm.

ENDMODULE. " USER_COMMAND_0200 INPUT

&----


*& Module modify_tab OUTPUT

&----


  • text

----


MODULE modify_tab OUTPUT.

CASE sy-ucomm.

WHEN 'DISP'.

LOOP AT SCREEN.

IF screen-group1 = 'G2'.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

WHEN 'CHAN'.

LOOP AT SCREEN.

IF screen-group1 = 'G1'.

  • SCREEN-GROUP1 = 'G2'.

screen-input = 1.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

  • when 'INST'.

  • loop at screen.

  • if screen-group1 = 'G1' .

*

  • screen-input = 1.

  • else.

  • screen-input = 0.

  • endif.

  • if tc1-lines = tc1-current_line.

  • screen-input = 1.

*

  • endif.

  • modify screen.

  • endloop.

ENDCASE.

ENDMODULE. " modify_tab OUTPUT

&----


*& Module EX1 INPUT

&----


  • text

----


MODULE ex1 INPUT.

CASE sy-ucomm.

WHEN 'BACK'.

LEAVE TO SCREEN 100.

WHEN 'EXIT'.

CALL TRANSACTION 'SE51'.

ENDCASE.

ENDMODULE. " EX1 INPUT

Regards,

Sreevani

Read only

Former Member
0 Likes
776

1. create table maintenace generator in se11.

2.adjust the entrie in table using se14 use SAVE radiobutton while adjusting.

3.go to se93 select Transaction with parameters .

4.provide THE FOLLOWING PARAMETERS.

VIEW <TABLEVIEW NAME >

UPDATE 'X'.

SAVE THE TCODE .

THIS WILL CREATE THE TCODE FOR A TABLE

Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
777

Go to SE93, enter the name of the tcode, click create, enter description, choose "Transaction with parameters". Click green check. Enter SM30 in transaction field, then click "Skip intiial screen". Now in the table at the bottom, you need to enter two parameters and there values.

VIEWNAME         <your_table_Name>
UPDATE              X

Now save it

Regards,

Rich Heilman

Read only

Former Member
0 Likes
776

first u need to do a table maintenance generator for this table. so after the table maintenance generator is created...goto SE93 and specify the transaction code u need to create....specify the values...

VIEW <TABLEVIEW NAME >

UPDATE 'X'

Message was edited by:

Ramesh Babu Chirumamilla