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 Program

Former Member
0 Likes
925

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...

1 ACCEPTED SOLUTION
Read only

naveen_inuganti2
Active Contributor
0 Likes
884

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

9 REPLIES 9
Read only

naveen_inuganti2
Active Contributor
0 Likes
885

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

Read only

0 Likes
884

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

Read only

0 Likes
884

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

Read only

Former Member
0 Likes
884

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

Read only

Former Member
0 Likes
884

Hi,

I thing u forget MODIFY or APPEND ITAB.

check it..

Read only

Former Member
0 Likes
884

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.

Read only

Former Member
0 Likes
884

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.

Read only

0 Likes
884

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........

Read only

0 Likes
884

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