REPORT ZZBGS101 MESSAGE-ID Z1 LINE-COUNT 65 LINE-SIZE 132 NO STANDARD PAGE HEADING. *----------------------------------------------------------------------* * Description: Download any tables to the desktop, without dialog. * * * * Implementing:This program dynamic build sourcecode for downloading * * tables to the PC. The download take place for each 1000 * * records. The program uses authorization checks to secure* * that only authorized personal can use the program. * * * * WARNING! When naming the dynamic abap/4 program, be sure that the* * name is not used and will not be used in the future. SAP* * does not warning you but just overwrite existing program* * * * Authoriza- S_TABU_DIS, S_PROGRAM * * tions: * * * * Submitting: Via SA38, SA39 or via batch with variant. * * * * Parametre: TABLE: = Tablename * * PATH: = Target path without the filename * * * * Output: File downloaded to <PATH><TABLE>.TXT * * * * Customizing: Need no customization . * * * * Change of Need no changes. * * release: * * * * Programmer: Benny G. Sørensen, * * Date: September 1995. * * * * SAP Release: R/3 2.2x - 3.0x * * * *-------------------------------Corrections----------------------------* * Date Userid Correction * *----------------------------------------------------------------------* TABLES: DD02V ,TDDAT " Maintenance areas for tables . *----------------------------------------------------------------------* * Selection screen definition * *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN: COMMENT 01(70) TEXT-001. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN: COMMENT 01(70) TEXT-002. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN: COMMENT 01(70) TEXT-003. SELECTION-SCREEN: ULINE. SELECTION-SCREEN END OF LINE. *----------------------------------------------------------------------* * Table declaration * *----------------------------------------------------------------------* PARAMETERS: TABLE LIKE RSRD1-OBJNAME OBLIGATORY ,PATH(60) TYPE C DEFAULT 'C:\SAP\' OBLIGATORY. . DATA: BEGIN OF SOURCE OCCURS 80, LINE(72), END OF SOURCE. DATA: BEGIN OF ITAB OCCURS 0, LINE(72) TYPE C, END OF ITAB. DATA: FILENAME(40) TYPE C ,RETURNCODE LIKE SY-SUBRC ,WPATH(40) TYPE C ,LENGTH TYPE I . FIELD-SYMBOLS: <PTR>. *----------------------------------------------------------------------* * Event: At Selection Screen * *----------------------------------------------------------------------* AT SELECTION-SCREEN. SELECT SINGLE * FROM DD02V WHERE TABNAME = TABLE AND DDLANGUAGE = SY-LANGU. IF SY-SUBRC NE 0. MESSAGE E400. ENDIF. SELECT SINGLE * FROM TDDAT WHERE TABNAME = DD02V-TABNAME. AUTHORITY-CHECK OBJECT 'S_TABU_DIS' ID 'ACTVT' FIELD '03' ID 'DICBERCLS' FIELD TDDAT-CCLASS. IF SY-SUBRC NE 0. MESSAGE I100. ENDIF. *----------------------------------------------------------------------* * Event Initialization * *----------------------------------------------------------------------* INITIALIZATION. CLEAR SOURCE. REFRESH SOURCE. AUTHORITY-CHECK OBJECT 'S_PROGRAM' ID 'P_GROUP' FIELD 'ZZBCU128' ID 'P_ACTION' DUMMY. IF SY-SUBRC NE 0. MESSAGE I100. ENDIF. * ---------------------------------------------------------------------* * Event Start-of-selection * * ---------------------------------------------------------------------* START-OF-SELECTION. AUTHORITY-CHECK OBJECT 'S_PROGRAM' ID 'P_GROUP' FIELD 'ZZBCU128' ID 'P_ACTION' DUMMY. IF SY-SUBRC NE 0. MESSAGE E100. ENDIF. AUTHORITY-CHECK OBJECT 'S_TABU_DIS' ID 'ACTVT' FIELD '03' ID 'DICBERCLS' FIELD TDDAT-CCLASS. IF SY-SUBRC NE 0. MESSAGE E100. ENDIF. * Validate parameter CHECK TABLE NE SPACE. CHECK PATH NE SPACE. * Asure path ending with a slash CONDENSE PATH. LENGTH = STRLEN( PATH ). SUBTRACT 1 FROM LENGTH. ASSIGN PATH+LENGTH(1) TO <PTR>. IF <PTR> NE '\'. ADD 1 TO LENGTH. ASSIGN PATH+LENGTH(1) TO <PTR>. MOVE '\' TO <PTR>. ENDIF. SOURCE = 'REPORT ZZBGS### .' . APPEND SOURCE. SOURCE = 'TABLES: &.'. REPLACE '&' WITH TABLE INTO SOURCE. APPEND SOURCE. SOURCE = 'DATA: BEGIN OF TAB OCCURS 0.'. APPEND SOURCE. SOURCE = ' INCLUDE STRUCTURE &.'. REPLACE '&' WITH TABLE INTO SOURCE. APPEND SOURCE. SOURCE = 'DATA: END OF TAB. '. APPEND SOURCE. SOURCE = 'DATA: BEGIN OF OUT OCCURS 0.'. APPEND SOURCE. SOURCE = ' INCLUDE STRUCTURE &.'. REPLACE '&' WITH TABLE INTO SOURCE. APPEND SOURCE. SOURCE = 'DATA: END OF OUT. ' . APPEND SOURCE. SOURCE = 'DATA: FILENAME(40) TYPE C.'. APPEND SOURCE. SOURCE = 'DATA: ROWS TYPE I.'. APPEND SOURCE. SOURCE = 'DATA: I TYPE I.'. APPEND SOURCE. SOURCE = 'DATA: MODE TYPE C.'. APPEND SOURCE. CALL FUNCTION 'STRING_CONCATENATE' EXPORTING STRING1 = PATH STRING2 = '&.TXT' IMPORTING STRING = FILENAME EXCEPTIONS TOO_SMALL = 01. CHECK SY-SUBRC = 0. REPLACE '&' WITH TABLE INTO FILENAME. CONDENSE FILENAME NO-GAPS. SOURCE = ' FILENAME = ''&'' .' . REPLACE '&' WITH FILENAME INTO SOURCE. APPEND SOURCE. SOURCE = ' REFRESH TAB.'. APPEND SOURCE. SOURCE = ' SELECT * FROM & INTO TAB. ' . REPLACE '&' WITH TABLE INTO SOURCE. APPEND SOURCE. SOURCE = ' APPEND TAB. '. APPEND SOURCE. SOURCE = ' ENDSELECT. '. APPEND SOURCE. SOURCE = ' I = 0. '. APPEND SOURCE. SOURCE = ' LOOP AT TAB. '. APPEND SOURCE. SOURCE = ' OUT = TAB. '. APPEND SOURCE. SOURCE = ' APPEND OUT. '. APPEND SOURCE. SOURCE = ' ADD 1 TO I. '. APPEND SOURCE. SOURCE = ' IF I >= 1000. '. APPEND SOURCE. SOURCE = ' CALL FUNCTION ''WS_DOWNLOAD'' '. APPEND SOURCE. SOURCE = ' EXPORTING FILENAME = FILENAME'. APPEND SOURCE. SOURCE = ' FILETYPE = ''DAT'' '. APPEND SOURCE. SOURCE = ' MODE = MODE '. APPEND SOURCE. SOURCE = ' TABLES DATA_TAB = OUT. '. APPEND SOURCE. SOURCE = ' MODE = ''A''. '. APPEND SOURCE. SOURCE = ' REFRESH OUT. '. APPEND SOURCE. SOURCE = ' I = 0. '. APPEND SOURCE. SOURCE = ' ENDIF. '. APPEND SOURCE. SOURCE = ' ENDLOOP. '. APPEND SOURCE. SOURCE = ' CALL FUNCTION ''WS_DOWNLOAD'' '. APPEND SOURCE. SOURCE = ' EXPORTING FILENAME = FILENAME '. APPEND SOURCE. SOURCE = ' FILETYPE = ''DAT'' '. APPEND SOURCE. SOURCE = ' MODE = MODE '. APPEND SOURCE. SOURCE = ' TABLES DATA_TAB = OUT. '. APPEND SOURCE. * Look for existence of sourcecode READ REPORT 'ZZBGS###' INTO ITAB. IF SY-SUBRC > 0. INSERT REPORT 'ZZBGS###' FROM SOURCE. ELSE. MESSAGE E065 WITH 'Error: Sourcecode exist'. ENDIF. SUBMIT ZZBGS### AND RETURN. DELETE REPORT 'ZZBGS###'.