Wednesday, 11 June 2014

Program to download all programs from Multiple package at a time

*&---------------------------------------------------------------------*
*& Report  YBTEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT YBTEST.

*REPORT ZZM_DOWN .
*table decleration
TABLES TADIR.
*data decleration
TYPESCODELINE(255).
DATASOURCECODE TYPE STANDARD TABLE OF CODELINE WITH HEADER LINE.
DATAPROG(60,
      CODEFILE  LIKE RLGRAP-FILENAME,
      FILENAME  TYPE STRING,
      FUNC_TAB    TYPE TABLE OF RS38L_INCL WITH HEADER LINE,
      PNAME       TYPE PNAME,
      POOLNAME    TYPE TLIBG-AREA,
      FMCOUNT(3)  TYPE ,
      PRGCOUNT(3TYPE N,
      MSG1(45).
*Internal table for prgram info
DATABEGIN OF PGMINFO OCCURS 0,
  PGMID TYPE TADIR-PGMID,
  OBJECT TYPE TADIR-OBJECT,
  OBJ_NAME TYPE TADIR-OBJ_NAME,
  DEVCLASS TYPE TADIR-DEVCLASS,
END OF PGMINFO.
data pckg type TADIR-DEVCLASS.
*____________________________________________________________________
*Get Development class from User
select-OPTIONSgt_PckG for TADIR-DEVCLASS.
*____________________________________________________________________
*Initialize variables
FMCOUNT  '000'.
PRGCOUNT '000'.
*____________________________________________________________________
*Proceed one by one

LOOP at gt_pckg[] INTO pckg.
pckg pckg+3(27.

PERFORM CLEARDATA.
PERFORM WRITE_PRGRMS.
PERFORM CLEARDATA.
PERFORM WRITE_FMS.
ENDLOOP.
CONCATENATE PRGCOUNT ' Prgs Files & '
            FMCOUNT ' FM Files Written' INTO MSG1.
MESSAGE S001(00WITH MSG1.
*____________________________________________________________________
*&------------------------------------------------------------------*
*&      Form  cleardata
*&------------------------------------------------------------------*
*       text
*-------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*-------------------------------------------------------------------*
FORM CLEARDATA.
  CLEARSOURCECODE,
         PGMINFO[],
         PROG,
         CODEFILE,
         FILENAME,
         FUNC_TAB[],
         PNAME,
         POOLNAME.
ENDFORM.                    " cleardata
*&------------------------------------------------------------------*
*&      Form  write_prgrms
*&------------------------------------------------------------------*
*       text
*-------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*-------------------------------------------------------------------*
FORM WRITE_PRGRMS.
  DATAPRGMSG(45).
*select statement.
  SELECT PGMID OBJECT OBJ_NAME DEVCLASS FROM TADIR INTO TABLE PGMINFO
  WHERE PGMID 'R3TR' AND
  OBJECT      'PROG' AND
  DEVCLASS    PCKG.
  LOOP AT PGMINFO.
    PROG PGMINFO-OBJ_NAME.
    READ REPORT PROG INTO SOURCECODE.
    CONCATENATE 'C:\BHARAT\'
    PCKG
    'Reports\'
    PROG
    '.txt'
    INTO CODEFILE.
    FILENAME CODEFILE.
*function module for download files into local system
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        FILENAME                FILENAME
      TABLES
        DATA_TAB                SOURCECODE
      EXCEPTIONS
        FILE_WRITE_ERROR        1
        NO_BATCH                2
        GUI_REFUSE_FILETRANSFER 3
        INVALID_TYPE            4
        NO_AUTHORITY            5
        UNKNOWN_ERROR           6
        HEADER_NOT_ALLOWED      7
        SEPARATOR_NOT_ALLOWED   8
        FILESIZE_NOT_ALLOWED    9
        HEADER_TOO_LONG         10
        DP_ERROR_CREATE         11
        DP_ERROR_SEND           12
        DP_ERROR_WRITE          13
        UNKNOWN_DP_ERROR        14
        ACCESS_DENIED           15
        DP_OUT_OF_MEMORY        16
        DISK_FULL               17
        DP_TIMEOUT              18
        FILE_NOT_FOUND          19
        DATAPROVIDER_EXCEPTION  20
        CONTROL_FLUSH_ERROR     21
        OTHERS                  22.
    IF SY-SUBRC <> 0.
*    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ELSE.
      PRGCOUNT PRGCOUNT + 1.
    ENDIF.
    CLEAR PROG.
    CLEARSOURCECODE[] SOURCECODE FUNC_TAB.
  ENDLOOP.
  CONCATENATE PRGCOUNT ' Prgs Files Written' INTO PRGMSG..
  MESSAGE S001(00WITH PRGMSG.
ENDFORM.                    " write_prgrms
*____________________________________________________________________
*&------------------------------------------------------------------*
*&      Form  write_fms
*&------------------------------------------------------------------*
*       text
*-------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*-------------------------------------------------------------------*
FORM WRITE_FMS.
  DATAFMMSG(45).
*select statement to get all function groups.
  SELECT PGMID OBJECT OBJ_NAME DEVCLASS FROM TADIR INTO TABLE PGMINFO
  WHERE PGMID 'R3TR' AND
  OBJECT 'FUGR' AND
  DEVCLASS PCKG.
  LOOP AT PGMINFO.
    POOLNAME PGMINFO-OBJ_NAME.
    CALL FUNCTION 'RS_FUNCTION_POOL_CONTENTS'
      EXPORTING
        FUNCTION_POOL                 POOLNAME
      TABLES
        FUNCTAB                       FUNC_TAB
*   EXCEPTIONS
*     FUNCTION_POOL_NOT_FOUND       = 1
*     OTHERS                        = 2
              .
    IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT FUNC_TAB .
      PROG FUNC_TAB-INCLUDE.
      READ REPORT PROG INTO SOURCECODE.
      CONCATENATE 'C:\ABAP\'
      PCKG
      'FM\'
      FUNC_TAB-FUNCNAME
      '.txt'
      INTO CODEFILE.
      FILENAME CODEFILE.
*function module for download files into local system
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                FILENAME
        TABLES
          DATA_TAB                SOURCECODE
        EXCEPTIONS
          FILE_WRITE_ERROR        1
          NO_BATCH                2
          GUI_REFUSE_FILETRANSFER 3
          INVALID_TYPE            4
          NO_AUTHORITY            5
          UNKNOWN_ERROR           6
          HEADER_NOT_ALLOWED      7
          SEPARATOR_NOT_ALLOWED   8
          FILESIZE_NOT_ALLOWED    9
          HEADER_TOO_LONG         10
          DP_ERROR_CREATE         11
          DP_ERROR_SEND           12
          DP_ERROR_WRITE          13
          UNKNOWN_DP_ERROR        14
          ACCESS_DENIED           15
          DP_OUT_OF_MEMORY        16
          DISK_FULL               17
          DP_TIMEOUT              18
          FILE_NOT_FOUND          19
          DATAPROVIDER_EXCEPTION  20
          CONTROL_FLUSH_ERROR     21
          OTHERS                  22.
      IF SY-SUBRC <> 0.
*    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ELSE.
        FMCOUNT =  FMCOUNT + 1.
      ENDIF.
      CLEAR PROG.
      CLEARSOURCECODE[] SOURCECODE FUNC_TAB.
    ENDLOOP.
  ENDLOOP.
  CONCATENATE FMCOUNT ' FM Files Written' INTO FMMSG..
  MESSAGE S001(00WITH FMMSG.
ENDFORM.                    " write_fms

No comments:

Post a Comment