How assign ABAP programs & T codes to auth groups R3 4.71, oracle 9.2.0.7

Hi Experts,
How to assign ABAP programs and customized transactions to authorization groups. R3 4.71, oracle 9.2.0.7, Sun Solaris.
Can some one help me...
Thanks in advance. . .

Hi Jalli,
Take a look at how SAP uses tcode S_ALR_87101286 to control the start of a report either via SE38 or via the tcode itself.
In that transaction you can also read the documentation on protecting and restoring ABAP reports using the program authorization group concept. Click on the "information" icon or start "transaction" .HE from the first screen S_ALR_87101286 for more detailed infos, or select "Documentation" in SE38.
Cheers,
Julius

Similar Messages

  • How to Upload Program Source Code

    Hello,
    i have a program which downloads the source code into text files.
    I need to create all these into another server.
    so i need a program to upload these programs.
    Any idea how to it? Thanks in advance.
    Thanks&Regards,
    Sayanna Damerla

    Try this custom code:
    Upload and Download ABAP Source Code
    Source Code Listing
    Report: ZKBPROGS             *
    Function   : Up/Download ABAP reports complete with texts            *
            - this program does not update TRDIR with the                *
              TRDIR entries that are in the program uploaded.  Instead,  *
              current users stats are used.          *
            - this program allows selection of reports from a list or    *
              a single report can be tuped in and uploaded               *
            - this program also updates TADIR so that a development class*
              is assigned to the program             *
            - this program checks to see if the program already has a    *
              TRDIR entry, and if it does, warns the user                *
            - this program will save/restore the program documenation too*
    REPORT ZKBPROGS
           NO STANDARD PAGE HEADING
           LINE-SIZE  255.
    Declare Database Objects     *
    tables:
      DOKIL,
      TRDIR.
    Constants*
    CONSTANTS:
      MC_TRDIR_IDENTIFIER(72)  TYPE C VALUE '%&%& RDIR',
      MC_REPORT_IDENTIFIER(72) TYPE C VALUE '%&%& REPO',
      MC_TEXT_IDENTIFIER(72)   TYPE C VALUE '%&%& TEXP',
      MC_THEAD_IDENTIFIER(72)  TYPE C VALUE '%&%& HEAD',
      MC_DOC_IDENTIFIER(72)    TYPE C VALUE '%&%& DOKL',
      MC_TRDIR_SHORT(4)        TYPE C VALUE 'RDIR',
      MC_REPORT_SHORT(4)       TYPE C VALUE 'REPO',
      MC_TEXT_SHORT(4)         TYPE C VALUE 'TEXP',
      MC_THEAD_SHORT(4)        TYPE C VALUE 'HEAD',
      MC_DOC_SHORT(4)          TYPE C VALUE 'DOKP'.
    Declare Module level data structures             *
    DATA: BEGIN OF MTAB_PROGRAM_SOURCE OCCURS 0,
            LINE(72) TYPE C,
          END OF MTAB_PROGRAM_SOURCE.
    DATA: MTAB_PROGRAM_TRDIR LIKE TRDIR OCCURS 0 WITH HEADER LINE.
    DATA: MTAB_PROGRAM_TEXTS LIKE TEXTPOOL OCCURS 0 WITH HEADER LINE.
    DATA: MSTR_THEAD LIKE THEAD.
    DATA: BEGIN OF MTAB_PROGRAM_FILE OCCURS 0,
            LINE(275) TYPE C,
          END OF MTAB_PROGRAM_FILE.
    DATA: BEGIN OF MTAB_DIRECTORY OCCURS 0,
            NAME LIKE TRDIR-NAME,
            DESC(72) TYPE C,
            SAVENAME LIKE RLGRAP-FILENAME,
          END OF MTAB_DIRECTORY.
    DATA: BEGIN OF MTAB_PROGRAM_DOCUMENTATION OCCURS 0,
            LINE(255) TYPE C,
          END OF MTAB_PROGRAM_DOCUMENTATION.
    Selection Screen             *
    *-- Options for upload/download of programs
    SELECTION-SCREEN BEGIN OF BLOCK FRM_OPTIONS WITH FRAME TITLE TEXT-UDL.
    PARAMETERS:
      RB_DOWN RADIOBUTTON GROUP UDL DEFAULT 'X'.       " Download reports
    SELECTION-SCREEN BEGIN OF BLOCK FRM_TRDIR WITH FRAME TITLE TEXT-DIR.
    SELECT-OPTIONS:
      S_NAME  FOR TRDIR-NAME,              " Program Name
      S_SUBC  FOR TRDIR-SUBC               " Program Type
              DEFAULT 'F' OPTION EQ SIGN E," Exclude Functions by default
      S_CNAM  FOR TRDIR-CNAM               " Created by
              DEFAULT SY-UNAME,
      S_UNAM  FOR TRDIR-UNAM,              " Last Changed by
      S_CDAT  FOR TRDIR-CDAT,              " Creation date
      S_UDAT  FOR TRDIR-UDAT.              " Last update date
    SELECTION-SCREEN END OF BLOCK FRM_TRDIR.
    *-- Options for uploading programs
    PARAMETERS:
      RB_UP   RADIOBUTTON GROUP UDL.       " Upload reports
    SELECTION-SCREEN BEGIN OF BLOCK FRM_UPLOAD WITH FRAME TITLE TEXT-UPL.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(29) TEXT-SNG.
    PARAMETERS:
      RB_FILE RADIOBUTTON GROUP HOW DEFAULT 'X'.
    SELECTION-SCREEN COMMENT 33(42) TEXT-FNA.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS:
      RB_LIST RADIOBUTTON GROUP HOW.
    SELECTION-SCREEN END OF BLOCK FRM_UPLOAD.
    SELECTION-SCREEN END OF BLOCK FRM_OPTIONS.
    *-- Options for up/downloading programs
    SELECTION-SCREEN BEGIN OF BLOCK FRM_FILEN WITH FRAME TITLE TEXT-FIL.
    PARAMETERS:
      RB_DOS  RADIOBUTTON GROUP FIL DEFAULT 'X', " Save to local
      RB_UNIX RADIOBUTTON GROUP FIL,       " Save to UNIX
      P_PATH  LIKE RLGRAP-FILENAME         " Path to save files to
            DEFAULT 'c:\temp\'.
    SELECTION-SCREEN END OF BLOCK FRM_FILEN.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_NAME-LOW.
      CALL FUNCTION 'F4_PROGRAM'
           EXPORTING
                OBJECT             = S_NAME-LOW
                SUPPRESS_SELECTION = 'X'
           IMPORTING
                RESULT             = S_NAME-LOW
           EXCEPTIONS
                OTHERS             = 1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_NAME-HIGH.
      CALL FUNCTION 'F4_PROGRAM'
           EXPORTING
                OBJECT             = S_NAME-HIGH
                SUPPRESS_SELECTION = 'X'
           IMPORTING
                RESULT             = S_NAME-HIGH
           EXCEPTIONS
                OTHERS             = 1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_UNAM-LOW.
      PERFORM GET_NAME USING 'S_UNAM-LOW'
                    CHANGING S_UNAM-LOW.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_UNAM-HIGH.
      PERFORM GET_NAME USING 'S_UNAM-HIGH'
                    CHANGING S_UNAM-HIGH.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_CNAM-LOW.
      PERFORM GET_NAME USING 'S_CNAM-LOW'
                    CHANGING S_CNAM-LOW.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_CNAM-HIGH.
      PERFORM GET_NAME USING 'S_CNAM-HIGH'
                    CHANGING S_CNAM-HIGH.
    TOP-OF-PAGE.
      IF RB_LIST = 'X'.
        FORMAT COLOR COL_HEADING.
        NEW-LINE.
        WRITE: AT 3 TEXT-H01,
               AT 15 TEXT-H03.
        FORMAT COLOR OFF.
      ENDIF.
    AT LINE-SELECTION.
      CHECK RB_LIST = 'X'.                 " only do in list mode
      READ LINE SY-CUROW FIELD VALUE MTAB_DIRECTORY-SAVENAME.
    *-- Read file into an internal table
      PERFORM READ_REPORT_FROM_DISK TABLES MTAB_PROGRAM_FILE
                USING  MTAB_DIRECTORY-SAVENAME.
    *-- Split table into TADIR entry, report lines, and report text
      PERFORM SPLIT_INCOMING_FILE TABLES MTAB_PROGRAM_FILE
                     MTAB_PROGRAM_SOURCE
                     MTAB_PROGRAM_TEXTS
                     MTAB_PROGRAM_DOCUMENTATION
            CHANGING TRDIR
                     MSTR_THEAD.
    *-- Save all of the data
      PERFORM INSERT_NEW_REPORT TABLES MTAB_PROGRAM_SOURCE
                   MTAB_PROGRAM_TEXTS
                   MTAB_PROGRAM_DOCUMENTATION
            USING  TRDIR
                   MSTR_THEAD.
    Start of processing          *
    START-OF-SELECTION.
      FORMAT COLOR COL_NORMAL.
      IF RB_DOWN = 'X'.
        PERFORM DOWNLOAD_REPORTS.
      ELSEIF RB_UP = 'X'.
        PERFORM UPLOAD_REPORTS.
      ENDIF.
    END-OF-SELECTION.
      IF RB_DOWN = 'X'.
        CONCATENATE P_PATH
                    'directory.txt'
          INTO P_PATH.
        PERFORM SAVE_TABLE_TO_FILE TABLES MTAB_DIRECTORY
               USING  P_PATH.
      ENDIF.
          FORM UPLOAD_REPORTS   *
    FORM UPLOAD_REPORTS.
    *-- Can upload a reports entered in selection criteria or
    *-- select from a list.  List can be from index.txt in same directory
    *-- (created by the download) or by reading the first line of each file
    *-- in the directory.
      IF RB_FILE = 'X'. " Upload single program from a file
    *-- Read file into an internal table
        PERFORM READ_REPORT_FROM_DISK TABLES MTAB_PROGRAM_FILE
                  USING  P_PATH.
    *-- Split table into TADIR entry, report lines, and report text
        PERFORM SPLIT_INCOMING_FILE TABLES MTAB_PROGRAM_FILE
                       MTAB_PROGRAM_SOURCE
                       MTAB_PROGRAM_TEXTS
                       MTAB_PROGRAM_DOCUMENTATION
              CHANGING TRDIR
                       MSTR_THEAD.
    *-- Save all of the data
        PERFORM INSERT_NEW_REPORT TABLES MTAB_PROGRAM_SOURCE
                     MTAB_PROGRAM_TEXTS
                     MTAB_PROGRAM_DOCUMENTATION
              USING  TRDIR
                     MSTR_THEAD.
      ELSEIF RB_LIST = 'X'. " Show list for user to choose from
    *-- get list of report names/descriptions from directory text
        CONCATENATE P_PATH
                    'directory.txt'
        INTO P_PATH.
        PERFORM READ_REPORT_FROM_DISK TABLES MTAB_DIRECTORY
                  USING  P_PATH.
        SORT MTAB_DIRECTORY.
    *-- Write out list of report names/descriptions
        LOOP AT MTAB_DIRECTORY.
          WRITE:
            / MTAB_DIRECTORY-NAME UNDER TEXT-H01,
              MTAB_DIRECTORY-DESC UNDER TEXT-H03,
              MTAB_DIRECTORY-SAVENAME.
        ENDLOOP.
    *-- Process user selections for reports to upload.
      ENDIF.
    ENDFORM.           " upload_reports
          FORM DOWNLOAD_REPORTS *
          From the user selections, get all programs that meet the      *
          criteria, and save them in ftab_program_directory.            *
          Also save the report to disk.             *
    FORM DOWNLOAD_REPORTS.
      DATA:
        LC_FULL_FILENAME LIKE RLGRAP-FILENAME.
    *-- The table is put into an internal table because the program will
    *-- abend if multiple transfers to a dataset occur within a SELECT/
    *-- ENDSELCT (tested on 3.1H)
      SELECT * FROM  TRDIR
             INTO TABLE MTAB_PROGRAM_TRDIR
             WHERE  NAME  IN S_NAME
             AND    SUBC  IN S_SUBC
             AND    CNAM  IN S_CNAM
             AND    UNAM  IN S_UNAM
             AND    CDAT  IN S_CDAT
             AND    UDAT  IN S_UDAT.
      LOOP AT MTAB_PROGRAM_TRDIR.
    *-- Clear out text and source code tables
        CLEAR:
          MTAB_PROGRAM_FILE,
          MTAB_PROGRAM_SOURCE,
          MTAB_PROGRAM_TEXTS,
          MTAB_PROGRAM_DOCUMENTATION.
        REFRESH:
          MTAB_PROGRAM_FILE,
          MTAB_PROGRAM_SOURCE,
          MTAB_PROGRAM_TEXTS,
          MTAB_PROGRAM_DOCUMENTATION.
    *-- Get the report
        READ REPORT MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_SOURCE.
    *-- Get the text for the report
        READ TEXTPOOL MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_TEXTS.
    *-- Get the documentation for the report
        CLEAR DOKIL.
        SELECT * UP TO 1 ROWS FROM DOKIL
               WHERE  ID          = 'RE'
               AND    OBJECT      = MTAB_PROGRAM_TRDIR-NAME
               AND    LANGU       = SY-LANGU
               AND    TYP         = 'E'
               ORDER BY VERSION DESCENDING.
        ENDSELECT.
    *-- Documentation exists for this object
        IF SY-SUBRC = 0.
          CALL FUNCTION 'DOCU_READ'
               EXPORTING
                    ID      = DOKIL-ID
                    LANGU   = DOKIL-LANGU
                    OBJECT  = DOKIL-OBJECT
                    TYP     = DOKIL-TYP
                    VERSION = DOKIL-VERSION
               IMPORTING
                    HEAD    = MSTR_THEAD
               TABLES
                    LINE    = MTAB_PROGRAM_DOCUMENTATION
               EXCEPTIONS
                    OTHERS  = 1.
        ENDIF.
    *-- Put the report code and texts into a single file
    *-- Put the identifier line in so that the start of the TRDIR line
    *-- is marked
        CONCATENATE MC_TRDIR_IDENTIFIER
        MTAB_PROGRAM_TRDIR-NAME
        INTO MTAB_PROGRAM_FILE-LINE.
        APPEND MTAB_PROGRAM_FILE.
    *-- Add the TRDIR line
        MTAB_PROGRAM_FILE-LINE = MTAB_PROGRAM_TRDIR.
        APPEND MTAB_PROGRAM_FILE.
    *-- Put the identifier line in so that the start of the report code
    *-- is marked
        CONCATENATE MC_REPORT_IDENTIFIER
                    MTAB_PROGRAM_TRDIR-NAME
          INTO MTAB_PROGRAM_FILE-LINE.
        APPEND MTAB_PROGRAM_FILE.
    *-- Add the report code
        LOOP AT MTAB_PROGRAM_SOURCE.
          MTAB_PROGRAM_FILE = MTAB_PROGRAM_SOURCE.
          APPEND MTAB_PROGRAM_FILE.
        ENDLOOP.
    *-- Put the identifier line in so that the start of the report text
    *-- is marked
        CONCATENATE MC_TEXT_IDENTIFIER
                    MTAB_PROGRAM_TRDIR-NAME
          INTO MTAB_PROGRAM_FILE-LINE.
        APPEND MTAB_PROGRAM_FILE.
    *-- Add the report texts
        LOOP AT MTAB_PROGRAM_TEXTS.
          MTAB_PROGRAM_FILE = MTAB_PROGRAM_TEXTS.
          APPEND MTAB_PROGRAM_FILE.
        ENDLOOP.
    *-- Put the identifier line in so that the start of the THEAD record
    *-- is marked
        CONCATENATE MC_THEAD_IDENTIFIER
                    MTAB_PROGRAM_TRDIR-NAME
          INTO MTAB_PROGRAM_FILE-LINE.
        APPEND MTAB_PROGRAM_FILE.
        MTAB_PROGRAM_FILE = MSTR_THEAD.
        APPEND MTAB_PROGRAM_FILE.
    *-- Put the identifier line in so that the start of the report
    *-- documentation is marked
        CONCATENATE MC_DOC_IDENTIFIER
                    MTAB_PROGRAM_TRDIR-NAME
          INTO MTAB_PROGRAM_FILE-LINE.
        APPEND MTAB_PROGRAM_FILE.
    *-- Add the report documentation
        LOOP AT MTAB_PROGRAM_DOCUMENTATION.
          MTAB_PROGRAM_FILE = MTAB_PROGRAM_DOCUMENTATION.
          APPEND MTAB_PROGRAM_FILE.
        ENDLOOP.
    *-- Make the fully pathed filename that report will be saved to
        CONCATENATE P_PATH
                    MTAB_PROGRAM_TRDIR-NAME
                    '.txt'
          INTO LC_FULL_FILENAME.
        PERFORM SAVE_TABLE_TO_FILE TABLES MTAB_PROGRAM_FILE
               USING  LC_FULL_FILENAME.
    *-- Write out message with Program Name/Description
        READ TABLE MTAB_PROGRAM_TEXTS WITH KEY ID = 'R'.
        IF SY-SUBRC = 0.
          MTAB_DIRECTORY-NAME = MTAB_PROGRAM_TRDIR-NAME.
          MTAB_DIRECTORY-DESC = MTAB_PROGRAM_TEXTS-ENTRY.
          MTAB_DIRECTORY-SAVENAME = LC_FULL_FILENAME.
          APPEND MTAB_DIRECTORY.
          WRITE: / MTAB_PROGRAM_TRDIR-NAME,
                   MTAB_PROGRAM_TEXTS-ENTRY(65) COLOR COL_HEADING.
        ELSE.
          MTAB_DIRECTORY-NAME = MTAB_PROGRAM_TRDIR-NAME.
          MTAB_DIRECTORY-DESC = 'No description available'.
          MTAB_DIRECTORY-SAVENAME = LC_FULL_FILENAME.
          APPEND MTAB_DIRECTORY.
          WRITE: / MTAB_PROGRAM_TRDIR-NAME.
        ENDIF.
      ENDLOOP.
    ENDFORM.           " BUILD_PROGRAM_DIRECTORY
          FORM SAVE_TABLE_TO_FILE                   *
    -->  FTAB_TABLE            *
    -->  F_FILENAME            *
    FORM SAVE_TABLE_TO_FILE TABLES FTAB_TABLE
        USING  F_FILENAME.
      IF RB_DOS = 'X'.                  " Save file to presentation server
        CALL FUNCTION 'WS_DOWNLOAD'
             EXPORTING
                  FILENAME = F_FILENAME
                  FILETYPE = 'ASC'
             TABLES
                  DATA_TAB = FTAB_TABLE
             EXCEPTIONS
                  OTHERS   = 4.
        IF SY-SUBRC NE 0.
          WRITE: / 'Error opening dataset' COLOR COL_NEGATIVE,
                   F_FILENAME COLOR COL_NEGATIVE.
        ENDIF.
      ELSE.            " Save file to application server
        OPEN DATASET F_FILENAME FOR OUTPUT IN TEXT MODE.
        IF SY-SUBRC = 0.
          LOOP AT FTAB_TABLE.
            TRANSFER FTAB_TABLE TO F_FILENAME.
            IF SY-SUBRC NE 0.
              WRITE: / 'Error writing record to file;' COLOR COL_NEGATIVE,
                       F_FILENAME COLOR COL_NEGATIVE.
            ENDIF.
          ENDLOOP.
        ELSE.
          WRITE: / 'Error opening dataset' COLOR COL_NEGATIVE,
                   F_FILENAME COLOR COL_NEGATIVE.
        ENDIF.
      ENDIF.           " End RB_DOS
    ENDFORM.           " SAVE_PROGRAM
          FORM READ_REPORT_FROM_DISK                *
          Read report into internal table.  Can read from local or      *
          remote computer       *
    FORM READ_REPORT_FROM_DISK TABLES FTAB_TABLE
           USING  F_FILENAME.
      DATA:
         LC_MESSAGE(128) TYPE C.
      CLEAR   FTAB_TABLE.
      REFRESH FTAB_TABLE.
      IF RB_DOS = 'X'.
        TRANSLATE F_FILENAME USING '/\'.   " correct slash for Dos PC file
        CALL FUNCTION 'WS_UPLOAD'
             EXPORTING
                  FILENAME            = F_FILENAME
                  FILETYPE            = 'ASC'
             TABLES
                  DATA_TAB            = FTAB_TABLE
             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
                  OTHERS              = 8.
        IF SY-SUBRC >< 0.
          WRITE: / 'Error reading file from local PC' COLOR COL_NEGATIVE.
        ENDIF.
      ELSEIF RB_UNIX = 'X'.
        TRANSLATE F_FILENAME USING '\/'.   " correct slash for unix
        OPEN DATASET F_FILENAME FOR INPUT MESSAGE LC_MESSAGE IN TEXT MODE.
        IF SY-SUBRC = 0.
          DO.
            READ DATASET F_FILENAME INTO FTAB_TABLE.
            IF SY-SUBRC = 0.
              APPEND FTAB_TABLE.
            ELSE.
              EXIT.
            ENDIF.
          ENDDO.
          CLOSE DATASET F_FILENAME.
        ELSE.
          WRITE: / 'Error reading file from remote computer'
      COLOR COL_NEGATIVE,
                 / LC_MESSAGE,
                 / F_FILENAME.
          SY-SUBRC = 4.
        ENDIF.
      ENDIF.
    ENDFORM.           " READ_REPORT_FROM_DISK
          FORM SPLIT_INCOMING_FILE                  *
    -->  FTAB_PROGRAM_FILE     *
    -->  FTAB_PROGRAM_SOURCE   *
    -->  ` *
    -->  FTAB_PROGRAM_TEXTS    *
    FORM SPLIT_INCOMING_FILE TABLES FTAB_PROGRAM_FILE
                     STRUCTURE MTAB_PROGRAM_FILE
                FTAB_PROGRAM_SOURCE
                     STRUCTURE MTAB_PROGRAM_SOURCE
                FTAB_PROGRAM_TEXTS
                     STRUCTURE MTAB_PROGRAM_TEXTS
                FTAB_PROGRAM_DOCUMENTATION
                    STRUCTURE MTAB_PROGRAM_DOCUMENTATION
       CHANGING FSTR_TRDIR
                FSTR_THEAD.
      DATA:
        LC_DATATYPE(4) TYPE C,             " Type of data, REPO, TEXP, RDIR
        LC_PROGRAM_FILE LIKE MTAB_PROGRAM_FILE.
      LOOP AT FTAB_PROGRAM_FILE.
        LC_PROGRAM_FILE = FTAB_PROGRAM_FILE.
        CASE LC_PROGRAM_FILE(9).
          WHEN MC_TRDIR_IDENTIFIER.
            LC_DATATYPE = MC_TRDIR_SHORT.
          WHEN MC_REPORT_IDENTIFIER.
            LC_DATATYPE = MC_REPORT_SHORT.
          WHEN MC_TEXT_IDENTIFIER.
            LC_DATATYPE = MC_TEXT_SHORT.
          WHEN MC_DOC_IDENTIFIER.
            LC_DATATYPE = MC_DOC_SHORT.
          WHEN MC_THEAD_IDENTIFIER.
            LC_DATATYPE = MC_THEAD_SHORT.
          WHEN OTHERS. " Actual contents of report, trdir, or text
            CASE LC_DATATYPE.
              WHEN MC_TRDIR_SHORT.
                FSTR_TRDIR = FTAB_PROGRAM_FILE.
              WHEN MC_REPORT_SHORT.
                FTAB_PROGRAM_SOURCE = FTAB_PROGRAM_FILE.
                APPEND FTAB_PROGRAM_SOURCE.
              WHEN MC_TEXT_SHORT.
                FTAB_PROGRAM_TEXTS = FTAB_PROGRAM_FILE.
                APPEND FTAB_PROGRAM_TEXTS.
              WHEN MC_THEAD_SHORT.
                FSTR_THEAD = FTAB_PROGRAM_FILE.
              WHEN MC_DOC_SHORT.
                FTAB_PROGRAM_DOCUMENTATION = FTAB_PROGRAM_FILE.
                APPEND FTAB_PROGRAM_DOCUMENTATION.
            ENDCASE.
        ENDCASE.
      ENDLOOP.
    ENDFORM.           " SPLIT_INCOMING_FILE
          FORM INSERT_NEW_REPORT*
    -->  FTAB_PROGRAM_SOURCE   *
    -->  FTAB_PROGRAM_TEXTS    *
    -->  F_TRDIR               *
    FORM INSERT_NEW_REPORT TABLES FTAB_PROGRAM_SOURCE
                  STRUCTURE MTAB_PROGRAM_SOURCE
              FTAB_PROGRAM_TEXTS
                   STRUCTURE MTAB_PROGRAM_TEXTS
              FTAB_PROGRAM_DOCUMENTATION
                   STRUCTURE MTAB_PROGRAM_DOCUMENTATION
       USING  FSTR_TRDIR LIKE TRDIR
              FSTR_THEAD LIKE MSTR_THEAD.
      DATA:
        LC_OBJ_NAME LIKE E071-OBJ_NAME,
        LC_LINE2(40)     TYPE C,
        LC_ANSWER(1)     TYPE C.
    *-- read trdir to see if the report already exists, if it does, prompt
    *-- user to overwrite or abort.
      SELECT SINGLE * FROM TRDIR WHERE NAME = FSTR_TRDIR-NAME.
      IF SY-SUBRC = 0. " Already exists
        CONCATENATE 'want to overwrite report'
                    FSTR_TRDIR-NAME
          INTO LC_LINE2 SEPARATED BY SPACE.
        CONCATENATE LC_LINE2
          INTO LC_LINE2.
        CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
             EXPORTING
                  DEFAULTOPTION  = 'N'
                  TEXTLINE1   = 'The selected report already exists, do you'
                  TEXTLINE2      = LC_LINE2
                  TITEL          = 'Report already exists'
                  CANCEL_DISPLAY = SPACE
             IMPORTING
                  ANSWER         = LC_ANSWER
             EXCEPTIONS
                  OTHERS         = 1.
      ELSE.
        LC_ANSWER = 'J'.
      ENDIF.
      IF LC_ANSWER = 'J'.
    *-- Create the TADIR entry.  (TRDIR entry created by INSERT REPORT)
        LC_OBJ_NAME = TRDIR-NAME.
        CALL FUNCTION 'TR_TADIR_POPUP_ENTRY_E071'
             EXPORTING
                  WI_E071_PGMID     = 'R3TR'
                  WI_E071_OBJECT    = 'PROG'
                  WI_E071_OBJ_NAME  = LC_OBJ_NAME
                  WI_TADIR_DEVCLASS = '$TMP'
             EXCEPTIONS
                  EXIT              = 3
                  OTHERS            = 4.
        IF SY-SUBRC = 0.
    *-- Create Report
          INSERT REPORT FSTR_TRDIR-NAME FROM FTAB_PROGRAM_SOURCE.
    *-- Create Texts
          INSERT TEXTPOOL FSTR_TRDIR-NAME FROM FTAB_PROGRAM_TEXTS
                 LANGUAGE SY-LANGU.
    *-- Save Documentation
          CALL FUNCTION 'DOCU_UPDATE'
               EXPORTING
                    HEAD    = FSTR_THEAD
                    STATE   = 'A'
                    TYP     = 'E'
                    VERSION = '1'
               TABLES
                    LINE    = FTAB_PROGRAM_DOCUMENTATION
               EXCEPTIONS
                    OTHERS  = 1.
        ELSE.
          WRITE: / 'Error updating the TADIR entry' COLOR COL_NEGATIVE,
                   'Program' COLOR COL_NEGATIVE INTENSIFIED OFF,
                   FSTR_TRDIR-NAME, 'was not loaded into SAP.'
                      COLOR COL_NEGATIVE INTENSIFIED OFF.
        ENDIF.
      ELSE.
        WRITE: / FSTR_TRDIR-NAME COLOR COL_NEGATIVE,
                 'was not uploaded into SAP.  Action cancelled by user'
                     COLOR COL_NEGATIVE INTENSIFIED OFF.
      ENDIF.
    ENDFORM.           " INSERT_NEW_REPORT
          FORM GET_NAME         *
    -->  VALUE(F_FIELD)        *
    -->  F_NAME                *
    FORM GET_NAME USING VALUE(F_FIELD)
               CHANGING F_NAME.
      DATA: LTAB_FIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE,
            LC_PROG LIKE D020S-PROG,
            LC_DNUM LIKE D020S-DNUM.
      TRANSLATE F_FIELD TO UPPER CASE.
      refresh ltab_fields.
      LTAB_FIELDS-FIELDNAME = F_FIELD.
      append ltab_fields.
      LC_PROG =  SY-REPID .
      LC_DNUM =  SY-DYNNR .
      CALL FUNCTION 'DYNP_VALUES_READ'
           EXPORTING
                DYNAME     = LC_PROG
                DYNUMB     = LC_DNUM
           TABLES
                dynpfields = ltab_fields
           EXCEPTIONS
                OTHERS     = 01.
      read table ltab_fields index 1.
      IF SY-SUBRC EQ 0.
        F_NAME = LTAB_FIELDS-FIELDVALUE.
        refresh ltab_fields.
      ENDIF.
      CALL FUNCTION 'F4_USER'
           EXPORTING
                OBJECT = F_NAME
           IMPORTING
                RESULT = F_NAME.
    ENDFORM.           " GET_NAME
    Program Texts
    DIR             File Download Options (File Selection)
    FIL             File Options     
    FNA             Enter filename below (under File Options)
    H01             Prog Name
    H03             Program Description
    SNG             Upload a single file
    UDL             Upload to SAP/Download from SAP
    UPL             File Upload Options
    R               Backup/Restore program source code with texts
    P_PATH          Path to save programs to
    RB_DOS          Files on local computer
    RB_DOWN         Download Programs
    RB_FILE         Upload a single file
    RB_LIST         Select program(s) from a list          
    RB_UNIX         Files on remote computer               
    RB_UP           Upload Programs to SAP                 
    S_CDAT          Date Created       
    S_CNAM          Created by UserID  
    S_NAME          Program Name       
    S_SUBC          Program Type       
    S_UDAT          Date Changed       
    S_UNAM          Last Changed by UserID     
    Regards,
    Joy.

  • Change ABAP Program return code

    Dear ABAP Gurus,
    I need to change internal return(message) code inside APAP program (report).
    Program starts  as the first program in a scheduled job with several programs in, and we want to have the following  programs do not start in some cases which are evaluated in the first program. Normally program ends will internal return (message) code 0000. I need to change this return code.
    Thank you very much,
    Svetlana

    Hi Svetlana,
    Can I suggest a solution that is closer to standard?
    You could schedule your job with only the first program due to run.  If it runs sucessfully, it will programatically submit a new job with the next abap program to run, and if not, it write a log (spool, or messages).
    How does that sound?
    If your first program is a standard program and you don't wish to modify it, you could schedule your job with the standard program first, followed by a custom program that could determine the sucess of the first (by checking database entries, or by reading the spool of the first program, etc.) and then it would submit the subsequent jobs (or not).
    Hope that helps.
    Brad

  • How to format programming source-code in a Framemaker document?

    I have to write up a technical document in Framemaker that explains various programming source-code.
    So my document consists of a bunch of text, followed by a bunch of source code (Java, XML) and then followed by more text, etc.
    What I'm confused about is how to format source code as part of my document. Has anyone done this for a technical document and come across any instructions or tips? So far my Googling hasn't produced anything relevant to what I need to do.

    If you haven't created a paragraph format that uses a fixed-width font, such as Courier or a console font, you need to do that.
    If you want to preserve line breaks in the code, and if it has fairly long lines, you're likely to need to specify a font size of 7 pt. or so. For really long lines, you may need to go to a landscape page format or incorporate a way of telling your readers that the lines wrap.
    Those are the basics. If you want to get fancier, I usually set up a table so I can apply a contrasting background tone, and format each line of code as a cell (it's a one-column table). You can also add a second column to hold line numbers, if you want.
    Art

  • ABAP PROGRAM SOURCE CODE.

    i've to download se38 program source code into a flat file or text file.
    in which table and in which field the source code gets saved and what is the function to download source code of abap program into text file.
    regards,
    deepti headu.

    Hi nilesh,
    1. in which table and in which field the source code gets
    Table = REPOSRC
    (But the source code is stored in RAW / Encoded format,
    and we cannot read directly)
    2. For reading we have to use READ REPORT syntax
    3. Just copy paste
      (it will read the report, and download)
    (U can change the program name and filename)
    4.
    REPORT ABC.
    DATA : BEGIN OF ITAB OCCURS 0,
           F(72) TYPE C,
           END OF ITAB.
    READ REPORT 'ZAM_TEMP00' INTO ITAB.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        FILENAME                        = 'D:\PRG.TXT'
      TABLES
        DATA_TAB                        = ITAB
    regards,
    amit m.

  • Which SAP table stores the ABAP program Source Code

    Hi All,
    Which SAP table stores the ABAP source code .
    Is it possible to retrieve the abap program code from database table
    wherein it is stored .
    Scenario :
    In our project SAP got decommissioned and SAP database is migrated to Oracle . As SAP is decomissioned , we are not able to access the SAP frontend . But we need a program code to service a request . Is it possible to retrieve the program code from the database
    which is migrated to oracle .
    Thanks
    Shikha

    This is an interesting question as the answer is may be different depending on your version.  For example, in new releases the table REPOSRC appears to hold a compress version of the course code in the DATA field, but you would need to be able to decompress it if trying to read this directly out of the DB.  I would assume that it uses gZip to do the compression, and there are ABAP utilities built in to do the compress/decompress.  Of course you can always read the source code by using the READ REPORT statement in any release, but of course this will not help you if you can not log on to your system.  Basically, if you system is corrupt for some reason, the best option is to restore from a backup.
    REgards,
    Rich Heilman

  • How can I program the code opacity in objects such as my email forum

    I need to program the code to affect only the backgroun colour of my email forum and not the text that mustt remain solid.
    // insert code here// insert code here// prepare email field
    var email = sym.$("email")
    email.html("Enter your Email: ");
    inputEmail = $('<input />').attr({'type':'text', 'value':'', 'id':'email'});
    inputEmail .css ('font-size', 14);
    inputEmail .css ('width', 350);
    inputEmail .css ('background-color', '#4e4e4e');
    inputEmail .appendTo(email);
    // prepare topic field
    var topic = sym.$("topic");
    topic.html("Topic: ");
    inputTopic = $('<input />').attr({'type':'text', 'value':'', 'id':'topic'});
    inputTopic .css ('font-size', 14);
    inputTopic .css ('width', 350);
    inputTopic .css ('background-color', '#4e4e4e');
    inputTopic .appendTo(topic);
    // prepare message field
    var message = sym.$("message");
    message.html("Message: ");
    inputMessage = $('<textarea />').attr({'type':'textarea','rows':'10', 'cols': '25','value':'', 'id':'message'});
    inputMessage .css ('font-family',"Arial,Helvtica,sans-serif");
    inputMessage .css ('color',"#ffffff");
    inputMessage .css ('font-size', 14);
    inputMessage .css ('background-color', '#4e4e4e');
    inputMessage .css ('box-shadow', '#4e4e4e');
    inputMessage .css ('width', 350);
    inputMessage .css ('height', 150);
    inputMessage .appendTo(message);
    var submitBtn = sym.$("btn");
    submitBtn.html("Submit");
    submitBtn.css("text-align", "center");
    submitBtn.css("font-size",14);
    submitBtn.css("font-weight","bold");
    submitBtn.css("color","#ffffff");
    // get the value of the differnt fields
    function emailInfo(){
                var emailInfo = inputEmail.attr("value");
             var topicInfo = inputTopic.attr("value");
             var messageInfo = inputMessage.attr("value");         
                // this is testing the values
                //alert(emailInfo + " " + topicInfo + " " + messageInfo);
                // youwill need to insert the email address where to send the result below.
                // CHANGE THIS BELOW [email protected] TO THE EMAIL ADDRESS YOU WANT TO SEND THE MAIL TO.
            location = ?subject="+topicInfo + "&body=" + emailInfo + messageInfo;
        return true;
    // send the info to server
    submitBtn.click(function(){   
             emailInfo();

    Also if you actually do it in the control panel then you have the settings you need. But Joel is right - the css is exactly the same as what you see in the control panel.

  • Sending EMAIL from ABAP Program Configuration+Code(Step by step)

    Dear All,
    Please anybody can provide me Step by Step document for sending Email from ABAP Program.
    Thanks,
    RP

    Not an appropriate forum. Try ABAP forum.
    Regards,
    Jai Shankar

  • How much ABAP programming is required for a typical SRM install?

    I was wondering if there is a document that defines best practices for the use of ABAP with the installation and customization of SRM. Such as amount of ABAP coding typically required, and best practices around the use of ABAP for customization and configuration.
    Thanks.

    You may need following developments...
    - Validations for data with SRM Data or with ECC Data at BBP_DOC_CHECK_BADI
    - Changes to the Data in SRM at Document Creation / Change BBP_DOC_CHANGE_BADI
    - Based on your Purchsing Contract Settings in Backend you may need some Enhancements.
    <like mapping SRM conditions to ECC, creating consignment or subcontracting Contracts e.t.c>
    - Most importantly customization of workflows.
    - If your Buyers has any specific Requirement to be validated or evaluate then you should go for SOCO Custom rules.
    - You can group multiple Requirements (SC) into one Purchase Order.
    ABAP is required at the time of standard issues with SRM5.0, to debug and find which note to apply -- I believe this is a critical part where an abaper can help in  SRM instalation.
    All the best,
    Vamsi

  • How to execute this SQL Query in ABAP Program.

    Hi,
    I have a string which is the SQL Query.
    How to execute this sql Query (SQL_STR) in ABAP Program.
    Code:-
    DATA: SQL_STR type string.
    SQL_STR = 'select * from spfli.'.
    Thanks in Advance,
    Vinay

    Hi Vinay
    Here is a sample to dynamically generate a subroutine-pool having your SQL and calling it.
    REPORT dynamic_sql_example .
    DATA: BEGIN OF gt_itab OCCURS 1 ,
    line(80) TYPE c ,
    END OF gt_itab .
    DATA gt_restab TYPE .... .
    DATA gv_name(30) TYPE c .
    DATA gv_err(120) TYPE c .
    START-OF-SELECTION .
    gt_itab-line = 'REPORT generated_sql .' .
    APPEND gt_itab .
    gt_itab-line = 'FORM exec_sql CHANGING et_table . ' .
    APPEND gt_itab .
    gt_itab-line = SQL_STR .
    APPEND gt_itab .
    gt_itab-line = 'ENDFORM.' .
    APPEND gt_itab .
    GENERATE SUBROUTINE POOL gt_itab NAME gv_name MESSAGE gv_err .
    PERFORM exec_sql IN PROGRAM (gv_name) CHANGING gt_restab
    IF FOUND .
    WRITE:/ gv_err .
    LOOP AT gt_result .
    WRITE:/ .... .
    ENDLOOP .
    *--Serdar

  • Delete Abap program via change reqeust

    Hi,
        We deleted some ABAP report source code via tcode(SE38) at development system. The system ask insert the delete action to one change request. I have added it to the change request. The ABAP source code have delete at development system. We transported the change request to our QA and PRD system. The deleted ABAP program source code is still exist in QA and PRD system. We want to delete the QA and PRD system ABAP source code. Could you pls advise how to delete it? Thanks.
    Best Regards
    Park Han

    My delete ABAP program process, Pls help check it correct or not. And How to delete the QA and PRD system ABAP program source code? Pls advise.
    1. Access Tcode(SE38)
    2. Input the delete program, Click Delete button.
    3. The system ask generate the change request. I have create the change request.
    4. Release and transport the change request to QA and PRD system.
    5. The development ABAP program has deleted. I can't find it via Tcode(SE38).
    6. We checked the ABAP program at QA and PRD system. It is still exist.
    Best Regards
    Park Han

  • Java Class - Oracle Stored Procedure - ABAP Program

    My client asked me to design a Java Class that calls a Oracle stored procedure. I was a Java developer so I can do that part. Now this Java Class will be called by a ABAP program. All the data that I got from Oracle Stored Procedure should be retuned to the calling ABAP program.
    In the past I did use JCA and SAP Connectors to get data from SAP R3 by calling BAPI programs.
    I would like to know if the ABAP program uses JCO or the latest JCA based SAP Connectors. Any advice on how I should structure my Java Program is welcome. I do know from pure Java side how to get data from Oracle database using JDBC.

    Hi venkat,
    This link(PDF) gives good info about JCO.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/c63bca90-0201-0010-59ae-e0db32750209
    JCO is used as two way communication between JAVA and R/3. so for yours JCO may be the suitable one.
    regards,
    P.Venkat
    Message was edited by: venkataramanan

  • Search t-code of report group in GR55

    Dear Experts,
    How can i search t-code of report group in GR55;
    for example :
    The report group: 6OI2 in T-code: gr55 is bound wtih t-code : S_ALR_87013003 ;
    Br
    Sophie

    Hi Sophie,
    In table TSTCP, maintain the parameters field with RWD_SREPOVARI-REPORT6OI2 and execute. You may see multiple transactions assigned to GR55 report 6OI2. You can replace 6OI2 with other report groups to find report painter/writer transactions in SAP.
    RWD_SREPOVARI-REPORT*6OI2* means -
    RW - Report Type
    SREPOVARI - Table that stores Reports and Variants
    REPORT - Name of Report
    There are many ways to find a transaction assignment, i guess this is an easier one for report painter transactions.
    Best Regards,
    Venkata Ganesh Perumalla

  • Restrict posting period only a limited set of users using Auth Group

    Hi all,
    Can someone help me in restricting posting period to only a limited number of users?
    Currently OB52 settings look like below:
    From Per.1  Year  To Period           From per.2   Year    To Period
        7                 2009         8                          8              2008            8
    My requirement is:
    I want to only few users to post in the 7th period and all others to post in the 8th period.
    I know this can be done via authorization group: Can someone please help me with the steps invloved in solving the same?
    Thanks in advance
    Sidharth
    Basis Administration

    Hi Alex,
    Thanks for your response!
    I have added F_BKPF_BUP object manually in the test role and assigned 0002 auth group in it.
    I have created auth group 0002 and assigned table T001B in SE54.
    Auth group 0002 is then assigned in the OB52 at the last column. This should restrict the posting for period 1 which i need to restrict for some users.
    Now as per the logic, if we dont assign any auth group, users should not be able to post for that period. But in my case user is able to post successfully via F-02.
    Please help me as we need to implement this before month end.
    Many thanks for your valuable help!
    Thanks
    Sidharth

  • How to assign transaction code to a ABAP program?

    Hi,
    Need help in assigning transaction code to a ABAP program. Any method that will do the job?

    >
    sainath raj wrote:
    > hi
    > within my knowledge
    > Any ABAP program can have its own transaction code if and only if it is of type 'MODULE POOL' .
    > An EXECUTABLE program  cannot have a transaction code.
    >
    > So try with this .
    >  1) Go to the attributes of the program and change the program as type module pool
    >   2) then execute transaction SE93.
    >  3) give the appropriate program name and assign a transaction code as ur wish.
    Well Sainath,
    What u said is not correct, an executable report can have a transaction code, difference between module pool and executable program is that u neccesarily need to have a tcode for module pool but that doesn't mean that only module pool can have tcode.
    And secondly u should not answer these kind of simple questions, as people then continue posting simple questions without making an effort to serach for themselves.
    кu03B1ятu03B9к.

Maybe you are looking for

  • Search for a specific string in web.config file

    Hi Is there a way we can search a specific word in web.config using powershell. I have an entry of "user name" in the connection string. I want to find what the user name is and whether its a correct user name or not based on the criteria set in the

  • Mac Sleep Timer (through 'Energy Saver' in System Preferences) won't work

    Hello, I have a MacBook (13-inch, Mid 2009) running Mac OS X Snow Leopard 10.6.3, and it has been installed with the latest software updates possible. (The latest update is the 'Security Update 2010-003') Previously I was using Mac OS X Leopard 10.5

  • ACD screwed-up colour

    I have a Mac Pro with a 20" Apple Cinema Display (aluminium). I changed the colour of the display to 'Use greyscale' in System Pteferences/Universal Access to see a Web page in black and white. When I unchecked 'Use greyscale' to switch back to colou

  • Transforming xml and DataGrids

    Hello I am reading data from a large xml file. I read it in using HTTPService and the result type is "E4X". It contains information about items in a warehouse. like this <Inventory> <warehouse name="Texas"> <chairs count="900"/> <tables count="40"/>

  • Changes in the material, the order should be blocked while saving the order

    Hi, A sales order is already there and delivery is not yet done. The requirement is, If I make any changes in the material, the order should be blocked while saving the order. Is there any indicators or some fields which tells material is changed in