重庆网站制作一般需要多少钱,教师网络培训心得体会,烟台建站价格,网络推广外包费用原文链接#xff1a;https://blog.csdn.net/sinat_38119716/article/details/121406275
备注
RFC:ENQUEUE_READ 读取的是SM12的数据 RFC:ENQUEUE_READ2 读取的是SMENQ的数据 SM12 和 SMENQ 的数据其实是一样的#xff0c;只是一个是旧的TCODE 一个是新的 解锁用的都是RFC: …原文链接https://blog.csdn.net/sinat_38119716/article/details/121406275
备注
RFC:ENQUEUE_READ 读取的是SM12的数据 RFC:ENQUEUE_READ2 读取的是SMENQ的数据 SM12 和 SMENQ 的数据其实是一样的只是一个是旧的TCODE 一个是新的 解锁用的都是RFC: ENQUE_DELETE
需求
通过代码解锁SM12中被锁定目标
一、如果是普通锁
garg为对象的名字可以是锁参数的部分内容 LT_ENQ参考结构seqg3 LT_RAW_ENQ参考结构seqg7
二、如果是BOBF:DB_KEY的标准锁
1. 加锁与解锁 代码如下示例
BOBF标准锁一般采用以下方法加解锁 锁的持有是从调用锁定函数后至程序退出前
* 加锁DATA:iv_key type /BOBF/CONF_KEY.CALL FUNCTION ENQUEUE_/BOBF/E_LIB_2EXPORTINGmode_/bobf/s_lib_enqueue_node Emandt sy-mandtbo_name ztestsc_bo_namekey iv_key
* X_BO_NAME x_key Xx_key2 Xx_node_name X_scope 3
* _WAIT
* _COLLECT EXCEPTIONSforeign_lock 1system_failure 2OTHERS 3.IF sy-subrc EQ 0.ENDIF.*解锁CALL FUNCTION DEQUEUE_/BOBF/E_LIB_2EXPORTINGmode_/bobf/s_lib_enqueue_node Emandt sy-mandtbo_name ztestsc_bo_namekey ls_key-db_key
* X_BO_NAME
* X_KEY
* _SCOPE 3
* _SYNCHRON X
* _COLLECT .
2. 读取与解锁 读需要的锁并解除锁定 (已知KEY值)
DATA:lt_enq TYPE STANDARD TABLE OF seqg3,lv_subrct TYPE sy-subrc,lv_garg TYPE seqg3-garg,ls_enq TYPE seqg3.lv_garg(3) sy-mandt.lv_garg3(30) ztestsc_bo_name.lv_garg33 db_key.lv_garg95 00000000000000000000000000000000.* 读取锁CALL FUNCTION ENQUEUE_READEXPORTINGgarg lv_gargTABLESenq lt_enqEXCEPTIONScommunication_failure 1system_failure 2OTHERS 3.IF sy-subrc 0.* 解锁CALL FUNCTION ENQUE_DELETEEXPORTINGcheck_upd_requests 1
* SUPPRESS_SYSLOG_ENTRY IMPORTINGsubrc lv_subrctTABLESenq lt_enq.ENDIF.
以上