mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
ACID DOMA DTEL FUGR TYPE
Fix more dumps and handle invalid data
This commit is contained in:
parent
33bb7d52bf
commit
f8234b1deb
|
@ -71,7 +71,9 @@ CLASS lcl_object_acid IMPLEMENTATION.
|
|||
|
||||
lo_aab = create_object( ).
|
||||
|
||||
lo_aab->get_descript( IMPORTING ex_descript = lv_description ).
|
||||
lo_aab->get_descript(
|
||||
IMPORTING ex_descript = lv_description
|
||||
EXCEPTIONS no_description_found = 1 ).
|
||||
|
||||
io_xml->add( iv_name = 'DESCRIPTION'
|
||||
ig_data = lv_description ).
|
||||
|
|
|
@ -129,9 +129,10 @@ CLASS lcl_object_doma IMPLEMENTATION.
|
|||
|
||||
METHOD lif_object~serialize.
|
||||
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
ls_dd01v TYPE dd01v,
|
||||
lt_dd07v TYPE TABLE OF dd07v.
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
ls_dd01v TYPE dd01v,
|
||||
lv_masklen TYPE c LENGTH 4,
|
||||
lt_dd07v TYPE TABLE OF dd07v.
|
||||
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
@ -155,6 +156,16 @@ CLASS lcl_object_doma IMPLEMENTATION.
|
|||
ls_dd01v-as4date,
|
||||
ls_dd01v-as4time.
|
||||
|
||||
* make sure XML serialization does not dump if the field contains invalid data
|
||||
* note that this is a N field, so '' is not valid
|
||||
IF ls_dd01v-authclass = ''.
|
||||
CLEAR ls_dd01v-authclass.
|
||||
ENDIF.
|
||||
lv_masklen = ls_dd01v-masklen.
|
||||
IF lv_masklen = '' OR NOT lv_masklen CO '0123456789'.
|
||||
CLEAR ls_dd01v-masklen.
|
||||
ENDIF.
|
||||
|
||||
io_xml->add( iv_name = 'DD01V'
|
||||
ig_data = ls_dd01v ).
|
||||
io_xml->add( iv_name = 'DD07V_TAB'
|
||||
|
|
|
@ -163,6 +163,9 @@ CLASS lcl_object_dtel IMPLEMENTATION.
|
|||
* numeric field, make sure it is initial or XML serilization will dump
|
||||
CLEAR ls_dd04v-routputlen.
|
||||
ENDIF.
|
||||
IF ls_dd04v-authclass = ''.
|
||||
CLEAR ls_dd04v-authclass.
|
||||
ENDIF.
|
||||
|
||||
io_xml->add( iv_name = 'DD04V'
|
||||
ig_data = ls_dd04v ).
|
||||
|
|
|
@ -490,6 +490,9 @@ CLASS lcl_object_fugr IMPLEMENTATION.
|
|||
lcx_exception=>raise( 'Error from RS_FUNCTION_POOL_CONTENTS' ).
|
||||
ENDIF.
|
||||
|
||||
SORT rt_functab BY funcname ASCENDING.
|
||||
DELETE ADJACENT DUPLICATES FROM rt_functab COMPARING funcname.
|
||||
|
||||
ENDMETHOD. "functions
|
||||
|
||||
METHOD main_name.
|
||||
|
@ -533,10 +536,10 @@ CLASS lcl_object_fugr IMPLEMENTATION.
|
|||
DATA:
|
||||
lt_source TYPE TABLE OF rssource,
|
||||
lt_functab TYPE ty_rs38l_incl_tt,
|
||||
lt_new_source TYPE rsfb_source.
|
||||
lt_new_source TYPE rsfb_source,
|
||||
ls_ret LIKE LINE OF rt_functions.
|
||||
|
||||
FIELD-SYMBOLS: <ls_func> LIKE LINE OF lt_functab,
|
||||
<ls_ret> LIKE LINE OF rt_functions.
|
||||
FIELD-SYMBOLS: <ls_func> LIKE LINE OF lt_functab.
|
||||
|
||||
|
||||
lt_functab = functions( ).
|
||||
|
@ -544,8 +547,8 @@ CLASS lcl_object_fugr IMPLEMENTATION.
|
|||
LOOP AT lt_functab ASSIGNING <ls_func>.
|
||||
* fm RPY_FUNCTIONMODULE_READ does not support source code
|
||||
* lines longer than 72 characters
|
||||
APPEND INITIAL LINE TO rt_functions ASSIGNING <ls_ret>.
|
||||
MOVE-CORRESPONDING <ls_func> TO <ls_ret>.
|
||||
CLEAR ls_ret.
|
||||
MOVE-CORRESPONDING <ls_func> TO ls_ret.
|
||||
|
||||
CLEAR lt_new_source.
|
||||
CLEAR lt_source.
|
||||
|
@ -554,18 +557,18 @@ CLASS lcl_object_fugr IMPLEMENTATION.
|
|||
EXPORTING
|
||||
functionname = <ls_func>-funcname
|
||||
IMPORTING
|
||||
global_flag = <ls_ret>-global_flag
|
||||
remote_call = <ls_ret>-remote_call
|
||||
update_task = <ls_ret>-update_task
|
||||
short_text = <ls_ret>-short_text
|
||||
remote_basxml_supported = <ls_ret>-remote_basxml
|
||||
global_flag = ls_ret-global_flag
|
||||
remote_call = ls_ret-remote_call
|
||||
update_task = ls_ret-update_task
|
||||
short_text = ls_ret-short_text
|
||||
remote_basxml_supported = ls_ret-remote_basxml
|
||||
TABLES
|
||||
import_parameter = <ls_ret>-import
|
||||
changing_parameter = <ls_ret>-changing
|
||||
export_parameter = <ls_ret>-export
|
||||
tables_parameter = <ls_ret>-tables
|
||||
exception_list = <ls_ret>-exception
|
||||
documentation = <ls_ret>-documentation
|
||||
import_parameter = ls_ret-import
|
||||
changing_parameter = ls_ret-changing
|
||||
export_parameter = ls_ret-export
|
||||
tables_parameter = ls_ret-tables
|
||||
exception_list = ls_ret-exception
|
||||
documentation = ls_ret-documentation
|
||||
source = lt_source
|
||||
CHANGING
|
||||
new_source = lt_new_source
|
||||
|
@ -574,10 +577,14 @@ CLASS lcl_object_fugr IMPLEMENTATION.
|
|||
function_not_found = 2
|
||||
invalid_name = 3
|
||||
OTHERS = 4.
|
||||
IF sy-subrc <> 0.
|
||||
IF sy-subrc = 2.
|
||||
CONTINUE.
|
||||
ELSEIF sy-subrc <> 0.
|
||||
lcx_exception=>raise( 'Error from RPY_FUNCTIONMODULE_READ_NEW' ).
|
||||
ENDIF.
|
||||
|
||||
APPEND ls_ret TO rt_functions.
|
||||
|
||||
IF NOT lt_new_source IS INITIAL.
|
||||
mo_files->add_abap( iv_extra = <ls_func>-funcname
|
||||
it_abap = lt_new_source ).
|
||||
|
|
|
@ -52,7 +52,7 @@ CLASS lcl_object_type IMPLEMENTATION.
|
|||
TRY.
|
||||
read( ).
|
||||
rv_bool = abap_true.
|
||||
CATCH lcx_not_found.
|
||||
CATCH lcx_not_found lcx_exception.
|
||||
rv_bool = abap_false.
|
||||
ENDTRY.
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user