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

Module pool programs /Dialouge programs

Former Member
0 Likes
1,199

Hi Sap Gurus/Experts;

can any one Help me !!

how to insert, update, modify and delete the data base table records through the Module pool Progrmas /Dialouge Programs.

any samle code for this it will very helpfull ..

Thanks;

Ravi.

8 REPLIES 8
Read only

Former Member
0 Likes
1,048

Hi,

Read data from screen and store them into a work area of table type.

Then use MODIFY statement to modify table from work area.

Lock the table before modify and unlock after modify.

Use FM DYNP_VALUES_READ to read screen field values.

Read only

Former Member
0 Likes
1,048

Hi,

If you want to insert data from Internal table to database table you can very well to do it.

For EX : INSERT ITAB FROM MARA.

MODIFY ITAB FROM MARA

DELETE MARA FROM ITAB where condition

Like above you can use the command.

Regards

Thiru

Read only

0 Likes
1,048

create button in screen painter. assign okcodes(function codse) to it,.

and in PAI events u can do what ever u need by checking the fcodes

Read only

0 Likes
1,048

HI;

am sending my program;

am getting select-option syntax error

syntax error: select-options is only allowed between begin/end of screen for programs with type other than 1.

can u suggest on this!!!

PROGRAM ZMOD_P1.

TABLES MARA.

*SELECT-OPTIONS S_MATNR FOR MARA-MATNR.

*SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

*

*

SELECT-OPTIONS S_MATNR FOR MARA-MATNR.

*

*SELECTION-SCREEN END OF BLOCK B1.

*parameters P_MATNR TYPE MARA-MATNR.

DATA : BEGIN OF ITAB OCCURS 0,

CH,

MATNR TYPE MARA-MATNR,

MBRSH TYPE MARA-MBRSH,

MTART TYPE MARA-MTART,

END OF ITAB.

DATA : WA_MARA TYPE MARA.

*call screen 100.

CONTROLS : TC1 TYPE tableview USING SCREEN 100.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE STATUS_0100 OUTPUT.

SET PF-STATUS 'ZSETPF'.

  • SET TITLEBAR 'xxx'.

SELECT single MATNR

MBRSH

MTART

FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB

WHERE MATNR IN S_MATNR.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE USER_COMMAND_0100 INPUT.

CASE SY-UCOMM.

WHEN 'DEL'.

IF ITAB-CH = 'X'.

DELETE FROM MARA WHERE MATNR = ITAB-MATNR.

ENDIF.

WHEN 'MOD'.

IF ITAB-CH = 'X'.

WA_MARA-MATNR = ITAB-MATNR.

WA_MARA-MBRSH = ITAB-MBRSH.

WA_MARA-MTART = ITAB-MTART.

MODIFY MARA FROM WA_MARA.

ENDIF.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

Thanks;

ravi.

Read only

Former Member
0 Likes
1,048

well, it doesn matter if you are in dialog or module pool. you can change/create/delete database records via the statements UPDATE, INSERT, APPEND, DELETE.

But be aware, in a SAP enviroment you should never manually oprate with database tables or records. with above statements. you always should try to find a BAPI, FM, Batch input or such since those things are doiung the crosschecks on check tables an such.

you sure can manually add a record to table VBAP using a material which doesnt exist, using an insert statement, but a BADI will not allow this.

Read only

Former Member
0 Likes
1,048

HI Ravi,

Have some input fields in the screen where u enter the data....

Have some buttons with fcode attached....

when u press a button,following code should be in the PAI of module pool.....

MODULE USER_COMMAND_9000 INPUT.

sav_ok_code = ok_code.

clear ok_code.

case sav_ok_code.

when 'ADD'.

perform add.

when 'DEL'.

perform delete_rows.

endcase.

ENDMODULE. " USER_COMMAND_9000 INPUT

*if useful then provide points

Regards

Sajid

Edited by: shaik sajid on May 29, 2009 12:59 PM

Read only

0 Likes
1,048

HI;

am sending my program;

am getting select-option syntax error

syntax error: select-options is only allowed between begin/end of screen for programs with type other than 1.

PROGRAM ZMOD_P1.

TABLES MARA.

*SELECT-OPTIONS S_MATNR FOR MARA-MATNR.

*SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

*

*

SELECT-OPTIONS S_MATNR FOR MARA-MATNR.

*

*SELECTION-SCREEN END OF BLOCK B1.

*parameters P_MATNR TYPE MARA-MATNR.

DATA : BEGIN OF ITAB OCCURS 0,

CH,

MATNR TYPE MARA-MATNR,

MBRSH TYPE MARA-MBRSH,

MTART TYPE MARA-MTART,

END OF ITAB.

DATA : WA_MARA TYPE MARA.

*call screen 100.

CONTROLS : TC1 TYPE tableview USING SCREEN 100.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE STATUS_0100 OUTPUT.

SET PF-STATUS 'ZSETPF'.

  • SET TITLEBAR 'xxx'.

SELECT single MATNR

MBRSH

MTART

FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB

WHERE MATNR IN S_MATNR.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE USER_COMMAND_0100 INPUT.

CASE SY-UCOMM.

WHEN 'DEL'.

IF ITAB-CH = 'X'.

DELETE FROM MARA WHERE MATNR = ITAB-MATNR.

ENDIF.

WHEN 'MOD'.

IF ITAB-CH = 'X'.

WA_MARA-MATNR = ITAB-MATNR.

WA_MARA-MBRSH = ITAB-MBRSH.

WA_MARA-MTART = ITAB-MTART.

MODIFY MARA FROM WA_MARA.

ENDIF.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

Thanks;

ravi.

Read only

Former Member
0 Likes
1,048

I know it's a very old question but I had similar problem before and can't find any solution.

Just change main program's type from "module pool" to "Exe. program". And the program can be activated and run successfully.