zoukankan      html  css  js  c++  java
  • 66、saleforce 的 approval process

    public class TestApproval { 
        public void submitAndProcessApprovalRequest() { 
            // Insert an account 
            Line_Item__c a = new Line_Item__c();
            a.Name = 'Test_Line_Item_code_approval';
            a.Quantity__c =2;
            a.Unit_Price2__c =1200;
            Merchandise__c merchan = new Merchandise__c();
            merchan.Name ='Test_merchandise_code_approval';
            merchan.Quantity__c = 100;
            merchan.Price__c = 20000;
            insert merchan;
            a.Merchandise__c = merchan.Id;
            Invoice__c invo = new Invoice__c();
            invo.Status__c ='Open';
            insert invo;
            a.Invoice__c = invo.Id;
            insert a; 
            User user1 = [SELECT Id FROM User WHERE Alias='weizh']; 
            // 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);
            ID[] ids = new ID[]{user1.Id}; 
            req1.setNextApproverIds(ids);
            // 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());
        }
    }
  • 相关阅读:
    解决网页元素无法定位的几种方法
    转载:pycharm最新版新建工程没导入本地包问题:module 'selenium.webdriver' has no attribute 'Firefox'
    关于list的漏删
    春风十里不如你
    记我兵荒马乱的一周(0808-0812)--用户反馈及修改点验证
    vue定时器
    业务系统多机房多活实现思路
    分布式开发之:id生成器
    关于部署系统的一些思考
    web系统认证与鉴权中的一些问题
  • 原文地址:https://www.cnblogs.com/weizhen/p/6417399.html
Copyright © 2011-2022 走看看