WDYN: fix dump, overwriting protected field

This commit is contained in:
larshp 2016-12-15 11:10:39 +00:00
parent 1ee92803d6
commit 4acf442e3c

View File

@ -61,15 +61,15 @@ CLASS lcl_object_wdyn DEFINITION INHERITING FROM lcl_objects_super FINAL.
add_fm_param_exporting
IMPORTING name TYPE string
value TYPE any
RETURNING value(rs_param) TYPE abap_func_parmbind,
RETURNING VALUE(rs_param) TYPE abap_func_parmbind,
add_fm_param_tables
IMPORTING name TYPE string
value TYPE ANY TABLE
RETURNING value(rs_param) TYPE abap_func_parmbind,
CHANGING value TYPE ANY TABLE
RETURNING VALUE(rs_param) TYPE abap_func_parmbind,
add_fm_exception
IMPORTING name TYPE string
value TYPE i
RETURNING value(rs_exception) TYPE abap_func_excpbind.
RETURNING VALUE(rs_exception) TYPE abap_func_excpbind.
ENDCLASS. "lcl_object_wdyn DEFINITION
@ -403,46 +403,62 @@ CLASS lcl_object_wdyn IMPLEMENTATION.
value = is_key ) INTO TABLE lt_fm_param.
INSERT add_fm_param_exporting( name = 'GET_ALL_TRANSLATIONS'
value = abap_false ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables( name = 'DEFINITION'
value = lt_definition ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables( name = 'DESCRIPTIONS'
value = rs_controller-descriptions ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables( name = 'CONTROLLER_USAGES'
value = rs_controller-controller_usages ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables( name = 'CONTROLLER_COMPONENTS'
value = lt_components ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables( name = 'CONTROLLER_COMPONENT_SOURCES'
value = lt_sources ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables( name = 'CONTROLLER_COMPONENT_TEXTS'
value = rs_controller-controller_component_texts ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables( name = 'CONTROLLER_PARAMETERS'
value = rs_controller-controller_parameters ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables( name = 'CONTROLLER_PARAMETER_TEXTS'
value = rs_controller-controller_parameter_texts ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables( name = 'CONTEXT_NODES'
value = rs_controller-context_nodes ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables( name = 'CONTEXT_ATTRIBUTES'
value = rs_controller-context_attributes ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables( name = 'CONTEXT_MAPPINGS'
value = rs_controller-context_mappings ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables( name = 'FIELDGROUPS'
value = rs_controller-fieldgroups ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'DEFINITION'
CHANGING value = lt_definition ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'DESCRIPTIONS'
CHANGING value = rs_controller-descriptions ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'CONTROLLER_USAGES'
CHANGING value = rs_controller-controller_usages ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'CONTROLLER_COMPONENTS'
CHANGING value = lt_components ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'CONTROLLER_COMPONENT_SOURCES'
CHANGING value = lt_sources ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'CONTROLLER_COMPONENT_TEXTS'
CHANGING value = rs_controller-controller_component_texts ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'CONTROLLER_PARAMETERS'
CHANGING value = rs_controller-controller_parameters ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'CONTROLLER_PARAMETER_TEXTS'
CHANGING value = rs_controller-controller_parameter_texts ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'CONTEXT_NODES'
CHANGING value = rs_controller-context_nodes ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'CONTEXT_ATTRIBUTES'
CHANGING value = rs_controller-context_attributes ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'CONTEXT_MAPPINGS'
CHANGING value = rs_controller-context_mappings ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'FIELDGROUPS'
CHANGING value = rs_controller-fieldgroups ) INTO TABLE lt_fm_param.
* Version 702 doesn't have these two attributes so we
* use them dynamically for downward compatibility
ASSIGN COMPONENT 'CONTROLLER_EXCEPTIONS' OF STRUCTURE rs_controller TO <lt_ctrl_exceptions>.
IF sy-subrc = 0.
INSERT add_fm_param_tables( name = 'CONTROLLER_EXCEPTIONS'
value = <lt_ctrl_exceptions> ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'CONTROLLER_EXCEPTIONS'
CHANGING value = <lt_ctrl_exceptions> ) INTO TABLE lt_fm_param.
ENDIF.
ASSIGN COMPONENT 'CONTROLLER_EXCEPTION_TEXTS' OF STRUCTURE rs_controller TO <lt_ctrl_exception_texts>.
IF sy-subrc = 0.
INSERT add_fm_param_tables( name = 'CONTROLLER_EXCEPTION_TEXTS'
value = <lt_ctrl_exception_texts> ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'CONTROLLER_EXCEPTION_TEXTS'
CHANGING value = <lt_ctrl_exception_texts> ) INTO TABLE lt_fm_param.
ENDIF.
INSERT add_fm_param_tables( name = 'PSMODILOG'
value = lt_psmodilog ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables( name = 'PSMODISRC'
value = lt_psmodisrc ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'PSMODILOG'
CHANGING value = lt_psmodilog ) INTO TABLE lt_fm_param.
INSERT add_fm_param_tables(
EXPORTING name = 'PSMODISRC'
CHANGING value = lt_psmodisrc ) INTO TABLE lt_fm_param.
* FM exceptions
INSERT add_fm_exception( name = 'NOT_EXISTING'