data: begin of gt_old_nr occurs 10. "old value
include structure inriv.
data: end of gt_old_nr.
data: begin of gt_new_nr occurs 10. "new value
include structure inriv.
data: end of gt_new_nr.
data: begin of gt_update_error occurs 10. "wrong occurs
include structure inriv.
data: end of gt_update_error.
*------------------------- step 1. lock object -------------------------
call function 'NUMBER_RANGE_ENQUEUE'
exporting
object = 'ZNOTEST'
exceptions
foreign_lock = 1
object_not_found = 2
system_failure = 3
others = 4.
*----------------------- step 2. get info ------------------------------
call function 'NUMBER_RANGE_INTERVAL_LIST'
exporting
object = 'ZNOTEST'
tables
interval = gt_old_nr.
*----------------------- step 3. change object -------------------------
loop at gt_old_nr.
move-corresponding gt_old_nr to gt_new_nr.
gt_new_nr-nrlevel = 3. "当前号码
gt_new_nr-procind = 'U'.
append gt_new_nr.
endloop.
call function 'NUMBER_RANGE_INTERVAL_UPDATE'
exporting
object = 'ZNOTEST'
tables
error_iv = gt_update_error
interval = gt_new_nr.
*---没有NUMBER_RANGE_UPDATE_CLOSE修改不起作用
call function 'NUMBER_RANGE_UPDATE_CLOSE'
exporting
object = 'ZNOTEST'
exceptions
no_changes_made = 1
others = 2.
commit work.
*------------------------ step 4. unlock object ------------------------
call function 'NUMBER_RANGE_DEQUEUE'
exporting
object = 'ZNOTEST'
exceptions
object_not_found = 1
others = 2.
评论