当前位置: 首页 > news >正文

SAP ABAP通过代码解锁SM12中被锁定目标<转载>(RFC: ENQUEUE_READ和 ENQUE_DELETE)

原文链接: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_2'EXPORTINGmode_/bobf/s_lib_enqueue_node = 'E'mandt                         = sy-mandtbo_name                       = ztest=>sc_bo_namekey                           = iv_key
*     X_BO_NAME                     = ' 'x_key                         = 'X'x_key2                        = 'X'x_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_2'EXPORTINGmode_/bobf/s_lib_enqueue_node = 'E'mandt                         = sy-mandtbo_name                       = ztest=>sc_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_garg+3(30) = ztest=>sc_bo_name.lv_garg+33 = db_key.lv_garg+95 = '00000000000000000000000000000000'.* 读取锁CALL FUNCTION 'ENQUEUE_READ'EXPORTINGgarg                  = lv_gargTABLESenq                   = lt_enqEXCEPTIONScommunication_failure = 1system_failure        = 2OTHERS                = 3.IF sy-subrc = 0.*        解锁CALL FUNCTION 'ENQUE_DELETE'EXPORTINGcheck_upd_requests = 1
*             SUPPRESS_SYSLOG_ENTRY       = ' 'IMPORTINGsubrc              = lv_subrctTABLESenq                = lt_enq.ENDIF.

以上

http://www.lryc.cn/news/271639.html

相关文章:

  • 跳跃表原理及实现
  • 详解Vue3中的鼠标事件mousemove、mouseover和mouseout
  • Java:socket编程
  • 哨兵1号回波数据(L0级)FDBAQ压缩算法详解
  • 盾构机数据可视化监控平台 | 图扑数字孪生
  • 计算机网络课程设计-企业网三层架构
  • Docker上传镜像到Harbor
  • mfc100u.dll文件丢失了要怎么解决?修复mfc100u.dll详细指南
  • 【ArcGIS微课1000例】0084:甘肃积石山地震震中100km范围内历史灾害点分布图(2005-2020)
  • java SSM拖拉机售后管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
  • 侯捷C++ 2.0 新特性
  • 计算机网络——基础知识汇总(八)
  • DIA数皆智能客户体验管理CEM获伊利“健康+AI”生态创新大奖
  • linux 休眠唤醒中设备、总线、用户进程、内核线程调试分析流程
  • k8s陈述式资源管理(命令行)
  • 五、HTML 标题
  • 三菱MR-JE伺服脉冲轴应用参数设置
  • 通信原理课设(gec6818) 006:网络编程
  • 一体化、一站式!智能视频客服加码全媒体云呼叫中心能力
  • Vue的watch功能:实现响应式数据更新
  • 兔单抗制备方法的发展-杂交瘤技术|卡梅德生物
  • 【数据结构】图论与并查集
  • 冲刺港股IPO,速腾聚创「承压」
  • Linux基础知识点(五-信号)
  • SpringBoot 一个注解实现数据脱敏
  • 记录:开始学习网络安全
  • C语言—第1次作业:编译与连接基础知识
  • not attached to window manager问题解决
  • 影视后期: PR调色处理,调色工具面板介绍
  • ARM AArch64的虚拟化(virtualization)详解(上)