创建锁

se11的最后一个功能是建立锁对象,例如对创建的数据库表加锁,命名可以是"E"+表名(这块有的帐户权限可能不够建不了,找basis给权限吧)。
名字起好后点创建,输入锁对象短文本(描述),tables选项中选择要加锁的表名,之后在下面的lock parameter中一般选择"E"(专用,累积),设置好后,一个锁对象就建好了,lock parameter选项中,系统默认表的所有主键都是锁参数。根据个人需要可以删除不需要的参数

 

之后在程序中,调用CALL FUNCTION ' ENQUEUE_EZMATMOV 'CALL FUNCTION ' DEQUEUE_ EZMATMOV '两函数在程序中加锁和解锁,第一个函数用于在程序操作数据库之前上锁,后一个是程序操作数据库后将锁释放。代码如下:
data: l_mqid like ZMM_MES_MATM_LOG-MQID,
l_sentti 
like ZMM_MES_MATM_LOG-SENTTI,
l_USERID 
like ZMM_MES_MATM_LOG-USERID,
l_BWART 
like ZMM_MES_MATM_LOG-BWART.
data: l_errmsg(255).
CALL FUNCTION 'ENQUEUE_EZMATMOV'
EXPORTING
mode_zmm_mes_matm_log = 
'E'
mandt                 = sy-mandt
mqid                  = l_mqid
sentti                = l_sentti
userid                = l_userid
bwart                 = l_bwart
*          x_mqid                = ' '
*          x_sentti              = ' '
*          x_userid              = ' '
*          x_bwart               = ' '
_scope                = 
'2'
*          _wait                 = ' '
*          _collect              = ' '
EXCEPTIONS
foreign_lock          = 
1
system_failure        = 
2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
*         into l_errmsg.
*  write: / l_errmsg.
MESSAGE e001(z001) WITH '多个用户不能同时对数据做操作处理!'.
EXIT.
ENDIF.
select zpesinfnr....
...

CALL FUNCTION 'DEQUEUE_EZPSEINFNR'
EXPORTING
mode_zpseinfnr       = 'E'
mandt                = sy-mandt
.

最后在 SE37 中可以去看系统已经帮我们自动生成的锁定和解锁的函数。详细可以参考 ENQUEUE_EZORDCFM DEQUEUE_EZORDCFM ,所建的 锁定和解锁的函数都放在叫 /1BCDWBEN/ZEN0000 的函数组中

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23537555/viewspace-694557/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23537555/viewspace-694557/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值