Salesforce-在代码调用审批流
来源:互联网 发布:淘宝海外全球站注册 编辑:程序博客网 时间:2024/06/07 01:20
JS自定义按钮调用:
/*Rose发起子商机申请审批2017-11-27 17:26:00*/{!REQUIRESCRIPT("/soap/ajax/40.0/connection.js") } {!REQUIRESCRIPT("/soap/ajax/40.0/apex.js") }//判断是否已经提交过审批,已经审批则弹窗提示if ('{!Relation_Unit__c.ApprovalStatus__c}' == "待审批") { alert('已提交审核,请等待审核完成。');} else if ('{!Relation_Unit__c.ApprovalStatus__c}' == "审批完成" || '{!Relation_Unit__c.ApprovalStatus__c}' == "审批拒绝") { alert('已完成审核,请勿重复操作。');} else { var request = new sforce.ProcessSubmitRequest(); request.objectId = '{!Relation_Unit__c.Id}'; request.comments = '提交新建子商机审批'; request.nextApproverIds = '{!Relation_Unit__c.AccountOwner__c}'; var processRes = sforce.connection.process([request]); if (!processRes[0].getBoolean('success')) { alert("错误:提交新建子商机审批错误:" + processRes[0].errors.message); } else { alert("提交新建子商机审批成功!"); window.location.reload(); }}
Apex调用:
public class TestApproval { void submitAndProcessApprovalRequest() { // Insert an account Account a = new Account(Name='Test',annualRevenue=100.0); insert a; User user1 = [SELECT Id FROM User WHERE Alias='SomeStandardUser']; // Create an approval request for the account Approval.ProcessSubmitRequest req1 = new Approval.ProcessSubmitRequest(); req1.setComments('Submitting request for approval.'); req1.setObjectId(a.id); // Submit on behalf of a specific submitter req1.setSubmitterId(user1.Id); // Submit the record to specific process and skip the criteria evaluation req1.setProcessDefinitionNameOrId('PTO_Request_Process'); req1.setSkipEntryCriteria(true); // Submit the approval request for the account Approval.ProcessResult result = Approval.process(req1); // Verify the result System.assert(result.isSuccess()); System.assertEquals( 'Pending', result.getInstanceStatus(), 'Instance Status'+result.getInstanceStatus()); // Approve the submitted request // First, get the ID of the newly created item List<Id> newWorkItemIds = result.getNewWorkitemIds(); // Instantiate the new ProcessWorkitemRequest object and populate it Approval.ProcessWorkitemRequest req2 = new Approval.ProcessWorkitemRequest(); req2.setComments('Approving request.'); req2.setAction('Approve'); req2.setNextApproverIds(new Id[] {UserInfo.getUserId()}); // Use the ID from the newly created item to specify the item to be worked req2.setWorkitemId(newWorkItemIds.get(0)); // Submit the request for approval Approval.ProcessResult result2 = Approval.process(req2); // Verify the results System.assert(result2.isSuccess(), 'Result Status:'+result2.isSuccess()); System.assertEquals( 'Approved', result2.getInstanceStatus(), 'Instance Status'+result2.getInstanceStatus()); }}
阅读全文
0 0
- Salesforce-在代码调用审批流
- 在salesforce中用Apex实现在父记录上对所有符合要求的子记录批量提交审批
- salesforce中自定义button执行js调用后台apex代码
- 在Salesforce中创建Web Service供外部系统调用
- 在Java程序中调用Salesforce REST API
- 在Salesforce中使用Javascript调用Apex方法
- 用apex代码通过Trigger提交审批/在List View上批量提交与审批
- 调用BAPI审批/取消审批采购订单
- SF :Salesforce中,关于审批的一些对象
- Salesforce如何使用标准批准过程实现自动审批
- Salesforce 常用代码
- sql20171127进度审批代码
- 图解salesforce多层级审批&同级多审批者approval process
- 在MOSS中创建通知列表库审批流问题
- Salesforce -- 代码控制记录共享
- 在salesforce中 处理 Holiday
- SalesForce
- SalesForce
- 高性能Mysql主从架构的复制原理及配置详解
- Linux Crontab 安装使用详细说明
- js event事件
- AngularJS(二)
- 经验总结-谈谈我对LayoutInflater中inflate方法的认识
- Salesforce-在代码调用审批流
- 实例解析iptables在防火墙的应用
- 为你详解Linux安装GCC方法
- configure.ac和makefile.am
- 高并发高负载系统架构-php篇
- poj1064(二分搜索)
- Linux中设置服务自启动的三种方式
- C#集合
- visual studio c++常见错误