Tips and Tricks for the ABAP® Programming Language
ZFAV – Upload and Download of SAPGUI Favorites
Upload and Download of Favorites (From Version SAP relases 4.6x)
Parameters:
P_UNAME SAP User
P_LANGU Sprache
P_EXP Export
P_IMP Import
P_TYPE Übertragungsformat der Daten
P_PATH Pfad
P_TEST Testmodus
ABAP™-Source-Code
You can copy and paste the source code directly into the ABAP™-Workbench.
REPORT ZFAV . * ********************** HEADER ************** * * Copyright (c) 2001 by xxxx xxx, 44318 Anywhere, http://xxxxx * or: Copyright (c) 2001 by X.X. from X. * * You can use or modify this report for your own work as long * as you don't try to sell or republish it. * In no event will the author be liable for indirect, special, * Incidental, or consequental damages (if any) arising out of * the use of this report. *//////////////////////////////////////////////////////////////////////* * Append your coding here ... *&---------------------------------------------------------------------* *& Report ZFAV * *& Favoriten Upload/Downl. * *& Rel. 4.6B * *&---------------------------------------------------------------------* *& Author : Klaus Todebusch * *&---------------------------------------------------------------------* *-- Data --------------- DATA : g_file(128) TYPE c. DATA : g_path(80) TYPE c. DATA : g_end(8) TYPE c. DATA : g_subrc LIKE sy-subrc. *-- Parameters ----------- PARAMETERS: p_uname LIKE sy-uname DEFAULT sy-uname. PARAMETERS: p_langu LIKE sy-langu DEFAULT sy-langu. SELECTION-SCREEN SKIP. PARAMETERS: p_imp RADIOBUTTON GROUP act . PARAMETERS: p_exp RADIOBUTTON GROUP act DEFAULT 'X'. SELECTION-SCREEN ULINE. SELECTION-SCREEN BEGIN OF BLOCK fil. PARAMETERS: p_type LIKE rlgrap-filetype DEFAULT 'ASC'. PARAMETERS: p_path LIKE g_path DEFAULT 'C:\TEMP\XXX.MEN'. PARAMETERS: p_test AS CHECKBOX DEFAULT 'X'. SELECTION-SCREEN END OF BLOCK fil. *-- Data --------------- DATA: it_user_nodes TYPE TABLE OF bxmnodes1 WITH HEADER LINE. DATA: it_fav_nodes TYPE TABLE OF bxmnodes WITH HEADER LINE. *-- DL Itab DATA: BEGIN OF it_pcf OCCURS 0, line(4096) TYPE c. DATA: END OF it_pcf. *----------------------------------------------------------------------- * INITIALIZATION *----------------------------------------------------------------------- INITIALIZATION. REPLACE 'XXX' WITH sy-uname INTO p_path. CONDENSE p_path NO-GAPS. sy-title = 'Upload/Download Favoritenliste 4.6B'. *----------------------------------------------------------------------- * START-OF-SELECTION *----------------------------------------------------------------------- START-OF-SELECTION. CLEAR it_user_nodes[]. CLEAR it_fav_nodes[]. g_file = p_uname. IF p_uname <> sy-uname. MESSAGE w398(00) WITH 'Current User <> User to be modified!'. ENDIF. * -- Hauptverarbeitung IF p_imp = 'X'. PERFORM import_fav TABLES it_fav_nodes. PERFORM write_fav_db TABLES it_fav_nodes. ELSEIF p_exp = 'X'. PERFORM export_fav TABLES it_fav_nodes. ENDIF. *&---------------------------------------------------------------------* *& Form DATA_EXPORT *&---------------------------------------------------------------------* FORM data_export TABLES pit_pcf USING p_file. IF p_test <> 'X'. CALL FUNCTION 'DOWNLOAD' EXPORTING filename = p_file filetype = p_type TABLES data_tab = pit_pcf EXCEPTIONS file_open_error = 1 file_write_error = 2 invalid_filesize = 3 invalid_table_width = 4 invalid_type = 5 no_batch = 6 unknown_error = 7 gui_refuse_filetransfer = 8 OTHERS = 9. IF sy-subrc NE 0. WRITE: / 'Fehler beim schreiben für Datei' , p_file. ENDIF. ENDIF. ENDFORM. " DATA_EXPORT *&---------------------------------------------------------------------* *& Form DATA_IMPORT *&---------------------------------------------------------------------* FORM data_import TABLES pit_pcf USING p_file p_subrc. IF p_test <> 'X'. CALL FUNCTION 'UPLOAD' EXPORTING filename = p_file filetype = p_type TABLES data_tab = pit_pcf EXCEPTIONS conversion_error = 1 file_open_error = 2 file_read_error = 3 invalid_table_width = 4 invalid_type = 5 no_batch = 6 unknown_error = 7 gui_refuse_filetransfer = 8 OTHERS = 9. IF sy-subrc NE 0. WRITE: / 'Fehler beim lesen der Datei' , p_file. p_subrc = sy-subrc . ENDIF. ENDIF. ENDFORM. " DATA_IMPORT *&---------------------------------------------------------------------* *& Form IMPORT_FAV *&---------------------------------------------------------------------* FORM import_fav TABLES pit_fav_nodes STRUCTURE it_fav_nodes. g_file = p_path. PERFORM data_import TABLES it_fav_nodes USING g_file g_subrc . ENDFORM. " IMPORT_FAV *&---------------------------------------------------------------------* *& Form EXPORT_FAV *&---------------------------------------------------------------------* FORM export_fav TABLES pit_fav_nodes STRUCTURE it_fav_nodes. CALL FUNCTION 'BX_FAVOS_READ_ALL_NODES' EXPORTING user_name = p_uname language = p_langu * SORT_NODES = ' ' * GENERATE_URL = ' ' * REPLACE_RFC_VARIABLES = ' ' TABLES output_nodes_and_texts = it_fav_nodes * GENERATED_URLS = . g_file = p_path. PERFORM data_export TABLES it_fav_nodes USING g_file . ENDFORM. " EXPORT_FAV *&---------------------------------------------------------------------* *& Form WRITE_FAV_DB *&---------------------------------------------------------------------* FORM write_fav_db TABLES pit_fav_nodes STRUCTURE it_fav_nodes. * --> Favoriten wegschreiben IF p_test <> 'X'. CALL FUNCTION 'BX_FAVOS_WRITE_ALL_NODES' EXPORTING user_name = p_uname target_client = sy-mandt TABLES input_nodes_and_texts = pit_fav_nodes. ENDIF. ENDFORM. " WRITE_FAV_DB