维护一个旧程序,直接用UPDATE更新数据库透明表,现要求加上正在操作提示,以免数据出错。

1、先找到PA30多人修改时对应的锁对象。

2、在UPDATE前加锁,调用函数。

CALL FUNCTION 'ENQUEUE_EPPRELE'
* EXPORTING
* MODE_PREL = 'E'
* MANDT = SY-MANDT
* PERNR =
* INFTY =
* SUBTY =
* OBJPS =
* SPRPS =
* ENDDA =
* BEGDA =
* SEQNR =
* X_PERNR = ' '
* X_INFTY = ' '
* X_SUBTY = ' '
* X_OBJPS = ' '
* X_SPRPS = ' '
* X_ENDDA = ' '
* X_BEGDA = ' '
* X_SEQNR = ' '
* _SCOPE = '2'
* _WAIT = ' '
* _COLLECT = ' '
* 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.

3、更新之后,调用解锁函数。

CALL FUNCTION 'DEQUEUE_EPPRELE'
* EXPORTING
* MODE_PREL = 'E'
* MANDT = SY-MANDT
* PERNR =
* INFTY =
* SUBTY =
* OBJPS =
* SPRPS =
* ENDDA =
* BEGDA =
* SEQNR =
* X_PERNR = ' '
* X_INFTY = ' '
* X_SUBTY = ' '
* X_OBJPS = ' '
* X_SPRPS = ' '
* X_ENDDA = ' '
* X_BEGDA = ' '
* X_SEQNR = ' '
* _SCOPE = '3'
* _SYNCHRON = ' '
* _COLLECT = ' '
.

ABAP 加锁与解锁的更多相关文章

  1. sql语句对数据库表进行加锁和解锁

    锁是数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性. 我们知道,多个用户能够同时操纵同一个数据库中的数据,会发生数据不一致现象.即如果没有锁定且多个用户同时访问一个数据库 ...

  2. svn使用相关问题:eclipse插件,加锁,解锁,偷锁,更新不了,记住密码

    svn使用相关问题:eclipse插件,加锁,解锁,偷锁,更新不了,记住密码 获取锁的时候可以看下 是谁锁住了,让对方提交解锁,如果是给离职人员锁住需要使用偷锁的方式先解锁再提交偷锁处理办法:选中该文 ...

  3. PHP中redis加锁和解锁的简单实现

    背景说明 在程序开发过程中,通常会遇到需要独占式的访问一些资源的情形,比如商品秒杀时扣减库存.这时就需要对资源加锁.实现锁的方式有很多,比如数据库锁.文件锁等等.本文简单介绍PHP中使用redis来实 ...

  4. redis 加锁与解锁的详细总结,解决线程并发导致脏数据

    1.前言 对每个controller来说都是全新且单独的,原因是多线程,如果多个请求操作共有的数据,这样的并发操作会导致脏数据 怎么解决? mysql可以使用积极锁解决, 这里讲解的是redis的解决 ...

  5. Redis加锁与解锁

    Redis加锁 customerM = BaseMemCached.setMLock(customerId); /** * 个人账户表加锁 **/ public static CustomerM se ...

  6. mysql表加锁、全表加锁、查看加锁、解锁

    单个表锁定: 格式: LOCK TABLES tbl_name {READ | WRITE},[ tbl_name {READ | WRITE},……] 例子: lock tables db_a.tb ...

  7. oracle数据库用户加锁和解锁

    oracle数据库安装好之后,scott之类的用户默认情况下是被锁住的,无法使用scott用户登录数据库.使用有alter user数据库权限的用户登陆,角色选sysdba,执行以下命令: 解锁命令: ...

  8. ORACLE用户的加锁、解锁

    在DBA的日常工作中,经常遇到为Oracle用户解锁的操作:这篇文章给出在命令行下进行Oracle用户解锁的操作方法,通过几条简单的解锁语句就能完成此项工作.下面是具体的过程: 默认的scott用户是 ...

  9. REDIS中加锁和解锁问题

    使用lua+redis的方法.之所以使用lua是为了保证原子性 问题: 1. redis发现锁失败了要怎么办?中断请求还是循环请求?2. 循环请求的话,如果有一个获取了锁,其它的在去获取锁的时候,是不 ...

随机推荐

  1. Emmet 真是个好东西

    他的官网:http://docs.emmet.io/ 给广大程序员节省时间 #page>div.logo+ul#navigation>li*5>a{Item $}生产 <div ...

  2. UIView的使用

    UIView是iOS中所有视图的基类,表示屏幕上的一块矩形区域. UIView的基本属性包括: 1.frame,控制视图的显示位置和大小 2.backgroundColor,控制视图的背景颜色 3.a ...

  3. MSClass 和setInterval 的并发,ajax定时有采集信息滚动显示

    setTimeout 用于延时器,只执行一次. setInterval:用于多次执行. //****************************************** 项目中引用到jquer ...

  4. Delphi 使用CHM文件制作系统帮助文档(上下文感知帮助的制作)

    一.基础知识简介         使用帮助提示窗口或状态栏只能提供简单.单一的帮助,无法对某一模块或应用程序整体提供系统的 帮助,因此运行Windows应用程序,需要帮助时一般都可以通过执行帮助菜单获 ...

  5. Lab_1_SysOps_Compute_Linux_v2.5

    System Operations - Lab 1: Creating Elastic Compute Cloud (Amazon EC2) Instances (Linux) - 2.5 ===== ...

  6. ADF_Controller系列4_通过创建ADF Menu作为页面向导(Part2)

    2015-02-15 Created By BaoXinjian

  7. 数据库 MySql

    MySql 一,概述 1,什么是数据库? 数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 二,下载安装 想要使用MySQL来存储并操作数据,则需要做几件事情: a. 安装My ...

  8. ServletContextListener使用详解

    在 Servlet API 中有一个 ServletContextListener 接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期. 当Serv ...

  9. python中subprocess.Popen.poll

    import subprocess proc = subprocess.Popen(['python', 'test.py'], stdout=subprocess.PIPE) while 1: pr ...

  10. CSS的相对定位和就对定位

    1.元素的position属性的值默认为static 就是没有定位,元素出现在正常的文档流中,,这个时候你给这个元素设置的left,right,bottom,top这些偏移属性都是没有效果的, 使用相 ...