‎2007 Nov 10 7:11 PM
Hello I have to insert an internal table to ZTable (table of dictionary).
But I don't know why I only can insert one row. Can anyone help me, please?
LOOP AT IT_FICHERO INTO WA_FICHERO.
PERFORM LOAD.
PERFORM INSERT_INTO_TABLE.
ENDLOOP.
FORM LOAD.
ZTABLE-PEDIDO = WA_FICHERO-NUM_PED.
ZTABLE-SOLICITANTE = WA_FICHERO-SOLIC.
ZTABLE-FECHA = FECHA.
ZTABLE-HORA = HORA.
ZTABLE-STATUS1 = STATUS_P
ZTABLE-STATUS2 = STATUS_F.
ENDFORM.
FORM INSERT_INTO_TABLE.
INSERT ZTABLE.
IF SY-SUBRC = 0.
MESSAGE I005.
ELSE.
MESSAGE I006.
ENDIF.
ENDFORM.
‎2007 Nov 11 9:50 AM
Hi,
May be the key fields values must be same that is why it is inserting only one row.
Use Insert ZTABLE from <Work Area>.
Reward if it helps,
Satish
‎2007 Nov 10 7:19 PM
‎2007 Nov 11 9:50 AM
Hi,
May be the key fields values must be same that is why it is inserting only one row.
Use Insert ZTABLE from <Work Area>.
Reward if it helps,
Satish
‎2007 Nov 12 9:02 AM
I have defined a new it_table and I have passed all the information inside,
then
insert Ztable from table it_table.
It works well.
‎2007 Nov 12 9:20 AM
Hi Ana,
To avoid , collision/ deadlocks while trying to insert / Modify tables,
You have to lock the table before updation and unlock it after the saem.
Refer to my revious post in this thread.
Reward If Useful.
Regards,
Chitra
‎2007 Nov 12 7:17 AM
Hi Ana ,
Try this.
FORM LOAD.
wa_ZTABLE-PEDIDO = WA_FICHERO-NUM_PED.
wa_ZTABLE-SOLICITANTE = WA_FICHERO-SOLIC.
wa_ZTABLE-FECHA = FECHA.
wa_ZTABLE-HORA = HORA.
wa_ZTABLE-STATUS1 = STATUS_P
wa_ZTABLE-STATUS2 = STATUS_F.
append wa_ztable to ztab.
ENDFORM.
loop at ztab into wa_ztable.
**- Lock the table for updation
CALL FUNCTION 'ENQUEUE_E_TABLEE'
EXPORTING
mode_rstable = 'E'
tabname = 'ZTABLE'
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
ENDIF.
**- Updating the values in the afterbilled table.
Insert ztable form table ztab.
COMMIT WORK.
**- Unlock the table after Updation.
CALL FUNCTION 'DEQUEUE_E_TABLEE'
EXPORTING
mode_rstable = 'E'
tabname = 'ZTABLE'.
Reward If Useful.
Regards,
Chitra
‎2007 Nov 12 8:19 AM
Only the following code will work...
LOOP AT IT_FICHERO INTO WA_FICHERO.
INSERT INTO ZTABLE VALUES WA_FICHERO.
ENDLOOP.
IF YOU DONT WANT LIKE ABOVE.....
LOOP AT IT_FICHERO INTO WA_FICHERO.
PERFORM LOAD.
PERFORM INSERT_INTO_TABLE.
ENDLOOP
FORM LOAD.
ZTABLE-PEDIDO = WA_FICHERO-NUM_PED.
ZTABLE-SOLICITANTE = WA_FICHERO-SOLIC.
ZTABLE-FECHA = FECHA.
ZTABLE-HORA = HORA.
ZTABLE-STATUS1 = STATUS_P
ZTABLE-STATUS2 = STATUS_F.
ENDFORM.
FORM INSERT_INTO_TABLE.
INSERT INTO ZTABLE VALUES WA_FICHERO.
IF SY-SUBRC = 0.
MESSAGE I005.
ELSE.
MESSAGE I006.
ENDIF.
ENDFORM.
‎2007 Nov 12 9:32 AM
DATA: WA_ZTABLE TYPE ZTABLE.
LOOP AT IT_FICHERO INTO WA_FICHERO.
PERFORM LOAD.
PERFORM INSERT_INTO_TABLE.
CLEAR WA_ZTABLE.
ENDLOOP.
FORM LOAD.
WA_ZTABLE-PEDIDO = WA_FICHERO-NUM_PED.
WA_ZTABLE-SOLICITANTE = WA_FICHERO-SOLIC.
WA_ZTABLE-FECHA = FECHA.
WA_ZTABLE-HORA = HORA.
WA_ZTABLE-STATUS1 = STATUS_P
WA_ZTABLE-STATUS2 = STATUS_F.
ENDFORM.
FORM INSERT_INTO_TABLE.
INSERT INTO ZTABLE VALUE WA_ZTABLE.
IF SY-SUBRC = 0.
MESSAGE I005.
ELSE.
MESSAGE I006.
ENDIF.
ENDFORM.
Message was edited by:
Muthurajan Ramkumar