SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

ZREPTRAN_620 - report and dialog program transporter



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP Dictionary -> Migration
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1640

PostPosted: Sun Feb 03, 2008 1:10 am    Post subject: ZREPTRAN_620 - report and dialog program transporter Reply with quote

A report for a simply up- and download of reports, dialog programs, classes or interfaces inclusive all textelements, includes, dynpros, PF-Statuses and Titlebars. A specific functionality: upload of all reports out of an account. Our developer attach tihs tool for the transfer of programs per disc from the development system to another system (e.g. at an other customer).

Code:
*&---------------------------------------------------------------------*
*& Report  ZREPTRAN_620                                                *
*&---------------------------------------------------------------------*
* changes:                                                             *
* cei091203 several changes                          christian einhoff *
* cei120104 several changes                          christian einhoff *
* eut200904 enable download of function groups       michael eutin     *
*&---------------------------------------------------------------------*
REPORT  zreptran_620 LINE-SIZE 170.

TABLES: d010inc, trdir, eudb, title, d020t, trkey, tfdir, tmdir, tadir,
        seoclass,  seoclassdf, seoclassex, seoclasstx, seometarel,
        seocompo,  seocompodf, seocompoex, seocompotx, seoimplrel,
        seomapatt, seomapcls,  seoredef,   seofriends, seotypepls,
        seosubco,  seosubcodf, seosubcoex, seosubcotx.
*TABLES: o2appl, o2applt, o2navgraph, o2navmap,
*        o2pagcon, o2pagdir, o2pagdirt, o2pagevh, o2paginc, o2pagpar,
*        o2pagpart.
*--- cei091203 begin
TYPE-POOLS: sscr.
*--- cei091203 end

TYPES: abapline(255).

TYPES: BEGIN OF ty_tit,
        code TYPE rsoldleng-title,
        text TYPE title-text_line,
       END OF ty_tit.

TYPES: BEGIN OF ty_reptxt,
        id TYPE textpool-id,
        key TYPE textpool-key,
        entry TYPE textpool-entry,
        length(4) TYPE n,
       END OF ty_reptxt.

TYPES: BEGIN OF ty_d020t,
        prog TYPE d020t-prog,
        dynr TYPE d020t-dynr,
        dtxt TYPE d020t-dtxt,
       END OF ty_d020t.

TYPES: BEGIN OF dynp_rel_type,         "Dynpro-Releases
        rel(1),
        dot(1),
        version(2),
       END OF dynp_rel_type.

TYPES: BEGIN OF ty_seocompodf_t.
        INCLUDE STRUCTURE seocmpkey.
TYPES:  version TYPE seocompodf-version,
        alias TYPE seocompodf-alias,
        redefin TYPE seocompodf-redefin,
        exposure TYPE seocompodf-exposure,
        state TYPE seocompodf-state,
        editorder(4) TYPE n,
        locked TYPE seocompodf-locked,
        dispid(4) TYPE n.
        INCLUDE STRUCTURE seochange.
        INCLUDE STRUCTURE seomtdapx.
        INCLUDE STRUCTURE seoevtapx.
        INCLUDE STRUCTURE seotypapx.
TYPES:  typtype TYPE seocompodf-typtype,
        type TYPE seocompodf-type,
        tableof TYPE seocompodf-tableof,
        srcrow1(4) TYPE n,
        srccolumn1(2) TYPE n,
        srcrow2(4) TYPE n,
        srccolumn2(2) TYPE n.
        INCLUDE STRUCTURE seocmpref.
TYPES: END OF ty_seocompodf_t.

TYPES: BEGIN OF ty_seosubcodf_t.
        INCLUDE STRUCTURE seoscokey.
TYPES:  version TYPE seosubcodf-version,
        editorder(4) TYPE n,
        dispid(4) TYPE n.
        INCLUDE STRUCTURE seochange.
TYPES:  pardecltyp TYPE seosubcodf-pardecltyp,
        parpasstyp TYPE seosubcodf-parpasstyp,
        typtype TYPE seosubcodf-typtype,
        type TYPE seosubcodf-type,
        tableof TYPE seosubcodf-tableof,
        srcrow1(4) TYPE n,
        srccolumn1(2) TYPE n,
        srcrow2(4) TYPE n,
        srccolumn2(2) TYPE n,
        parvalue TYPE seosubcodf-parvalue,
        paroptionl TYPE seosubcodf-paroptionl.
        INCLUDE STRUCTURE seoexcapx.
TYPES: END OF ty_seosubcodf_t.
*--- cei120104 begin
DATA: it_trdir     TYPE STANDARD TABLE OF trdir      WITH HEADER LINE.
*--- cei120104 end
DATA: i_o2appl     TYPE STANDARD TABLE OF o2appl     WITH HEADER LINE.
DATA: i_o2applt    TYPE STANDARD TABLE OF o2applt    WITH HEADER LINE.
DATA: i_o2navgraph TYPE STANDARD TABLE OF o2navgraph WITH HEADER LINE.
DATA: i_o2navmap   TYPE STANDARD TABLE OF o2navmap   WITH HEADER LINE.
DATA: i_o2psrc     TYPE STANDARD TABLE OF o2pageline WITH HEADER LINE.
DATA: i_o2esrc     TYPE STANDARD TABLE OF o2pagevhs  WITH HEADER LINE.
DATA: i_o2tsrc     TYPE STANDARD TABLE OF o2pageline WITH HEADER LINE.
DATA: i_o2pagdir   TYPE STANDARD TABLE OF o2pagdir   WITH HEADER LINE.
DATA: i_o2pagdirt  TYPE STANDARD TABLE OF o2pagdirt  WITH HEADER LINE.
DATA: i_o2pagevh   TYPE STANDARD TABLE OF o2pagevh   WITH HEADER LINE.
DATA: i_o2paginc   TYPE STANDARD TABLE OF o2paginc   WITH HEADER LINE.
DATA: i_o2pagpar   TYPE STANDARD TABLE OF o2pagpar   WITH HEADER LINE.
DATA: i_o2pagpart  TYPE STANDARD TABLE OF o2pagpart  WITH HEADER LINE.
DATA: pagecon_key  TYPE o2pconkey.

* Release bis 3.1
*INCLUDE mseuxcom.
DATA: eu_key TYPE rseu1_key.
*     Titel
DATA: tit    TYPE STANDARD TABLE OF ty_tit     WITH HEADER LINE.
* Release ab  4.6
DATA: fun4   TYPE STANDARD TABLE OF rsmpe_funt WITH HEADER LINE.
DATA: ctx4   TYPE STANDARD TABLE OF rsmpe_ctx  WITH HEADER LINE.
DATA: mtx4   TYPE STANDARD TABLE OF rsmpe_mnlt WITH HEADER LINE.
DATA: men4   TYPE STANDARD TABLE OF rsmpe_men  WITH HEADER LINE.
DATA: act4   TYPE STANDARD TABLE OF rsmpe_act  WITH HEADER LINE.
DATA: doc4   TYPE STANDARD TABLE OF rsmpe_atrt WITH HEADER LINE.
DATA: sta4   TYPE STANDARD TABLE OF rsmpe_stat WITH HEADER LINE.
DATA: set4   TYPE STANDARD TABLE OF rsmpe_staf WITH HEADER LINE.
DATA: pfk4   TYPE STANDARD TABLE OF rsmpe_pfk  WITH HEADER LINE.
DATA: but4   TYPE STANDARD TABLE OF rsmpe_but  WITH HEADER LINE.
DATA: tit4   TYPE STANDARD TABLE OF rsmpe_titt WITH HEADER LINE.
DATA: stx4   TYPE STANDARD TABLE OF rsmptexts  WITH HEADER LINE.
DATA: adm4   TYPE rsmpe_adm.
* Release ab  4.6c
DATA: biv46c TYPE STANDARD TABLE OF rsmpe_buts WITH HEADER LINE.

DATA: appls    TYPE STANDARD TABLE OF o2appl-applname WITH HEADER LINE.
DATA: reports  TYPE STANDARD TABLE OF trdir-name WITH HEADER LINE.

DATA: i_repsrc TYPE STANDARD TABLE OF abapline   WITH HEADER LINE.
DATA: i_reptx  TYPE STANDARD TABLE OF textpool   WITH HEADER LINE.
DATA: i_reptxt TYPE STANDARD TABLE OF ty_reptxt  WITH HEADER LINE.

DATA: i_adm4 TYPE STANDARD TABLE OF rsmpe_adm    WITH HEADER LINE.

DATA: i_tmd TYPE STANDARD TABLE OF tmdir.
DATA: i_tfd TYPE STANDARD TABLE OF tfdir.
DATA: i_cls TYPE STANDARD TABLE OF seoclass.
DATA: i_cdf TYPE STANDARD TABLE OF seoclassdf.
DATA: i_clx TYPE STANDARD TABLE OF seoclassex.
DATA: i_clt TYPE STANDARD TABLE OF seoclasstx.
DATA: i_cmr TYPE STANDARD TABLE OF seometarel.
DATA: i_cmp TYPE STANDARD TABLE OF seocompo.
DATA: i_cmd TYPE STANDARD TABLE OF seocompodf WITH HEADER LINE.
DATA: i_cmd_t TYPE STANDARD TABLE OF ty_seocompodf_t WITH HEADER LINE.
DATA: i_cmx TYPE STANDARD TABLE OF seocompoex.
DATA: i_cmt TYPE STANDARD TABLE OF seocompotx.
DATA: i_irl TYPE STANDARD TABLE OF seoimplrel.
DATA: i_mat TYPE STANDARD TABLE OF seomapatt.
DATA: i_mac TYPE STANDARD TABLE OF seomapcls.
DATA: i_red TYPE STANDARD TABLE OF seoredef.
DATA: i_frd TYPE STANDARD TABLE OF seofriends.
DATA: i_tpl TYPE STANDARD TABLE OF seotypepls.
DATA: i_sco TYPE STANDARD TABLE OF seosubco.
DATA: i_scd TYPE STANDARD TABLE OF seosubcodf WITH HEADER LINE.
DATA: i_scd_t TYPE STANDARD TABLE OF ty_seosubcodf_t WITH HEADER LINE.
DATA: i_scx TYPE STANDARD TABLE OF seosubcoex.
DATA: i_sct TYPE STANDARD TABLE OF seosubcotx.
DATA: i_inc TYPE STANDARD TABLE OF d010inc-include WITH HEADER LINE.

DATA: i_d020t TYPE STANDARD TABLE OF ty_d020t WITH HEADER LINE.

DATA: hdr TYPE d020s,
      fld TYPE STANDARD TABLE OF d021s WITH HEADER LINE,
      src TYPE STANDARD TABLE OF d022s WITH HEADER LINE,
      mat TYPE STANDARD TABLE OF d023s WITH HEADER LINE.

CONSTANTS:
           stars(64)          VALUE
'****************************************************************',
                                                            "#EC NOTEXT
           comment1(64)       VALUE
'*   THIS FILE IS GENERATED BY THE SCREEN PAINTER.              *',
                                                            "#EC NOTEXT
           comment2(64)       VALUE
'*   NEVER CHANGE IT MANUALLY, PLEASE !                         *',
                                                            "#EC NOTEXT
           dynpro_text(8)     VALUE '%_DYNPRO',             "#EC NOTEXT
           header_text(8)     VALUE '%_HEADER',             "#EC NOTEXT
           params_text(8)     VALUE '%_PARAMS',             "#EC NOTEXT
           descript_text(13)  VALUE '%_DESCRIPTION',        "#EC NOTEXT
           fields_text(8)     VALUE '%_FIELDS',             "#EC NOTEXT
           kreuz(1)           VALUE 'x',                    "#EC NOTEXT
           flowlogic_text(11) VALUE '%_FLOWLOGIC'.          "#EC NOTEXT
DATA: header_char TYPE scr_chhead.
DATA: fields_char TYPE STANDARD TABLE OF scr_chfld WITH HEADER LINE.
DATA: dynp_char TYPE STANDARD TABLE OF scr_chfld WITH HEADER LINE.
DATA: prog_len     TYPE p.
DATA: BEGIN OF dynp,
        prog TYPE d020s-prog,
        dnum TYPE d020s-dnum,
      END OF dynp.
DATA:
*     scrp_rel  TYPE dynp_rel_type VALUE '4.02'.  "Rel. Scrp. 4.02
*     scrp_rel  TYPE dynp_rel_type VALUE '4.60'.  "Rel. Scrp. 4.6A
      scrp_rel  TYPE dynp_rel_type VALUE '6.10'.  "Rel. Scrp. 6.10
DATA  dynp_rel  TYPE dynp_rel_type.    "akt. Rel. Dynpro
DATA: dynpro_rel(4).
DATA  status.
DATA  prog_len_akt TYPE p.
DATA  release.
DATA  rows  LIKE sy-curow.
DATA  lines LIKE sy-cucol.

*--- cei091203 begin
DATA: v_length TYPE i.
*--- cei091203 end
DATA: filename TYPE string.
DATA: subrc LIKE sy-subrc.
DATA: os(10).
DATA: delux VALUE '/'.
DATA: delwn VALUE '\'.
DATA: delim.
DATA: dirux(80) VALUE '-l>dir.tmp'.
DATA: dirwn(80) VALUE '/Q /Cdir>dir.tmp'.
DATA: command(80).
DATA: shellux(80) VALUE 'bash'.
DATA: shellwn(80) VALUE 'cmd.exe'.
DATA: shell(80).
DATA: datei     TYPE rlgrap-filename.
DATA: answer.
DATA: incname   TYPE d010inc-include.
DATA: repname   TYPE d010inc-include.
DATA: rest1     TYPE d010inc-include.
DATA: rest2     TYPE d010inc-include.
DATA: kz_renam.
DATA: classname TYPE seoclsname.
DATA: classtype(2).
RANGES: appl FOR o2appl-applname.

*--- cei091203 begin
*/del SELECT-OPTIONS:   report   FOR trdir-name,
SELECT-OPTIONS:   report   FOR trdir-name MEMORY ID z_rid,
*--- cei091203 end
                  cnam     FOR trdir-cnam MATCHCODE OBJECT user_addr,
                  unam     FOR trdir-unam MATCHCODE OBJECT user_addr,
                  devclass FOR tadir-devclass,
                  subc     FOR trdir-subc,
                  rstat    FOR trdir-rstat,
                  cdat     FOR trdir-cdat,
                  udat   FOR trdir-udat.
PARAMETERS:       pfad(80) LOWER CASE DEFAULT 'c:\reports\'.
SELECTION-SCREEN: SKIP.
PARAMETERS:       r3_l   RADIOBUTTON GROUP func,
                  r3_d   RADIOBUTTON GROUP func,
                  r3_d_l RADIOBUTTON GROUP func,
                  d_l    RADIOBUTTON GROUP func,
                  d_r3   RADIOBUTTON GROUP func,
                  d_r3_l RADIOBUTTON GROUP func,
                  alle AS CHECKBOX,
                  suffix(80) LOWER CASE.
*--- cei091203 begin
SELECTION-SCREEN: ULINE.
SELECTION-SCREEN: SKIP.
SELECT-OPTIONS: s_noinc FOR trdir-name.
SELECTION-SCREEN: BEGIN OF LINE.
PARAMETERS: p_nocon AS CHECKBOX.
SELECTION-SCREEN: COMMENT 5(49) text-p01 FOR FIELD p_nocon.
SELECTION-SCREEN: END OF LINE.
*--- cei091203 end

INITIALIZATION.
  CALL FUNCTION 'WS_QUERY'
       EXPORTING
*           ENVIRONMENT    = ' '
*           FILENAME       = ' '
            query          = 'OS'
*           WINID          = ' '
       IMPORTING
            return         = os
       EXCEPTIONS
            inv_query      = 1
            no_batch       = 2
            frontend_error = 3
            OTHERS         = 4.
  IF sy-subrc = 0 AND
     ( os CS 'OS2' OR os CS 'DOS' OR os CS 'NT' ).
    delim = delwn.
    command = dirwn.
    shell = shellwn.
  ELSE.
    delim = delux.
    command = dirux.
    shell = shellux.
  ENDIF.
*--- cei091203 begin
  PERFORM kill_intervals.
*--- cei091203 end

AT SELECTION-SCREEN ON VALUE-REQUEST FOR PFAD.
  GET CURSOR FIELD pfad VALUE pfad.
  filename = pfad.
*--- ce091203 begin
*--- check pathname for delimiter and set if neccessary ...
  v_length = STRLEN( filename ).
  SUBTRACT 1 FROM v_length.
  IF filename+v_length(1) NE delim.
    CONCATENATE filename delim INTO
    filename.
  ENDIF.
*--- ce091203 end
  PERFORM fileselector.


AT SELECTION-SCREEN.
  IF report[] IS INITIAL.
    IF NOT reports[] IS INITIAL.
      report = 'IEQ'.
      report-low = reports.
      APPEND report.
      MESSAGE i208(00) WITH
      'Report-/BSP-Anwendung wurde ebenfalls ermittelt'(009).
*    &
    ELSE.
      MESSAGE e208(00)
              WITH
      'Bitte Report/BSP-Anwendung angeben oder Pfad auswГ¤hlen'(011).
*    &
    ENDIF.
  ENDIF.


START-OF-SELECTION.
*--- cei091203 begin
*--- check pathname for delimiter and set if neccessary ...
  v_length = STRLEN( pfad ).
  SUBTRACT 1 FROM v_length.
  IF pfad+v_length(1) NE delim.
    CONCATENATE pfad delim INTO
    pfad.
  ENDIF.
*--- because sap is not able to restrict the master screen to exclude
*--- we have to switch the sign manually ...
  LOOP AT s_noinc.
    s_noinc-sign = 'E'.
    MODIFY s_noinc.
  ENDLOOP.
*--- cei091203 end
  SET PARAMETER ID 'Z_RID' FIELD report-low.
  FORMAT COLOR COL_BACKGROUND INTENSIFIED OFF.
  eu_key-sprsl = sy-langu.
  REFRESH appl.
  LOOP AT report.
    MOVE-CORRESPONDING report TO appl.
    APPEND appl.
  ENDLOOP.
  IF NOT r3_d   IS INITIAL OR
     NOT r3_l   IS INITIAL OR
     NOT r3_d_l IS INITIAL.
*   DOWNLOAD BSP-Applications
    SELECT applname FROM o2appl INTO TABLE appls
           WHERE applname IN appl.
    LOOP AT appls.
      REFRESH: i_o2appl, i_o2applt, i_o2navgraph, i_o2navmap,
               i_o2psrc, i_o2esrc, i_o2tsrc, i_o2pagdir, i_o2pagdirt,
               i_o2pagevh, i_o2paginc, i_o2pagpar, i_o2pagpart.
      SELECT * FROM o2appl     INTO TABLE i_o2appl
             WHERE applname = appls.
      SELECT * FROM o2applt    INTO TABLE i_o2applt
             WHERE applname = appls.
      SELECT * FROM o2navgraph INTO TABLE i_o2navgraph
             WHERE applname = appls.
      SELECT * FROM o2navmap   INTO TABLE i_o2navmap
             WHERE applname = appls.
      SELECT * FROM o2pagdir   INTO TABLE i_o2pagdir
             WHERE applname = appls.
      SELECT * FROM o2pagdirt  INTO TABLE i_o2pagdirt
             WHERE applname = appls.
      SELECT * FROM o2pagevh   INTO TABLE i_o2pagevh
             WHERE applname = appls.
      SELECT * FROM o2paginc   INTO TABLE i_o2paginc
             WHERE masterappl = appls.
      SELECT * FROM o2pagpar   INTO TABLE i_o2pagpar
             WHERE applname = appls.
      SELECT * FROM o2pagpart  INTO TABLE i_o2pagpart
             WHERE applname = appls.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_o2appl[] IS INITIAL.
        CONCATENATE pfad appls suffix '_o2appl.txt' INTO filename.
        PERFORM download TABLES i_o2appl USING filename
                         'BSP Application List'(069).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_o2applt[] IS INITIAL.
        CONCATENATE pfad appls suffix '_o2applt.txt' INTO filename.
        PERFORM download TABLES i_o2applt USING filename
                         'BSP Application Texts'(070).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_o2navgraph[] IS INITIAL.
        CONCATENATE pfad appls suffix '_o2navg.txt' INTO filename.
        PERFORM download TABLES i_o2navgraph USING filename
                         'BSP Navigation Graph'(071).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_o2navmap[] IS INITIAL.
        CONCATENATE pfad appls suffix '_o2navm.txt' INTO filename.
        PERFORM download TABLES i_o2navmap USING filename
                         'BSP Navigation Map'(072).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_o2pagdir[] IS INITIAL.
        CONCATENATE pfad appls suffix '_o2pagd.txt' INTO filename.
        PERFORM download TABLES i_o2pagdir USING filename
                         'BSP Page Directory'(073).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_o2pagdirt[] IS INITIAL.
        CONCATENATE pfad appls suffix '_o2pagdt.txt' INTO filename.
        PERFORM download TABLES i_o2pagdirt USING filename
                         'BSP Page Texts'(074).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_o2pagevh[] IS INITIAL.
        CONCATENATE pfad appls suffix '_o2page.txt' INTO filename.
        PERFORM download TABLES i_o2pagevh USING filename
                         'BSP Eventhandler List'(075).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_o2paginc[] IS INITIAL.
        CONCATENATE pfad appls suffix '_o2pagi.txt' INTO filename.
        PERFORM download TABLES i_o2paginc USING filename
                         'BSP Page Include List'(076).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_o2pagpar[] IS INITIAL.
        CONCATENATE pfad appls suffix '_o2pagp.txt' INTO filename.
        PERFORM download TABLES i_o2pagpar USING filename
                         'BSP Page Parameter List'(077).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_o2pagpart[] IS INITIAL.
        CONCATENATE pfad appls suffix '_o2pagpt.txt' INTO filename.
        PERFORM download TABLES i_o2pagpart USING filename
                         'BSP Page Parameter Texts'(078).
      ENDIF.
      LOOP AT i_o2pagdir.
        pagecon_key-applname  = i_o2pagdir-applname.
        pagecon_key-pagekey   = i_o2pagdir-pagekey.
        pagecon_key-version   = 'A'.  "A(ctive)
        pagecon_key-objtype   = 'PD'. "PD, EV, TY
        IMPORT content    TO i_o2psrc
               FROM DATABASE o2pagcon(tr) ID pagecon_key.
        IF ( NOT r3_d   IS INITIAL OR
             NOT r3_d_l IS INITIAL ) AND
             NOT i_o2psrc[] IS INITIAL.
          CONCATENATE pfad appls '_' i_o2pagdir-pagekey suffix
                      '_o2psrc.txt' INTO filename.
          PERFORM download TABLES i_o2psrc USING filename
                           'BSP Page Source'(079).
        ENDIF.
        pagecon_key-objtype   = 'EV'. "PD, EV, TY
        IMPORT content    TO i_o2esrc
               FROM DATABASE o2pagcon(tr) ID pagecon_key.
        IF ( NOT r3_d   IS INITIAL OR
             NOT r3_d_l IS INITIAL ) AND
             NOT i_o2esrc[] IS INITIAL.
          CONCATENATE pfad appls '_' i_o2pagdir-pagekey suffix
                      '_o2esrc.txt' INTO filename.
          PERFORM download TABLES i_o2esrc USING filename
                           'BSP Page Eventhandler Source'(080).
        ENDIF.
        pagecon_key-objtype   = 'TY'. "PD, EV, TY
        IMPORT content    TO i_o2tsrc
               FROM DATABASE o2pagcon(tr) ID pagecon_key.
        IF ( NOT r3_d   IS INITIAL OR
             NOT r3_d_l IS INITIAL ) AND
             NOT i_o2tsrc[] IS INITIAL.
          CONCATENATE pfad appls '_' i_o2pagdir-pagekey suffix
                      '_o2tsrc.txt' INTO filename.
          PERFORM download TABLES i_o2tsrc USING filename
                           'BSP Page Type Source'(081).
        ENDIF.
        report = 'IEQ'.
        report-low = i_o2pagdir-implclass.
        report-low+30 = 'CP'.
        APPEND report.
      ENDLOOP.
    ENDLOOP.
*---------------------------------------------------------------------*
*   DOWNLOAD PROGRAMS
    SELECT name  FROM trdir
           INTO  TABLE reports
           WHERE name IN report
           AND   cnam IN cnam
           AND   unam IN unam
           AND   subc IN subc
           AND   rstat IN rstat
           AND   cdat IN cdat
           AND   udat IN udat.
*--- cei120104 begin
    SELECT * FROM trdir INTO TABLE it_trdir
           WHERE name IN report.
*--- cei120104 end
    LOOP AT reports.
* prГ_fen ob Report in Entwicklungsklasse enthalten ist
      classtype = reports+30.
      IF reports(5) NE 'CL_O2'.
        IF classtype = 'CP'.
          tadir-obj_name = reports.
          SHIFT tadir-obj_name RIGHT DELETING TRAILING space.
          SHIFT tadir-obj_name RIGHT BY 2 PLACES.
          SHIFT tadir-obj_name RIGHT DELETING TRAILING '='.
          SHIFT tadir-obj_name LEFT DELETING LEADING space.
          SELECT SINGLE * FROM  tadir
                 WHERE  pgmid     = 'R3TR'
                 AND    object    = 'CLAS'
                 AND    obj_name  = tadir-obj_name
                 AND    devclass  IN devclass.
        ELSEIF reports(4) = 'SAPL'.
          SELECT SINGLE * FROM  tadir
                 WHERE  pgmid     = 'R3TR'
                 AND    object    = 'FUGR'
*--- eut200904 begin
*                AND    obj_name  = reports
                 AND    obj_name  = reports+4(36)
*--- eut200904 end
                 AND    devclass  IN devclass.
        ELSE.
          SELECT SINGLE * FROM  tadir
                 WHERE  pgmid     = 'R3TR'
                 AND    object    = 'PROG'
                 AND    obj_name  = reports
                 AND    devclass  IN devclass.
        ENDIF.
        IF sy-subrc NE 0.
*--- cei120104 begin
          MESSAGE e398(00) WITH
          'No entry in directory TADIR for object' reports '- Exit!'.
*          EXIT.
*--- cei120104 end
        ENDIF.
      ENDIF.
      REFRESH: i_repsrc, i_reptx, i_reptxt, i_inc,
               sta4, ctx4, fun4, mtx4, doc4, tit4, men4, act4, but4,
               pfk4, set4, stx4, biv46c,
               i_d020t, i_adm4,
               i_tmd, i_tfd, i_cls, i_cdf, i_clx, i_clt, i_cmr, i_cmp,
               i_cmd, i_cmx, i_cmt, i_irl, i_mat, i_mac, i_red, i_frd,
               i_tpl, i_sco, i_scd, i_scx, i_sct, i_cmd_t, i_scd_t.
      CLEAR: adm4.
      eu_key-name  = reports.
      READ REPORT reports INTO i_repsrc.
*     READ TEXTPOOL reports INTO i_reptx.
*--- ce091203 begin
*--- read table for attributes ...
      READ TEXTPOOL reports INTO i_reptx LANGUAGE sy-langu.
*--- ce091203 end
      LOOP AT i_reptx.
        MOVE-CORRESPONDING i_reptx TO i_reptxt.
        APPEND i_reptxt.
      ENDLOOP.
      IF NOT r3_l IS INITIAL OR
         NOT r3_d_l IS INITIAL.
        PERFORM show_rep.
      ENDIF.
      IF classtype = 'CP' OR classtype = 'IP'.
        classname = reports(30).
        TRANSLATE classname USING '= '.
        SELECT * FROM tmdir INTO TABLE i_tmd
               WHERE classname = classname.
        SELECT * FROM seoclass   INTO TABLE i_cls
               WHERE clsname = classname.
        SELECT * FROM seoclassdf INTO TABLE i_cdf
               WHERE clsname = classname.
        SELECT * FROM seoclassex INTO TABLE i_clx
               WHERE clsname = classname.
        SELECT * FROM seoclasstx INTO TABLE i_clt
               WHERE clsname = classname.
        SELECT * FROM seometarel INTO TABLE i_cmr
               WHERE clsname = classname.
        SELECT * FROM seocompo   INTO TABLE i_cmp
               WHERE clsname = classname.
        SELECT * FROM seocompodf INTO TABLE i_cmd
               WHERE clsname = classname.
        LOOP AT i_cmd.
          MOVE-CORRESPONDING i_cmd TO i_cmd_t.
          APPEND i_cmd_t.
        ENDLOOP.
        SELECT * FROM seocompoex INTO TABLE i_cmx
               WHERE clsname = classname.
        SELECT * FROM seocompotx INTO TABLE i_cmt
               WHERE clsname = classname.
        SELECT * FROM seoimplrel INTO TABLE i_irl
               WHERE clsname = classname.
        SELECT * FROM seomapatt  INTO TABLE i_mat
               WHERE clsname = classname.
        SELECT * FROM seomapcls  INTO TABLE i_mac
               WHERE clsname = classname.
        SELECT * FROM seoredef   INTO TABLE i_red
               WHERE clsname = classname.
        SELECT * FROM seofriends INTO TABLE i_frd
               WHERE clsname = classname.
        SELECT * FROM seotypepls INTO TABLE i_tpl
               WHERE clsname = classname.
        SELECT * FROM seosubco   INTO TABLE i_sco
               WHERE clsname = classname.
        SELECT * FROM seosubcodf INTO TABLE i_scd
               WHERE clsname = classname.
        LOOP AT i_scd.
          MOVE-CORRESPONDING i_scd TO i_scd_t.
          APPEND i_scd_t.
        ENDLOOP.
        SELECT * FROM seosubcoex INTO TABLE i_scx
               WHERE clsname = classname.
        SELECT * FROM seosubcotx INTO TABLE i_sct
               WHERE clsname = classname.
      ELSE.
        CLEAR classtype.
      ENDIF.
      SELECT * FROM tfdir INTO TABLE i_tfd
             WHERE pname = reports.
      CALL FUNCTION 'RS_CUA_INTERNAL_FETCH'
           EXPORTING
                program         = reports
*               LANGUAGE        =
*               STATE           = 'A'
           IMPORTING
                adm             = adm4
*               LANGU           =
*               AUTHOR          =
*               DATE            =
*               TIME            =
*               CAUTHOR         =
*               CDATE           =
*               CTIME           =
*               GDATE           =
*               GTIME           =
           TABLES
                sta             = sta4
                fun             = fun4
                men             = men4
                mtx             = mtx4
                act             = act4
                but             = but4
                pfk             = pfk4
                set             = set4
                doc             = doc4
                tit             = tit4
                biv             = biv46c
           EXCEPTIONS
                not_found       = 1
                unknown_version = 2
                OTHERS          = 3.
      SELECT ddnr text_line FROM title INTO TABLE tit
             WHERE ddlanguage = eu_key-sprsl AND
                   progname   = eu_key-name.
      SELECT * FROM rsmptexts INTO TABLE stx4
             WHERE progname   = eu_key-name AND
                   sprsl = eu_key-sprsl.
      SELECT prog dynr dtxt FROM d020t INTO TABLE i_d020t
             WHERE prog = reports AND
                   NOT dtxt LIKE 'SEL_SCREEN%'.
      IF NOT classtype IS INITIAL.
        reports = classname.
      ENDIF.
      TRANSLATE reports TO LOWER CASE.
      TRANSLATE reports USING '/.'.
      IF NOT r3_d   IS INITIAL OR
         NOT r3_d_l IS INITIAL.
        CONCATENATE pfad reports suffix '.txt' INTO filename.
        PERFORM download TABLES i_repsrc USING filename
                         'Source'(003).
        IF NOT i_reptxt[] IS INITIAL.
          CONCATENATE pfad reports suffix '_txt.txt' INTO filename.
          PERFORM download TABLES i_reptxt USING filename
                           'Textelements'(004).
        ENDIF.
      ENDIF.
      SELECT include FROM d010inc INTO TABLE i_inc
             WHERE master = eu_key-name
*--- cei091203 begin
*--- exclude standard include, e.g. '%_*'-includes
               AND include IN s_noinc.
*--- cei091203 end
      DELETE i_inc WHERE table_line(1) = '<'.
      DELETE i_inc WHERE table_line(1) = '>'.
      DELETE i_inc WHERE table_line = 'DB__SSEL'.
*--- cei120104 begin
*--- get attributes for includes in a loop
*--- because there is no field for 1 select ...
      LOOP AT i_inc.
        SELECT SINGLE * FROM trdir INTO it_trdir
               WHERE name EQ i_inc.
        IF sy-subrc EQ 0.
          APPEND it_trdir.
        ENDIF.
      ENDLOOP.
      PERFORM download_trdir TABLES it_trdir.
*--- cei120104 end
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_inc[] IS INITIAL.
        CONCATENATE pfad reports suffix '_inc.txt' INTO filename.
        PERFORM download TABLES i_inc USING filename
                         'Include List'(033).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_tmd[] IS INITIAL.
        CONCATENATE pfad reports suffix '_tmd.txt' INTO filename.
        PERFORM download TABLES i_tmd USING filename
                         'Methods List'(048).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_cls[] IS INITIAL.
        CONCATENATE pfad reports suffix '_cls.txt' INTO filename.
        PERFORM download TABLES i_cls USING filename
                         'Class Entry'(050).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_cdf[] IS INITIAL.
        CONCATENATE pfad reports suffix '_cdf.txt' INTO filename.
        PERFORM download TABLES i_cdf USING filename
                         'Class Definition'(051).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_clx[] IS INITIAL.
        CONCATENATE pfad reports suffix '_clx.txt' INTO filename.
        PERFORM download TABLES i_clx USING filename
                         'Class Remote Info'(052).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_clt[] IS INITIAL.
        CONCATENATE pfad reports suffix '_clt.txt' INTO filename.
        PERFORM download TABLES i_clt USING filename
                         'Class Description'(053).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_cmr[] IS INITIAL.
        CONCATENATE pfad reports suffix '_cmr.txt' INTO filename.
        PERFORM download TABLES i_cmr USING filename
                         'Class Meta Relations'(054).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_cmp[] IS INITIAL.
        CONCATENATE pfad reports suffix '_cmp.txt' INTO filename.
        PERFORM download TABLES i_cmp USING filename
                         'Class Components'(055).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_cmd_t[] IS INITIAL.
        CONCATENATE pfad reports suffix '_cmd.txt' INTO filename.
        PERFORM download TABLES i_cmd_t USING filename
                         'Class Components Definitions'(056).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_cmx[] IS INITIAL.
        CONCATENATE pfad reports suffix '_cmx.txt' INTO filename.
        PERFORM download TABLES i_cmx USING filename
                         'Class Components Remote Infos'(057).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_cmt[] IS INITIAL.
        CONCATENATE pfad reports suffix '_cmt.txt' INTO filename.
        PERFORM download TABLES i_cmt USING filename
                         'Class Components Descriptions'(058).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_irl[] IS INITIAL.
        CONCATENATE pfad reports suffix '_irl.txt' INTO filename.
        PERFORM download TABLES i_irl USING filename
                         'Class Components Relation Types'(059).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_mat[] IS INITIAL.
        CONCATENATE pfad reports suffix '_mat.txt' INTO filename.
        PERFORM download TABLES i_mat USING filename
                         'Class Mapping Attributes'(060).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_mac[] IS INITIAL.
        CONCATENATE pfad reports suffix '_mac.txt' INTO filename.
        PERFORM download TABLES i_mac USING filename
                         'Class Mapping Classes'(061).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_red[] IS INITIAL.
        CONCATENATE pfad reports suffix '_red.txt' INTO filename.
        PERFORM download TABLES i_red USING filename
                         'Class Redefinitions'(062).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_frd[] IS INITIAL.
        CONCATENATE pfad reports suffix '_frd.txt' INTO filename.
        PERFORM download TABLES i_frd USING filename
                         'Class Friends'(063).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_tpl[] IS INITIAL.
        CONCATENATE pfad reports suffix '_tpl.txt' INTO filename.
        PERFORM download TABLES i_tpl USING filename
                         'Class Type-Pools'(064).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_sco[] IS INITIAL.
        CONCATENATE pfad reports suffix '_sco.txt' INTO filename.
        PERFORM download TABLES i_sco USING filename
                         'Class Sub Components'(065).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_scd_t[] IS INITIAL.
        CONCATENATE pfad reports suffix '_scd.txt' INTO filename.
        PERFORM download TABLES i_scd_t USING filename
                         'Class Sub Components Definitions'(066).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_scx[] IS INITIAL.
        CONCATENATE pfad reports suffix '_scx.txt' INTO filename.
        PERFORM download TABLES i_scx USING filename
                         'Class Sub Components Remote Infos'(067).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_sct[] IS INITIAL.
        CONCATENATE pfad reports suffix '_sct.txt' INTO filename.
        PERFORM download TABLES i_sct USING filename
                         'Class Sub Components Descriptions'(068).
      ENDIF.
      IF ( NOT r3_d   IS INITIAL OR
           NOT r3_d_l IS INITIAL ) AND
           NOT i_tfd[] IS INITIAL.
        CONCATENATE pfad reports suffix '_tfd.txt' INTO filename.
        PERFORM download TABLES i_tfd USING filename
                         'Function List'(049).
      ENDIF.
      IF NOT i_inc[] IS INITIAL.
        LOOP AT i_inc.
          REFRESH: i_reptx, i_reptxt.
          READ REPORT i_inc INTO i_repsrc.
          READ TEXTPOOL i_inc INTO i_reptx.
*--- ce091203 begin
          READ TEXTPOOL i_inc INTO i_reptx LANGUAGE sy-langu.
*--- ce091203 end
          LOOP AT i_reptx.
            MOVE-CORRESPONDING i_reptx TO i_reptxt.
            APPEND i_reptxt.
          ENDLOOP.
          IF NOT r3_l IS INITIAL OR
            NOT r3_d_l IS INITIAL.
            PERFORM show_inc.
          ENDIF.
          TRANSLATE i_inc TO LOWER CASE.
          TRANSLATE i_inc USING '/.'.
          IF NOT r3_d   IS INITIAL OR
             NOT r3_d_l IS INITIAL.
            CONCATENATE pfad i_inc suffix '.txt' INTO filename.
            PERFORM download TABLES i_repsrc USING filename
                             'Include Source'(032).
            WRITE: '->', i_inc.
            IF NOT i_reptxt[] IS INITIAL.
              CONCATENATE pfad i_inc suffix '_txt.txt'
                          INTO filename.
              PERFORM download TABLES i_reptxt USING filename
                               'Textelements'(004).
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF NOT i_d020t[] IS INITIAL.
        LOOP AT i_d020t.
          IMPORT DYNPRO hdr fld src mat ID i_d020t.
          CALL FUNCTION 'RS_SCRP_UPGRADE_DYNPRO'
            TABLES
              f = fld
              m = mat
            CHANGING
              h = hdr.
          IF src[] IS INITIAL.
            DELETE i_d020t.
            CONTINUE.
          ENDIF.
          CLEAR src.
          READ TABLE src INDEX 1.
          IF src-line CS 'Do not change'.
            DELETE i_d020t.
            CONTINUE.
          ENDIF.
          CALL FUNCTION 'RS_SCRP_GET_SCREEN_INFOS'
            EXPORTING
              dynnr                 = hdr-dnum
              progname              = hdr-prog
              with_fieldlist        = 'X'
            IMPORTING
              lines                 = lines
              columns               = rows
            TABLES
              fieldlist             = fld
            EXCEPTIONS
              dynpro_does_not_exist = 01
              no_field_list         = 02.
          hdr-bzmx = lines.
          hdr-bzbr = rows.
          IF NOT r3_l IS INITIAL OR
             NOT r3_d_l IS INITIAL.
            PERFORM show_dyn.
          ENDIF.
          IF NOT r3_d   IS INITIAL OR
             NOT r3_d_l IS INITIAL.
            PERFORM dynpro_download.
          ENDIF.
        ENDLOOP.
        IF ( NOT r3_d   IS INITIAL OR
             NOT r3_d_l IS INITIAL ) AND
           NOT i_d020t[] IS INITIAL.
          CONCATENATE pfad reports suffix '_dyn.txt' INTO filename.
          PERFORM download TABLES i_d020t USING filename
                           'Dynpro List'(040).
        ENDIF.
      ENDIF.
      IF NOT r3_d   IS INITIAL OR
         NOT r3_d_l IS INITIAL.
        IF NOT sta4[] IS INITIAL.
          CONCATENATE pfad reports suffix '_sta.txt' INTO filename.
          PERFORM download TABLES sta4 USING filename
                           'GUI Status'(013).
        ENDIF.
        IF NOT ctx4[] IS INITIAL.
          CONCATENATE pfad reports suffix '_ctx.txt' INTO filename.
          PERFORM download TABLES ctx4 USING filename
                           'Object Codes'(045).
        ENDIF.
        IF NOT fun4[] IS INITIAL.
          CONCATENATE pfad reports suffix '_fun.txt' INTO filename.
          PERFORM download TABLES fun4 USING filename
                           'Function Texts'(014).
        ENDIF.
        IF NOT men4[] IS INITIAL.
          CONCATENATE pfad reports suffix '_men.txt' INTO filename.
          PERFORM download TABLES men4 USING filename
                           'Menus'(015).
        ENDIF.
        IF NOT tit4[] IS INITIAL.
          CONCATENATE pfad reports suffix '_sti.txt' INTO filename.
          PERFORM download TABLES tit4 USING filename
                           'Title Codes'(042).
        ENDIF.
        IF NOT mtx4[] IS INITIAL.
          CONCATENATE pfad reports suffix '_mtx.txt' INTO filename.
          PERFORM download TABLES mtx4 USING filename
                           'Menu Texts'(016).
        ENDIF.
        IF NOT act4[] IS INITIAL.
          CONCATENATE pfad reports suffix '_act.txt' INTO filename.
          PERFORM download TABLES act4 USING filename
                           'Menu Bars'(047).
        ENDIF.
        IF NOT but4[] IS INITIAL.
          CONCATENATE pfad reports suffix '_but.txt' INTO filename.
          PERFORM download TABLES but4 USING filename
                           'Push Buttons'(018).
        ENDIF.
        IF NOT pfk4[] IS INITIAL.
          CONCATENATE pfad reports suffix '_pfk.txt' INTO filename.
          PERFORM download TABLES pfk4 USING filename
                           'PF Keys'(019).
        ENDIF.
        IF NOT adm4 IS INITIAL.
          APPEND adm4 TO i_adm4.
          CONCATENATE pfad reports suffix '_adm.txt' INTO filename.
          PERFORM download TABLES i_adm4 USING filename
                           'Management Information'(043).
        ENDIF.
        IF NOT set4[] IS INITIAL.
          CONCATENATE pfad reports suffix '_set.txt' INTO filename.
          PERFORM download TABLES set4 USING filename
                           'Function Sets'(020).
        ENDIF.
        IF NOT stx4[] IS INITIAL.
          CONCATENATE pfad reports suffix '_stx.txt' INTO filename.
          PERFORM download TABLES stx4 USING filename
                           'Status Texts'(023).
        ENDIF.
        IF NOT doc4[] IS INITIAL.
          CONCATENATE pfad reports suffix '_doc.txt' INTO filename.
          PERFORM download TABLES doc4 USING filename
                           'Status Short Texts'(024).
        ENDIF.
        IF NOT biv46c[] IS INITIAL.
          CONCATENATE pfad reports suffix '_biv.txt' INTO filename.
          PERFORM download TABLES biv46c USING filename
                           'Invariant Functions'(048).
        ENDIF.
        IF NOT tit[] IS INITIAL.
          CONCATENATE pfad reports suffix '_tit.txt' INTO filename.
          PERFORM download TABLES tit USING filename
                           'Title Bars'(030).
        ENDIF.
      ENDIF.
      ULINE.
    ENDLOOP.
  ELSEIF NOT d_r3   IS INITIAL OR
         NOT d_l    IS INITIAL OR
         NOT d_r3_l IS INITIAL.
*   UPLOAD PROGRAMS
    IF NOT alle IS INITIAL.
      PERFORM ls.
    ENDIF.
    IF reports[] IS INITIAL.
      filename = report-low.
      subrc = 99.
      WHILE subrc NE 0.
        PERFORM fileselector.
        IF subrc NE 0.
          EXIT.
        ENDIF.
      ENDWHILE.
    ENDIF.
    LOOP AT reports.
      REFRESH: i_repsrc, i_reptx, i_reptxt, i_inc,
               sta4, ctx4, fun4, mtx4, doc4, tit4, men4, act4, but4,
               pfk4, set4, stx4, biv46c,
               i_d020t, i_adm4,
               i_tmd, i_tfd, i_cls, i_cdf, i_clx, i_clt, i_cmr, i_cmp,
               i_cmd, i_cmx, i_cmt, i_irl, i_mat, i_mac, i_red, i_frd,
               i_tpl, i_sco, i_scd, i_scx, i_sct, i_cmd_t, i_scd_t.
      CLEAR: adm4, kz_renam.
      eu_key-name  = reports.
      TRANSLATE eu_key-name TO UPPER CASE.
      TRANSLATE reports TO LOWER CASE.
      CONCATENATE pfad reports suffix '.txt' INTO filename.
      PERFORM upload TABLES i_repsrc USING filename 'Source'(003) ' '.
      IF subrc = 0.
        CLEAR classtype.
*--- cei091203 begin
*        LOOP AT i_repsrc TO 10.
        LOOP AT i_repsrc TO 30.
*--- cei091203 end
          TRANSLATE i_repsrc TO UPPER CASE.
          IF i_repsrc CS 'CLASS-POOL '.
            classtype = 'CP'.
            EXIT.
          ENDIF.
          IF i_repsrc CS 'INTERFACE-POOL '.
            classtype = 'IP'.
            EXIT.
          ENDIF.
          IF i_repsrc CS 'REPORT '  OR i_repsrc CS 'MODULPOOL '  OR
             i_repsrc CS 'PROGRAM ' OR
             i_repsrc CS 'SYSTEM-DEFINED '.
            EXIT.
          ENDIF.
        ENDLOOP.
        IF NOT ( i_repsrc CS 'REPORT '  OR i_repsrc CS 'MODULPOOL '  OR
                 i_repsrc CS 'PROGRAM ' OR
                 i_repsrc CS 'SYSTEM-DEFINED ' OR
                 i_repsrc CS 'CLASS-POOL ' OR
                 i_repsrc CS 'INTERFACE-POOL ' ).
          WRITE: / filename,
                   'doesn''t contain valid program source'(012).
          subrc = 99.
        ENDIF.
      ENDIF.
      CHECK subrc = 0.
      CONCATENATE pfad reports '_txt.txt' INTO filename.
      PERFORM upload TABLES i_reptxt USING filename
                     'Textelements'(004) ' '.
      LOOP AT i_reptxt.
        MOVE-CORRESPONDING i_reptxt TO i_reptx.
        APPEND i_reptx.
      ENDLOOP.
*--- cei120104 begin
      PERFORM upload_trdir TABLES it_trdir.
*--- cei120104 end
      CONCATENATE pfad reports '_inc.txt' INTO filename.
      PERFORM upload TABLES i_inc USING filename
                     'Include List'(033) 'X'.
      CONCATENATE pfad reports '_tmd.txt' INTO filename.
      PERFORM upload TABLES i_tmd USING filename
                     'Methods List'(048) 'X'.
      CONCATENATE pfad reports '_cls.txt' INTO filename.
      PERFORM upload TABLES i_cls USING filename
                     'Class Entry'(050) 'X'.
      CONCATENATE pfad reports '_cdf.txt' INTO filename.
      PERFORM upload TABLES i_cdf USING filename
                     'Class Definition'(051) 'X'.
      CONCATENATE pfad reports '_clx.txt' INTO filename.
      PERFORM upload TABLES i_clx USING filename
                     'Class Remote Info'(052) 'X'.
      CONCATENATE pfad reports '_clt.txt' INTO filename.
      PERFORM upload TABLES i_clt USING filename
                     'Class Description'(053) 'X'.
      CONCATENATE pfad reports '_cmr.txt' INTO filename.
      PERFORM upload TABLES i_cmr USING filename
                     'Class Meta Relations'(054) 'X'.
      CONCATENATE pfad reports '_cmp.txt' INTO filename.
      PERFORM upload TABLES i_cmp USING filename
                     'Class Components'(055) 'X'.
      CONCATENATE pfad reports '_cmd.txt' INTO filename.
      PERFORM upload TABLES i_cmd_t USING filename
                     'Class Components Definitions'(056) 'X'.
      LOOP AT i_cmd_t.
        MOVE-CORRESPONDING i_cmd_t TO i_cmd.
        APPEND i_cmd.
      ENDLOOP.
      CONCATENATE pfad reports '_cmx.txt' INTO filename.
      PERFORM upload TABLES i_cmx USING filename
                     'Class Components Remote Infos'(057) 'X'.
      CONCATENATE pfad reports '_cmt.txt' INTO filename.
      PERFORM upload TABLES i_cmt USING filename
                     'Class Components Descriptions'(058) 'X'.
      CONCATENATE pfad reports '_irl.txt' INTO filename.
      PERFORM upload TABLES i_irl USING filename
                     'Class Components Relation Types'(059) 'X'.
      CONCATENATE pfad reports '_mat.txt' INTO filename.
      PERFORM upload TABLES i_mat USING filename
                     'Class Mapping Attributes'(060) 'X'.
      CONCATENATE pfad reports '_mac.txt' INTO filename.
      PERFORM upload TABLES i_mac USING filename
                     'Class Mapping Classes'(061) 'X'.
      CONCATENATE pfad reports '_red.txt' INTO filename.
      PERFORM upload TABLES i_red USING filename
                     'Class Redefinitions'(062) 'X'.
      CONCATENATE pfad reports '_frd.txt' INTO filename.
      PERFORM upload TABLES i_frd USING filename
                     'Class Friends'(063) 'X'.
      CONCATENATE pfad reports '_tpl.txt' INTO filename.
      PERFORM upload TABLES i_tpl USING filename
                     'Class Type-Pools'(064) 'X'.
      CONCATENATE pfad reports '_sco.txt' INTO filename.
      PERFORM upload TABLES i_sco USING filename
                     'Class Sub Components'(065) 'X'.
      CONCATENATE pfad reports '_scd.txt' INTO filename.
      PERFORM upload TABLES i_scd_t USING filename
                     'Class Sub Components Definitions'(066) 'X'.
      LOOP AT i_scd_t.
        MOVE-CORRESPONDING i_scd_t TO i_scd.
        APPEND i_scd.
      ENDLOOP.
      CONCATENATE pfad reports '_scx.txt' INTO filename.
      PERFORM upload TABLES i_scx USING filename
                     'Class Sub Components Remote Infos'(067) 'X'.
      CONCATENATE pfad reports '_sct.txt' INTO filename.
      PERFORM upload TABLES i_sct USING filename
                     'Class Sub Components Descriptions'(068) 'X'.
      CONCATENATE pfad reports '_tfd.txt' INTO filename.
      PERFORM upload TABLES i_tfd USING filename
                     'Function List'(049) 'X'.
      CONCATENATE pfad reports '_dyn.txt' INTO filename.
      PERFORM upload TABLES i_d020t USING filename
                     'Dynpro List'(040) 'X'.
      CONCATENATE pfad reports '_sta.txt' INTO filename.
      PERFORM upload TABLES sta4 USING filename
                     'GUI Status'(013) 'X'.
      CONCATENATE pfad reports '_ctx.txt' INTO filename.
      PERFORM upload TABLES ctx4 USING filename
                     'Object Codes'(045) 'X'.
      CONCATENATE pfad reports '_fun.txt' INTO filename.
      PERFORM upload TABLES fun4 USING filename
                     'Function Texts'(014) 'X'.
      CONCATENATE pfad reports '_men.txt' INTO filename.
      PERFORM upload TABLES men4 USING filename
                     'Menus'(015) 'X'.
      CONCATENATE pfad reports '_mtx.txt' INTO filename.
      PERFORM upload TABLES mtx4 USING filename
                     'Menu Texts'(016) 'X'.
      CONCATENATE pfad reports '_act.txt' INTO filename.
      PERFORM upload TABLES act4 USING filename
                     'Menu Bars'(047) 'X'.
      CONCATENATE pfad reports '_sti.txt' INTO filename.
      PERFORM upload TABLES tit4 USING filename
                     'Title Codes'(042) 'X'.
      CONCATENATE pfad reports '_but.txt' INTO filename.
      PERFORM upload TABLES but4 USING filename
                     'Push Buttons'(018) 'X'.
      CONCATENATE pfad reports '_pfk.txt' INTO filename.
      PERFORM upload TABLES pfk4 USING filename
                     'PF Keys'(019) 'X'.
      CONCATENATE pfad reports '_set.txt' INTO filename.
      PERFORM upload TABLES set4 USING filename
                     'Function Sets'(020) 'X'.
      CONCATENATE pfad reports '_adm.txt' INTO filename.
      PERFORM upload TABLES i_adm4 USING filename
                     'Management Information'(043) 'X'.
      READ TABLE i_adm4 INTO adm4 INDEX 1.
      CONCATENATE pfad reports '_doc.txt' INTO filename.
      PERFORM upload TABLES doc4 USING filename
                     'Status Texts'(023) 'X'.
      CONCATENATE pfad reports '_tit.txt' INTO filename.
      PERFORM upload TABLES tit USING filename
                     'Title Bars'(030) 'X'.
      CONCATENATE pfad reports '_stx.txt' INTO filename.
      PERFORM upload TABLES stx4 USING filename
                     'Status Texts'(023) 'X'.
      CONCATENATE pfad reports '_biv.txt' INTO filename.
      PERFORM upload TABLES biv46c USING filename
                     'Invariant Functions'(048) 'X'.
      TRANSLATE reports USING './'.
      IF alle IS INITIAL.
        repname = reports.
        reports = report-low.
        IF classtype = 'CP' OR classtype = 'CI'.
          OVERLAY reports(30) WITH '=============================='.
          reports+30 = classtype.
        ENDIF.
        eu_key-name = reports.
      ENDIF.
      TRANSLATE repname TO UPPER CASE.
      IF reports(3) = 'SAP' AND reports(5) = repname(5) AND
         reports NE repname.
        rest1 = repname+4.
        rest2 = reports+4.
      ELSE.
        CLEAR: rest1, rest2.
      ENDIF.
      PERFORM repchange.
      IF NOT d_l IS INITIAL OR
         NOT d_r3_l IS INITIAL.
        PERFORM show_rep.
      ENDIF.
      IF NOT d_r3   IS INITIAL OR
         NOT d_r3_l IS INITIAL.
        IF classtype IS INITIAL.
*--- cei120104 begin
*          INSERT REPORT reports FROM i_repsrc.
          READ TABLE it_trdir WITH KEY name = reports.
          IF sy-subrc EQ 0.
           INSERT REPORT reports FROM i_repsrc DIRECTORY ENTRY it_trdir
.
          ENDIF.
*--- cei120104 end
        ELSE.
          INSERT REPORT reports FROM i_repsrc
                        EXTENSION TYPE classtype.
        ENDIF.
        subrc = sy-subrc.
        WRITE: / reports, (40) 'Source'(003).
        IF subrc = 0.
          WRITE: 'successfully saved'(007).
        ELSE.
          WRITE: 'not saved,  RC ='(008), subrc.
        ENDIF.
        CHECK subrc = 0.
        IF NOT i_reptxt[] IS INITIAL.
          INSERT TEXTPOOL reports FROM i_reptx LANGUAGE sy-langu.
          subrc = sy-subrc.
          WRITE: / reports, (40) 'Textelements'(004).
          IF subrc = 0.
            WRITE: 'successfully saved'(010).
          ELSE.
            WRITE: 'not saved,  RC ='(008), subrc.
          ENDIF.
        ENDIF.
        PERFORM update TABLES i_tmd USING 'TMDIR'
                       'Methods List'(048).
        PERFORM update TABLES i_cls USING 'SEOCLASS'
                       'Class Entry'(050).
        PERFORM update TABLES i_cdf USING 'SEOCLASSDF'
                       'Class Definition'(051).
        PERFORM update TABLES i_clx USING 'SEOCLASSEX'
                       'Class Remote Info'(052).
        PERFORM update TABLES i_clt USING 'SEOCLASSTX'
                       'Class Description'(053).
        PERFORM update TABLES i_cmr USING 'SEOMETAREL'
                       'Class Meta Relations'(054).
        PERFORM update TABLES i_cmp USING 'SEOCOMPO'
                       'Class Components'(055).
        PERFORM update TABLES i_cmd USING 'SEOCOMPODF'
                       'Class Components Definitions'(056).
        PERFORM update TABLES i_cmx USING 'SEOCOMPOEX'
                       'Class Components Remote Infos'(057).
        PERFORM update TABLES i_cmt USING 'SEOCOMPOTX'
                       'Class Components Descriptions'(058).
        PERFORM update TABLES i_irl USING 'SEOIMPLREL'
                       'Class Components Relation Types'(059).
        PERFORM update TABLES i_mat USING 'SEOMAPATT'
                       'Class Mapping Attributes'(060).
        PERFORM update TABLES i_mac USING 'SEOMAPCLS'
                       'Class Mapping Classes'(061).
        PERFORM update TABLES i_red USING 'SEOREDEF'
                       'Class Redefinitions'(062).
        PERFORM update TABLES i_frd USING 'SEOFRIENDS'
                       'Class Friends'(063).
        PERFORM update TABLES i_tpl USING 'SEOTYPEPLS'
                       'Class Type-Pools'(064).
        PERFORM update TABLES i_sco USING 'SEOSUBCO'
                       'Class Sub Components'(065).
        PERFORM update TABLES i_scd USING 'SEOSUBCODF'
                       'Class Sub Components Definitions'(066).
        PERFORM update TABLES i_scx USING 'SEOSUBCOEX'
                       'Class Sub Components Remote Infos'(067).
        PERFORM update TABLES i_sct USING 'SEOSUBCOTX'
                       'Class Sub Components Descriptions'(068).
        PERFORM update TABLES i_tfd USING 'TFDIR'
                       'Function List'(049).
      ENDIF.
      LOOP AT i_inc.
        TRANSLATE i_inc TO UPPER CASE.
        incname = i_inc.
        classtype = i_inc+30.
        IF NOT rest1 IS INITIAL.
          CALL FUNCTION 'STRING_REPLACE'
               EXPORTING
                    pattern             = rest1
                    substitute          = rest2
*                   MAX_REPLACES        = 0
*              IMPORTING
*                   NUMBER_OF_REPLACES  =
               CHANGING
                    text                = i_inc
               EXCEPTIONS
                    wrong_string_length = 1
                    OTHERS              = 2.
        ENDIF.
        IF NOT d_r3   IS INITIAL OR
           NOT d_r3_l IS INITIAL.
          READ REPORT i_inc INTO i_repsrc.
          IF sy-subrc = 0
*--- cei091203 begin
             AND p_nocon IS INITIAL.
*--- cei091203 end
            CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
                 EXPORTING
                      defaultoption  = 'N'
                      textline1 =
                        'Soll das Include Г_berschrieben werden?'(034)
                      textline2      = i_inc
                   titel          = 'Include existiert bereits!'(039)
*                     START_COLUMN   = 25
*                     START_ROW      = 6
*                     CANCEL_DISPLAY = 'X'
                 IMPORTING
                      answer         = answer
                 EXCEPTIONS
                      OTHERS         = 1.
            CHECK answer = 'J'.
          ENDIF.
        ENDIF.
        REFRESH: i_repsrc, i_reptx, i_reptxt.
        TRANSLATE incname TO LOWER CASE.
        CONCATENATE pfad incname '.txt' INTO filename.
        PERFORM upload TABLES i_repsrc USING filename
                       'Include Source'(032) ' '.
        PERFORM repchange.
        CONCATENATE pfad incname '_txt.txt' INTO filename.
        PERFORM upload TABLES i_reptxt USING filename
                       'Textelements'(004) ' '.
        LOOP AT i_reptxt.
          MOVE-CORRESPONDING i_reptxt TO i_reptx.
          APPEND i_reptx.
        ENDLOOP.
        IF NOT d_l IS INITIAL OR
           NOT d_r3_l IS INITIAL.
          PERFORM show_inc.
        ENDIF.
        IF NOT d_r3   IS INITIAL OR
           NOT d_r3_l IS INITIAL.
          TRANSLATE i_inc USING './'.
          IF classtype IS INITIAL.
*--- cei120104 begin
*           INSERT REPORT i_inc FROM i_repsrc.
            break c5050605.
            READ TABLE it_trdir WITH KEY name = i_inc.
            IF sy-subrc EQ 0.
             INSERT REPORT i_inc FROM i_repsrc DIRECTORY ENTRY it_trdir
.
            ENDIF.
*--- cei120104 end
          ELSE.
            INSERT REPORT i_inc FROM i_repsrc
                          EXTENSION TYPE classtype.
          ENDIF.
          subrc = sy-subrc.
          WRITE: / i_inc, (40) 'Include Source'(032).
          IF subrc = 0.
            WRITE: 'successfully saved'(007).
          ELSE.
            WRITE: 'not saved,  RC ='(008), subrc.
          ENDIF.
          IF NOT i_reptx[] IS INITIAL.
            INSERT TEXTPOOL i_inc FROM i_reptx LANGUAGE sy-langu.
            subrc = sy-subrc.
            WRITE: / i_inc, (40) 'Textelements'(004).
            IF subrc = 0.
              WRITE:
              'successfully saved'(010).
            ELSE.
              WRITE: 'not saved,  RC ='(008), subrc.
            ENDIF.
          ENDIF.
          d010inc-master  = reports.
          d010inc-include = i_inc.
          INSERT d010inc.
        ENDIF.
      ENDLOOP.
      LOOP AT i_d020t.
        TRANSLATE i_d020t-prog TO UPPER CASE.
        IF NOT d_r3   IS INITIAL OR
           NOT d_r3_l IS INITIAL.
          PERFORM dynpro_upload.
          IF NOT d_l IS INITIAL OR
             NOT d_r3_l IS INITIAL.
            PERFORM show_dyn.
          ENDIF.
          i_d020t-prog = reports.
          EXPORT DYNPRO hdr fld src mat ID i_d020t.
          subrc = sy-subrc.
          WRITE: / i_d020t-prog, i_d020t-dynr, (15) 'Dynpro'(041).
          IF subrc = 0.
            WRITE: 'successfully saved'(010).
          ELSE.
            WRITE: 'not saved,  RC ='(008), subrc.
          ENDIF.
        ENDIF.
      ENDLOOP.
      IF NOT d_r3   IS INITIAL OR
         NOT d_r3_l IS INITIAL.
        IF NOT sta4[] IS INITIAL.
          CALL FUNCTION 'RS_CUA_INTERNAL_WRITE'
               EXPORTING
                    program   = reports
                    language  = sy-langu
                    tr_key    = trkey
                    adm       = adm4
*                   STATE     =
               TABLES
                    sta       = sta4
                    fun       = fun4
                    men       = men4
                    mtx       = mtx4
                    act       = act4
                    but       = but4
                    pfk       = pfk4
                    set       = set4
                    doc       = doc4
                    tit       = tit4
                    biv       = biv46c
               EXCEPTIONS
                    not_found = 1
                    OTHERS    = 2.
          subrc = sy-subrc.
          IF subrc = 0.
            MODIFY rsmptexts FROM TABLE stx4.
            subrc = sy-subrc.
          ENDIF.
          WRITE: / reports, (40) 'GUI Status ...'(031).
          IF subrc = 0.
            WRITE: 'successfully saved'(010).
          ELSE.
            WRITE: 'not saved,  RC ='(008), subrc.
          ENDIF.
        ENDIF.
        IF NOT tit[] IS INITIAL.
          title-ddlanguage = sy-langu.
          title-progname   = reports.
          LOOP AT tit.
            title-ddnr = tit-code.
            title-text_line = tit-text.
            MODIFY title.
          ENDLOOP.
          WRITE: / reports, (40) 'Title Bars'(030).
          IF sy-subrc = 0.
            WRITE: 'successfully saved'(010).
          ELSE.
            WRITE: 'not saved,  RC ='(008), subrc.
          ENDIF.
        ENDIF.
      ENDIF.
      ULINE.
    ENDLOOP.
    IF NOT i_inc[] IS INITIAL.
      MESSAGE i208(00) WITH
              'Includes wurden ggf. umbenannt, bitte prГ_fen!'(044).
    ENDIF.
  ENDIF.
  REFRESH: appls, reports.
Back to top
View user's profile Send private message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1640

PostPosted: Sun Feb 03, 2008 1:21 am    Post subject: Reply with quote

Code:
*&---------------------------------------------------------------------*
*&      Form  DOWNLOAD
*&---------------------------------------------------------------------*
FORM download TABLES   tabelle
              USING    value(filename)
                       component.
*--- cei091203 begin
  DATA: infoline(80).
  CONCATENATE 'Creating file' filename INTO infoline
              SEPARATED BY space.
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      text = infoline.
*--- cei091203 end
  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
*     BIN_FILESIZE                  =
      filename                      = filename
*     FILETYPE                      = 'ASC'
*     APPEND                        = ' '
*     WRITE_FIELD_SEPARATOR         = ' '
*     HEADER                        = '00'
*     TRUNC_TRAILING_BLANKS         = ' '
*     WRITE_LF                      = 'X'
*     COL_SELECT                    = ' '
*     COL_SELECT_MASK               = ' '
*   IMPORTING
*     FILELENGTH                    =
    TABLES
      data_tab                      = tabelle
    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 reports IS INITIAL.
    WRITE: / appls.
  ELSE.
    WRITE: / reports.
  ENDIF.
  WRITE: (40) component.
  IF sy-subrc = 0.
    WRITE: 'successfully downloaded'(001).
  ELSE.
    WRITE: 'not downloaded,  RC ='(002), sy-subrc.
  ENDIF.
ENDFORM.                                                    " DOWNLOAD

*&---------------------------------------------------------------------*
*&      Form  FILESELECTOR
*&---------------------------------------------------------------------*
FORM fileselector.
  DATA: repname(80).
  DATA: fdpos(2) TYPE p.

  CALL FUNCTION 'WS_FILENAME_GET'
       EXPORTING
*           DEF_FILENAME     = ' '
            def_path         = pfad
            mask             = ',*.txt,*.txt.'
            mode             = 'O'
*           TITLE            = ' '
       IMPORTING
            filename         = datei
*           RC               =
       EXCEPTIONS
            inv_winsys       = 1
            no_batch         = 2
            selection_cancel = 3
            selection_error  = 4
            OTHERS           = 5.
  subrc = sy-subrc.
  pfad = datei.
  CLEAR: sy-fdpos, sy-subrc.
  fdpos = 1.
  WHILE sy-subrc = 0.
    fdpos = fdpos + sy-fdpos + 1.
    SEARCH pfad FOR delim STARTING AT fdpos.
  ENDWHILE.
  fdpos = fdpos - 1.
  pfad = pfad(fdpos).
  repname = datei.
  CLEAR sy-subrc.
  WHILE sy-subrc = 0.
    SHIFT repname LEFT.
    SHIFT repname LEFT UP TO delim.
  ENDWHILE.
  SHIFT repname RIGHT UP TO '.'.
  SHIFT repname RIGHT.
  SHIFT repname LEFT DELETING LEADING space.
  TRANSLATE repname TO UPPER CASE.
  reports = repname.
  APPEND reports.
ENDFORM.                               " FILESELECTOR

*&---------------------------------------------------------------------*
*&      Form  UPLOAD
*&---------------------------------------------------------------------*
FORM upload TABLES   tabelle
            USING    value(filename)
                     component
                     quiet.
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                      = filename
*     FILETYPE                      = 'ASC'
*     HAS_FIELD_SEPARATOR           = ' '
*     HEADER_LENGTH                 = 0
*     READ_BY_LINE                  = 'X'
*   IMPORTING
*     FILELENGTH                    =
*     HEADER                        =
    TABLES
      data_tab                      = tabelle
    EXCEPTIONS
      file_open_error               = 1
      file_read_error               = 2
      no_batch                      = 3
      gui_refuse_filetransfer       = 4
      invalid_type                  = 5
      no_authority                  = 6
      unknown_error                 = 7
      bad_data_format               = 8
      header_not_allowed            = 9
      separator_not_allowed         = 10
      header_too_long               = 11
      unknown_dp_error              = 12
      access_denied                 = 13
      dp_out_of_memory              = 14
      disk_full                     = 15
      dp_timeout                    = 16
      OTHERS                        = 17.
  subrc = sy-subrc.
  IF quiet IS INITIAL.
    WRITE: / reports, (40) component.
    IF subrc = 0.
      WRITE: 'successfully uploaded'(005).
    ELSE.
      WRITE: 'not uploaded,  RC ='(006), subrc.
    ENDIF.
  ELSEIF subrc = 0.
    WRITE: / reports, (40) component,
             'successfully uploaded'(005).
  ENDIF.
ENDFORM.                                                    " UPLOAD

*&---------------------------------------------------------------------*
*&      Form  update
*&---------------------------------------------------------------------*
FORM update TABLES   tabelle
            USING    dbtab
                     component.
  CHECK NOT tabelle[] IS INITIAL.
  MODIFY (dbtab) FROM TABLE tabelle.
  subrc = sy-subrc.
  WRITE: / reports, (40) component.
  IF subrc = 0.
    WRITE: 'successfully saved'(010).
  ELSE.
    WRITE: 'not saved,  RC ='(008), subrc.
  ENDIF.
ENDFORM.                                                    " update

*&---------------------------------------------------------------------*
*&      Form  LS
*&---------------------------------------------------------------------*
FORM ls.
  TYPES: c80(80).
  DATA: dirtab TYPE STANDARD TABLE OF c80 WITH HEADER LINE.
  DATA: datei TYPE string.
  DATA: i LIKE sy-tabix.
  DATA: endtime LIKE sy-uzeit.

  CALL FUNCTION 'WS_EXECUTE'
       EXPORTING
*           DOCUMENT       = ' '
            cd             = pfad
            commandline    = command
*           INFORM         = ' '
            program        = shell
*           STAT           = ' '
*           WINID          = ' '
*           OSMAC_SCRIPT   = ' '
*           OSMAC_CREATOR  = ' '
*           WIN16_EXT      = ' '
*           EXEC_RC        = ' '
*      IMPORTING
*           RBUFF          =
       EXCEPTIONS
            frontend_error = 1
            no_batch       = 2
            prog_not_found = 3
            illegal_option = 4
            OTHERS         = 5.
  IF sy-subrc NE 0.
    MESSAGE e001(pc).
*   Fehler beim AusfГ_hren des WS_Programms
  ENDIF.
  CONCATENATE pfad 'dir.tmp'  INTO datei.
  GET TIME.
  endtime = sy-uzeit + 3.
  WHILE sy-uzeit < endtime.
    GET TIME.
  ENDWHILE.
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                      = datei
*     FILETYPE                      = 'ASC'
*     HAS_FIELD_SEPARATOR           = ' '
*     HEADER_LENGTH                 = 0
*     READ_BY_LINE                  = 'X'
*   IMPORTING
*     FILELENGTH                    =
*     HEADER                        =
    TABLES
      data_tab                      = dirtab
    EXCEPTIONS
      file_open_error               = 1
      file_read_error               = 2
      no_batch                      = 3
      gui_refuse_filetransfer       = 4
      invalid_type                  = 5
      no_authority                  = 6
      unknown_error                 = 7
      bad_data_format               = 8
      header_not_allowed            = 9
      separator_not_allowed         = 10
      header_too_long               = 11
      unknown_dp_error              = 12
      access_denied                 = 13
      dp_out_of_memory              = 14
      disk_full                     = 15
      dp_timeout                    = 16
      OTHERS                        = 17.
  IF sy-subrc NE 0.
    MESSAGE e001(pc).
*   Fehler beim AusfГ_hren des WS_Programms
  ENDIF.
  REFRESH reports.
  i = 1.
  DO.
    SEARCH dirtab FOR '.txt' STARTING AT i.
    IF sy-subrc NE 0.
      EXIT.
    ENDIF.
    READ TABLE dirtab INDEX sy-tabix.
    i = sy-tabix + 1.
    CHECK dirtab NS 'txt_.txt'.
    SHIFT dirtab LEFT UP TO space.
    SHIFT dirtab LEFT DELETING LEADING space.
    SHIFT dirtab LEFT UP TO space.
    SHIFT dirtab LEFT DELETING LEADING space.
    SHIFT dirtab LEFT UP TO space.
    SHIFT dirtab RIGHT UP TO '.'.
    SHIFT dirtab RIGHT.
    SHIFT dirtab LEFT DELETING LEADING space.
    IF NOT dirtab IS INITIAL.
      TRANSLATE dirtab TO LOWER CASE.
      APPEND dirtab TO reports.
    ENDIF.
  ENDDO.
  SORT reports.
  DELETE ADJACENT DUPLICATES FROM reports.
ENDFORM.                                                    " LS

*&---------------------------------------------------------------------*
*&      Form  SHOW_DYN
*&---------------------------------------------------------------------*
FORM show_dyn.
* Ausgabe der Dynpro-Daten
* Kopfdaten fГ_r Dynpro
  FORMAT COLOR COL_TOTAL.
  WRITE: / 'Dynpro Header', AT sy-linsz ''.
  FORMAT COLOR COL_NORMAL.
  WRITE: / 'Programm:',    30 hdr-prog, AT sy-linsz '',
         / 'Dynpro:',      30 hdr-dnum, AT sy-linsz '',
         / 'Folgedynpro:', 30 hdr-fnum, AT sy-linsz ''.
  ULINE.
* Feldliste ausgeben
  FORMAT COLOR COL_TOTAL.
  WRITE:  / 'Feldliste'  COLOR COL_TOTAL, AT sy-linsz ''.
  FORMAT COLOR COL_HEADING.
  WRITE:  / 'Feldname',
         25 'Zeile',
         30 'Spalte',
         37 'TYPE',
         42 'LOOPTyp',
         50 'DDIC',
         55 'FormByte', AT sy-linsz ''.
  CALL FUNCTION 'RS_SCRP_FIELDS_RAW_TO_CHAR'
    TABLES
      fields_int  = fld
      fields_char = fields_char
    EXCEPTIONS
      OTHERS      = 1.
  FORMAT COLOR COL_NORMAL.
  LOOP AT fields_char.
    WRITE: /(24) fields_char-feldname,
              25 fields_char-line,
              30 fields_char-coln,
              37 fields_char-feldformat,
              42 fields_char-looptype,
              50 fields_char-inttyp,
              55 fields_char-fmb1,
              58 fields_char-fmb2.
  ENDLOOP.
  ULINE.
* Ablauflogik anzeigen.
  FORMAT COLOR COL_TOTAL.
  WRITE: / 'Ablauflogik', AT sy-linsz ''.
  FORMAT COLOR COL_NORMAL.
  LOOP AT src.
    WRITE: / src-line.
  ENDLOOP.
  ULINE.
  SKIP.
* Matchcode-Daten anzeigen
  FORMAT COLOR COL_TOTAL.
  WRITE: / 'Matchcode-Daten', AT sy-linsz ''.
  FORMAT COLOR COL_NORMAL.
  LOOP AT mat.
    WRITE: /(80) mat.
  ENDLOOP.
  IF sy-subrc NE 0.
    WRITE / ' keine Matchcode-Daten vorhanden ' COLOR COL_NEGATIVE.
  ENDIF.
  NEW-PAGE.
ENDFORM.                                                    " SHOW_DYN

*&---------------------------------------------------------------------*
*&      Form  SHOW_REP
*&---------------------------------------------------------------------*
FORM show_rep.
  FORMAT COLOR COL_TOTAL.
  WRITE: / 'Programm:', reports, AT sy-linsz ''.
  FORMAT COLOR COL_BACKGROUND.
  LOOP AT i_repsrc.
    WRITE: / i_repsrc.
  ENDLOOP.
  ULINE.
  FORMAT COLOR COL_TOTAL.
  WRITE: / 'Textelemente zu Programm:', reports, AT sy-linsz ''.
  FORMAT COLOR COL_HEADING.
  WRITE:  / 'Typ',
          5 'SchlГ_ssel',
         20 'LГ¤nge',
         30 'Text', AT sy-linsz ''.
  FORMAT COLOR COL_NORMAL.
  LOOP AT i_reptxt.
    WRITE: / i_reptxt-id,
           5 i_reptxt-key,
       20(4) i_reptxt-length,
      30(80) i_reptxt-entry.
  ENDLOOP.
  NEW-PAGE.
ENDFORM.                                                    " SHOW_REP

*&---------------------------------------------------------------------*
*&      Form  SHOW_INC
*&---------------------------------------------------------------------*
FORM show_inc.
  FORMAT COLOR COL_TOTAL.
  WRITE: / 'Include:', i_inc, AT sy-linsz ''.
  FORMAT COLOR COL_BACKGROUND.
  LOOP AT i_repsrc.
    WRITE: / i_repsrc.
  ENDLOOP.
  ULINE.
  FORMAT COLOR COL_TOTAL.
  WRITE: / 'Textelemente zu Include:', i_inc, AT sy-linsz ''.
  FORMAT COLOR COL_HEADING.
  WRITE:  / 'Typ',
          5 'SchlГ_ssel',
         20 'LГ¤nge',
         30 'Text', AT sy-linsz ''.
  FORMAT COLOR COL_NORMAL.
  LOOP AT i_reptxt.
    WRITE: / i_reptxt-id,
           5 i_reptxt-key,
       20(4) i_reptxt-length,
      30(80) i_reptxt-entry.
  ENDLOOP.
  NEW-PAGE.
ENDFORM.                                                    " SHOW_INC

*&---------------------------------------------------------------------*
*&      Form  REPCHANGE
*&---------------------------------------------------------------------*
FORM repchange.
  IF NOT rest1 IS INITIAL.
    LOOP AT i_repsrc.
      IF i_repsrc CS 'INCLUDE '.
        CALL FUNCTION 'STRING_REPLACE'
             EXPORTING
                  pattern             = rest1
                  substitute          = rest2
*                 MAX_REPLACES        = 0
*            IMPORTING
*                 NUMBER_OF_REPLACES  =
             CHANGING
                  text                = i_repsrc
             EXCEPTIONS
                  wrong_string_length = 1
                  OTHERS              = 2.
        IF sy-subrc = 0.
          MODIFY i_repsrc.
          kz_renam = 'X'.
        ENDIF.
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDFORM.                                                    " REPCHANGE

*&---------------------------------------------------------------------*
*&      Form  DYNPRO_DOWNLOAD
*&---------------------------------------------------------------------*
FORM dynpro_download.
  CALL FUNCTION 'RS_SCRP_HEADER_RAW_TO_CHAR'
    EXPORTING
      header_int  = hdr
    IMPORTING
      header_char = header_char
    EXCEPTIONS
      OTHERS      = 1.

  REFRESH dynp_char.

* Comment
  dynp_char = stars.    APPEND dynp_char.
  dynp_char = comment1. APPEND dynp_char.
  dynp_char = comment2. APPEND dynp_char.
  dynp_char = stars.    APPEND dynp_char.

* Identification
  dynp_char = dynpro_text.      APPEND dynp_char.          "  '%_DYNPRO'
  dynp_char = header_char-prog. APPEND dynp_char.
  dynp_char = header_char-dnum. APPEND dynp_char.
  dynp_char = sy-saprl.         APPEND dynp_char.
  DESCRIBE FIELD i_d020t-prog LENGTH prog_len
           IN CHARACTER MODE.
  dynp_char(16) = prog_len.      APPEND dynp_char.

* Header
  dynp_char = header_text.      APPEND dynp_char.     "  '%_HEADER'
  APPEND header_char TO dynp_char.

* Description
  dynp_char = descript_text.    APPEND dynp_char.     "  '%_DESCRIPTION'
  APPEND i_d020t-dtxt TO dynp_char.

* Fieldlist
  dynp_char = fields_text.             "  '%_FIELDS'
  APPEND dynp_char.
  CALL FUNCTION 'RS_SCRP_FIELDS_RAW_TO_CHAR'
    TABLES
      fields_int  = fld
      fields_char = fields_char
    EXCEPTIONS
      OTHERS      = 1.

  LOOP AT fields_char.
    APPEND fields_char TO dynp_char.
  ENDLOOP.

* Flowlogic
  dynp_char = flowlogic_text.          "  '%_FLOWLOGIC'
  APPEND dynp_char.

  LOOP AT src.
    APPEND src TO dynp_char.
  ENDLOOP.
**  refresh flowlogic.                   "vjb 25.06.98


* Dynpro Parameters                      "vjb ab 4.6A (01.07.98)
  dynp_char = params_text.
  APPEND dynp_char.

  LOOP AT mat.
    APPEND mat TO dynp_char.
  ENDLOOP.

* Download
  CONCATENATE pfad reports suffix '_' i_d020t-dynr
              '.txt' INTO filename.
  PERFORM download TABLES dynp_char USING filename 'Dynpro'(041).

ENDFORM.                               " DYNPRO_DOWNLOAD

*&---------------------------------------------------------------------*
*&      Form  DYNPRO_UPLOAD
*&---------------------------------------------------------------------*
FORM dynpro_upload.
  CONCATENATE pfad i_d020t-prog suffix '_' i_d020t-dynr
              '.txt' INTO filename.
  PERFORM upload TABLES dynp_char USING filename
                       'Dynpro'(041) ' '.
*--- cei091203 begin
* wozu ist das gut, wenn danach mit index 5 gelesen wird??
*/del REFRESH dynp_char.
*--- cei091203 end

* is it really a dynpro file ?
  READ TABLE dynp_char INDEX 5.
  IF dynp_char <> dynpro_text.         " '%_DYNPRO'
    MESSAGE e250(37).
  ENDIF.

* release test ( < rel. 3)
  READ TABLE dynp_char INDEX 8.

  IF dynp_char(1) < 3.                                    "#EC PORTABLE
    MESSAGE e251(37).
  ENDIF.

* test dynpro name
  READ TABLE dynp_char INDEX 6.
  dynp-prog = dynp_char.
  READ TABLE dynp_char INDEX 7.
  dynp-dnum = dynp_char.
  IF dynp-prog <> i_d020t-prog OR dynp-dnum <> i_d020t-dynr.
    WRITE: / reports, (40) 'Dynpro'(041), i_d020t-dynr,
             'enthГ¤lt anderes Dynpro'(046), dynp-dnum.
  ENDIF.

* Neuer Programmname
  i_d020t-prog = reports.

* fill header_char, fields_char, flowlogic, and dynpro parameters
  REFRESH fields_char.
  REFRESH src.
  status = ' '.
  LOOP AT dynp_char.
    CASE dynp_char.
      WHEN dynpro_text.    status = '1'.    " '%_DYNPRO'
      WHEN header_text.    status = 'H'.    " '%_HEADER'
      WHEN descript_text.  status = 'D'.    " '%_DESCRIPT'
      WHEN fields_text.    status = 'F'.    " '%_FIELDS'
      WHEN flowlogic_text. status = 'E'.    " '%_FLOWLOGIC'
      WHEN params_text.    status = 'P'.    " '%_PARAMS'
      WHEN OTHERS.
        CASE status.
          WHEN '1'.
            status = '2'.
          WHEN '2'.
            status = '3'.
          WHEN '3'.
            release = dynp_char(1).
            status = '4'.
          WHEN '4'.
            prog_len = dynp_char.
            status = 'H'.
          WHEN 'H'.
            DESCRIBE FIELD i_d020t-prog LENGTH prog_len_akt
                     IN CHARACTER MODE.
            MOVE dynp_char(prog_len) TO header_char(prog_len_akt).
            MOVE dynp_char+prog_len  TO header_char+prog_len_akt.
            header_char-prog = i_d020t-prog.
            header_char-dnum = i_d020t-dynr.
            status = ' '.
          WHEN 'D'.
            i_d020t-dtxt = dynp_char.
          WHEN 'F'.
            fields_char = dynp_char.
            APPEND fields_char.
          WHEN 'E'.
            src = dynp_char.
            APPEND src.
          WHEN 'P'.
            mat    = dynp_char.
            APPEND mat.
        ENDCASE.
    ENDCASE.
  ENDLOOP.

* translate header
  CALL FUNCTION 'RS_SCRP_HEADER_CHAR_TO_RAW'
    EXPORTING
      header_char = header_char
    IMPORTING
      header_int  = hdr
    EXCEPTIONS
      OTHERS      = 1.

* translate fieldlist
  CALL FUNCTION 'RS_SCRP_FIELDS_CHAR_TO_RAW'
    TABLES
      fields_int  = fld
      fields_char = fields_char
    EXCEPTIONS
      OTHERS      = 1.

* release check
  CALL FUNCTION 'RS_DYNPRO_RELEASE_GET'
    EXPORTING
      dynpro_header  = hdr
    IMPORTING
      dynpro_release = dynpro_rel.
  dynp_rel = dynpro_rel.
  IF scrp_rel < dynp_rel.                                 "#EC PORTABLE
    MESSAGE e251(37) RAISING invalid_release.
  ENDIF.

  CALL FUNCTION 'RS_SCRP_DYNPRO_CHECK'
    TABLES
      fieldlist            = fld
      flowlogic            = src
      params               = mat
    CHANGING
      header               = hdr
    EXCEPTIONS
      damaged_but_repaired = 1
      damaged              = 2
      OTHERS               = 3.
  IF sy-subrc NE 0.
    subrc = sy-subrc.
    CASE subrc.
      WHEN 2.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
                RAISING damaged.
      WHEN 3.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
                RAISING not_executed.

    ENDCASE.
  ENDIF.
ENDFORM.                               " DYNPRO_UPLOAD
*&---------------------------------------------------------------------*
*&      Form  kill_intervals
*&---------------------------------------------------------------------*
*       nomen est omen ...
*&---------------------------------------------------------------------*
FORM kill_intervals.

  DATA: rest TYPE sscr_restrict,
        optl TYPE sscr_opt_list,
        sass TYPE sscr_ass.
*--- master screen restrictions ...
  sass-kind = 'S'.
  sass-name = 'S_NOINC'.
  sass-sg_main = 'I'.
  sass-sg_addy = ' '.
  sass-op_main = 'S_NOINC_MAIN'.
  sass-op_addy = 'S_NOINC_ADDY'.
  APPEND sass TO rest-ass_tab.
*--- in detail ...
  optl-name = 'S_NOINC_MAIN'.
  optl-options-eq = 'X'.
  optl-options-bt = 'X'.
  optl-options-cp = 'X'.
  APPEND optl TO rest-opt_list_tab.
  CLEAR: optl.
*--- in detail ...
  optl-name = 'S_NOINC_ADDY'.
  optl-options-eq = 'X'.
  optl-options-bt = 'X'.
  optl-options-cp = 'X'.
  APPEND optl TO rest-opt_list_tab.
  CLEAR: optl.
*
  CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
    EXPORTING
      restriction = rest
    EXCEPTIONS
      OTHERS      = 0.

ENDFORM.                    " kill_intervals
*&---------------------------------------------------------------------*
*&      Form  download_trdir
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM download_trdir TABLES source.

  CONCATENATE pfad reports suffix '_trdir.txt' INTO filename.
  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      filename              = filename
      filetype              = 'ASC'
      write_field_separator = 'X'
    TABLES
      data_tab              = source
    EXCEPTIONS
      OTHERS                = 8.


ENDFORM.                    " download_trdir
*&---------------------------------------------------------------------*
*&      Form  upload_trdir
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM upload_trdir TABLES source.

  CONCATENATE pfad reports suffix '_trdir.txt' INTO filename.
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename              = filename
      filetype              = 'ASC'
*      write_field_separator = 'X'
    TABLES
      data_tab              = source
    EXCEPTIONS
      OTHERS                = 8.


ENDFORM.                    " download_trdir


Code:
IP01     No confirmation for overwriting Includes (Upload)                                                                                                                                                                                                              0049
R        Report Transporter                                                                                                                                                                                                                                             0018
SALLE            ...all reports of this path                                                                                                                                                                                                                            0035
SCDAT            Created on                                                                                                                                                                                                                                             0018
SCNAM            Created By                                                                                                                                                                                                                                             0018
SDEVCLASS        Package                                                                                                                                                                                                                                                0015
SD_L             display from file                                                                                                                                                                                                                                      0025
SD_R3            load from file                                                                                                                                                                                                                                         0022
SD_R3_L          load from file and display                                                                                                                                                                                                                             0034
SPFAD            path                                                                                                                                                                                                                                                   0012
SP_NOCON         no confirmation to overwrite                                                                                                                                                                                                                           0036
SR3_D            save to file                                                                                                                                                                                                                                           0020
SR3_D_L          display and save to file                                                                                                                                                                                                                               0032
SR3_L            display                                                                                                                                                                                                                                                0015
SREPORT          Program name                                                                                                                                                                                                                                           0020
SRSTAT           Status                                                                                                                                                                                                                                                 0014
SSUBC            Program type                                                                                                                                                                                                                                           0020
SSUFFIX          suffix                                                                                                                                                                                                                                                 0014
SS_NOINC         Ignore Includes for download                                                                                                                                                                                                                           0036
SUDAT            Changed On                                                                                                                                                                                                                                             0018
SUNAM            Last changed by                                                                                                                                                                                                                                        0023



ZREPTRAN_620_txt.txt
 Description:
Экран

Download
 Filename:  ZREPTRAN_620_txt.txt
 Filesize:  5.54 KB
 Downloaded:  1856 Time(s)

Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP Dictionary -> Migration All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.