Created
August 30, 2018 09:35
-
-
Save gb20/0f4b70a16db8781d9a01c2d11d10166a to your computer and use it in GitHub Desktop.
ENQOBJ READ/WRITE
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
method get_locked_stock. | |
data: lv_arg type seqg3-gtarg, | |
lt_enq type table of seqg3, | |
ls_enq like line of lt_enq, | |
lv_string type string, | |
ls_zeg_stock_enq type zeg_stock_enq. | |
clear: e_locked_by_me, e_locked_by_others. | |
me->set_enquser( ). | |
data: lv_arg150 type seqg3-garg. | |
concatenate sy-mandt i_zregb i_werks '*' into lv_arg150 respecting blanks. | |
call function 'ENQUEUE_READ' | |
exporting | |
gclient = sy-mandt | |
gname = 'ZEG_STOCK_ENQ' | |
garg = lv_arg150 | |
guname = '*' | |
tables | |
enq = lt_enq | |
exceptions | |
communication_failure = 4 | |
system_failure = 8 | |
others = 1. | |
loop at lt_enq into ls_enq. | |
call function 'SO_CHAR_TO_STRUCT' | |
exporting | |
ip_string = ls_enq-garg | |
ip_structname = 'ZEG_STOCK_ENQ' | |
importing | |
ep_struct = ls_zeg_stock_enq. | |
if ls_enq-gusr = g_enquser or ls_enq-gusrvb = g_enquser. | |
e_locked_by_me = e_locked_by_me + ls_zeg_stock_enq-menge. | |
else. | |
e_locked_by_others = e_locked_by_others + ls_zeg_stock_enq-menge. | |
endif. | |
endloop. | |
endmethod. | |
method set_locked_stock. | |
data: lv_arg type seqg3-gtarg, | |
lt_enq type table of seqg3, | |
ls_enq like line of lt_enq, | |
ls_zeg_stock_enq type zeg_stock_enq, | |
lv_enq_before type menge_d. | |
me->set_enquser( ). | |
data: lv_arg150 type seqg3-garg. | |
concatenate sy-mandt i_zregb i_werks '*' into lv_arg150 respecting blanks. | |
call function 'ENQUEUE_READ' | |
exporting | |
gclient = sy-mandt | |
gname = 'ZEG_STOCK_ENQ' | |
garg = lv_arg150 | |
guname = '*' | |
tables | |
enq = lt_enq | |
exceptions | |
communication_failure = 4 | |
system_failure = 8 | |
others = 1. | |
loop at lt_enq into ls_enq where gusr = g_enquser or gusrvb = g_enquser. | |
call function 'SO_CHAR_TO_STRUCT' | |
exporting | |
ip_string = ls_enq-garg | |
ip_structname = 'ZEG_STOCK_ENQ' | |
importing | |
ep_struct = ls_zeg_stock_enq. | |
call function 'DEQUEUE_EZEG_STOCK_STK' | |
exporting | |
zregb = ls_zeg_stock_enq-zregb | |
werks = ls_zeg_stock_enq-werks | |
menge = ls_zeg_stock_enq-menge | |
enqusr = ls_zeg_stock_enq-enqusr. | |
lv_enq_before = lv_enq_before + ls_zeg_stock_enq-menge. | |
endloop. | |
delete table mt_zeg_stock_enq from ls_zeg_stock_enq. | |
ls_zeg_stock_enq-zregb = i_zregb. | |
ls_zeg_stock_enq-werks = i_werks. | |
ls_zeg_stock_enq-menge = lv_enq_before + i_menge. | |
ls_zeg_stock_enq-enqusr = g_enquser. | |
check ls_zeg_stock_enq-menge > 0. | |
call function 'ENQUEUE_EZEG_STOCK_STK' | |
exporting | |
zregb = ls_zeg_stock_enq-zregb | |
werks = ls_zeg_stock_enq-werks | |
menge = ls_zeg_stock_enq-menge | |
enqusr = ls_zeg_stock_enq-enqusr | |
exceptions | |
foreign_lock = 1 | |
system_failure = 2 | |
others = 3. | |
if sy-subrc <> 0. | |
assert 1 = 0. | |
endif. | |
insert ls_zeg_stock_enq into table mt_zeg_stock_enq. | |
endmethod. | |
method SET_ENQUSER. | |
call function 'ENQ_OWNER_GET' | |
importing | |
enqusr = g_enquser | |
exceptions | |
others = 0. | |
if sy-subrc <> 0. | |
assert 1 = 0. | |
endif. | |
endmethod. | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment