ABAP程序运行锁定
1. create a Table ZRUNNING_LOCK (tcode:se11)
fields: MANDT , PROGNAME
2. create Lock object EZRUNLOCK (tcode:se11)
短文本 程序运行锁
3. 如果需对程序加锁,则在程序中执行
perform do_lock
4. 如果需对程序解锁,则在程序中执行
perform release_lock
————————————————————–
DEQUEUE_EZRUNLOCK 释放对象 EZRUNLOCK 的锁定
ENQUEUE_EZRUNLOCK 对象 EZRUNLOCK 要求的锁定
*&———————————————————————*
*& Include ZILOCKFUN01
*&———————————————————————*
* 程序运行锁, 控制同一时间只有一个程序在运行
*———————————————————————-
*&——————————————————————–*
*& Form do_lock
*&——————————————————————–*
* 提交一个锁定
*———————————————————————*
* –>PI_PROGNAME 程序名
* –>PI_WAIT 是否等待
* –>PI_SHOW_MSG 是否显示消息
* –>PO_SUBRC 返回状态
* –>PO_MSG 返回的消息
*———————————————————————*
FORM do_lock USING pi_progname TYPE progname
pi_wait TYPE c "X=waiting
CHANGING po_subrc TYPE c "0=OK,非0=Error
po_msg TYPE text100.
CALL FUNCTION ‘ENQUEUE_EZRUNLOCK’
EXPORTING
mode_zrunning_lock = ‘E’
mandt = sy-mandt
progname = pi_progname
* X_PROGNAME = ‘ ‘
* _SCOPE = ’2′
_wait = pi_wait
* _COLLECT = ‘ ‘
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
po_subrc = ’1′.
IF sy-subrc = 1.
CONCATENATE ‘另一用户’ sy-msgv1 ‘正在运行该程序!’ INTO po_msg
SEPARATED BY space.
ELSE.
po_msg = ‘锁定该程序时出错!’.
ENDIF.
ELSE.
po_subrc = ’0′.
ENDIF.
ENDFORM. "do_lock
*&——————————————————————–*
*& Form release_lock
*&——————————————————————–*
* 释放锁定
*———————————————————————*
* –>PI_PROGNAME 程序名
*———————————————————————*
FORM release_lock USING pi_progname TYPE progname.
CALL FUNCTION ‘DEQUEUE_EZRUNLOCK’
EXPORTING
mode_zrunning_lock = ‘E’
mandt = sy-mandt
progname = pi_progname
* X_PROGNAME = ‘ ‘
* _SCOPE = ’3′
* _SYNCHRON = ‘ ‘
* _COLLECT = ‘ ‘
.
ENDFORM. "release_lock
ABAP程序运行锁定的更多相关文章
- ABAP程序执行效率和优化 ABAP Performance Examples
一. SQL Interface1. Select ... Where vs. Select + Check用Select … Where语句效率比Select ...
- ABAP程序的效率(转)
在网上看到的一篇文章: 程序的效率是每个程序员都应该重视的,无论您是采用哪一种语言进行开发. 程序有时候越短,并不一定越快,有时候程序很多代码,但不一定会很慢. 性能是一把双刃剑, 获得时间效率的同时 ...
- NET5实践:项目创建-结构概述-程序运行-发布部署
ASP.NET5实践01:项目创建-结构概述-程序运行-发布部署 1.项目创建 ASP.NET5项目模板有三种: 新建项目: 选择模板: 2.结构概述 References对应配置是project ...
- 你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧
最近Jerry在忙一个项目,技术栈换成了nodejs平台,语言换成了JavaScript,因为赶项目进度,一直没时间更新公众号.感谢大家的支持,关注人数还是慢慢地增长到了3000. 今天我们来聊聊一个 ...
- 通过ABAP程序创建透明表
最近在解决用户账号问题的时候,需要通过ABAP程序创建透明表,查询了相关资料,总结如下. 通过ABAP程序创建透明表,主要利用了4个函数: DDIF_TABL_ACTIVATE: 激活透明表 GOX_ ...
- 在SAP云平台ABAP编程环境上编写第一段ABAP程序
距2017年秋季的SAP TechEd大会上一位大佬Björn Goerke,SAP's Chief Technology Officer宣布了SAP Cloud Platform即将支持ABAP至今 ...
- golang获取程序运行路径
golang获取程序运行路径: /* 获取程序运行路径 */ func getCurrentDirectory() string { dir, err := filepath.Abs(filepath ...
- linux下实现在程序运行时的函数替换(热补丁)
声明:以下的代码成果,是参考了网上的injso技术,在本文的最后会给出地址,同时非常感谢injso技术原作者的分享. 但是injso文章中的代码存在一些问题,所以后面出现的代码是经过作者修改和检测的. ...
- 放在NSArray、NSDictionary等容器内的对象Item,Item中的property在程序运行过程中被无故释放
可能是被释放的property本身是OC对象而它的属性被误写成assign,例如: @interface MyItem : Object @property (nonatomic, assign) N ...
随机推荐
- C#将字节流加密解密
public class Encrypt { public static byte[] ToEncrypt(string encryptKey, byte[] P_byte_data) { try { ...
- 黑马程序员——OC语言基础语法 面向对象的思想
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...
- AJAX进行数据交互的过程
AJAX全称为"Asynchronous JavaScript and XML"(异步JavaScript和XML). 是指一种创建交互式网页应用的网页开发技术. 通过在后台与服务 ...
- JS 笔记(二) - 函数
1. 函数的 声明 1) 声明式写法 function j1(id){ alert(id); } 2) 声明匿名函数变量 var j2 = function (a, b) { alert(a + &q ...
- CSS中box-sizing属性的理解与部分用法
今天看了一些关于box-sizing的一些资料,在这里整理一下,希望也能对大家有所帮助. box-sizing是CSS的一个属性,很好的解决了盒模型的相关问题.CSS中的盒模型(Box model)分 ...
- C# 水印透明度图片
/// <summary> /// 在一张图片的指定位置处加入一张具有水印效果的图片 /// </summary> /// <param name="Sourc ...
- Android 中dp和px
dp是虚拟像素,在不同的像素密度的设备上会自动适配,比如: 在320x480分辨率,像素密度为160,1dp=1px 在480x800分辨率,像素密度为240,1dp=1.5px 计算公式: 1dp* ...
- 第五章 搭建S3C6410开发板的测试环境
在PC上可以开发Linux驱动,重新编译成ARM架构的Linux驱动模块,但最后还是要在开发板上进行测试.目前最流行的是基于三星S3C6410 ARM11架构的开发板,很多厂商在其基础上进行了扩展,开 ...
- .Net读取Excel文件时丢失数据的问题 (转载)
相信很多人都试过通过OleDB读取Excel文件,这种方法效率十分高,只是有一点会让人十分头痛,就是当一列中既有混合型数据,又有纯数据时,往往容易丢失数据. 百度过后,改连接字符串 “HDR=YES; ...
- C# List<T>用法
C# List<T>用法 所属命名空间:using System.Collections.Generic; List<T>类是 ArrayList 类的泛型等效类. 该类使用 ...