开发基础 报表教程 数据字典 对话编程 表单打印 增强出口 SAP接口 S/4 HANA
实战案例 实战笔记 资料下载 CRM
问答互助 会员分享 俱乐部 广告区
论坛指南、建议和投诉
Twilight发表于 2014-10-08 19:44Twilight 最后回复于 2014-10-08 19:44 [复制链接] 5419 0
使用道具 举报
Twilight
管理员
发表回复 回帖后跳转到最后一页
1、se11创建表YTEST_SHUKS3
2、为表创建表格维护生成器(菜单:实用程序->表格维护生成器)
PS:这里的屏幕编号是点击系统自动建议的应为2,不是1,截图错了,你的可能与这里的不一致
点击创建,表格维护代码自动生成,保存在function group(YFMG_LEON,可以se80创建并激活)中
3、创建锁对象EYTEST_SHUKS3
锁一定要有E开头,如果是我们自定义的锁,通常用EZ或EY开头
name:需要加锁的表名
lock mode:
1)S (Shared lock, read lock) 共享锁——只读锁,一个用户正在读数据时,阻止其他用户更改该数据;该模式允许 多个用户访问指定表行,但只能读访问.任何时候都不允许写访问
2)E (Exclusive lock, write lock) 排他锁(独占锁)——可写锁,一个用户正在修改数据时,阻止其他用户更改该数据;只有自己可以读、写
3)X (eXclusive lock, extended write lock, cannot be cumulated) 排他但不累计,只有自己可以读、写,并且一个事务只能使用一次
如果我们使用一般情况下,E就可以了。
如果你在一个程序里成功对一个锁对象加锁之后,如果模式为E,其他用户不能再对这个锁对象加E、X、S模式的任意一种锁;
如果你在一个程序里成功对一个锁对象加锁之后,如果模式为X,其他用户不能再对这个锁对象加E、X、S模式的任意一种锁;
如果你在一个程序里成功对一个锁对象加锁之后,如果模式为S,其他用户不能再对这个锁对象加E、X模式的锁,但是可以加S模式的锁;
如果你在一个程序里成功对一个锁对象加锁之后,如果模式为E,在这个程序,你还可以再对这个锁对象加E、S模式的锁,X模式的不可以。
如果你在一个程序里成功对一个锁对象加锁之后,如果模式为X,在这个程序,你不可以再对这个锁对象加E、X、S模式的锁。
如果你在一个程序里成功对一个锁对象加锁之后,如果模式为S,在这个程序,你还可以再对这个锁对象加S模式的锁,如果没有别的用户对其加S模式的锁,那么你还可以对其加E模式的锁。X模式的不可以。
保存并激活lock,系统会自动创建两个FM,ENQUEUE_<锁对象名>和DEQUEUE_<锁对象名>,分别用来锁定和解锁
ENQUEUE_EYTEST_SHUKS3 加锁
DEQUEUE_EYTEST_SHUKS3 解锁
4、新建程序YDAMON_077和t-code:YTEST_SHUKS3(program and selection screen)
程序代码:
5、se80 打开function group(YFMG_LEON),对002屏幕增强,即在PBO里添加MODULE m_change_locking.
双击module名称,添加到一个include里,这个include可以自己新建,代码:
7、测试结果
打开1个session,输入t-code:YTEST_SHUKS3
打开另1个session,输入t-code:YTEST_SHUKS3,条件全选,默认所有记录
PS:sm12解锁