生产订单报工时,出现用户锁定的情况,在处理前,先判断订单是否被锁。
CO_ZF_ORDER_LOCK 用于生产订单锁定
CO_ZF_ORDER_DELOCK 用于删除锁定
CALL FUNCTION 'CO_ZF_ORDER_LOCK'
EXPORTING
aufnr = '000014487576'
* AUTYP = '10'
* CLIENT = SY-MANDT
* SCOPE = '2'
* SIMULATE = ' '
EXCEPTIONS
order_already_locked = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ELSE.
CALL FUNCTION 'CO_ZF_ORDER_DELOCK'
EXPORTING
aufnr = '000014487576'.
ENDIF.
附上物料锁定和解锁代码
CALL FUNCTION 'ENQUEUE_EMMARAE'
EXPORTING
mode_mara = 'E'
mandt = sy-mandt
matnr = l_matnr "物料
x_matnr = ' '
_scope = '2'
_wait = ' '
_collect = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
* 锁定失败,说明物料正在被其他程序用
ELSE.
* 锁定成功,说明物料可用,然后用解锁
CALL FUNCTION 'DEQUEUE_EMMARAE'
EXPORTING
mode_mara = 'E'
mandt = sy-mandt
matnr = l_matnr
x_matnr = ' '
_scope = '3'
_synchron = ' '
_collect = ' '.
ENDIF.