Professional Documents
Culture Documents
There have been some cases where we, as an ABAP programmer, want to take SAP table data backup.
Specially for the case where Basis Team refuses to get it back-up and restore the data for us.
There have been some codes available on net where data is backed-up but not restored back to SAP.
*-----------------------------------------------------------------------
* N Overton : Created ( T/Code ZTUD)
*
* Dynamic table export / import facility.
*
* Restrictions - Table definition MUST exist on target
* system for import.
* - Entire table is exported / imported
* - Must be WIN95/98 WIN-NT long filenames
*-----------------------------------------------------------------------
* TEXTS
*
* List Header...: For SAP Table: &1............................
*
* Column Heading: | Function Status(48 spaces)# Records |
*
* Selection Texts: PATH Folder Path for file
* P_CLEAR Delete Existing Records
* P_EXP Export to PC File
* P_IMP Import from PC File
* TABNAME SAP table name
*
* Text Symbols: B00 Dynamic Import/Export of SAP data
* B01 SAP Table Name
* B02 Program Function
* B03 Folder For Data File
* B04 Existing Records Deletion Selection
* ER2 File not found. Please check.
* PGE Page
*-----------------------------------------------------------------------
* This program once created will allow you to download or upload table
* data from any SAP table. It has the functionality to allow you to
* select whether data should be appended or original data cleared before
* inserting new data.
* This is very useful when attempting to transfer data from one client
* to another
*-----------------------------------------------------------------------
* selection screen
SELECTION-SCREEN BEGIN OF BLOCK b00 WITH FRAME TITLE text-b00.
*
SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-b01.
PARAMETERS: tabname LIKE dd02l-tabname OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b01.
*
SELECTION-SCREEN BEGIN OF BLOCK b03 WITH FRAME TITLE text-b03.
PARAMETERS: path(30) TYPE c DEFAULT 'C:\SAPWorkdir'.
SELECTION-SCREEN END OF BLOCK b03.
*
SELECTION-SCREEN BEGIN OF BLOCK b04 WITH FRAME TITLE text-b04.
PARAMETERS: p_exp RADIOBUTTON GROUP radi,
p_imp RADIOBUTTON GROUP radi,
p_clear AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b04.
* data
DATA: q_return LIKE syst-subrc,
err_flag(1) TYPE c,
answer(1) TYPE c,
w_text1(62) TYPE c,
w_text2(40) TYPE c,
winfile(128) TYPE c,
w_system(40) TYPE c,
winsys(7) TYPE c,
zname(8) TYPE c,
w_line(80) TYPE c.
* internal tables
DATA : BEGIN OF textpool_tab OCCURS 0.
INCLUDE STRUCTURE textpool.
DATA : END OF textpool_tab.
* events
INITIALIZATION.
PERFORM check_system.
*
AT SELECTION-SCREEN ON tabname.
PERFORM check_table_exists.
*
START-OF-SELECTION.
PERFORM init_report_texts.
PERFORM request_confirmation.
*
END-OF-SELECTION.
IF answer = 'J'.
PERFORM execute_program_function.
ENDIF.
*
TOP-OF-PAGE.
PERFORM process_top_of_page.
* forms
*---------------------------------------------------------------------*
* FORM CHECK_TABLE_EXISTS *
*---------------------------------------------------------------------*
FORM check_table_exists.
SELECT SINGLE * FROM dd02l
INTO CORRESPONDING FIELDS OF dd02l
WHERE tabname = tabname.
CHECK syst-subrc NE 0.
MESSAGE e402(mo) WITH tabname.
ENDFORM.
*---------------------------------------------------------------------*
* FORM INIT_REPORT_TEXTS *
*---------------------------------------------------------------------*
FORM init_report_texts.
READ TEXTPOOL syst-repid
INTO textpool_tab LANGUAGE syst-langu.
LOOP AT textpool_tab
WHERE id EQ 'R' OR id EQ 'T'.
REPLACE '&1............................'
WITH tabname INTO textpool_tab-entry.
MODIFY textpool_tab.
ENDLOOP.
ENDFORM.
*---------------------------------------------------------------------*
* FORM REQUEST_CONFIRMATION *
*---------------------------------------------------------------------*
FORM request_confirmation.
IF p_imp = 'X'.
PERFORM check_file_exists.
CHECK err_flag = ' '.
PERFORM func_import.
ELSE.
PERFORM func_export.
ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
* FORM BUILD_FILE_NAME *
*---------------------------------------------------------------------*
FORM build_file_name.
MOVE path TO winfile.
WRITE '\' TO winfile+30.
WRITE tabname TO winfile+31.
WRITE '.TAB' TO winfile+61(4).
CONDENSE winfile NO-GAPS.
ENDFORM.
*---------------------------------------------------------------------*
* FORM CHECK_FILE_EXISTS *
*---------------------------------------------------------------------*
FORM check_file_exists.
IF syst-subrc NE 0 OR q_return NE 1.
err_flag = 'X'.
ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
* FORM func_export *
*---------------------------------------------------------------------*
FORM func_export.
CLEAR itab. REFRESH itab.
IF p_clear = 'X'.
CONCATENATE 'SELECT * FROM'
tabname
'INTO TABLE IT_TAB2.' INTO w_line SEPARATED BY space.
APPEND w_line TO itab.
IF winsys NE 'WN32_95'.
WRITE: 'Windows NT or Windows 95/98 is required'.
EXIT.
ENDIF.
CONCATENATE syst-sysid
syst-saprl
syst-host INTO w_system SEPARATED BY space.
ULINE.
ENDFORM.