`
Jack Wu
  • 浏览: 887458 次
  • 来自: ...
社区版块
存档分类
最新评论

abap--如何获取sap标准表的相关的锁(lock)

阅读更多

最近经常有abap问关于锁的问题,我特此收集了一些资料,供大家参考,也请大家指正。

1.sap锁的概念
sap为了同步同时多个用户操作同一数据,防止数据出现不一致性而采用了锁机制。一般 sap会在操作数据前设置锁,防止第二个用户进行修改操作,当操作结束后系统在释放锁。

2.SAP锁的类型
Exclusive lock

The locked data can be read or processed by one user only. A request for another exclusive lock or for a shared lock is rejected.

Shared lock

Several users can read the same data at the same time, but as soon as a user edits the data, a second user can no longer access this data. Requests for further shared locks are accepted, even if they are issued by different users, but exclusive locks are rejected.

Exclusive but not cumulative lock

Exclusive locks can be requested by the same transaction more than once and handled successively, but an exclusive but not cumulative lock can only be requested once by a given transaction. All other lock requests are rejected.

3.相关TCODE
SE11

4.相关表
DD25L:组合标题(方式,MC目标,锁定目标)(纪录了锁主表)
DD25T:
DD26S:视图的基本表和外来码关系(纪录了所有和锁相关的表)
DD27S:合计(视图,MC对象,锁定对象)字段

5.相关函数
RS_DD_ENQU_EDIT
RS_DD_ENQU_ADD

6.获取表相关锁的列表程序
REPORT  ZRFI0090 LINE-COUNT 70
                 LINE-SIZE  255
                 NO STANDARD PAGE HEADING.
type-pools: slis.
tables: DD02L,dd26s.
data: begin of g_tab occurs 10,
  TABNAME like dd26s-TABNAME,
  VIEWNAME type dd26s-VIEWNAME,
  ename like EMFIN-FBEMFIN,
  dname like EMFIN-FBEMFIN,
end of g_tab.
data g_fcat  type slis_t_fieldcat_alv.
data:  g_fieldcat type slis_fieldcat_alv.
select-options s_table for dd02l-TABNAME default 'VBAK'.

end-of-selection.
  select dd26s~TABNAME dd25l~VIEWNAME
  INTO CORRESPONDING FIELDS OF TABLE g_tab
  from dd26s
  inner join dd25l
    on dd26s~VIEWNAME = dd25l~VIEWNAME
       and dd25l~AGGTYPE = 'E'
    where TABNAME in s_table.
  loop at g_tab.
    concatenate 'ENQUEUE_' g_tab-VIEWNAME into g_tab-ename.
    concatenate 'DEQUEUE_' g_tab-VIEWNAME into g_tab-dname.
    modify g_tab.
  endloop.

  call function 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name     = 'ZTEST4'
      I_INTERNAL_TABNAME = 'G_TAB'
      i_inclname         = 'ZTEST4'
    CHANGING
      ct_fieldcat        = g_fcat.

  g_fieldcat-fieldname = 'ENAME'.
  g_fieldcat-seltext_s = '加锁函数名'.
  append g_fieldcat to g_fcat.

 g_fieldcat-fieldname = 'DNAME'.
  g_fieldcat-seltext_s = '解锁函数名'.
  append  g_fieldcat to g_fcat.

  call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
*      i_callback_program       = repname
*      i_callback_user_command  = g_user_command
*      i_structure_name         = 'INV'
*      is_layout                = layout
       it_fieldcat              = g_fcat
*      is_variant               = g_variant
*      it_events                = events[]
*      i_callback_pf_status_set = 'F01_ALV_EVENT_PF_STATUS_SET'
    tables
      t_outtab                 = g_tab.

7.通过断点找程序所用到的锁
用se38打开程序LSENAF01,并定位到send_enqueue子过程,在该过程中的任一语句设置断点。完成断点设置后,则去执行标准tcode,系统就会在程序调用锁时自动停止在断点处,这时你就可以通过调用堆栈获取加锁函数(ENQUEUE_XXXXXX),其中"XXXXXX"就是锁名称,你就可以通过SE11查看锁信息。 

8.有多个表的锁的样例
锁:EMEKKOE
  主表:EKKO-->E 专用累积
  从表:EKPO-->E 专用累积
  参数:   



分享到:
评论

相关推荐

    SAP ABAP 面试题

    ### SAP ABAP 面试题解析 #### 一、锁对象与FM激活锁定对象 **锁对象(Lock Object)和...以上知识点总结了SAP ABAP领域中的一些重要概念和技术细节,有助于加深对SAP系统的理解,并为准备相关面试提供了有用的指导。

    ABAP开发规范及命名规则.ppt

    本文档详细讲解了ABAP开发规范及命名规则,通过中石油的项目实例,旨在规范ABAP开发者的编程行为,确保开发的程序符合SAP的标准应用模块。 一、程序命名规则 1. 新开发程序的命名规则:Z[aa][tt][nnn] 其中,Z代表...

    ABAP SAP Dictionary

    SAP Dictionary提供了一种标准化的方式来定义和描述数据库表、域、数据类型、搜索帮助以及锁定对象等,使得开发人员能够构建符合企业特定需求的业务逻辑和数据模型。 1. SAP Dictionary教材:Fenghong 提供的教材...

    第07章 表控制Table Control设计.rar_ABAP实战_Table_表控制Table Control设计

    表控制是SAP GUI中的一个标准组件,它允许用户以表格形式查看和操作数据。这种控件提供了分页、排序、过滤等多种功能,极大地提高了用户交互的便利性。表控制可以绑定到内部表或数据库表,使得程序能动态地显示和...

    ABAP学习笔记

    SAP标准报表程序命名格式为`Raxxxxxx`。 - **其他ABAP程序**: 如培训程序或事务处理程序,命名格式为`SAPMYxxx`或`SAPMZxxx`。`a`代表应用程序区域,`x`代表有效字符。SAP标准程序命名格式为`SAPMAXXX`。 #### 六、...

    ABAP面试大全

    - ALV报表是SAP标准的列表显示技术,实现流程通常涉及创建数据结构、填充数据、调用`REUSE_ALV_GRID_DISPLAY`或`CL_GUI_ALV_GRID`等函数模块,以及设置热键和小计。 3. **ALV热键和小计**: - 设置ALV热键使用`...

    sap学习资源(初学者宝典)

    用户可以通过以下几种方式修改SAP标准功能: - **个性化(Personalization)**:针对个人用户界面的定制。 - **客户化(Customizing)**:配置SAP系统的参数,以适应特定业务需求。 - **修改(Modifications)**:直接修改...

    SAP常用事务代码.pdf

    20. Se43:定制显示在用户主菜单中的SAP标准菜单条目。 21. Su01-----默认----StartMenu-----区域菜单(填入定制的菜单)。 22. Pfcg-----找到Common Role-----添加TCode----从范围菜单(填入定制的菜单)。 23. ...

Global site tag (gtag.js) - Google Analytics