Chinaunix首页 | 论坛 | 博客
  • 博客访问: 394933
  • 博文数量: 120
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 1266
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 16:04
文章分类

全部博文(120)

文章存档

2011年(4)

2010年(10)

2009年(38)

2008年(68)

我的朋友

分类:

2008-10-08 10:57:54

当然可以用程序锁来实现了,系统标准的有一些,可以从SE11查一下.
REPORT ZTEST.
START-OF-SELECTION.
  PERFORM CHECK.
*&--------------------------------------------------------------------*
*&      Form  check
*&--------------------------------------------------------------------*
FORM CHECK.
  DATA:L_NAME TYPE INDX-SRTFD.
  MOVE SY-REPID TO L_NAME.
  CALL FUNCTION 'ENQUEUE_ESINDX'
  EXPORTING
*     MODE_INDX = 'E'
*     MANDT = SY-MANDT
*     RELID =
    SRTFD = L_NAME
    SRTF2 = 0
*   X_RELID = ' '
*   X_SRTFD = ' '
*   X_SRTF2 = ' '
*   _SCOPE = '2'
*   _WAIT = ' '
*   _COLLECT = ' '
  EXCEPTIONS
    FOREIGN_LOCK = 1
    SYSTEM_FAILURE = 2
    OTHERS = 3 .
  IF SY-SUBRC <> 0.
    WRITE: / 'Program is already running!'.
  ENDIF.
ENDFORM.    
 
另外一种方法:
首先,获得系统当前所有登陆的用户,用TH_USER_LIST
然后,获得每个用户的会话,用TH_LONG_USR_INFO
如果发现当前有人用事务代码,则不运行事务,并且给个提示.
 
 
阅读(710) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~