mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
NROB: delete intervals, close #378
This commit is contained in:
parent
e136414c51
commit
9c053763b7
|
@ -13,6 +13,11 @@ CLASS lcl_object_nrob DEFINITION INHERITING FROM lcl_objects_super FINAL.
|
|||
INTERFACES lif_object.
|
||||
ALIASES mo_files FOR lif_object~mo_files.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS:
|
||||
delete_intervals IMPORTING iv_object TYPE inri-object
|
||||
RAISING lcx_exception.
|
||||
|
||||
ENDCLASS. "lcl_object_nrob DEFINITION
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
|
@ -165,6 +170,73 @@ CLASS lcl_object_nrob IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "deserialize
|
||||
|
||||
METHOD delete_intervals.
|
||||
|
||||
DATA: lv_error TYPE c LENGTH 1,
|
||||
ls_error TYPE inrer,
|
||||
lt_list TYPE STANDARD TABLE OF inriv WITH DEFAULT KEY,
|
||||
lt_error_iv TYPE STANDARD TABLE OF inriv WITH DEFAULT KEY.
|
||||
|
||||
FIELD-SYMBOLS: <ls_list> LIKE LINE OF lt_list.
|
||||
|
||||
|
||||
CALL FUNCTION 'NUMBER_RANGE_INTERVAL_LIST'
|
||||
EXPORTING
|
||||
object = iv_object
|
||||
TABLES
|
||||
interval = lt_list
|
||||
EXCEPTIONS
|
||||
nr_range_nr1_not_found = 1
|
||||
nr_range_nr1_not_intern = 2
|
||||
nr_range_nr2_must_be_space = 3
|
||||
nr_range_nr2_not_extern = 4
|
||||
nr_range_nr2_not_found = 5
|
||||
object_not_found = 6
|
||||
subobject_must_be_space = 7
|
||||
subobject_not_found = 8
|
||||
OTHERS = 9.
|
||||
IF sy-subrc <> 0.
|
||||
lcx_exception=>raise( 'error from NUMBER_RANGE_INTERVAL_LIST' ).
|
||||
ENDIF.
|
||||
|
||||
IF lines( lt_list ) = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
LOOP AT lt_list ASSIGNING <ls_list>.
|
||||
CLEAR <ls_list>-nrlevel.
|
||||
<ls_list>-procind = 'D'.
|
||||
ENDLOOP.
|
||||
|
||||
CALL FUNCTION 'NUMBER_RANGE_INTERVAL_UPDATE'
|
||||
EXPORTING
|
||||
object = iv_object
|
||||
IMPORTING
|
||||
error = ls_error
|
||||
error_occured = lv_error
|
||||
TABLES
|
||||
error_iv = lt_error_iv
|
||||
interval = lt_list
|
||||
EXCEPTIONS
|
||||
object_not_found = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0 OR lv_error = abap_true.
|
||||
lcx_exception=>raise( 'error from NUMBER_RANGE_INTERVAL_UPDATE' ).
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'NUMBER_RANGE_UPDATE_CLOSE'
|
||||
EXPORTING
|
||||
object = iv_object
|
||||
EXCEPTIONS
|
||||
no_changes_made = 1
|
||||
object_not_initialized = 2
|
||||
OTHERS = 3.
|
||||
IF sy-subrc <> 0.
|
||||
lcx_exception=>raise( 'error from NUMBER_RANGE_UPDATE_CLOSE' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lif_object~delete.
|
||||
|
||||
DATA: lv_object TYPE tnro-object.
|
||||
|
@ -172,6 +244,8 @@ CLASS lcl_object_nrob IMPLEMENTATION.
|
|||
|
||||
lv_object = ms_item-obj_name.
|
||||
|
||||
delete_intervals( lv_object ).
|
||||
|
||||
CALL FUNCTION 'NUMBER_RANGE_OBJECT_DELETE'
|
||||
EXPORTING
|
||||
language = mv_language
|
||||
|
|
Loading…
Reference in New Issue
Block a user