Posted: Sun Feb 03, 2008 1:10 am Post subject: ZREPTRAN_620 - report and dialog program transporter
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.
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.
*&---------------------------------------------------------------------*
*& 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 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.
* 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.
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.
ENDFORM. " kill_intervals
*&---------------------------------------------------------------------*
*& Form download_trdir
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM download_trdir TABLES source.
ENDFORM. " download_trdir
*&---------------------------------------------------------------------*
*& Form upload_trdir
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM upload_trdir TABLES source.
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
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.