‎2009 May 29 11:29 AM
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.
‎2009 May 29 11:33 AM
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.
‎2009 May 29 11:34 AM
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
‎2009 May 29 11:47 AM
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
‎2009 May 29 12:25 PM
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.
‎2009 May 29 11:50 AM
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.
‎2009 May 29 11:58 AM
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
‎2009 May 29 12:23 PM
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.
‎2014 Aug 05 3:41 AM
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.