2015 Aug 10 5:36 AM
how to split one database table records into two database table?
how to split one database table records into two database table?
2015 Aug 10 5:55 AM
2015 Aug 10 6:18 AM
Hello Kukudala,
Loop the main internal table split the data how u want in 2 different internal tables.
After the loop , modify those 2 table with the above tables you filled.
Thanks,
suresh.
2015 Aug 10 8:08 AM
REPORT ZSPLIT_ALV_INSERT.
TYPE-POOLS SLIS.
DATA ZTABLE TYPE ZTABLE1.
TYPES : BEGIN OF TY_ZTABLE1,
FIELD1 TYPE ZFIELD1,
FIELD2 TYPE ZFIELD2,
FIELD3 TYPE ZFIELD3,
END OF TY_ZTABLE1.
TYPES : BEGIN OF TY_ZTABLE2,
FIELD1 TYPE ZFIELD1,
FIELD4 TYPE ZFIELD4,
FIELD5 TYPE ZFIELD5,
FIELD6 TYPE ZFIELD6,
END OF TY_ZEDU_TABLE.
TYPES : BEGIN OF TY_FINAL,
FIELD1 TYPE ZFIELD1,
FIELD2 TYPE ZFIELD2,
FIELD3 TYPE ZFIELD3,
FIELD4 TYPE ZFIELD4,
FIELD5 TYPE ZFIELD5,
FIELD6 TYPE ZFIELD6,
END OF TY_FINAL.
DATA : T_TABLE TYPE STANDARD TABLE OF TY_ZTABLE1 INITIAL SIZE 1,
T_TABLE2 TYPE STANDARD TABLE OF TY_ZTABLE2 INITIAL SIZE 1,
T_FINAL TYPE STANDARD TABLE OF TY_FINAL INITIAL SIZE 1,
T_FCAT TYPE SLIS_T_FIELDCAT_ALV,
W_FCAT TYPE SLIS_FIELDCAT_ALV,
W_TABLE TYPE TY_ZTABLE1,
W_TABLE2 TYPE ZTABLE2,
W_FINAL TYPE TY_FINAL.
TYPES : BEGIN OF TY_FILE,
LINES(200) TYPE C,
END OF TY_FILE.
DATA : T_FILE TYPE STANDARD TABLE OF TY_FILE INITIAL SIZE 1,
W_FILE TYPE TY_FILE.
PARAMETERS : P_PATH TYPE STRING.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PATH.
CALL FUNCTION 'GUI_FILE_LOAD_DIALOG'
IMPORTING
FULLPATH = P_PATH.
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = P_PATH
TABLES
DATA_TAB = T_FILE
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
IF SY-SUBRC <> 0.
MESSAGE 'WRONG IN UPLOAD FILE' TYPE 'E'.
ENDIF.
LOOP AT IT_FILE INTO WA_FILE.
SPLIT WA_FILE-LINES AT ',' INTO WA_FINAL-FIELD1
WA_FINAL-FIELD2
WA_FINAL-FIELD3
WA_FINAL-FIELD4
WA_FINAL-FIELD5
WA_FINAL-FIELD6.
APPEND WA_FINAL TO IT_FINAL.
CLEAR : WA_FILE,WA_FILE-LINES ,WA_FINAL.
ENDLOOP.
WA_FCAT-FIELDNAME = 'FIELD1'.
WA_FCAT-SELTEXT_M = 'FIELD1'.
WA_FCAT-OUTPUTLEN = 10.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'FIELD1'.
WA_FCAT-SELTEXT_M = 'FIELD2'.
WA_FCAT-OUTPUTLEN = 10.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'FIELD3'.
WA_FCAT-SELTEXT_M = 'FIELD3'.
WA_FCAT-OUTPUTLEN = 10.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'FIELD4'.
WA_FCAT-SELTEXT_M = 'FIELD4'.
WA_FCAT-OUTPUTLEN = 10.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'FIELD5'.
WA_FCAT-SELTEXT_M = 'FIELD5'.
WA_FCAT-OUTPUTLEN = 10.
APPEND W_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
WA_FCAT-FIELDNAME = 'FIELD6'.
WA_FCAT-SELTEXT_M = 'FIELD6'.
WA_FCAT-OUTPUTLEN = 10.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
LOOP AT IT_FINAL INTO WA_FINAL.
ZTABLE-FIELD1 = WA_FINAL-FIELD1.
ZTABLE-FIELD2 = WA_FINAL-FIELD2.
ZTABLE-FIELD3 = WA_FINAL-FIELD3.
IF SY-SUBRC = 0.
INSERT ZTABLE1 FROM ZTABLE.
COMMIT WORK.
ELSE .
ROLLBACK WORK.
ENDIF.
WA_EDU-FIELD1 = WA_FINAL-FIELD1.
WA_EDU-FIELD4 = WA_FINAL-FIELD4.
WA_EDU-FIELD5 = WA_FINAL-FIELD5.
WA_EDU-FIELD6 = WA_FINAL-FIELD6.
IF SY-SUBRC = 0.
INSERT ZTABLE2 FROM W_TABLE2.
COMMIT WORK.
ELSE .
ROLLBACK WORK.
ENDIF.
CLEAR: WA_FINAL,WA_FILE-LINES.
ENDLOOP.
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |