Re: Downloading BSP Code to PC for backup

Hi,
Is there any method or code to download BSP code to local PC? I found a link named SAPLINK but not sure how to use this.
Please help me.
Regards,
Anshuman

Hi,
ABAP prog for downloading BSP application to PC:
Selection Text:
CHK_ATTR Attributes
CHK_BSP DownLoad BSP
CHK_CLS DownLoad Class
CHK_CONT Controllers
CHK_EVTS Events
CHK_FRAG Page Fragments
CHK_METH Methods
CHK_PGFL Page with Flow Logic
CHK_TYPE Types
CHK_VIEW Views
P_DIRCLS Folder Name
P_DIRNAM Folder Name
R_ALL All Components
R_BSPALL All Components
R_BSPPAR Partial Components
R_PAR Partial Components
S_BSPAPP BSP Application/s
S_CLSNAM Class Name/s
*& Report Z_UMA_BSP_DOWNLOAD
report z_uma_bsp_download message-id zmsgcls line-size 180.
* TABLES
tables: seoclass,
o2appl,
o2pagcon.
* TYPE-POOLS
type-pools: seoo,seos,seor,seof,seot,seok,seop.
* TYPE DEFINITIONS
types: begin of t_class,
clsname type seoclass-clsname, "Class Name
descrip type seoclasstx-descript, "Class Description
end of t_class.
types: begin of t_component,
clsname type seoclsname,
cmpname type seocmpname,
cmptype type seocmptype,
mtdtype type seomtdtype,
descrip type seodescr,
end of t_component.
types: begin of t_format,
cmpname(30),
decltyp(20),
exposur(15),
typtype(15),
type(110),
attval(110),
desc(100),
end of t_format.
types: begin of t_format1,
pad(4),
sconame(30),
decl(10),
pass(20),
optn(10),
typtype(15),
type(100),
valu(100),
desc(100),
end of t_format1.
types: begin of t_format2,
pad(4),
sconame(30),
desc(100),
end of t_format2.
types: begin of t_mtd_compo,
clsname type seoclsname,
cmpname type seocmpname,
sconame type seosconame,
scotype type seoscotype,
descrip type seodescr,
end of t_mtd_compo.
types: begin of t_bspappl,
applname type o2applname,
applclas type o2applclas,
startpage type o2pageext,
stateful type o2stateful,
descrip type o2descr,
end of t_bspappl.
types: begin of t_pagdetl,
applname type o2applname,
pagekey type o2page,
pagename type o2pageext,
implclass type o2ctrcls,
pagetype type o2pagtyp,
controllerurl type o2pageext,
lifetime type o2lifetime,
state type o2pagstate,
is_error_page type o2errpag,
error_page type o2pageext,
browser_cache type o2bcache,
server_cache type o2scache,
author type cnam,
createdon type rdir_cdate,
changedby type unam,
changedon type rdir_udate,
end of t_pagdetl.
types: begin of t_pagcon,
applname type o2applname,
pagekey type o2page,
objtype type o2objtype,
version type r3state,
end of t_pagcon.
types: begin of t_pagedata,
content type o2pageline_table,
ev_handler type o2pagevh_tabletype,
parameters type o2pagpar_tabletype,
typesource type rswsourcet,
xml_source type xstring,
otr_guids type bsp_guids,
html_pool type string,
end of t_pagedata.
types : begin of t_scr_out,
appname type string,
component type string,
path type string,
status type string ,
etype type c,
end of t_scr_out.
* DATA DECLARATIONS
data: v_langu type sy-langu,
v_filename type string,
x_format type t_format,
x_format1 type t_format1,
x_format2 type t_format2,
v_lines type i,
x_mtdkey type seocpdkey,
x_transport type trkey,
v_sourcename type programm,
v_repid type sy-repid,
v_dynnr type sy-dynnr,
v_uzeit type sy-uzeit,
v_filestr type string,
v_datum type sy-datum,
r_temp_all type c,
v_cnt_cls type string.
INTERNAL TABLE DECLARTIONS
data: it_class type standard table of t_class with header line,
it_compo type standard table of t_component with header line,
it_mtd_compo type standard table of t_mtd_compo with header line,
it_attributes type seoo_attributes_r,
it_methods type seoo_methods_r,
it_events type seoo_events_r,
it_types type seoo_types_r,
it_parameters type seos_parameters_r,
it_exceps type seos_exceptions_r,
it_implementings type seor_implementings_r,
it_redefinitions type seor_redefinitions_r,
it_friendships type seof_friendships_r,
it_typepusages type seot_typepusages_r,
it_clsdeferrds type seot_clsdeferrds_r,
it_intdeferrds type seot_intdeferrds_r,
it_explore_inheritance type seok_cls_typeinfos,
it_explore_implementings type seok_int_typeinfos,
it_aliases type seoo_aliases_r,
it_bspappl type standard table of t_bspappl with header line,
it_pagdetl type standard table of t_pagdetl with header line,
it_pagcon type standard table of t_pagcon with header line,
it_source type t_pagedata,
it_scr_out type standard table of t_scr_out with header line,
it_data(400) occurs 0 with header line,
wa_source type line of o2pageline_table,
wa_pagecon_key type o2pconkey.
* CONSTANTS DECLARATIONS
constants: gc_cmp_attr type n value 0, "COMPONENT ATTRIBUTE
gc_cmp_meth type n value 1, "COMPONENT METHOD
gc_cmp_evnt type n value 2, "COMPONENT EVENT
gc_cmp_type type n value 3, "COMPONENT TYPE
gc_mtd_meth type n value 0, "METHOD METHOD
gc_mtd_evnt type n value 1, "METHOD EVENT
gc_mtd_cons type n value 2, "METHOD CONSTRUCTOR
gc_mtd_dest type n value 3, "METHOD DESTRUCTOR
gc_mtd_getm type n value 4, "METHOD GET
gc_mtd_setm type n value 5, "METHOD SET
gc_sco_para type n value 0, "SCOPE PARAMETER
gc_sco_excp type n value 1, "SCOPE EXCEPTION
gc_exp_priv type n value 0, "EXPOSURE PRIVATE
gc_exp_prot type n value 1, "EXPOSURE PROTECTED
gc_exp_publ type n value 2, "EXPOSURE PUBLIC
gc_typ_like type n value 0, "TYPE LIKE
gc_typ_type type n value 1, "TYPE TYPE
gc_typ_otyp type n value 2, "TYPE OBJECT TYPE
gc_typ_tref type n value 3, "TYPE TYPE REF TO
gc_atr_inst type n value 0, "ATTRIBUTE INSTANCE
gc_atr_stat type n value 1, "ATTRIBUTE STATIC
gc_atr_cnst type n value 2, "ATTRIBUTE CONSTANT
gc_par_impo type n value 0, "PARAMETER IMPORTING
gc_par_expo type n value 1, "PARAMETER EXPORTING
gc_par_chng type n value 2, "PARAMETER CHANGING
gc_par_retn type n value 3, "PARAMETER RETURNING
gc_pas_valu type n value 0, "PARAMETER PASS BY VALUE
gc_pas_refr type n value 1, "PARAMETER CALL BY REFERENCE
gc_yes type c value 'X',
gc_no type c value space,
gc_tab(8) type c value ' ',
gc_bsp_ctrl type o2pagtyp value 'C',
gc_bsp_pgfr type o2pagtyp value 'X',
gc_bsp_pgfl type o2pagtyp value space,
gc_bsp_view type o2pagtyp value 'V',
gc_lft_upgc type c value space,
gc_lft_requ type c value '1',
gc_lft_sess type c value '2'.
* SELECTION SCREENS
*Selection Screen for the Options
selection-screen : begin of block b_main with frame title text-009.
parameters : chk_bsp as checkbox user-command ucom,
chk_cls as checkbox user-command ucom1.
selection-screen : end of block b_main.
*Selection Screen for the BSP Application
selection-screen : begin of block b_bsp1 with frame title text-005.
selection-screen : begin of block b_bsp2 with frame title text-006.
select-options : s_bspapp for o2appl-applname no intervals modif id bsp.
parameters : p_dirnam type rlgrap-filename default 'C:\' modif id bsp.
selection-screen : end of block b_bsp2.
selection-screen : begin of block b_bsp3 with frame title text-007.
parameters : r_bspall radiobutton group rad1 user-command u1 modif id bsp default 'X',
r_bsppar radiobutton group rad1 modif id bsp.
selection-screen : begin of block b_bsp4 with frame title text-008.
parameters : chk_cont as checkbox modif id bs1,
chk_view as checkbox modif id bs1,
chk_pgfl as checkbox modif id bs1,
chk_frag as checkbox modif id bs1.
selection-screen : end of block b_bsp4.
selection-screen : end of block b_bsp3.
selection-screen : end of block b_bsp1.
*Selection Screen for Class Download
selection-screen : begin of block b1 with frame title text-001.
selection-screen : begin of block b2 with frame title text-002.
select-options : s_clsnam for seoclass-clsname no intervals modif id cls.
parameters : p_dircls like rlgrap-filename default 'C:\' modif id cls.
selection-screen : end of block b2.
selection-screen : begin of block b3 with frame title text-003.
parameters : r_all radiobutton group rbsp user-command u2 modif id cls default 'X',
r_par radiobutton group rbsp modif id cls.
selection-screen : begin of block b4 with frame title text-004.
parameters : chk_attr as checkbox modif id cl1,
chk_meth as checkbox modif id cl1,
chk_evts as checkbox modif id cl1,
chk_type as checkbox modif id cl1.
selection-screen : end of block b4.
selection-screen : end of block b3.
selection-screen : end of block b1.
* INTIALIZATION
initialization.
v_repid = sy-repid.
v_dynnr = sy-dynnr.
v_langu = sy-langu.
* AT SELECTION-SCREEN OUTPUT
at selection-screen output.
loop at screen.
if chk_bsp = 'X'.
if screen-group1 = 'BSP' or screen-group1 = 'BS1'.
screen-active = 1.
endif.
else.
if screen-group1 = 'BSP' or screen-group1 = 'BS1' .
screen-active = 0.
endif.
endif.
if r_bspall = 'X'.
if screen-group1 = 'BS1'.
screen-active = 0.
endif.
else.
if screen-group1 = 'BS1'.
screen-active = 1.
endif.
endif.
modify screen.
endloop.
loop at screen.
if chk_cls = 'X'.
if screen-group1 = 'CLS' or screen-group1 = 'cl1'.
screen-active = 1.
endif.
else.
if screen-group1 = 'CLS' or screen-group1 = 'cl1'.
screen-active = 0.
endif.
endif.
if r_all = 'X'.
if screen-group1 = 'CL1'.
screen-active = 0.
endif.
else.
if screen-group1 = 'CL1'.
screen-active = 1.
endif.
endif.
modify screen.
endloop.
* AT SELECTION-SCREEN
at selection-screen.
* START OF SELECTION
start-of-selection.
* If the user selected BSP check box then we need to do down load the BSP application
if chk_cls is initial and
chk_bsp is initial.
message i001 with 'Select any download option'(007).
exit.
endif.
if chk_bsp = 'X'.
refresh it_bspappl.
clear it_bspappl.
if s_bspapp is initial.
set pf-status'AA'.
message i002 with 'Enter BSP Application Names'(010).
exit.
endif.
* Check the directory name is entered or not
if p_dirnam is initial.
message i004 with 'Enter Directory name for BSP Download'(012).
exit.
else.
if r_bspall = 'X'.
clear : chk_cont,chk_view,chk_pgfl,chk_frag.
endif.
select a~applname
a~applclas
a~startpage
a~stateful
b~text into table it_bspappl
from o2appl as a inner join o2applt as b
on a~applname = b~applname
where a~applname in s_bspapp and
a~version = 'A' and
b~langu = v_langu.
* Check we got any entries in the class internal table
clear v_lines.
describe table it_bspappl lines v_lines.
if v_lines > 0.
loop at it_bspappl.
perform save_bspappl_details using it_bspappl.
perform get_bspappl_compo using it_bspappl.
endloop.
else.
write:/ 'Enter Valid BSP Application Names'.
endif.
endif.
endif.
* If the user selected class check box then we need to do down load the class
if chk_cls = 'X'.
refresh it_class.
clear it_class.
clear r_temp_all.
* Check Class name is empty or not
if s_clsnam is initial.
message i003 with 'Enter Class Names'(011).
exit.
endif.
* Check the directory name is entered or not
if p_dircls is initial.
message i000 with 'Enter Directory name for Class Download'(008).
exit.
else.
* if user selected All Components in Class Down Load
* then clear all the check box variables
move r_all to r_temp_all.
if r_temp_all = 'X'.
clear: chk_attr,chk_meth,chk_evts,chk_type.
endif.
* get the class name and Class Description from the table SEOCLASS
* for all the classes which user entered in selection screen based on
* the system language
select a~clsname b~descript into table it_class
from seoclass as a left outer join seoclasstx as b
on a~clsname = b~clsname and
b~langu = v_langu
where a~clsname in s_clsnam.
* Check we got any entries in the class internal table
clear v_lines.
describe table it_class lines v_lines.
* if you got any enties in class interbnal table then we need to
* get the other details about that class
if v_lines > 0.
perform add_slash_4dir changing p_dircls.
perform check_dir_exists using p_dircls.
loop at it_class.
perform get_class_details using it_class-clsname 'X' ' '.
endloop.
else.
write:/ 'PLEASE ENTER VALID CLASS NAMES'.
endif.
endif.
endif.
* END OF SELECTION
end-of-selection.
write: /1(25) 'Application Name',
26(25) 'Component Name',
52(50) 'Download Path',
102(50) 'ErrorSuccess Message'.
write:/ sy-uline.
loop at it_scr_out.
write:/1(25) it_scr_out-appname,
26(25) it_scr_out-component,
52(50) it_scr_out-path,
102(50) it_scr_out-status.
endloop.
*& Form GET_CLASS_DETAILS
* used to get the other details of the class
form get_class_details using p_clsname p_check p_filename.
* Data Declarations
data: x_class type vseoclass,
x_inheritance type vseoextend,
x_seoclskey type seoclskey,
x_attributes type line of seoo_attributes_r,
x_methods type line of seoo_methods_r,
x_events type line of seoo_events_r,
x_types type line of seoo_types_r,
x_parameters type line of seos_parameters_r,
x_exceps type line of seos_exceptions_r,
x_implementings type line of seor_implementings_r,
x_redefinitions type line of seor_redefinitions_r,
x_friendships type line of seof_friendships_r,
x_typepusages type line of seot_typepusages_r,
x_clsdeferrds type line of seot_clsdeferrds_r,
x_intdeferrds type line of seot_intdeferrds_r,
x_explore_inheritance type line of seok_cls_typeinfos,
x_explore_implementings type line of seok_int_typeinfos,
x_aliases type line of seoo_aliases_r.
* REFRESH & CLEAR ALL THE VARIABLES.
refresh: it_attributes,it_methods,it_events,it_types,it_parameters,
it_exceps,it_implementings,it_redefinitions,it_friendships,
it_typepusages,it_clsdeferrds,it_intdeferrds,it_data,
it_explore_inheritance,it_explore_implementings,it_aliases.
clear : it_attributes,it_methods,it_events,it_types,it_parameters,
it_exceps,it_implementings,it_redefinitions,it_friendships,
it_typepusages,it_clsdeferrds,it_intdeferrds,it_data,
it_explore_inheritance,it_explore_implementings,it_aliases.
clear : x_attributes,x_methods,x_events,x_types,x_parameters,
x_exceps,x_implementings,x_redefinitions,x_friendships,
x_typepusages,x_clsdeferrds,x_intdeferrds,
x_explore_inheritance,x_explore_implementings,x_aliases,
x_class,x_inheritance,x_seoclskey.
* SET THE CLASS NAME TO THE STRUCTURE
x_seoclskey-clsname = p_clsname.
call function 'SEO_CLASS_TYPEINFO_GET'
exporting
clskey = x_seoclskey
importing
class = x_class
attributes = it_attributes
methods = it_methods
events = it_events
types = it_types
parameters = it_parameters
exceps = it_exceps
implementings = it_implementings
inheritance = x_inheritance
redefinitions = it_redefinitions
friendships = it_friendships
typepusages = it_typepusages
clsdeferrds = it_clsdeferrds
intdeferrds = it_intdeferrds
explore_inheritance = it_explore_inheritance
explore_implementings = it_explore_implementings
aliases = it_aliases
exceptions
not_existing = 1
is_interface = 2
model_only = 3
others = 4.
if sy-subrc <> 0.
it_scr_out-component = p_clsname.
it_scr_out-status = 'ERROR'.
it_scr_out-etype = 'E'.
append it_scr_out.
clear it_scr_out.
else.
* DOWNLOAD CLASS INFORMATION
perform download_class_info using x_class.
* DOWNLOAD INHERITANCE INFORMATION
perform download_class_inht using x_inheritance.
* DOWNLOAD CLASS IMPLEMENTATION
perform download_class_otherdetails using p_clsname seop_ext_class_locals_imp.
* DOWNLOAD CLASS TYPES
perform download_class_otherdetails using p_clsname seop_ext_class_locals_def.
DOWNLOAD CLASS MACROS
perform download_class_otherdetails using p_clsname seop_ext_class_macros.
DOWNLOAD CLASS ATTRIBUTES
if r_temp_all = 'X' or chk_attr = 'X'.
perform download_class_attr tables it_attributes.
endif.
DOWNLOAD CLASS METHODS
if r_temp_all = 'X' or chk_meth = 'X'.
perform download_class_meth tables it_methods
it_parameters
it_exceps.
endif.
Interface Implementations.
perform download_class_implementation tables it_explore_implementings.
DOWNLOAD CLASS EVENTS.
if r_temp_all = 'X' or chk_evts = 'X'.
perform download_class_evts.
endif.
* DOWNLOAD CLASS TYPE GROUPS.
perform download_class_type_groups.
* DOWNLOAD INTERNAL TYPES
if r_temp_all = 'X' or chk_type = 'X'.
perform download_class_internal_types.
endif.
if p_check = 'X'.
* DOWNLOAD CLASS DEFINITION
perform download_classdef using p_filename.
else.
* while downloading the bsp we need to pass the directory and
* class name to the function module so the file will create
perform download_class using p_check.
endif.
endif.
endform. " GET_CLASS_DETAILS
*& Form DOWNLOAD_CLASS_INFO
* used to download the class information
form download_class_info using p_x_class structure vseoclass.
it_data = p_x_class-clsname.
append it_data.
clear it_data.
it_data = p_x_class-descript.
append it_data.
clear it_data.
endform. " DOWNLOAD_CLASS_INFO
*& Form DOWNLOAD_CLASS_INHT
* used to download the inheritance
form download_class_inht using p_x_inheritance structure vseoextend.
if not p_x_inheritance-refclsname is initial.
concatenate 'INHERITED FROM: ' p_x_inheritance-refclsname into it_data.
append it_data.
clear it_data.
endif.
endform. " DOWNLOAD_CLASS_INHT
*& Form DOWNLOAD_CLASS_ATTR
* text
form download_class_attr tables p_it_attr type seoo_attributes_r.
data: x_attributes type line of seoo_attributes_r.
it_data = '*********************************************************'.
append it_data.
clear it_data.
it_data = 'ATTRIBUTES'.
append it_data.
clear it_data.
it_data = '-----------'.
append it_data.
clear it_data.
loop at p_it_attr into x_attributes.
clear x_format.
* ATTRIBUTE NAME
x_format-cmpname = x_attributes-cmpname.
* ATTRIBUTE DECLARATION LEVEL
case x_attributes-attdecltyp.
when gc_atr_inst.
x_format-decltyp = 'INSTANCE ATTRIBUTE'.
when gc_atr_stat.
x_format-decltyp = 'STATIC ATTRIBUTE'.
when gc_atr_cnst.
x_format-decltyp = 'CONSTANT ATTRIBUTE'.
endcase.
* ATTRIBUTE EXPOSURE
case x_attributes-exposure.
when gc_exp_priv.
x_format-exposur = 'PRIVATE'.
when gc_exp_publ.
x_format-exposur = 'PUBLIC'.
when gc_exp_prot.
x_format-exposur = 'PROTECTED'.
endcase.
* ATTRIBUTE TYPTYPE
case x_attributes-typtype.
when gc_typ_like.
x_format-typtype = 'LIKE'.
when gc_typ_type.
x_format-typtype = 'TYPE'.
when gc_typ_otyp.
x_format-typtype = 'OBJECT TYPE'.
when gc_typ_tref.
x_format-typtype = 'TYPE REF TO'.
endcase.
* ATTRIBUTE REFERNCE TYPE
x_format-type = x_attributes-type.
* ATTRIBUTE INITIAL VALUE
x_format-attval = x_attributes-attvalue.
* ATTRIBUTE DESCRIPTION
x_format-desc = x_attributes-descript.
move x_format to it_data.
append it_data.
clear it_data.
endloop.
it_data = '*********************************************************'.
append it_data.
clear it_data.
endform. " DOWNLOAD_CLASS_ATTR
*& Form DOWNLOAD_CLASS_METH
* used to download the methods of the class
form download_class_meth tables p_it_meth type seoo_methods_r
p_it_parm type seos_parameters_r
p_it_excp type seos_exceptions_r.
data: x_methods type line of seoo_methods_r,
x_params type line of seos_parameters_r,
x_exceps type line of seos_exceptions_r.
clear: x_methods,x_params,x_exceps.
it_data = 'METHODS'.
append it_data.
clear it_data.
it_data = '-------'.
append it_data.
clear it_data.
loop at p_it_meth into x_methods.
clear: x_format.
* METHOD NAME
x_format-cmpname = x_methods-cmpname.
* METHOD DECLARATION TYPE
case x_methods-mtddecltyp.
when gc_atr_inst.
x_format-decltyp = 'INSTANCE METHOD'.
when gc_atr_stat.
x_format-decltyp = 'STATIC METHOD'.
endcase.
* METHOD EXPOSURE
case x_methods-exposure.
when gc_exp_priv.
x_format-exposur = 'PRIVATE'.
when gc_exp_publ.
x_format-exposur = 'PUBLIC'.
when gc_exp_prot.
x_format-exposur = 'PROTECTED'.
endcase.
* METHOD DESCRIPTION.
x_format-desc = x_methods-descript.
move x_format to it_data.
append it_data.
clear it_data.
* DOWNLOAD METHOD PARAMETERS
perform download_method_params tables it_parameters
using x_methods-cmpname.
* DOWNLOAD METHOD EXCEPTIONS
perform download_method_exceps tables it_exceps
using x_methods-cmpname.
* DOWNLOAD METHOD SOURCE
perform download_method_source using it_class-clsname
x_methods-cmpname.
endloop.
* DOWNLOAD RE-DEFINED METHODS IF ANY
perform download_redef_methods.
endform. " DOWNLOAD_CLASS_METH
*& Form DOWNLOAD_METHOD_PARAMS
* used to download the method parameters
form download_method_params tables p_it_params type seos_parameters_r
using p_cmpname.
data: x_parameters type line of seos_parameters_r.
clear: x_parameters.
it_data = '^^^^PARAMETERS'.
append it_data.
clear it_data.
loop at p_it_params into x_parameters where cmpname = p_cmpname.
clear: x_format1.
* METHOD PARAMETER NAME
x_format1-sconame = x_parameters-sconame.
* METHOD PARAMETER DECLARATION TYPE
case x_parameters-pardecltyp.
when gc_par_impo.
x_format1-decl = 'IMPORTING'.
when gc_par_expo.
x_format1-decl = 'EXPORTING'.
when gc_par_chng.
x_format1-decl = 'CHANGING'.
when gc_par_retn.
x_format1-decl = 'RETURNING'.
endcase.
* METHOD PARAMETERS PASSING TYOE
case x_parameters-parpasstyp.
when gc_pas_valu.
x_format1-pass = 'PASS BY VALUE'.
when gc_pas_refr.
x_format1-pass = 'PASS BY REFERENCE'.
endcase.
* METHOD PARAMETER TYPTYPE
case x_parameters-typtype.
when gc_typ_like.
x_format1-typtype = 'LIKE'.
when gc_typ_type.
x_format1-typtype = 'TYPE'.
when gc_typ_otyp.
x_format1-typtype = 'OBJECT TYPE'.
when gc_typ_tref.
x_format1-typtype = 'TYPE REF TO'.
endcase.
* METHOD PARAMETER OPTIONAL/MANDATORY
case x_parameters-paroptionl.
when gc_yes.
x_format1-optn = 'OPTIONAL'.
when gc_no.
x_format1-optn = 'MANDATORY'.
endcase.
* METHOD PARAMETER TYPE
x_format1-type = x_parameters-type.
* METHOD PARAMETER INITIAL VALUE
x_format1-valu = x_parameters-parvalue.
* METHOD PARAMETER DESCRIPTION
x_format1-desc = x_parameters-descript.
move x_format1 to it_data.
append it_data.
clear it_data.
endloop.
endform. " DOWNLOAD_METHOD_PARAMS
*& Form DOWNLOAD_METHOD_EXCEPS
* used to download the Exceptions of methods
form download_method_exceps tables p_it_exceps type seos_exceptions_r
using p_cmpname.
data: x_exceps type line of seos_exceptions_r.
clear: x_exceps.
it_data = '^^^^EXCEPTION'.
append it_data.
loop at p_it_exceps into x_exceps where cmpname = p_cmpname.
clear x_format2.
* METHOD EXCEPTION NAME
x_format2-sconame = x_exceps-sconame.
* METHOD EXCEPTION DESCRIPTION
x_format2-desc = x_exceps-descript.
move x_format2 to it_data.
append it_data.
clear it_data.
endloop.
endform. " DOWNLOAD_METHOD_EXCEPS
*& Form DOWNLOAD_METHOD_SOURCE
* text
form download_method_source using p_clsname
p_cmpname.
data : x_mtdkey type seocpdkey,
x_source type line of seop_source,
it_source type seop_source.
refresh: it_source.
clear : it_source,x_source,x_mtdkey.
x_mtdkey-clsname = p_clsname.
x_mtdkey-cpdname = p_cmpname.
call function 'SEO_METHOD_GET_SOURCE'
exporting
mtdkey = x_mtdkey
importing
source = it_source
exceptions
_internal_method_not_existing = 1
_internal_class_not_existing = 2
others = 3.
if sy-subrc <> 0.
it_scr_out-component = p_cmpname.
it_scr_out-status = ' FAILED '.
it_scr_out-etype = 'E'.
append it_scr_out.
clear it_scr_out.
else.
it_data = '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'.
append it_data.
clear it_data.
loop at it_source into x_source.
move x_source to it_data.
append it_data.
clear it_data.
endloop.
it_data = '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'.
append it_data.
clear it_data.
endif.
endform. " DOWNLOAD_METHOD_SOURCE
*& Form DOWNLOAD_REDEF_METHODS
* used to download any redefined methods if any
form download_redef_methods .
data: x_redef type line of seor_redefinitions_r.
loop at it_redefinitions into x_redef.
* DOWNLOAD METHOD SOURCE
perform download_method_source using it_class-clsname
x_redef-mtdname.
endloop.
endform. " DOWNLOAD_REDEF_METHODS
*& Form DOWNLOAD_CLASS_EVTS
* used to download the class events types
form download_class_evts .
data: x_events type line of seoo_events_r.
it_data = 'EVENTS'.
append it_data.
clear it_data.
it_data = '-------'.
append it_data.
clear it_data.
loop at it_events into x_events.
clear: x_format.
* EVENT NAME
x_format-cmpname = x_events-cmpname.
* METHOD DECLARATION TYPE
case x_events-evtdecltyp.
when gc_atr_inst.
x_format-decltyp = 'INSTANCE EVENT'.
when gc_atr_stat.
x_format-decltyp = 'STATIC EVENT'.
endcase.
* EVENT EXPSOURE.
case x_events-exposure.
when gc_exp_priv.
x_format-exposur = 'PRIVATE'.
when gc_exp_publ.
x_format-exposur = 'PUBLIC'.
when gc_exp_prot.
x_format-exposur = 'PROTECTED'.
endcase.
* EVENT DESCRIPTION
x_format-desc = x_events-descript.
append x_format to it_data.
clear it_data.
endloop.
endform. " DOWNLOAD_CLASS_EVTS
*& Form DOWNLOAD_CLASS_TYPE_GROUPS
* used to download the type groups
form download_class_type_groups .
data: x_typep type line of seot_typepusages_r.
it_data = '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'.
append it_data.
clear it_data.
it_data = 'TYPE-GROUPS'.
append it_data.
clear it_data.
it_data = '------------'.
append it_data.
clear it_data.
loop at it_typepusages into x_typep.
it_data = x_typep-typegroup.
append it_data.
clear it_data.
endloop.
endform. " DOWNLOAD_CLASS_TYPE_GROUPS
*& Form DOWNLOAD_CLASS_INTERNAL_TYPES
* used to download the class type internal type definitions
form download_class_internal_types .
data: x_types type line of seoo_types_r.
it_data = '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'.
append it_data.
clear it_data.
it_data = 'INTERNAL TYPES'.
append it_data.
clear it_data.
it_data = '------------'.
append it_data.
clear it_data.
loop at it_types into x_types.
clear: x_format.
* TYPE NAME
x_format-cmpname = x_types-cmpname.
* TYPE EXPSOURE.
case x_types-exposure.
when gc_exp_priv.
x_format-exposur = 'PRIVATE'.
when gc_exp_publ.
x_format-exposur = 'PUBLIC'.
when gc_exp_prot.
x_format-exposur = 'PROTECTED'.
endcase.
* TYPTYPE
case x_types-typtype.
when gc_typ_like.
x_format-typtype = 'LIKE'.
when gc_typ_type.
x_format-typtype = 'TYPE'.
when gc_typ_otyp.
x_format-typtype = 'OBJECT TYPE'.
when gc_typ_tref.
x_format-typtype = 'TYPE REF TO'.
endcase.
* TYPE
x_format-type = x_types-type.
* DESCRIPTION
x_format-desc = x_types-descript.
append x_format to it_data.
clear it_data.
endloop.
endform. " DOWNLOAD_CLASS_INTERNAL_TYPES
*& Form DOWNLOAD_CLASSDEF
* used to download total class to the text file
form download_classdef using p_p_filename.
data: lv_filename type string.
if p_p_filename = ' '.
v_filename = it_class-clsname.
concatenate p_dircls v_filename '.txt' into lv_filename.
else.
move p_p_filename to lv_filename.
concatenate lv_filename '.txt' into lv_filename.
endif.
call function 'GUI_DOWNLOAD'
exporting
filename = lv_filename
tables
data_tab = it_data
exceptions
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
others = 22.
if sy-subrc <> 0.
it_scr_out-component = it_class-clsname.
it_scr_out-path = lv_filename.
it_scr_out-status = 'FAILED'.
it_scr_out-etype = 'E'.
append it_scr_out.
clear it_scr_out.
else.
it_scr_out-component = it_class-clsname.
it_scr_out-path = lv_filename.
it_scr_out-status = 'SUCCESSFULL'.
it_scr_out-etype = 'S'.
append it_scr_out.
clear it_scr_out.
endif.
endform. " DOWNLOAD_CLASSDEF
*& Form SAVE_BSPAPPL_DETAILS
* Used to Save the Bsp Application Details
form save_bspappl_details using p_it_bspappl type t_bspappl.
data: lv_filestr type string,
lv_filenam type rlgrap-filename.
refresh it_data.
clear: it_data,lv_filestr.
concatenate 'APPLICATION NAME: ' p_it_bspappl-applname into it_data.
append it_data.
concatenate 'DESCRIPTION: ' p_it_bspappl-descrip into it_data.
append it_data.
concatenate 'APPLICATION CLASS: ' p_it_bspappl-applclas into it_data.
append it_data.
concatenate 'START PAGE: ' p_it_bspappl-startpage into it_data.
append it_data.
if p_it_bspappl-stateful is initial.
it_data = 'STATELESS APPLICATION'.
else.
it_data = 'STATEFUL APPLICATION'.
endif.
append it_data.
perform add_slash_4dir changing p_dirnam.
concatenate p_dirnam it_bspappl-applname '\' into lv_filenam.
move lv_filenam to lv_filestr.
call function 'GUI_CREATE_DIRECTORY'
exporting
dirname = lv_filenam
exceptions
failed = 1
others = 2.
move lv_filestr to v_filestr.
concatenate lv_filestr it_bspappl-applname '.TXT' into lv_filestr.
call function 'GUI_DOWNLOAD'
exporting
filename = lv_filestr
tables
data_tab = it_data
exceptions
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
others = 22.
if sy-subrc <> 0.
it_scr_out-appname = p_it_bspappl-applname.
it_scr_out-component = 'Application Details'.
it_scr_out-path = lv_filestr.
it_scr_out-status = 'FAILED'.
it_scr_out-etype = 'E'.
append it_scr_out.
clear it_scr_out.
else.
it_scr_out-appname = p_it_bspappl-applname.
it_scr_out-component = 'Application Details'.
it_scr_out-path = lv_filestr.
it_scr_out-status = 'SUCCESSFULL'.
it_scr_out-etype = 'S'.
append it_scr_out.
clear it_scr_out.
endif.
endform. " SAVE_BSPAPPL_DETAILS
*& Form ADD_SLASH_4DIR
* used to add '/' after the direcory if necessary
form add_slash_4dir changing p_dirnamcls.
data: lv_tempvar(1),
lv_length type i.
lv_length = strlen( p_dirnamcls ).
lv_length = lv_length - 1.
lv_tempvar = p_dirnam+lv_length(1).
if lv_tempvar <> '\'.
concatenate p_dirnamcls '\' into p_dirnamcls.
endif.
endform. " ADD_SLASH_4DIR
*& Form CHECK_DIR_EXISTS
* Check the Directory Exists or Not
form check_dir_exists using p_dirnamcls.
data: lv_filename type rlgrap-filename,
lv_filestr type string,
it_data(10) occurs 0 with header line.
clear: lv_filename.
v_datum = sy-datum.
v_uzeit = sy-uzeit.
concatenate p_dirnamcls 'TESTFIL_09087' '.TXT' into lv_filename.
move lv_filename to lv_filestr.
call function 'GUI_DOWNLOAD'
exporting
filename = lv_filestr
tables
data_tab = it_data
exceptions
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
others = 22.
if sy-subrc <> 0.
message e901(zt) with 'INVALID DIRECTORY'.
endif.
endform. " CHECK_DIR_EXISTS
*& Form GET_BSPAPPL_COMPO
* To get the BSP Applciation Component Details
form get_bspappl_compo using p_it_bspappl type t_bspappl.
data: lv_filestr type string,
lv_tempstr type string,
lv_fn type rlgrap-filename.
refresh it_pagdetl.
clear it_pagdetl.
select applname
pagekey
pagename
implclass
pagetype
controllerurl
lifetime
state
is_error_page
error_page
browser_cache
server_cache
author
createdon
changedby
changedon
into table it_pagdetl
from o2pagdir
where applname = p_it_bspappl-applname.
* Downloading the application Class Details
if not p_it_bspappl-applclas is initial.
clear : lv_filestr.
concatenate v_filestr 'APPLICATIONCLASS' '\' into lv_filestr.
it_scr_out-appname = p_it_bspappl-applname.
perform create_directory using lv_filestr.
it_scr_out-appname = p_it_bspappl-applname.
perform download_class_details using lv_filestr p_it_bspappl-applclas.
endif.
if r_bspall = 'X' or chk_cont = 'X'.
clear : lv_filestr.
concatenate v_filestr 'CONTROLLERS' '\' into lv_filestr.
perform create_directory using lv_filestr.
* DOWNLOADING THE CONTROLLER DETAILS
loop at it_pagdetl where pagetype = gc_bsp_ctrl.
concatenate lv_filestr it_pagdetl-pagename '\' into lv_tempstr.
perform create_directory using lv_tempstr.
clear: lv_fn.
move lv_tempstr to lv_fn.
it_scr_out-appname = p_it_bspappl-applname.
perform download_controller_details using lv_tempstr .
it_scr_out-appname = p_it_bspappl-applname.
perform download_class_details using lv_tempstr it_pagdetl-implclass.
endloop.
endif.
if r_bspall = 'X' or chk_view = 'X'.
clear : lv_filestr.
concatenate v_filestr 'VIEWS' '\' into lv_filestr.
perform create_directory using lv_filestr.
* DOWNLOADING THE VIEW DETAILS
loop at it_pagdetl where pagetype = gc_bsp_view.
concatenate lv_filestr it_pagdetl-pagename '\' into lv_tempstr.
perform create_directory using lv_tempstr.
it_scr_out-appname = p_it_bspappl-applname.
perform download_html_event_details using it_pagdetl-applname
it_pagdetl-pagekey
lv_tempstr.
endloop.
endif.
if r_bspall = 'X' or chk_frag = 'X'.
clear : lv_filestr.
concatenate v_filestr 'PAGEFRAGMENTS' '\' into lv_filestr.
perform create_directory using lv_filestr.
* DOWNLOADING THE PAGE FRAGMENTS DETAILS.
loop at it_pagdetl where pagetype = gc_bsp_pgfr.
concatenate lv_filestr it_pagdetl-pagename '\' into lv_tempstr.
perform create_directory using lv_tempstr.
it_scr_out-appname = p_it_bspappl-applname.
perform download_html_event_details using it_pagdetl-applname
it_pagdetl-pagekey
lv_tempstr.
endloop.
endif.
if r_bspall = 'X' or chk_pgfl = 'X'.
clear : lv_filestr.
concatenate v_filestr 'PAGEFLOWLOGIC' '\' into lv_filestr.
perform create_directory using lv_filestr.
* DOWNLOADING THE PAGES WITH FLOW LOGIC DETAILS.
loop at it_pagdetl where pagetype = gc_bsp_pgfl.
concatenate lv_filestr it_pagdetl-pagename '\' into lv_tempstr.
perform create_directory using lv_tempstr.
it_scr_out-appname = p_it_bspappl-applname.
perform download_html_event_details using it_pagdetl-applname
it_pagdetl-pagekey
lv_tempstr.
endloop.
endif.
endform. " GET_BSPAPPL_COMPO
*& Form CREATE_DIRECTORY
* To Create Directory*----------------------------------------------------------------------*
form create_directory using p_lv_filestr.
data: lv_filename type rlgrap-filename.
move p_lv_filestr to lv_filename.
call function 'GUI_CREATE_DIRECTORY'
exporting
dirname = lv_filename
exceptions
failed = 1
others = 2.
endform. " CREATE_DIRECTORY
*& Form DOWNLOAD_CONTROLLER_DETAILS
* Controller Details
form download_controller_details using p_lv_tempstr .
data: lv_temp type n.
refresh it_data.
clear : it_data,
v_cnt_cls.
concatenate 'CONTROLLER_NAME: ' it_pagdetl-pagekey into it_data.
append it_data.
it_data = space.
append it_data.
concatenate 'ERROR HANDLING' ':' into it_data.
append it_data.
if it_pagdetl-is_error_page is initial.
concatenate 'IS ERROR PAGE? ' 'NO' into it_data.
else.
concatenate 'IS ERROR PAGE? ' 'YES' into it_data.
endif.
append it_data.
concatenate 'ERROR PAGE: ' it_pagdetl-error_page into it_data.
append it_data.
concatenate 'CONTROLLER CLASS : ' it_pagdetl-implclass into it_data.
append it_data.
it_data = space.
append it_data.
it_data = 'STATUS'.
append it_data.
case it_pagdetl-state.
when gc_lft_requ.
it_data = 'STATE: STATELESS FROM NOW ON'.
when gc_lft_sess.
it_data = 'STATE: STATEFUL FROM NOW ON'.
when others.
concatenate 'IS ERROR PAGE? ' 'YES' into it_data.
endif.
append it_data.
concatenate 'ERROR PAGE: ' it_pagdetl-error_page into it_data.
append it_data.
concatenate 'CONTROLLER CLASS : ' it_pagdetl-implclass into it_data.
append it_data.
it_data = space.
append it_data.
it_data = 'STATUS'.
append it_data.
case it_pagdetl-state.
when gc_lft_requ.
it_data = 'STATE: STATELESS FROM NOW ON'.
when gc_lft_sess.
it_data = 'STATE: STATEFUL FROM NOW ON'.
when others.
it_data = 'STATE: UNCHANGED'.
endcase.
append it_data.
case it_pagdetl-state.
when gc_lft_requ.
it_data = 'LIFETIME: REQUEST'.
when gc_lft_sess.
it_data = 'LIFETIME: SESSION'.
when others.
it_data = 'LIFETIME: UNTIL PAGE CHANGE'.
endcase.
append it_data.
it_data = space.
append it_data.
it_data = 'CACHING'.
append it_data.
lv_temp = it_pagdetl-browser_cache.
concatenate 'BROWSER CACHE: ' lv_temp into it_data.
append it_data.
lv_temp = it_pagdetl-server_cache.
concatenate 'SERVER CACHE: ' lv_temp into it_data.
append it_data.
it_data = space.
append it_data.
it_data = 'LOG DETAILS'.
append it_data.
concatenate 'CREATED BY: ' it_pagdetl-author ' ON ' it_pagdetl-createdon into it_data.
append it_data.
concatenate 'CHANGED BY: ' it_pagdetl-changedby ' ON ' it_pagdetl-changedon into it_data.
append it_data.
concatenate p_lv_tempstr it_pagdetl-pagename into p_lv_tempstr.
call function 'GUI_DOWNLOAD'
exporting
filename = p_lv_tempstr
tables
data_tab = it_data
exceptions
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
others = 22.
if sy-subrc <> 0.
concatenate 'CONTROLLER' it_pagdetl-pagekey into it_scr_out-component separated by ':'.
it_scr_out-path = p_lv_tempstr.
it_scr_out-status = 'Cntl Class Details Download FAILED'.
it_scr_out-etype = 'E'.
append it_scr_out.
clear it_scr_out.
else.
concatenate 'CONTROLLER' it_pagdetl-pagekey into it_scr_out-component separated by ':'.
it_scr_out-path = p_lv_tempstr.
it_scr_out-status = 'SUCCESSFULL'.
it_scr_out-etype = 'S'.
append it_scr_out.
clear it_scr_out.
endif.
* Getting the Controller Class Name into Global Variable
clear v_cnt_cls.
move it_pagdetl-implclass to v_cnt_cls.
endform. " DOWNLOAD_CONTROLLER_DETAILS
*& Form download_class
* DownLoading the Data to File
form download_class using lv_filename.
call function 'GUI_DOWNLOAD'
exporting
filename = lv_filename
tables
data_tab = it_data
exceptions
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
others = 22.
if sy-subrc <> 0.
it_scr_out-component = lv_filename.
it_scr_out-status = 'FAILED'.
it_scr_out-etype = 'E'.
append it_scr_out.
clear it_scr_out.
else.
it_scr_out-component = lv_filename.
it_scr_out-status = 'SUCCESSFULL'.
it_scr_out-etype = 'S'.
append it_scr_out.
clear it_scr_out.
endif.
endform. " download_class
*& Form DOWNLOAD_HTML_EVENT_DETAILS
* text
form download_html_event_details using p_applname
p_pagekey
p_lv_tempstr.
data: lv_tempstr type string,
lv_count type n.
refresh it_pagcon.
clear it_pagcon.
select applname
pagekey
objtype
version
into table it_pagcon
from o2pagcon
where applname = p_applname and
pagekey = p_pagekey and
version = 'A' and
objtype = 'PD'.
lv_count = 0.
loop at it_pagcon.
clear: lv_tempstr,it_source,wa_source,wa_pagecon_key.
wa_pagecon_key-applname = it_pagcon-applname.
wa_pagecon_key-pagekey = it_pagcon-pagekey.
wa_pagecon_key-objtype = it_pagcon-objtype.
wa_pagecon_key-version = it_pagcon-version.
if it_pagcon-objtype = 'PD'. "PAGE
concatenate p_lv_tempstr p_pagekey into lv_tempstr.
endif.
import content to it_source-content from database o2pagcon(tr) id wa_pagecon_key
accepting padding ignoring conversion errors.
if not it_source-content[] is initial.
call function 'GUI_DOWNLOAD'
exporting
filename = lv_tempstr
tables
data_tab = it_source-content
exceptions
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
others = 22.
if sy-subrc <> 0.
it_scr_out-component = p_pagekey.
it_scr_out-path = lv_tempstr.
it_scr_out-status = 'FAILED'.
it_scr_out-etype = 'E'.
append it_scr_out.
clear it_scr_out.
else.
it_scr_out-component = p_pagekey.
it_scr_out-path = lv_tempstr.
it_scr_out-status = 'SUCCESSFULL'.
it_scr_out-etype = 'S'.
append it_scr_out.
clear it_scr_out.
endif.
endif.
endloop.
* NOW DOWNLOAD ALL THE PARAMETERS FOR THAT PAGE
perform download_params_for_page using p_applname
p_pagekey
p_lv_tempstr.
* NOW DOWNLOAD ALL EVENTS FOR THAT PAGE
perform download_events_for_page using p_applname
p_pagekey
p_lv_tempstr.
endform. " DOWNLOAD_HTML_EVENT_DETAILS
*& Form DOWNLOAD_PARAMS_FOR_PAGE
* text
form download_params_for_page using p_applname
p_pagekey
p_lv_tempstr.
types: begin of t_dld_params,
compname type o2param,
auto(5),
typtype(15),
type1 type rs38l_typ,
parvalue type seovalue,
end of t_dld_params.
data: it_params type standard table of o2pagpar with header line.
data: it_dld_params type standard table of t_dld_params with header line.
data: lv_tempstr type string.
refresh: it_params,it_dld_params.
clear : it_params,it_dld_params.
concatenate p_lv_tempstr 'PARAMETERS.TXT' into lv_tempstr.
select * from o2pagpar into table it_params
where applname = p_applname and
pagekey = p_pagekey and
version = 'A'.
loop at it_params.
it_dld_params-compname = it_params-compname.
it_dld_params-type1 = it_params-type.
it_dld_params-parvalue = it_params-parvalue.
if it_params-pardecltyp = '0'.
it_dld_params-auto = 'AUTO'.
endif.
if it_params-typtype = '3'.
it_dld_params-typtype = 'TYPE REF TO'.
else.
it_dld_params-typtype = 'TYPE'.
endif.
append it_dld_params.
clear it_dld_params.
endloop.
if not it_dld_params[] is initial.
call function 'GUI_DOWNLOAD'
exporting
filename = lv_tempstr
tables
data_tab = it_dld_params.
endif.
endform. " DOWNLOAD_PARAMS_FOR_PAGE
*& Form DOWNLOAD_EVENTS_FOR_PAGE
* To Download the Events data
form download_events_for_page using p_applname
p_pagekey
p_lv_tempstr.
data: lv_tempstr type string,
it_events type standard table of o2pagevh with header line,
lv_count type i.
types: begin of t_ev_handler,
name type o2evhandlr,
source type rswsourcet,
end of t_ev_handler.
types : it_ev_handler type sorted table of t_ev_handler with unique key name.
data : it_ev_sources type it_ev_handler with header line.
field-symbols : <fs_ev_handler> type it_ev_handler.
refresh it_events.
clear : it_events,lv_count.
select * from o2pagevh into table it_events
where applname = p_applname and
pagekey = p_pagekey and
version = 'A'.
describe table it_events lines lv_count.
if lv_count > 0.
concatenate p_lv_tempstr 'EVENTS' '\' into lv_tempstr.
perform create_directory using lv_tempstr.
p_lv_tempstr = lv_tempstr.
endif.
refresh: it_ev_sources.
clear: lv_tempstr,it_source,wa_source,wa_pagecon_key,it_ev_sources.
wa_pagecon_key-applname = p_applname.
wa_pagecon_key-pagekey = p_pagekey.
wa_pagecon_key-objtype = 'EV'.
wa_pagecon_key-version = 'A'.
import evhandler to it_ev_sources from database o2pagcon(tr) id wa_pagecon_key
accepting padding ignoring conversion errors.
loop at it_ev_sources.
concatenate p_lv_tempstr it_ev_sources-name '.TXT' into lv_tempstr.
call function 'GUI_DOWNLOAD'
exporting
filename = lv_tempstr
tables
data_tab = it_ev_sources-source.
endloop.
endform. " DOWNLOAD_EVENTS_FOR_PAGE
*& Form download_cnt_class
* Perform to Download the Controller Class Details
form download_class_details using p_lv_filestr pclassname.
data : v_cnt_cls_name type string,
v_cnt_lines type i.
clear : v_cnt_cls_name.
* As We need to call the common perform which is used for Downloading
* Class . Before doing that we need to Set Some varibles.
if pclassname is not initial.
clear : r_temp_all,chk_attr,chk_meth,chk_evts,chk_type,it_class.
move 'X' to r_temp_all.
refresh it_class.
concatenate p_lv_filestr pclassname into v_cnt_cls_name.
* get the class name and Class Description from the table SEOCLASS
* for all the classes which user entered in selection screen based on
* the system language
select a~clsname b~descript
into table it_class
from seoclass as a left outer join seoclasstx as b
on a~clsname = b~clsname and
b~langu = v_langu
where a~clsname = pclassname.
describe table it_class lines v_cnt_lines.
if v_cnt_lines > 0.
loop at it_class.
perform get_class_details using it_class-clsname 'X' v_cnt_cls_name .
endloop.
endif.
endif.
endform. " download_cnt_class
*& Form download_class_implementation
* To Down Load the Class Implementaions
form download_class_implementation tables p_implementation type seok_int_typeinfos.
data : x_imp type line of seok_int_typeinfos.
loop at p_implementation into x_imp.
perform get_inferface_data using x_imp.
endloop.
endform. " download_class_implementation
*& Form get_inferface_data
* Getting the Interface Data
form get_inferface_data using p_x_imp type line of seok_int_typeinfos.
data : x_inmeth type line of seoo_methods_r,
v_methodname type string,
v_classname type string.
it_data = 'INTERFACE'.
append it_data.
it_data = '----------'.
append it_data.
* Interface Name
clear it_data.
concatenate 'Interface Name : ' p_x_imp-interface-clsname into it_data.
append it_data.
* Interface Description
clear it_data.
concatenate 'Interface Description : ' p_x_imp-interface-descript into it_data.
append it_data.
* Interace Methods
it_data = '-----------------'.
append it_data.
clear it_data.
it_data = 'Interface Methods'.
append it_data.
clear it_data.
it_data = '-----------------'.
append it_data.
loop at p_x_imp-methods into x_inmeth where clsname eq p_x_imp-interface-clsname .
data : temp_str type string.
* Adding Class Name & Class Description
concatenate x_inmeth-cmpname cl_abap_char_utilities=>horizontal_tab x_inmeth-descript
cl_abap_char_utilities=>horizontal_tab into temp_str.
* Declaration Type
if x_inmeth-mtddecltyp eq 0.
concatenate temp_str 'Instance Method' into temp_str.
else.
concatenate temp_str 'Static Method' into temp_str.
endif.
* Visibility
case x_inmeth-exposure.
when 0.
concatenate temp_str cl_abap_char_utilities=>horizontal_tab 'PRIVATE' into temp_str.
when 2.
concatenate temp_str cl_abap_char_utilities=>horizontal_tab 'PUBLIC' into temp_str.
when 1.
concatenate temp_str cl_abap_char_utilities=>horizontal_tab 'PROTECTED' into temp_str.
endcase.
it_data = temp_str.
append it_data.
* To Get Corresponding Paramenters.
perform get_int_meth_parameters using p_x_imp x_inmeth-cmpname.
* To Get Source Code for Interface methods.
clear v_methodname.
clear v_classname.
concatenate p_x_imp-interface-clsname '~' x_inmeth-cmpname into v_methodname.
v_classname = it_class-clsname.
perform download_method_source using v_classname
v_methodname.
clear temp_str.
clear it_data.
append it_data.
endloop.
endform. " get_inferface_data
*& Form GET_INT_METH_PARAMETERS
* To get the method Parameters
form get_int_meth_parameters using p_x_imp type line of seok_int_typeinfos
p_x_inmeth_cmpname.
data: x_parameters type line of seos_parameters_r,
temp_str type string.
it_data = '^^^^PARAMETERS'.
append it_data.
clear it_data.
loop at p_x_imp-parameters into x_parameters where clsname eq p_x_imp-interface-clsname and
cmpname eq p_x_inmeth_cmpname.
concatenate cl_abap_char_utilities=>horizontal_tab
cl_abap_char_utilities=>horizontal_tab
x_parameters-sconame
cl_abap_char_utilities=>horizontal_tab into temp_str.
case x_parameters-pardecltyp.
when 0.
concatenate temp_str 'Importing' cl_abap_char_utilities=>horizontal_tab into temp_str.
when 1.
concatenate temp_str 'Exporting' cl_abap_char_utilities=>horizontal_tab into temp_str.
when 2.
concatenate temp_str 'Changing' cl_abap_char_utilities=>horizontal_tab into temp_str.
when 3.
concatenate temp_str 'Returning' cl_abap_char_utilities=>horizontal_tab into temp_str.
endcase.
case x_parameters-typtype.
when 0.
concatenate temp_str 'Like' cl_abap_char_utilities=>horizontal_tab into temp_str.
when 1.
concatenate temp_str 'Type' cl_abap_char_utilities=>horizontal_tab into temp_str.
when 2.
concatenate temp_str 'Type Ref To' cl_abap_char_utilities=>horizontal_tab into temp_str.
endcase.
concatenate temp_str x_parameters-type cl_abap_char_utilities=>horizontal_tab x_parameters-parvalue into temp_str.
it_data = temp_str.
append it_data.
clear it_data.
clear temp_str.
endloop.
endform. " GET_INT_METH_PARAMETERS
*& Form DOWNLOAD_CLASS_OTHERDETAILS
* Downloading Class Implementation , Types & Macros
form download_class_otherdetails using p_p_clsname
p_inctype.
data : lv_inctype type string,
l_clsname type seoclskey,
cl_source type seop_source,
cl_exsource type seop_source_string,
x_source type line of seop_source.
move p_p_clsname to l_clsname.
case p_inctype.
when seop_ext_class_locals_imp.
lv_inctype = 'CLASS IMPLEMENTAION'.
when seop_incextapp_definition.
lv_inctype = 'CLASS TYPES'.
when seop_incextapp_macros.
lv_inctype = 'CLASS MACROS'.
endcase.
call function 'SEO_CLASS_GET_INCLUDE_SOURCE'
exporting
clskey = l_clsname
inctype = p_inctype
importing
source = cl_source
source_expanded = cl_exsource
exceptions
_internal_class_not_existing = 1
not_existing = 2
others = 3.
if sy-subrc <> 0.
it_scr_out-component = lv_inctype.
it_scr_out-status = 'FAILED'.
it_scr_out-etype = 'E'.
append it_scr_out.
clear it_scr_out.
else.
it_data = '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'.
append it_data.
clear it_data.
it_data = lv_inctype .
append it_data.
clear it_data.
it_data = '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'.
append it_data.
clear it_data.
loop at cl_source into x_source.
move x_source to it_data.
append it_data.
clear it_data.
endloop.
it_data = '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'.
append it_data.
clear it_data.
endif.
endform. " DOWNLOAD_CLASS_OTHERDETAILS
Regards,
Anubhav.

Similar Messages

  • Update of Open AP Invoices for Backup Withholding Vendors

    Scenario:
    We have open invoices that have not been paid for the vendor. We are
    using Classical Withholding.
    The time period required to wait before we place the vendor on backup
    withholding has expired, and we change his vendor master record to have
    a backup withholding code (for example, F1).
    We need to update the open items, so the backup withholding percentage
    (28%) will be deducted at payment time on the existing invoices. Since
    this withholding code F1 is for backup withholding,the withholding
    amount is greater than 0%, the update program RFWT0020 will not update
    the items.
    Is there an SAP program will update these existing open (unpaid) items with a
    withholding code > 0%?

    Hello Michelle,
    The report RFWT0010 is used to update the withholding tax information
    when changes are made in the vendor/customer data. Howver this report
    has some limitations:
    1. If you have posted a vendor invoice relevant to withholding tax
        at time of invoice and later you change the master data so this
        withholding tax type is not longer relevant, this change will not
        take affect for the already posted invoice, althought you run report
        RFWT0010.
        Withholding tax amount at time of invoice is already posted and
        deducted. If you later modify vendor master record and add a new
        withholding tax type relevant at time of payment, you will need to
        run report RFWT0010 before payment in order to take this withholding
        tax type into consideration, since it is relevant for payments.
        However withholding tax type at invoice is already posted and report
        RFWT0010 does not reverse this posting. Also, in the case that you
        wanted to include a withholding tax at time of invoice, it will not
        take affect for the already posted invoice.
    2. The report RFWT0010 only updates withholding tax information when
        the relevant withholding tax types change. If you enter the same
        withholding tax type so there is any change for the system. This
        report updates the withholding tax information when you enter a
        different withholding tax type in the vendor master.
    With report RFWT0010 the scenario would be that you already had
    withholding tax data in the master record however you now need to change
    same. 
    For further info you can refer to the report online documentation.
    Hope this is of help.
    regards
    Ray

  • Download BSP Application Source Code for Backup

    Dear All,
        Is there any way, I can download the whole BSP Application as a Text or HTML or DOC file, for backup purpose?
    Thank you.
    Regards
    Gladson

    have you seen this code sample
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3330a5e1-0701-0010-6e81-e88984de611a">Tool to Download Complete BSP Application</a>
    Regards
    Raja

  • Trying to copy iPhoto Library to external hard drive for backup.  Error message:  The Finder can't complete the operation because some data in "iPhoto Library" can't be read or written (Error code -36).

    Trying to copy iPhoto Library to external hard drive for backup.  Error message:  The Finder can't complete the operation because some data in "iPhoto Library" can't be read or written (Error code -36).

    That code is
    -36
    ioErr
    I/O error (bummers)
    Make sure the EHD is formatted OS X Extended (journaled) and run Disk Utilty on the EHD and repair the disk.  If that fails to help I'd try the following:
    Using iPhoto Library Manager  to Rebuild Your iPhoto Library
    Download iPhoto Library Manager and launch.
    Click on the Add Library button,                         
    navigate to your Home/Pictures folder and select your iPhoto Library folder.
    Now that the library is listed in the left hand pane of iPLM, click on your library and go to the Library ➙ Rebuild Library menu option
    In the next  window name the new library and select the external HD as the location of the newly rebild library.
    Click on the Create button.
    Note 1: This creates a new library based on the LIbraryData.xml file in the library and will recover Events, Albums, keywords, titles and comments. However, books, calendars, cards and slideshows will be lost.
    Note 2:  Your current library will be left untouched for further attempts at a fix if so desired.
    OT

  • How to fix Adobe App Manager error code -60 Download appears corrupt but only for Photoshop CS6 app

    How to fix Adobe App Manager error code -60 Download appears corrupt but only for Photoshop CS6 Creative Suite Cloud App. Many attempts were made to install Photoshop CS6 with Adobe Application Manager without success. Every other Creative Suite Application was successfully downloaded. I keep getting Installation Failed when attempting the Photoshop install. How does one correct this?

    Thanks Jeff! So, it totally appears as if it was a network issue. The corporate network where I work is quite likely the culprit. Where I was thrown off is that since I have admin rights on my computer, I can install software. But using Adobe Application Manager to install Adobe software wasn't working. And to make matters worse, there didn't appear to be any way to install Acrobat Pro for Mac without using AAM. The workaround that I used previously was to install the trial versions of Adobe software, and then just register them using my username and password. But the workaround for being able to install everything using AAM was to bring my computer home and download from my home network.

  • Student account for Adobe CC - downloaded and worked but only for TRIAL - now asks for license - how do I access the programs? I was given a redemption code (apparently redeemed already). How do I get the licensing code?

    Student account for Adobe CC - downloaded and worked but only for TRIAL - now asks for license - how do I access the programs? I was given a redemption code (apparently redeemed already). How do I get the licensing code?

    Ask whom/wherever you got the redemption code from for one that has not already been used.

  • Netflix wants my device code in order for me to be able to download movies. Where do I find the device code?

    Netflix is asking for my device code in order for me to be able to download movies on my iPad.  Where do I find the device code?

    You don't download movies from netflix-you stream them.
    You dont use the netflix website, go into the app store and download the netflix app and use it.

  • With the purchase of macbook air i am able to download x os mountain lion for free, how to do that, what code i need for that?

    With the purchase of macbook air i was told that i am getting the x os mountain lion for free.
    When i try to download it is asking me for code, what code shall i put in, how i can get that code?
    thank you

    The Apple Support Communities are an international user to user technical support forum. As a man from Mexico, Spanish is my native tongue. I do not speak English very well, however, I do write in English with the aid of the Mac OS X spelling and grammar checks. I also live in a culture perhaps very very different from your own. When offering advice in the ASC, my comments are not meant to be anything more than helpful and certainly not to be taken as insults.
    Check here;
    http://www.apple.com/osx/uptodate/

  • TS1814 I can't seem to get the drivers downloaded on my windows laptop for my iphone 5s, the info is coming up generic and im getting a code 1.  Please help

    I can't seem to get the drivers downloaded on my windows laptop for my iphone 5s, the info is coming up generic and im getting a code 1.  Please help

    All necessary drivers are included in the iTunes install package.
    Please clarify exactly what the problem is.
    the info is coming up generic and im getting a code 1
    That's not very informative.

  • TS3276 Is there a way to sync POP subfolders and download them for backup in Mail on my MBP? I tried syncing the account with Mail and only the Inbox downloads onto my computer.

    Is there a way to sync POP subfolders and download them for backup in Mail on my MBP? I tried syncing the account with Mail and only the Inbox downloads onto my computer. I have Googled enough to find out that the answer is no, but no official answer or recent answer and I am hopeful that there has been a change.

    Sure-glad to help you. You will not lose any data by changing synching to MacBook Pro from imac. You have set up Time Machine, right? that's how you'd do your backup, so I was told, and how I do my backup on my mac.  You should be able to set a password for it. Save it.  Your stuff should be saved there. So if you want to make your MacBook Pro your primary computer,  I suppose,  back up your stuff with Time machine, turn off Time machine on the iMac, turn it on on the new MacBook Pro, select the hard drive in your Time Capsule, enter your password, and do a backup from there. It might work, and it might take a while, but it should go. As for clogging the hard drive, I can't say. Depends how much stuff you have, and the hard drive's capacity.  As for moving syncing from your iMac to your macbook pro, should be the same. Your phone uses iTunes to sync and so that data should be in the cloud. You can move your iTunes Library to your new Macbook pro
    you should be able to sync your phone on your new MacBook Pro. Don't know if you can move the older backups yet-maybe try someone else, anyways,
    This handy article from Apple explains how
    How to move your iTunes library to a new computer - Apple Support''
    don't forget to de-authorize your iMac if you don't want to play purchased stuff there
    and re-authorize your new macBook Pro
    time machine is an application, and should be found in the Applications folder. it is built in to OS X, so there is nothing else to buy. double click on it, get it going, choose the Hard drive in your Time capsule/Airport as your backup Time Machine  and go for it.  You should see a circle with an arrow on the top right hand of your screen (the Desktop), next to the bluetooth icon, and just after the wifi and eject key (looks sorta like a clock face). This will do automatic backups  of your stuff.

  • How can I download the code for one of my "makes"?

    I’d like to download the code for one of my makes to my local Mac. Is this possible?

    There is no option to download the code , you can directly copy the cod from editor .
    thanks

  • HT1933 I bought a song for my wife in Mexico and she couldn't download the song i sent because it reads on her screen ... Code only valid for US customers.... How can i retrieve the song if i live in the US? Thanks

    I bought a song for my wife in Mexico and she couldn't download the song because it reads on her screen... Code only valid for US Customers... How can i retrive the song i bought? Thank You Guys

    you have a ps cs4 license for mac and you have some way of finding your serial number.
    if yes, download an install the installation file.  if you already have the installation file, what is its name and file extension?  (eg, if it's one file, it should be a dmg file.)
    if you need the installation file,
    Downloads available:
    Suites and Programs:  CC 2014 | CC | CS6 | CS5.5 | CS5 | CS4 | CS3
    Acrobat:  XI, X | 9,8 | 9 standard
    Premiere Elements:  13 | 12 | 11, 10 | 9, 8, 7 win | 8 mac | 7 mac
    Photoshop Elements:  13 |12 | 11, 10 | 9,8,7 win | 8 mac | 7 mac
    Lightroom:  5.6| 5 | 4 | 3
    Captivate:  8 | 7 | 6 | 5
    Contribute:  CS5 | CS4, CS3
    Download and installation help for Adobe links
    Download and installation help for Prodesigntools links are listed on most linked pages.  They are critical; especially steps 1, 2 and 3.  If you click a link that does not have those steps listed, open a second window using the Lightroom 3 link to see those 'Important Instructions'.

  • Some problem of download BSP data into excel using  cl_bsp_utility= download

    Hello Experts,
    I have read the blog of thomas.jung for download bsp data into excel, and it's working correct, and after some try and error, now I can download the excel with multi sheets.It's all cool except one thing.....when I add a button on the standard screen of the supplier qualification of the slc to download the excel file, after the popinp up screen, the standard screen can't do any operation at all......there are no any error message and the downloaded file is all correct .
    Does any one know what can I do?

    any ideas?
    By the way, after some research, maybe the issue was caused by the setup of the button, but I don't know how to fix it...0rz
    the standard code for buttton is
    lv_id = mv_id && '>display'.
    lo_edit_display_button = cl_thtmlb_button=>factory( id       = lv_id
                                                       text     = lv_button_text
                                                   tooltip  = lv_button_text
                                                   enabled  = 'TRUE'
                                                  onclick  = lv_button_action ).
    WHILE io_page_context->element_process( element = lo_edit_display_button ) = if_bsp_element=>co_element_continue.
    ENDWHILE.
    so I copy it and modify like this:
    lv_id = mv_id && '>download'.
        lo_download_excel_button = cl_thtmlb_button=>factory( id       = lv_id
                                                            text     = w_text
                                                        tooltip  = w_text
                                                        enabled  = 'TRUE'
        onclick  = /srmsm/if_ql_ext_ui_c=>ZC_ACTION_DOWNLOAD_EXCEL
    WHILE io_page_context->element_process( element = lo_download_excel_button ) = if_bsp_element=>co_element_continue.
    ENDWHILE.

  • I have an external hard drive that was formatted by a PC and has files and directories etc. I want to format it and use it on my IMAC for backup but I can't seem to write to it nor can I delete current content. How do I initialize it for use with the MAC?

    I have an external hard drive that was formatted by a PC and has files and directories copied to it etc. I want to use it on my IMAC for backup. I see it on my my IMAC . I can open files etc.  But I can't seem to write to it nor can I delete current content. I don't care if I lose current content. How do I initialize it for use with the MAC?

    You can't write to it because it's formatted as NTFS which OS X will read but not write to. If you want to continue using the drive with both a PC and OS X you will need to download and install NTFS-3G so you can then write to it from your Mac. You can get NTFS-3G at:
    http://www.macupdate.com/app/mac/24481/ntfs-3g
    If you want to use the drive exclusively with your Mac then move the data off it and reformat it in Disk Utility (Applications - Utilities - Disk Utilities) as Mac OS Extended (Journaled.)

  • Generic Repository class to download BSP into Ms-excel

    Hi,
    we have developed the download utility for BSP-MVC application, we have many BSP-MVC applications so i have to  develop a generic Repository class to download BSP into ms-excel, which is usable for all, the data selection will be done from model at run time by using techniques (field symbols and data references)wolud you please suggest how to achive this.
    Thanks in advance !
    best regards
    ravi

    I have written a generic download utility as a custom BSP Extension Element.  Perhaps it will give you some ideas:
    <a href="/people/thomas.jung3/blog/2004/09/02/creating-a-bsp-extension-for-downloading-a-table a BSP Extension for Downloading a Table</a>
    <a href="/people/thomas.jung3/blog/2005/07/18/bsp-extension-for-downloading-a-table-applying-an-iterator Extension for Downloading a Table: Applying an Iterator</a>

Maybe you are looking for

  • VCloud REST API - Change computername on VApp Instantiation

    I am using the VCloud REST API to instantiate a VApp from a Vapp template When I POST the following XML <?xml version="1.0" encoding="UTF-8"?>   <InstantiateVAppTemplateParams xmlns="http://www.vmware.com/vcloud/v1.5"  xmlns:ovf="http://schemas.dmtf.

  • Use of a variable to reference a text box in an instance

    Hi, I have been enjoying the discussions on this board and have learnt a lot from them thus far. I have a question, but I don't know if I can't word it correctly, or I am looking in the wrong place. Lets say I have 3 Movie Clip Symbols in  my Library

  • SCSM 2012 Moving Reporting to new Reporting Server

    is there any step by step procedure to move the scsm reporting to a new report server? Georges Mouawad Jreij12

  • Datagrid style

    In addition to the borderThickness of the datagrid, the header of a datagrid has a thin (1 pixel) border between the header and the body. Is there a way to remove the border?

  • CIN Configaration Document .............Its very urgent

    Hi All client is looking for customising of excise duty. if anybody has document related to CIN, plz forward me. And this configaration related to SEZ business process Please send to this mail id [email protected] With Regards Khajamohiddin