In some scenario we have to decided approver as dynamically. Say who will be the first approver and who is the second.
In that case create create lookup field (First_Approver__c, Second_Approver__c)to user as approver and those field will be used on creating approval steps of approval process .
Aprroval process
Approval Steps
Now the question is how first_approval__c field will be populated ?
We need to populate those field as instantly I mean just before going to approval process.
Approach - We created a custom button (Content source is java script) and from button code called a method which will update all the approvers and returns true for successful update, Then we are calling approval process.
Class -
global class YourClass {
webservice static Boolean MethodForSettingApprover(Id recordId){
Boolean isUpdated = false;
try{
//Update the approvers
isUpdated = true;
}
Catch(Exception ex){
System.debug('Printing exception===='+ex.getmessage());
}
return isUpdated;
}
}
Button Code -
{!REQUIRESCRIPT("/soap/ajax/24.0/connection.js")}
{!REQUIRESCRIPT("/soap/ajax/10.0/apex.js")}
function SubmitForApproval()
{
var confirmed=confirm("Do you want to continue submitting for approval?");
if (confirmed==true)
{
var resAppclass = sforce.apex.execute("YourClass","MethodForSettingApprover",{recordId"{!YourObject.Id}"});
var approval;
var processRes;
if(resAppclass == 'true'){
approval = new sforce.ProcessSubmitRequest();
approval.objectId = "{!YourObject.Id}";
processRes = sforce.connection.process([approval]);
}
alert('ProcessRes' + processRes);
}
}
No comments:
Post a Comment