Posted: Sun Feb 03, 2008 1:42 am Post subject: ZREPTRAN_46C - 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).
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.
* 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: 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
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.
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).
SELECT-OPTIONS: report FOR trdir-name,
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 'F:\ABAPs\'.
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.
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.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pfad.
GET CURSOR FIELD pfad VALUE pfad.
filename = pfad.
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 'Reportname wurde ebenfalls ermittelt'(009).
* &
ELSE.
MESSAGE e208(00)
WITH 'Bitte Report angeben oder Pfad auswфhlen'(011).
* &
ENDIF.
ENDIF.
START-OF-SELECTION.
FORMAT COLOR COL_BACKGROUND INTENSIFIED OFF.
eu_key-sprsl = sy-langu.
IF NOT r3_d IS INITIAL OR
NOT r3_l IS INITIAL OR
NOT r3_d_l IS INITIAL.
* DOWNLOAD
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.
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'
AND obj_name = reports
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.
EXIT.
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.
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.
DELETE i_inc WHERE table_line(1) = '<'.
DELETE i_inc WHERE table_line(1) = '>'.
DELETE i_inc WHERE table_line = 'DB__SSEL'.
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.
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.
CHECK 1 = 0.
ENDIF.
CLEAR src.
READ TABLE src INDEX 1.
IF src-line CS 'Do not change'.
DELETE i_d020t.
CHECK 1 = 0.
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
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.
LOOP AT i_repsrc TO 10.
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.
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.
INSERT REPORT reports FROM i_repsrc.
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.
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.
INSERT REPORT i_inc FROM i_repsrc.
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 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 rlgrap-filename.
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'
* IMPORTING
* FILELENGTH =
TABLES
data_tab = dirtab
EXCEPTIONS
file_read_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
OTHERS = 5.
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.
REFRESH dynp_char.
PERFORM upload TABLES dynp_char USING filename
'Dynpro'(041) ' '.
* 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.
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.
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.