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

saving data from table control to database

Former Member
0 Likes
848

Hello,

I am using a table control in which i am inputting data manually (not pre-populated) and want to save the records in the database. But when i loop the internal table(empty at first) with the table control in PBO. After the PBO, i have 12 empty rows in the internal table,as there are 12 visible rows in the table control. Because of this, when i save the internal table in database, i get runtime error of 'duplicate records exists in the database. Hope you all have understood.

Thanks

Shehryar

6 REPLIES 6
Read only

Former Member
0 Likes
820

Hi,

In the PBO write DESCRIBE TABLE <ITAB> ....... Statement and try..

Regards,

Sathish Reddy.

Read only

0 Likes
820

AoA,

That will give me 12 lines. Your point ?

Thanks

Shehryarb

Read only

former_member745780
Active Participant
0 Likes
820

Hello

For your 12 entry check out that where the internal table filled in PBO.

You can write a module to read input entry from table control

using write a module MODULE READ_TABLE_CONTROL.

in PAI

&----


*& Module READ_TABLE_CONTROL INPUT

&----


  • text

----


MODULE READ_TABLE_CONTROL INPUT.

glb_field = tabcont_field.

ENDMODULE. " READ_TABLE_CONTROL INPUT

Hope this will help you

Read only

Former Member
0 Likes
820

Hi,

can you give the sample code...what you have written in PBO and PAI...

Regards,

Satish Reddy.

Read only

0 Likes
820

&----


*& Module USER_COMMAND_9200 INPUT

&----


  • text

----


module USER_COMMAND_9200 input.

CASE OK_CODE1.

WHEN 'GO'.

*ROUTINE GETDATA

PERFORM GETDATA.

CLEAR OK_CODE1.

*&& BACK

when 'CANCEL'.

leave program.

WHEN 'BACK'.

CLEAR : I_TAB, I_TAB1,AFKO-PLNBEZ,ZMATKL,T001W-WERKS,AFKO-GSTRP,flag,count,qtyflag.

REFRESH : I_TAB1.

LEAVE TO SCREEN 9100.

*&& SAVE INSERT DATA TO ZPPT_CONFIRM

WHEN 'SAVE'.

data : co type C,

del type c.

LOOP AT I_TAB1.

IF I_TAB1-LMNGA IS NOT INITIAL OR

I_TAB1-LMNGA1 IS NOT INITIAL. "OR

  • I_TAB1-XMNGA IS NOT INITIAL.

if I_TAB1-EMPNO <> space and I_TAB1-EMPNO+0(1) <> 'P'.

  • MESSAGE I991(ZMESSAGE) with 'ENTER INSPECTOR NUMBER at Line' sy-tabix.

continue.

endif.

clear : v_charg.

SELECT single CHARG FROM MCHB into v_charg

WHERE LGORT = '1080'

AND LVORM <> 'X'

AND CHARG = I_TAB1-CHARG.

if sy-subrc <> 0.

Message 'Enter correct batch' type 'W'.

continue.

endif.

IF I_TAB1-LMNGA IS NOT INITIAL AND

I_TAB1-CHARG IS INITIAL.

MESSAGE 'Enter Batch' TYPE 'S'.

ELSE.

*&& ACTIVITY 10

ZPPT_CONFIRM-CDATE = SY-DATUM.

ZPPT_CONFIRM-CTIME = SY-UZEIT.

ZPPT_CONFIRM-PDATE = afko-gstrp.

ZPPT_CONFIRM-WERKS = T001W-WERKS.

ZPPT_CONFIRM-DISPO = '103'. "MRP CONTROLLER

ZPPT_CONFIRM-VORNR = '0010'.

ZPPT_CONFIRM-AUFNR = I_TAB1-AUFNR. "ORDER NO

ZPPT_CONFIRM-ZSUPNO = ZPP_SUP_MRP-ZSUPNO.

ZPPT_CONFIRM-AUFART = 'ZH23'. "ORDER TYPE

ZPPT_CONFIRM-MATNR = I_TAB1-PLNBEZ. "MATERIAL

ZPPT_CONFIRM-MAKTX = I_TAB1-WGBEZ.

ZPPT_CONFIRM-GAMNG = I_TAB1-GAMNG.

ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA. "MOULD FILL

  • ZPPT_CONFIRM-GRUND = I_TAB1-GRUND. "reason for scrap

ZPPT_CONFIRM-ZSUPNAME = SNAME. "supervioser name

ZPPT_CONFIRM-CHARG = I_TAB1-CHARG. "batch

ZPPT_CONFIRM-ZHODNO = V_ZHODNO.

ZPPT_CONFIRM-FEVOR = V_PRDSCHED. "PRODUCT SCHEDULER

ZPPT_CONFIRM-PERNR = I_TAB1-pernr.

ZPPT_CONFIRM-ENAME = I_TAB1-ENAME.

ZPPT_CONFIRM-ZUSER = sy-uname.

sno = sno + 1.

ZPPT_CONFIRM-sno = sno.

INSERT ZPPT_CONFIRM.

CLEAR ZPPT_CONFIRM.

*&& ACTIVITY 20

if I_TAB1-XMNGA1 <> space.

ZPPT_CONFIRM-CDATE = SY-DATUM.

ZPPT_CONFIRM-CTIME = SY-UZEIT.

ZPPT_CONFIRM-PDATE = afko-gstrp.

ZPPT_CONFIRM-WERKS = T001W-WERKS.

ZPPT_CONFIRM-DISPO = '103'.

ZPPT_CONFIRM-VORNR = '0020'.

ZPPT_CONFIRM-AUFNR = I_TAB1-AUFNR.

ZPPT_CONFIRM-ZSUPNO = ZPP_SUP_MRP-ZSUPNO.

ZPPT_CONFIRM-AUFART = 'ZH23'.

ZPPT_CONFIRM-MATNR = I_TAB1-PLNBEZ.

ZPPT_CONFIRM-MAKTX = I_TAB1-WGBEZ.

ZPPT_CONFIRM-GAMNG = I_TAB1-GAMNG.

ZPPT_CONFIRM-XMNGA = I_TAB1-XMNGA1. "SCARP

if I_TAB1-XMNGA1 is NOT INITIAL.

ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT

ZPPT_CONFIRM-GRUND = '0001'. "reason for scrap

CO = 'X'.

endif.

ZPPT_CONFIRM-ZSUPNAME = SNAME.

  • ZPPT_CONFIRM-CHARG = I_TAB1-CHARG.

ZPPT_CONFIRM-ZHODNO = V_ZHODNO.

ZPPT_CONFIRM-FEVOR = V_PRDSCHED.

ZPPT_CONFIRM-PERNR = I_TAB1-pernr.

ZPPT_CONFIRM-ENAME = I_TAB1-ENAME.

ZPPT_CONFIRM-ZUSER = sy-uname.

sno = sno + 1.

ZPPT_CONFIRM-sno = sno.

INSERT ZPPT_CONFIRM.

CLEAR ZPPT_CONFIRM.

endif.

if I_TAB1-XMNGA2 <> space.

ZPPT_CONFIRM-CDATE = SY-DATUM.

ZPPT_CONFIRM-CTIME = SY-UZEIT.

ZPPT_CONFIRM-PDATE = afko-gstrp.

ZPPT_CONFIRM-WERKS = T001W-WERKS.

ZPPT_CONFIRM-DISPO = '103'.

ZPPT_CONFIRM-VORNR = '0020'.

ZPPT_CONFIRM-AUFNR = I_TAB1-AUFNR.

ZPPT_CONFIRM-ZSUPNO = ZPP_SUP_MRP-ZSUPNO.

ZPPT_CONFIRM-AUFART = 'ZH23'.

ZPPT_CONFIRM-MATNR = I_TAB1-PLNBEZ.

ZPPT_CONFIRM-MAKTX = I_TAB1-WGBEZ.

ZPPT_CONFIRM-GAMNG = I_TAB1-GAMNG.

  • ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT

ZPPT_CONFIRM-XMNGA = I_TAB1-XMNGA2. "SCARP

if I_TAB1-XMNGA2 is NOT INITIAL.

ZPPT_CONFIRM-GRUND = '0002'. "reason for scrap

if co <> 'X'.

ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT

co = 'X'.

endif.

endif.

ZPPT_CONFIRM-ZSUPNAME = SNAME.

  • ZPPT_CONFIRM-CHARG = I_TAB1-CHARG.

ZPPT_CONFIRM-ZHODNO = V_ZHODNO.

ZPPT_CONFIRM-FEVOR = V_PRDSCHED.

ZPPT_CONFIRM-PERNR = I_TAB1-pernr.

ZPPT_CONFIRM-ENAME = I_TAB1-ENAME.

ZPPT_CONFIRM-ZUSER = sy-uname.

sno = sno + 1.

ZPPT_CONFIRM-sno = sno.

INSERT ZPPT_CONFIRM.

CLEAR ZPPT_CONFIRM.

endif.

if I_TAB1-XMNGA3 <> space.

ZPPT_CONFIRM-CDATE = SY-DATUM.

ZPPT_CONFIRM-CTIME = SY-UZEIT.

ZPPT_CONFIRM-PDATE = afko-gstrp.

ZPPT_CONFIRM-WERKS = T001W-WERKS.

ZPPT_CONFIRM-DISPO = '103'.

ZPPT_CONFIRM-VORNR = '0020'.

ZPPT_CONFIRM-AUFNR = I_TAB1-AUFNR.

ZPPT_CONFIRM-ZSUPNO = ZPP_SUP_MRP-ZSUPNO.

ZPPT_CONFIRM-AUFART = 'ZH23'.

ZPPT_CONFIRM-MATNR = I_TAB1-PLNBEZ.

ZPPT_CONFIRM-MAKTX = I_TAB1-WGBEZ.

ZPPT_CONFIRM-GAMNG = I_TAB1-GAMNG.

  • ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT

ZPPT_CONFIRM-XMNGA = I_TAB1-XMNGA3. "SCARP

if I_TAB1-XMNGA3 is NOT INITIAL.

ZPPT_CONFIRM-GRUND = '0003'. "reason for scrap

if co <> 'X'.

ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT

co = 'X'.

endif.

endif.

ZPPT_CONFIRM-ZSUPNAME = SNAME.

  • ZPPT_CONFIRM-CHARG = I_TAB1-CHARG.

ZPPT_CONFIRM-ZHODNO = V_ZHODNO.

ZPPT_CONFIRM-FEVOR = V_PRDSCHED.

ZPPT_CONFIRM-PERNR = I_TAB1-pernr.

ZPPT_CONFIRM-ENAME = I_TAB1-ENAME.

ZPPT_CONFIRM-ZUSER = sy-uname.

sno = sno + 1.

ZPPT_CONFIRM-sno = sno.

INSERT ZPPT_CONFIRM.

CLEAR ZPPT_CONFIRM.

endif.

if I_TAB1-XMNGA4 <> space.

ZPPT_CONFIRM-CDATE = SY-DATUM.

ZPPT_CONFIRM-CTIME = SY-UZEIT.

ZPPT_CONFIRM-PDATE = afko-gstrp.

ZPPT_CONFIRM-WERKS = T001W-WERKS.

ZPPT_CONFIRM-DISPO = '103'.

ZPPT_CONFIRM-VORNR = '0020'.

ZPPT_CONFIRM-AUFNR = I_TAB1-AUFNR.

ZPPT_CONFIRM-ZSUPNO = ZPP_SUP_MRP-ZSUPNO.

ZPPT_CONFIRM-AUFART = 'ZH23'.

ZPPT_CONFIRM-MATNR = I_TAB1-PLNBEZ.

ZPPT_CONFIRM-MAKTX = I_TAB1-WGBEZ.

ZPPT_CONFIRM-GAMNG = I_TAB1-GAMNG.

  • ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT

ZPPT_CONFIRM-XMNGA = I_TAB1-XMNGA4. "SCARP

if I_TAB1-XMNGA4 is NOT INITIAL.

ZPPT_CONFIRM-GRUND = '0004'. "reason for scrap

if co <> 'X'.

ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT

co = 'X'.

endif.

endif.

ZPPT_CONFIRM-ZSUPNAME = SNAME.

  • ZPPT_CONFIRM-CHARG = I_TAB1-CHARG.

ZPPT_CONFIRM-ZHODNO = V_ZHODNO.

ZPPT_CONFIRM-FEVOR = V_PRDSCHED.

ZPPT_CONFIRM-PERNR = I_TAB1-pernr.

ZPPT_CONFIRM-ENAME = I_TAB1-ENAME.

ZPPT_CONFIRM-ZUSER = sy-uname.

sno = sno + 1.

ZPPT_CONFIRM-sno = sno.

INSERT ZPPT_CONFIRM.

CLEAR ZPPT_CONFIRM.

endif.

IF SY-SUBRC = 0.

DELETE TABLE I_TAB1 FROM I_TAB1.

ENDIF.

CLEAR ZPPT_CONFIRM.

ENDIF.

ENDIF.

ENDLOOP.

CLEAR OK_CODE1.

ENDCASE.

endmodule. " USER_COMMAND_9200 INPUT

Read only

0 Likes
820

Hello,

What does the above code do . Kindly pin point the logic and not give the whole source code. It is hard to comprehend this way.

Regards,

Shehryar