* ====================================================================== * Stefanos Moschidis - SAP Certified Technical Consultant * ====================================================================== * ====================================================================== * This program gives a facility of downloading SAPSCRIPT forms into * a directory of local disk eg c:\test * * The selection screen has a command button for proposing the criteria * of sapscript form names, according to Author's username , * Modifier's username , and dates of creating or changing the sapscipt * forms * * Of course a variant could be saved with a set of SAPSCRIPT forms * and the program can then be executed with this variant for backup * purposes * ====================================================================== REPORT Z_DOWNLOAD_BATCH_OF_SAPSCRIPTS . TABLES : RSSCF . DATA : OBJ_FORM TYPE C VALUE 'X'. DATA : OBJ_STYL TYPE C. DATA : OBJ_TEXT TYPE C. DATA : OBJ_ID LIKE STXH-TDID VALUE 'ST'. DATA : OBJ_LANG LIKE STXH-TDSPRAS VALUE 'E' . DATA : OBJ_PRIN TYPE C . DATA : OBJ_NAME(40) TYPE C . DATA : MODE(6) TYPE C VALUE 'EXPORT'. DATA : LOCALFIL TYPE C VALUE 'X'. DATA : SERVFIL TYPE C . DATA : DATASET LIKE RLGRAP-FILENAME . DATA : BINFILE TYPE C . DATA : LISTFILE TYPE C . DATA : PLANGVEC(60) TYPE C . DATA : MASTLANG TYPE C . * ------------------------------------------------------------ DATA I_TADIR TYPE STANDARD TABLE OF TADIR WITH HEADER LINE . DATA MFORM LIKE ITCTA-TDFORM . DATA HEADER LIKE THEAD . * ============================================================ SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME . SELECTION-SCREEN BEGIN OF LINE . SELECTION-SCREEN POSITION 24. SELECT-OPTIONS : MSAPSCRP FOR RSSCF-TDFORM NO INTERVALS . SELECTION-SCREEN COMMENT 5(20) TEXT_S01 FOR FIELD MSAPSCRP . SELECTION-SCREEN END OF LINE . SELECTION-SCREEN END OF BLOCK B1 . * ------------------------------------------------------------ SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME . * ------------------------------------------------------------ SELECTION-SCREEN BEGIN OF LINE . SELECTION-SCREEN POSITION 24. SELECT-OPTIONS : MDATE FOR SY-DATUM . SELECTION-SCREEN COMMENT 5(20) TEXT_S02 FOR FIELD MDATE . SELECTION-SCREEN END OF LINE . * ------------------------------------------------------------ SELECTION-SCREEN BEGIN OF LINE . SELECTION-SCREEN POSITION 24. SELECT-OPTIONS : MUNAME FOR SY-UNAME DEFAULT SY-UNAME NO INTERVALS . SELECTION-SCREEN COMMENT 5(20) TEXT_S03 FOR FIELD MUNAME . SELECTION-SCREEN END OF LINE . * ------------------------------------------------------------ SELECTION-SCREEN BEGIN OF LINE . SELECTION-SCREEN POSITION 24. SELECT-OPTIONS : CDATE FOR SY-DATUM . SELECTION-SCREEN COMMENT 5(20) TEXT_S05 FOR FIELD CDATE . SELECTION-SCREEN END OF LINE . * ------------------------------------------------------------ SELECTION-SCREEN BEGIN OF LINE . SELECTION-SCREEN POSITION 24. SELECT-OPTIONS : CUNAME FOR SY-UNAME DEFAULT SY-UNAME NO INTERVALS . SELECTION-SCREEN COMMENT 5(20) TEXT_S04 FOR FIELD CUNAME . SELECTION-SCREEN END OF LINE . * ------------------------------------------------------------ SELECTION-SCREEN PUSHBUTTON /20(40) MPROPOSE USER-COMMAND PROP. SELECTION-SCREEN END OF BLOCK B2 . * ------------------------------------------------------------ * ============================================================ * ============================================================ INITIALIZATION . * ============================================================ FREE MDATE . CLEAR MDATE . MDATE-SIGN = 'I' . MDATE-OPTION = 'EQ' . MDATE-LOW = SY-DATUM - 365 . MDATE-HIGH = SY-DATUM . APPEND MDATE . FREE CDATE . CLEAR CDATE . CDATE[] = MDATE[] . MPROPOSE = 'PROPOSE CRITERIA'. TEXT_S01 = 'SAPSCRIPT FORM' . TEXT_S02 = 'MODIFICATION DATE' . TEXT_S03 = 'USER MODIFYING FORM' . TEXT_S04 = 'USER CREATING FORM' . TEXT_S05 = 'CREATION DATE' . * ============================================================ AT SELECTION-SCREEN . * ============================================================ IF SY-UCOMM = 'PROP' . PERFORM PROVIDE_SAPSCRIPTS_CRITERIA . ENDIF . * ============================================================ START-OF-SELECTION . * ============================================================ LOOP AT MSAPSCRP . IF MSAPSCRP-SIGN = 'I' AND MSAPSCRP-OPTION = 'EQ' AND NOT ( MSAPSCRP-LOW IS INITIAL ) . OBJ_NAME = MSAPSCRP-LOW . CONCATENATE 'c:\test\' MSAPSCRP-LOW '.txt' INTO DATASET . SUBMIT RSTXSCRP WITH OBJ_FORM EQ OBJ_FORM WITH OBJ_STYL EQ OBJ_STYL WITH OBJ_TEXT EQ OBJ_TEXT WITH OBJ_ID EQ OBJ_ID WITH OBJ_LANG EQ OBJ_LANG WITH OBJ_PRIN EQ OBJ_PRIN WITH OBJ_NAME EQ OBJ_NAME WITH MODE EQ MODE WITH LOCALFIL EQ LOCALFIL WITH SERVFIL EQ SERVFIL WITH DATASET EQ DATASET WITH BINFILE EQ BINFILE WITH LISTFILE EQ LISTFILE WITH PLANGVEC EQ PLANGVEC WITH MASTLANG EQ MASTLANG AND RETURN . ENDIF . ENDLOOP . *&---------------------------------------------------------------------* *& Form PROVIDE_SAPSCRIPTS_CRITERIA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM PROVIDE_SAPSCRIPTS_CRITERIA. CLEAR MSAPSCRP . FREE MSAPSCRP . MSAPSCRP-SIGN = 'I' . MSAPSCRP-OPTION = 'EQ' . FREE I_TADIR . CLEAR I_TADIR . SELECT * FROM TADIR INTO CORRESPONDING FIELDS OF TABLE I_TADIR WHERE PGMID = 'R3TR' AND OBJECT = 'FORM' AND OBJ_NAME LIKE 'Z%' . LOOP AT I_TADIR . MFORM = I_TADIR-OBJ_NAME . CLEAR HEADER . CALL FUNCTION 'READ_FORM' EXPORTING * CLIENT = SY-MANDT FORM = MFORM * LANGUAGE = SY-LANGU * OLANGUAGE = ' ' * OSTATUS = ' ' * STATUS = ' ' * THROUGHCLIENT = ' ' * READ_ONLY_HEADER = ' ' * THROUGHLANGUAGE = ' ' IMPORTING * FORM_HEADER = * FOUND = HEADER = HEADER * OLANGUAGE = * TABLES * FORM_LINES = * PAGES = * PAGE_WINDOWS = * PARAGRAPHS = * STRINGS = * TABS = * WINDOWS = . IF ( ( HEADER-TDFUSER IN CUNAME ) AND ( HEADER-TDFDATE IN CDATE ) ) OR ( ( HEADER-TDLUSER IN MUNAME ) AND ( HEADER-TDLDATE IN MDATE ) ) . CLEAR MSAPSCRP-LOW . MSAPSCRP-LOW = I_TADIR-OBJ_NAME . APPEND MSAPSCRP . ENDIF . ENDLOOP . ENDFORM. " PROVIDE_SAPSCRIPTS_CRITERIA