‎2008 Jul 11 7:37 AM
when I update the ztable through modul poo porgram only the last data gets saved and the rest doesnt gets saved.... Can you please help .....
after some time when I execute it again the old data gets deleted and doesnt exists in the table..
can you please help it outits urgent...
‎2008 Jul 11 7:40 AM
Hi......
So you are not using MODIFY syntax there.....
First check it out...
Try this code.. after filling the internal table with require data which you want to add into data base table...
> LOOP AT ITAB.
> ITAB-F1 = <var> (Pass the variable or value which you want to enter into database table).
> ITAB-F2 = <var>.
> ITAB-F3 = <var>
> ITAB-F4 = <var>
> ITAB-F5 = <var>
> MODIFY <data base table> FROM itab.
> ENDLOOP.
And get back again if any issues... with this
Thanks,
Naveen.I
Edited by: Naveen Inuganti on Jul 11, 2008 12:13 PM
‎2008 Jul 11 7:40 AM
Hi......
So you are not using MODIFY syntax there.....
First check it out...
Try this code.. after filling the internal table with require data which you want to add into data base table...
> LOOP AT ITAB.
> ITAB-F1 = <var> (Pass the variable or value which you want to enter into database table).
> ITAB-F2 = <var>.
> ITAB-F3 = <var>
> ITAB-F4 = <var>
> ITAB-F5 = <var>
> MODIFY <data base table> FROM itab.
> ENDLOOP.
And get back again if any issues... with this
Thanks,
Naveen.I
Edited by: Naveen Inuganti on Jul 11, 2008 12:13 PM
‎2008 Jul 14 9:26 AM
Still I am not getting the proper result.....
when I update only the last data gets into the databaswe table and the rest doesnt gets updated... can you pls help it....
syntax is this
PROGRAM ZASSET .
tables: anla,zasset.
types: begin of ty_zasset ,
bukrs like anla-bukrs,
anln1 like anla-anln1,
anln2 like anla-anln2,
SEL,
end of ty_zasset.
data: it_zasset type standard table of ty_zasset with header line.
data: wa_zasset type ty_zasset.
data: w_sel.
&----
*& Module put_data OUTPUT
&----
text
----
MODULE put_data OUTPUT.
*loop at it_zasset .
move it_zasset-anln1 to zasset-anln1.
move it_zasset-anln2 to zasset-anln2.
*endloop.
*modify zasset . "from it_zasset.
update zasset.
clear it_zasset.
DESCRIBE TABLE it_zasset . "LINES TC_CONTROL-LINES.
ENDMODULE. " put_data OUTPUT
&----
*& Module GET_DATA INPUT
&----
text
----
MODULE GET_DATA INPUT.
move zasset-anln1 to wa_zasset-anln1.
move zasset-anln2 to wa_zasset-anln2.
MODIFY it_zasset from wa_zasset . "INDEX SY-TABIX. " INDEX
ENDMODULE. " GET_DATA INPUT
&----
*& Module EXIT INPUT
&----
text
----
MODULE EXIT INPUT.
case sy-ucomm.
when 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " EXIT INPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
clear: it_zasset.
refresh: it_zasset.
CASE SY-UCOMM.
WHEN 'INSERT'.
LOOP AT it_zasset into wa_zasset .
modify it_zasset from wa_zasset..
INSERT INITIAL LINE INTO it_zasset INDEX SY-TABIX.
TC_CONTROL-LINES = TC_CONTROL-LINES + 1.
ENDLOOP.
WHEN 'SAVE'.
clear wa_zasset.
LOOP AT it_zasset into wa_zasset.
move zasset-anln1 to wa_zasset-anln1.
MOVE ZASSET-ANLN2 TO WA_ZASSET-ANLN2.
it_zasset-anln1 = wa_zasset-anln1.
IT_zASSET-ANLN2 = WA_ZASSET-ANLN2.
append wa_zasset to it_zasset.
*endloop.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
data: v_lines type i.
SET PF-STATUS 'ASSET'.
SET TITLEBAR 'UPDATING ZASSET TABLE'.
*IF SY-TFILL IS INITIAL.
SELECT bukrs
anln1
anln2
FROM anla
INTO TABLE it_zasset.
describe table it_zasset lines v_lines.
*ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
‎2008 Jul 16 11:19 AM
Hi..... Venkatesh.....
Say...,
we are having a data base table with 4 fields... one of them is like flag field...
now with one action of screen it has to update with X...
That action is push button P1...
now....
in the pai event of that screen...
> case sy-ucomm
> when 'P1'.
>
>select * from <database table> into table itab.
>
>loop at itab.
>itab-f4 = 'X'.
>modify <databse table> from itab.
>endloop.
>
>endcase.
With this data base table's all entries updates with f4 as X.
If your requirement is defferent.. get back to me again..,
(Specify modify syntax with in the loop only)
Thanks,
Naveen.I
‎2008 Jul 11 7:42 AM
Hiii...
The problem might be the data is not being commited into the database table ....did u try using the COMMIT WORK statement on the PAI event of the program....if not plzzz try doing that ...
did u try debugging... the internal table if at all u are placing the data into the internal table before updating the database table ...could u able to see the entire data into the internal table ...if not use MODIFY statement...
hope that would solve the problem...
regards
chandu reddy
Edited by: chandu reddy sunkari on Jul 11, 2008 8:42 AM
‎2008 Jul 11 7:42 AM
‎2008 Jul 11 7:43 AM
Hi,
Check your code once again regarding the actions performed on your DATABASE TABLE (like INSERT, UPDATE, MODIFY, DELETE).
It will help you more, debug the program if you repeat the same error.
‎2008 Jul 11 7:43 AM
hi,
write like this.
if u want append data to Ztable.
select * from Ztable into wa_itab.
if sy-subrc EQ 0.
Ztable-field1 = wa_itab-field1.
Ztable-field2 = wa_itab-field2.
Ztable-field3 = wa_itab-field3.
UPDATE ZTABLE INTO VALUES WA_ITAB.
ELSE.
Ztable-field1 = wa_itab-field1.
Ztable-field2 = wa_itab-field2.
Ztable-field3 = wa_itab-field3.
INSERT ZTABLE INTO VALUES WA_ITAB.
endif.
‎2008 Jul 11 8:37 AM
thanks a lot....
THis is my code...
tables: anla,zasset.
types: begin of ty_zasset ,
bukrs like anla-bukrs,
anln1 like anla-anln1,
anln2 like anla-anln2,
SEL,
end of ty_zasset.
data: it_zasset type standard table of ty_zasset with header line.
data: wa_zasset type ty_zasset.
&----
*& Module put_data OUTPUT
&----
text
----
MODULE put_data OUTPUT.
*move it_zasset-anln1 to zasset-anln1.
*move it_zasset-anln2 to zasset-anln2.
*
*
*modify zasset.
DESCRIBE TABLE it_zasset . "LINES TC_CONTROL-LINES.
ENDMODULE. " put_data OUTPUT
&----
*& Module GET_DATA INPUT
&----
text
----
MODULE GET_DATA INPUT.
move zasset-anln1 to wa_zasset-anln1.
move zasset-anln2 to wa_zasset-anln2.
MODIFY it_zasset from wa_zasset INDEX SY-TABIX. " INDEX
ENDMODULE. " GET_DATA INPUT
&----
*& Module EXIT INPUT
&----
text
----
MODULE EXIT INPUT.
case sy-ucomm.
when 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " EXIT INPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
clear: it_zasset.
refresh: it_zasset.
CASE SY-UCOMM.
WHEN 'INSERT'.
LOOP AT it_zasset into wa_zasset .
modify it_zasset from wa_zasset..
INSERT INITIAL LINE INTO it_zasset INDEX SY-TABIX.
TC_CONTROL-LINES = TC_CONTROL-LINES + 1.
ENDLOOP.
WHEN 'SAVE'.
clear wa_zasset.
LOOP AT it_zasset into wa_zasset.
move zasset-anln1 to wa_zasset-anln1.
MOVE ZASSET-ANLN2 TO WA_ZASSET-ANLN2.
it_zasset-anln1 = wa_zasset-anln1.
IT_zASSET-ANLN2 = WA_ZASSET-ANLN2.
append wa_zasset to it_zasset.
*endloop.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
data: v_lines type i.
SET PF-STATUS 'ASSET'.
SET TITLEBAR 'UPDATING ZASSET TABLE'.
*IF SY-TFILL IS INITIAL.
SELECT bukrs
anln1
anln2
FROM anla
INTO TABLE it_zasset.
describe table it_zasset lines v_lines.
*ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
let me know if this is fine...
and the flow logic is
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
LOOP AT it_zasset. " into wa_zasset.
module put_data.
endloop.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
LOOP AT it_zasset . "into wa_zasset.
MODULE GET_DATA.
ENDLOOP.
MODULE EXIT AT EXIT-COMMAND.
I have to give anln1 and anln2 as input and it has to update the ztable........
‎2008 Jul 11 11:57 AM
Still I face same problems in the code....
can anyone please elp me out....I have attached the coding
PROGRAM ZASSET .
tables: anla,zasset.
types: begin of ty_zasset ,
bukrs like anla-bukrs,
anln1 like anla-anln1,
anln2 like anla-anln2,
SEL,
end of ty_zasset.
data: it_zasset type standard table of ty_zasset with header line.
data: wa_zasset type ty_zasset.
&----
*& Module put_data OUTPUT
&----
text
----
MODULE put_data OUTPUT.
*move it_zasset-anln1 to zasset-anln1.
*move it_zasset-anln2 to zasset-anln2.
*
*
*modify zasset.
DESCRIBE TABLE it_zasset . "LINES TC_CONTROL-LINES.
ENDMODULE. " put_data OUTPUT
&----
*& Module GET_DATA INPUT
&----
text
----
MODULE GET_DATA INPUT.
move zasset-anln1 to wa_zasset-anln1.
move zasset-anln2 to wa_zasset-anln2.
MODIFY it_zasset from wa_zasset INDEX SY-TABIX. " INDEX
ENDMODULE. " GET_DATA INPUT
&----
*& Module EXIT INPUT
&----
text
----
MODULE EXIT INPUT.
case sy-ucomm.
when 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " EXIT INPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
clear: it_zasset.
refresh: it_zasset.
CASE SY-UCOMM.
WHEN 'INSERT'.
LOOP AT it_zasset into wa_zasset .
modify it_zasset from wa_zasset..
INSERT INITIAL LINE INTO it_zasset INDEX SY-TABIX.
TC_CONTROL-LINES = TC_CONTROL-LINES + 1.
ENDLOOP.
WHEN 'SAVE'.
clear wa_zasset.
LOOP AT it_zasset into wa_zasset.
move zasset-anln1 to wa_zasset-anln1.
MOVE ZASSET-ANLN2 TO WA_ZASSET-ANLN2.
it_zasset-anln1 = wa_zasset-anln1.
IT_zASSET-ANLN2 = WA_ZASSET-ANLN2.
append wa_zasset to it_zasset.
*endloop.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
data: v_lines type i.
SET PF-STATUS 'ASSET'.
SET TITLEBAR 'UPDATING ZASSET TABLE'.
*IF SY-TFILL IS INITIAL.
SELECT bukrs
anln1
anln2
FROM anla
INTO TABLE it_zasset.
describe table it_zasset lines v_lines.
*ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT