博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
防止程序重复执行
阅读量:2034 次
发布时间:2019-04-28

本文共 428 字,大约阅读时间需要 1 分钟。

有的程序需要现在同一时间只能运行一个,这种需求可以用锁的方式来实现,在START-OF-SELECTION 事件后加锁,如果是加锁成功,说明还没有程序在执行,如果是加锁失败,则说明已经有同名程序在运行,报错即可。


注:这个锁是借用程序修改的锁,在SE38修改程序的时候也会加这个锁。


程序如下:

START-OF-SELECTION.
  
CALL FUNCTION 'ENQUEUE_ESRDIRE'
    
EXPORTING
      name           
sy-repid
      _scope         
'1'
    
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.

"说明已经有程序在运行了。
  
ENDIF.

转载地址:http://mdqaf.baihongyu.com/

你可能感兴趣的文章
SQL_wm_concat函数实验:实现字段合并
查看>>
oracle sql WM_CONCAT函数
查看>>
oracle12c取消wm_concat函数,如何重建或使用替代方案?
查看>>
oracle的 listagg() WITHIN GROUP ()函数使用
查看>>
oracle中 decode()函数简介
查看>>
Oracle中decode函数用法解析以及常用场景
查看>>
oracle最强大函数之一decode函数的使用
查看>>
详述 IntelliJ IDEA 中恢复代码的方法
查看>>
new一个对象的时候发生了什么
查看>>
业务复杂=if else?刚来的大神竟然用策略 工厂彻底干掉了他们!
查看>>
关于BeanUtils.describe的使用
查看>>
使用BeanUtils.describe将对象转换成Map时,数组字段的值只获取到第一个元素
查看>>
Notepad++如何让打开的文件排在左边菜单栏
查看>>
浅谈java中null是什么,以及使用中要注意的事项
查看>>
java中的null是值还是对象
查看>>
Java中关于Null的9个解释(Java Null详解)
查看>>
apache-commons 常用工具类
查看>>
org.apache.commons.lang3.StringUtils中的StringUtils常用方法全面解析
查看>>
File类的常用方法【一】
查看>>
GIT版本管理看这一篇就够了
查看>>