SAP ABAP实用技巧介绍系列之使用代码获得user的SAP lock信息

简介: SAP ABAP实用技巧介绍系列之使用代码获得user的SAP lock信息


Created by Jerry Wang, last modified on May 21, 2014

如下report 先后三次重复调用带参数的enqueue function module对database table CRMD_SOC_POST里一个uuid为0023的record上锁, 使用Function module ENQUEUE_READ读取该user持有的sap lock信息,打印出的cumulative counter的值依次为1, 2, 3. 每调用一次对应的dequeue function module,则counter 减1。

若不带参数调用enqueue function module,则cumulative counter与待参数时调用的counter是分别计数的。

REPORT zlock1.
CONSTANTS: c_table TYPE tadir-obj_name VALUE 'CRMD_SOC_POST'.
START-OF-SELECTION.
  WRITE: / 'First lock on uuid 23...' COLOR COL_NEGATIVE.
  CALL FUNCTION 'ENQUEUE_ECRMD_SOC_POST'
    EXPORTING
      uuid = '00000000000000000000000000000023'.
  PERFORM display_lock.
  WRITE: / 'Second lock on uuid 23...' COLOR COL_NEGATIVE.
  CALL FUNCTION 'ENQUEUE_ECRMD_SOC_POST'
    EXPORTING
      uuid = '00000000000000000000000000000023'.
  PERFORM display_lock.
  WRITE: / 'Third lock on the whole table...' COLOR COL_NEGATIVE.
  CALL FUNCTION 'ENQUEUE_ECRMD_SOC_POST'.
  PERFORM display_lock.
  WRITE: / 'Third lock on uuid 23...' COLOR COL_NEGATIVE.
  CALL FUNCTION 'ENQUEUE_ECRMD_SOC_POST'
    EXPORTING
      uuid = '00000000000000000000000000000023'.
  PERFORM display_lock.
  WRITE: / 'release lock on uuid 23...' COLOR COL_NEGATIVE.
  CALL FUNCTION 'DEQUEUE_ECRMD_SOC_POST'
    EXPORTING
      uuid = '00000000000000000000000000000023'.
  PERFORM display_lock.
FORM display_lock.
  DATA: lv_subrc TYPE sy-subrc,
        lt_enq   TYPE STANDARD TABLE OF seqg3.
  CLEAR: lt_enq.
  CALL FUNCTION 'ENQUEUE_READ'
    EXPORTING
      gclient               = sy-mandt
      guname                = sy-uname
    IMPORTING
      subrc                 = lv_subrc
    TABLES
      enq                   = lt_enq
    EXCEPTIONS
      communication_failure = 2
      OTHERS                = 1.
  LOOP AT lt_enq ASSIGNING FIELD-SYMBOL(<lock>) WHERE gname = c_table.
    WRITE: / 'lock variable: ' , <lock>-garg+0(40) COLOR COL_POSITIVE,
             'Cumulative Counter: ', <lock>-gusevb COLOR COL_TOTAL.
  ENDLOOP.
ENDFORM.
相关文章
|
2月前
|
存储 安全 数据库
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
|
2月前
|
安全 API 数据库
SAP ABAP OData 中 Function import 的概念介绍
SAP ABAP OData 中 Function import 的概念介绍
|
2月前
|
前端开发 数据库 开发者
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
|
2月前
|
前端开发 开发工具 Android开发
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
|
2月前
|
BI
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
|
2月前
|
开发者 供应链 BI
SAP ABAP CALL SUBSCREEN 代码解析
SAP ABAP CALL SUBSCREEN 代码解析
|
2月前
|
存储 数据处理 开发者
ABAP 如何把 unicode 代码点转换成字符
ABAP 如何把 unicode 代码点转换成字符
|
2月前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
|
2月前
|
SQL 数据库
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)