前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Salesforce开发之 apex如何操作批准过程(Approval Process)

Salesforce开发之 apex如何操作批准过程(Approval Process)

原创
作者头像
zcx
修改2022-08-08 17:56:53
7340
修改2022-08-08 17:56:53
举报
文章被收录于专栏:salesforce开发之路上的记事本
代码语言:javascript
复制
    /*
        功能: 对当前记录的审批流程进行自动审批
        参数: sobjectID - 要审批的记录Id
               comment - 审批意见
               rejected - 是否拒绝(True - 拒绝 / False - 通过)
        返回: void
    */
    public static void autoApprovalOANode(Id sobjectID, String comment, Boolean rejected) {

        List<ProcessInstanceWorkitem> pwrList = [SELECT Id 
                                                 FROM ProcessInstanceWorkitem 
                                                 WHERE ProcessInstance.TargetObjectId = :sobjectID];
        if (pwrList.size() > 0) {
            Approval.ProcessWorkitemRequest pwr = new Approval.ProcessWorkitemRequest();
            if (rejected) {
                pwr.setAction('Reject');
            } else {
                pwr.setAction('Approve');
            }
            pwr.setWorkitemId(pwrList[0].Id);
            pwr.setComments(comment);
            Approval.ProcessResult result =  Approval.process(pwr);
            if (result.isSuccess()) {
                System.debug(LoggingLevel.INFO, '系统自动审批成功!');
            } else {
                System.debug(LoggingLevel.INFO, '系统自动审批失败!');
            }
        }
    }
代码语言:javascript
复制
    /*
        功能: 当前登录用户是否是记录的当前审批人
        参数: sobjectID - 要审批的记录Id
        返回: Boolean - True:是 False:不是
    */
    public static Boolean currentUserIsApprover(Id sobjectID) {
        List<ProcessInstanceWorkitem> pwrList = [SELECT ActorId 
                                                 FROM ProcessInstanceWorkitem 
                                                 WHERE ProcessInstance.TargetObjectId = :sobjectID];
        if (pwrList.size() > 0 && 
            pwrList[0].ActorId == UserInfo.getUserId()) {
            return true;
        }

        return false;
    }

代码语言:javascript
复制
if(currentUserIsApprover(obj.Id))  autoApprovalOANode(obj.Id , '审批通过' , false);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档