如何让SAP中自己开发的程序只运行一个实例?

自己在SAP中开发了一个程序,要求同时只有一个用户执行它,即执行前先检查是否已有其他用户已经在执行该程序了(不想用锁对象方法实现,因为要申请修改标准程序KEY,请求要放在... 自己在SAP中开发了一个程序,要求同时只有一个用户执行它,即执行前先检查是否已有其他用户 已经在执行该程序了(不想用锁对象方法实现,因为要申请修改标准程序KEY,请求要放在SAP包中, 太麻烦,也怕万一出什么问题)谁能给个解决方法啊,先谢谢了? 展开
 我来答
匿名用户
2012-03-18
展开全部
如果你的程序里没有类似'BAPI_TRANSACTION_COMMIT'会自动解当前事务所有锁的函数,在程序开 始放上这个函数就OK了,如果你的版本有事务STVARV倒是可以尝试一下不用锁的方法。 CALL FUNCTION 'ENQUEUE_ESINDX' EXPORTING * ? MODE_INDX = 'E' ? RELID = 'ZZ' ? SRTFD = sy-repid ? SRTF2 = 0 EXCEPTIONS ? FOREIGN_LOCK = 1 ? SYSTEM_FAILURE = 2. IF SY-SUBRC NE 0. ?MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO ? ? ? ? ?WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. * ?WRITE: 'ERROR:',PRG,'is already running'. * ?EXIT. ENDIF.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
贼橙乐m
2012-03-12 · TA获得超过322个赞
知道答主
回答量:149
采纳率:0%
帮助的人:160万
展开全部
FORM CHECK_RUN.
DATA : TH_OPCODE(1) TYPE X,
WITH_CPU TYPE X VALUE 0.
CONSTANTS: OPCODE_WP_LIST LIKE TH_OPCODE VALUE 1.
DATA: BEGIN OF WP_TABL OCCURS 10.
INCLUDE STRUCTURE WPINFO.
DATA: END OF WP_TABL.
DATA:WP_TABL2 LIKE WP_TABL OCCURS 0 WITH HEADER LINE.

FREE : WP_TABL.
CALL 'ThWpInfo'
ID 'OPCODE' FIELD OPCODE_WP_LIST
ID 'TAB' FIELD WP_TABL-*SYS*
ID 'CPU' FIELD WITH_CPU.
LOOP AT WP_TABL WHERE WP_REPORT = SY-REPID.
WP_TABL2-WP_REPORT = WP_TABL-WP_REPORT.
APPEND WP_TABL2.
ENDLOOP.
IF LINES( WP_TABL2 ) = 2.
MESSAGE S000(OO) WITH '已经有其他用户在运行该程序,请稍后再试!' DISPLAY LIKE 'E'.
STOP.
ENDIF.
ENDFORM. "check_run
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式