在Salesforce中使用Code Lock记录或判断记录是否被锁定及异常处理
来源:互联网 发布:交易数据和交互数据 编辑:程序博客网 时间:2024/05/16 08:58
场景描述:为了卡业务流程,避免在业务的某个阶段禁止业务人员对记录有更新/删除的权限,经常会使用代码锁定记录。
以下是使用的代码片段:
try{ quote.Status = 'Abandoned'; update quote; // lock the record Approval.LockResult lockResult = Approval.lock(quoteId, false); if(lockResult.isSuccess()) { result.code = '0'; result.msg = Label.ACC_Abandon_Quote_Success; }}catch (Exception e) { System.debug('update status error: ' + e.getMessage()); result.code = '1'; result.msg = Label.ACC_Abandon_Quote_Failed;}在执行该代码时,出现如下异常:System.UnexpectedException: Apex approval lock/unlock api preference not enabled.
解决方案:
此种问题原因是因为在salesforce中没有配置允许使用apex代码对记录进行加锁,解锁。设置如下:
Setup->Build->Create->Workflow & Approvals->Process Automation Settings。将Enable record locking and unlocking in Apex这一项checkbox设置为true。
注释:master-detail关系的记录,锁定master记录,detail记录也会随之被锁定。
补充:通常对于主详细关系的记录,如果使用自定义按钮控制详细记录的创建,那么一旦主详细记录被lock后,需要对该自定义按钮做是否锁定的校验,所以以下提供判断记录是否被锁定的方法。
Boolean isLocked = Approval.isLocked(recId);参考资料:https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_methods_system_approval.htm
阅读全文
2 0
- 在Salesforce中使用Code Lock记录或判断记录是否被锁定及异常处理
- Salesforce中如何判断某用户对于某记录是否有权限
- 在salesforce中使用SOQL查询子记录和父记录
- 在代码中如何判断DataSet中是否有记录
- 在JavaScript中判断键盘的大写锁定键(Caps Lock)是否打开(附扫描枪相关规则)
- 判断表中是否存在该记录
- 在salesforce中 处理 Holiday
- oracle记录被锁定
- android-code-程序异常处理与记录log
- 如何在SQLServer中锁定某行记录
- 查看锁定表或记录得用户
- 锁定记录
- oracle触发器 判断插入的记录是否满足条件,如果满足,则在b表中插入相应记录
- 在PB中控制一条记录是否可以被修改
- struts2全局异常处理及配合log4j异常日志记录
- Eclipse 异常处理记录
- C#下批量判断该条记录在表中是否存在问题
- 判断订单是否被锁定
- sdnuoj系列
- maven 启动时包tests 错
- 开关VoLTE流程分析(一)
- 将后台ajax请求的数据打包写入文件
- dfdfjdjj
- 在Salesforce中使用Code Lock记录或判断记录是否被锁定及异常处理
- java集合框架和Iterator迭代器相关方法
- 远程访问mysql只显示test和information_schema两个库
- springmvc异常拦截器
- 20个命令行工具监控 Linux 系统性能
- Linux趣事 -- (2.2)学生信息管理系统
- 第8章 基本UDP套接字编程
- C++调用Python浅析
- Codeforces-652D : Nested Segments(线段树)