1 直接 锁定 解锁 表
*锁订单 CALL FUNCTION 'ENQUEUE_EVVBAKE' EXPORTING VBELN = ITAB-VBELN EXCEPTIONS FOREIGN_LOCK = 1 SYSTEM_FAILURE = 2 OTHERS = 3. CASE SY-SUBRC . WHEN 0. PERFORM FM_VBAP_LOCKED USING ITAB-VBELN ITAB-POSNR. CALL FUNCTION 'DEQUEUE_EVVBAKE' EXPORTING MODE_VBAK = 'E' MANDT = SY-MANDT VBELN = ITAB-VBELN X_VBELN = ' ' _SCOPE = '3' _SYNCHRON = ' ' _COLLECT = ' '. WAIT UP TO 1 SECONDS. WHEN 1. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. WHEN 2. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. WHEN OTHERS. ENDCASE.
2 锁 解锁 订单
DATA: DA_VBELN LIKE VBAK-VBELN, DA_UNAME LIKE SY-UNAME, LV_SCENARIO_A TYPE CHAR01, LV_CRM_LOCK_MODE TYPE CHAR01. DA_VBELN = '3000002118'. CALL FUNCTION 'SD_SALES_DOCUMENT_ENQUEUE' EXPORTING VBELN = '3000002118' * i_crm_lock_mode = lv_crm_lock_mode * I_CHECK_SCENARIO_A = CHARX * I_VBAK = VBAK * I_XVBAK_UPDKZ = XVBAK_UPDKZ EXCEPTIONS FOREIGN_LOCK = 2 SYSTEM_FAILURE = 3 NO_CHANGE = 4. DA_UNAME = SY-MSGV1. IF ( SY-SUBRC = 2 AND CALL_FROM_CRM = CHARX AND NOT US_VBAPKOM-VGBEL IS INITIAL ) OR ( SY-SUBRC = 2 AND CALL_ACTIVITY EQ ACTIVITY_ASSEMBLY ). DO 10 TIMES. WAIT UP TO 1 SECONDS. CALL FUNCTION 'SD_SALES_DOCUMENT_ENQUEUE' EXPORTING VBELN = US_VBELN I_CHECK_SCENARIO_A = CHARX I_VBAK = VBAK I_XVBAK_UPDKZ = XVBAK_UPDKZ EXCEPTIONS FOREIGN_LOCK = 2 SYSTEM_FAILURE = 3 NO_CHANGE = 4. IF SY-SUBRC = 0. EXIT. ENDIF. ENDDO. ENDIF. CASE SY-SUBRC. WHEN 2. * PERFORM BELEG_INITIALISIEREN. * * PERFORM BELEG_ENTSPERREN_BTCH USING DA_VBELN. MESSAGE E042(V1) WITH DA_VBELN DA_UNAME. WHEN 3. MESSAGE A043(V1). WHEN 4. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDCASE.