Apexで承認プロセスを操作

本文介绍了一个使用Salesforce平台的Apex编程语言实现的工作流更新案例。通过Apex代码展示了如何创建并提交审批请求,设置申请对象及下一步骤的审批人,并处理可能出现的错误。此外还介绍了如何通过ProcessInstanceWorkitem对象来执行审批操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.flect.co.jp/salesforce/2010/09/apex-d1a3.html

http://vaindespair.blogspot.jp/2011/04/blog-post_1451.html

http://www.terrasky.co.jp/blog/2015/150218_001402.php

   //ワークフロー更新
    private boolean updateProcess(){
        try{
            // プロセスの作成
            Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest();
            // 申請するオブジェクトの設定
            psr.setObjectId(app.id);
            //次の承認者の設定(自動割当の場合はnull)
            psr.setNextApproverIds(new Id[] {UserInfo.getUserId()});
            // プロセス実行
            Approval.ProcessResult submitResult = Approval.process(psr);
            system.debug(submitResult.getInstanceStatus() +'submitResult.isSuccess()'+submitResult.isSuccess());
            if(!submitResult.isSuccess()){
               string message ='';

                for(DataBase.Error item : submitResult.getErrors()){
                    message = message + item + ' ';
                }
                ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Warning, message));
                return false;
            }


            // (承認申請すると、ProcessInstanceWorkitemオブジェクトに
            // レコードが作成される)
            List<id> newWorkItemIds = submitResult.getNewWorkitemIds();

            // プロセスの作成
            Approval.ProcessWorkitemRequest request = new Approval.ProcessWorkitemRequest();

            // 承認するProcessInstanceWorkitemオブジェクトのIDの設定
	        request.setAction('Approve');
	        request.setNextApproverIds(new Id[]{UserInfo.getUserId()});
	        request.setWorkitemId(newWorkItemIds.get(0));
	        Approval.ProcessResult result = Approval.process(request);

	        if(result.isSuccess()) {
	            ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.CONFIRM, '承認に成功しました.'));

	        } else {
	            ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, '承認に失敗しました.'));
	        }
            return true;

        }catch(Exception e){
             ApexPages.addMessage(
                new ApexPages.Message(ApexPages.Severity.ERROR, '承認プロセスが存在しないため、申請できません。'));
                system.debug(e);
                return false;
        }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值