mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +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 = 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'
|
io_xml->add( iv_name = 'DESCRIPTION'
|
||||||
ig_data = lv_description ).
|
ig_data = lv_description ).
|
||||||
|
|
|
@ -131,6 +131,7 @@ CLASS lcl_object_doma IMPLEMENTATION.
|
||||||
|
|
||||||
DATA: lv_name TYPE ddobjname,
|
DATA: lv_name TYPE ddobjname,
|
||||||
ls_dd01v TYPE dd01v,
|
ls_dd01v TYPE dd01v,
|
||||||
|
lv_masklen TYPE c LENGTH 4,
|
||||||
lt_dd07v TYPE TABLE OF dd07v.
|
lt_dd07v TYPE TABLE OF dd07v.
|
||||||
|
|
||||||
|
|
||||||
|
@ -155,6 +156,16 @@ CLASS lcl_object_doma IMPLEMENTATION.
|
||||||
ls_dd01v-as4date,
|
ls_dd01v-as4date,
|
||||||
ls_dd01v-as4time.
|
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'
|
io_xml->add( iv_name = 'DD01V'
|
||||||
ig_data = ls_dd01v ).
|
ig_data = ls_dd01v ).
|
||||||
io_xml->add( iv_name = 'DD07V_TAB'
|
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
|
* numeric field, make sure it is initial or XML serilization will dump
|
||||||
CLEAR ls_dd04v-routputlen.
|
CLEAR ls_dd04v-routputlen.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
IF ls_dd04v-authclass = ''.
|
||||||
|
CLEAR ls_dd04v-authclass.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
io_xml->add( iv_name = 'DD04V'
|
io_xml->add( iv_name = 'DD04V'
|
||||||
ig_data = ls_dd04v ).
|
ig_data = ls_dd04v ).
|
||||||
|
|
|
@ -490,6 +490,9 @@ CLASS lcl_object_fugr IMPLEMENTATION.
|
||||||
lcx_exception=>raise( 'Error from RS_FUNCTION_POOL_CONTENTS' ).
|
lcx_exception=>raise( 'Error from RS_FUNCTION_POOL_CONTENTS' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
SORT rt_functab BY funcname ASCENDING.
|
||||||
|
DELETE ADJACENT DUPLICATES FROM rt_functab COMPARING funcname.
|
||||||
|
|
||||||
ENDMETHOD. "functions
|
ENDMETHOD. "functions
|
||||||
|
|
||||||
METHOD main_name.
|
METHOD main_name.
|
||||||
|
@ -533,10 +536,10 @@ CLASS lcl_object_fugr IMPLEMENTATION.
|
||||||
DATA:
|
DATA:
|
||||||
lt_source TYPE TABLE OF rssource,
|
lt_source TYPE TABLE OF rssource,
|
||||||
lt_functab TYPE ty_rs38l_incl_tt,
|
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,
|
FIELD-SYMBOLS: <ls_func> LIKE LINE OF lt_functab.
|
||||||
<ls_ret> LIKE LINE OF rt_functions.
|
|
||||||
|
|
||||||
|
|
||||||
lt_functab = functions( ).
|
lt_functab = functions( ).
|
||||||
|
@ -544,8 +547,8 @@ CLASS lcl_object_fugr IMPLEMENTATION.
|
||||||
LOOP AT lt_functab ASSIGNING <ls_func>.
|
LOOP AT lt_functab ASSIGNING <ls_func>.
|
||||||
* fm RPY_FUNCTIONMODULE_READ does not support source code
|
* fm RPY_FUNCTIONMODULE_READ does not support source code
|
||||||
* lines longer than 72 characters
|
* lines longer than 72 characters
|
||||||
APPEND INITIAL LINE TO rt_functions ASSIGNING <ls_ret>.
|
CLEAR ls_ret.
|
||||||
MOVE-CORRESPONDING <ls_func> TO <ls_ret>.
|
MOVE-CORRESPONDING <ls_func> TO ls_ret.
|
||||||
|
|
||||||
CLEAR lt_new_source.
|
CLEAR lt_new_source.
|
||||||
CLEAR lt_source.
|
CLEAR lt_source.
|
||||||
|
@ -554,18 +557,18 @@ CLASS lcl_object_fugr IMPLEMENTATION.
|
||||||
EXPORTING
|
EXPORTING
|
||||||
functionname = <ls_func>-funcname
|
functionname = <ls_func>-funcname
|
||||||
IMPORTING
|
IMPORTING
|
||||||
global_flag = <ls_ret>-global_flag
|
global_flag = ls_ret-global_flag
|
||||||
remote_call = <ls_ret>-remote_call
|
remote_call = ls_ret-remote_call
|
||||||
update_task = <ls_ret>-update_task
|
update_task = ls_ret-update_task
|
||||||
short_text = <ls_ret>-short_text
|
short_text = ls_ret-short_text
|
||||||
remote_basxml_supported = <ls_ret>-remote_basxml
|
remote_basxml_supported = ls_ret-remote_basxml
|
||||||
TABLES
|
TABLES
|
||||||
import_parameter = <ls_ret>-import
|
import_parameter = ls_ret-import
|
||||||
changing_parameter = <ls_ret>-changing
|
changing_parameter = ls_ret-changing
|
||||||
export_parameter = <ls_ret>-export
|
export_parameter = ls_ret-export
|
||||||
tables_parameter = <ls_ret>-tables
|
tables_parameter = ls_ret-tables
|
||||||
exception_list = <ls_ret>-exception
|
exception_list = ls_ret-exception
|
||||||
documentation = <ls_ret>-documentation
|
documentation = ls_ret-documentation
|
||||||
source = lt_source
|
source = lt_source
|
||||||
CHANGING
|
CHANGING
|
||||||
new_source = lt_new_source
|
new_source = lt_new_source
|
||||||
|
@ -574,10 +577,14 @@ CLASS lcl_object_fugr IMPLEMENTATION.
|
||||||
function_not_found = 2
|
function_not_found = 2
|
||||||
invalid_name = 3
|
invalid_name = 3
|
||||||
OTHERS = 4.
|
OTHERS = 4.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc = 2.
|
||||||
|
CONTINUE.
|
||||||
|
ELSEIF sy-subrc <> 0.
|
||||||
lcx_exception=>raise( 'Error from RPY_FUNCTIONMODULE_READ_NEW' ).
|
lcx_exception=>raise( 'Error from RPY_FUNCTIONMODULE_READ_NEW' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
APPEND ls_ret TO rt_functions.
|
||||||
|
|
||||||
IF NOT lt_new_source IS INITIAL.
|
IF NOT lt_new_source IS INITIAL.
|
||||||
mo_files->add_abap( iv_extra = <ls_func>-funcname
|
mo_files->add_abap( iv_extra = <ls_func>-funcname
|
||||||
it_abap = lt_new_source ).
|
it_abap = lt_new_source ).
|
||||||
|
|
|
@ -52,7 +52,7 @@ CLASS lcl_object_type IMPLEMENTATION.
|
||||||
TRY.
|
TRY.
|
||||||
read( ).
|
read( ).
|
||||||
rv_bool = abap_true.
|
rv_bool = abap_true.
|
||||||
CATCH lcx_not_found.
|
CATCH lcx_not_found lcx_exception.
|
||||||
rv_bool = abap_false.
|
rv_bool = abap_false.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user