+ Start a Discussion

Approval Process which approves the record if none of the formulas for the steps trigger assignment

I have created a custom object called Quote__c which I am trying to hookup an approval process.


When a record gets submitted into the approval process I have conditions on each of the approval steps.  


What I am trying to accomplish here is I want all Quote objects to be submitted for approval.  If conditions are such that no approval is required then still perform the "Initial Submission Actions"...and when none of the formulas for the steps evaluate to true then approve the record and perform the "Final Approval Actions".  In this way I can use the "Actions" to do field updates and such to put the Quote record into appropriate statuses.


What happens right now is that after submitting for approval the "Initial Submission Actions" execute...but then it instantly rejects and executes the "Final Rejection Actions".


This may be by design...however, what is interesting is that if you view the "Diagram" for my approval process it shows the process flows for executing the "Final Approval Actions" if the formula for the last step does not trigger assignment.


Any ideas here?



Shashikant SharmaShashikant Sharma

In your approval process


Edit You Step :

Go to Specify Step Criteria : By Click Next

Set like this
Enter this step if the following :         Criteria are met , else approve record


This will ensure that final approval action get executed


Thanks for the reply Shashikant.


However, I have my approval proces setup the way you suggest.  But it seems to be that if the logic of your approval process it is possible that none of the steps will actually trigger assignment for approval then the approval process falls out and auto rejects the record.  


I tried to get some help from our Premier Support on this same issue and this was the response:


[Your example record]...was auto rejected is because the record does not meet any of the rule criteria in your approval process. If it doesn't meet any criteria the record will be reject. I placed comments in the Comments field and the approval process took over as expected. You can test this as well. the approval process is working as designed. I deleted my comments I placed on the sample case so you can test.


Shashikant SharmaShashikant Sharma

have you checked the step criteria , try to set auto approve there?

and chech your rejection action and approval actions are diffreent.


Documentation such as https://login.salesforce.com/help/doc/en/approvals_creating_approval_steps.htm says "If you select go to next step in the first step and the record does not meet the criteria for any of the steps in the approval process, the record is rejected". This corresponds to what I am experiencing today and what appears to be described in this thread.


But this hard coded behavior blocks the real-world (and I would imagine common) scenario that I am trying to create an approval process for. I have a first step conditionally entered where some objects go for a first approval and then I have a second step (reached using "go to next step") where I want objects with values above a threshold to go to a second approver and below a threshold to be automatically approved; instead of this automatic approval I always get automatic rejection. (The UI does not offer an else "Approve Record" option in this case which is at least consistent with the documentation.)


If anyone has found am approval process pattern that achieves this I would appreciate them sharing this. I'll also create a support case on this problem.




A while after starting this thread I did stumble on a solution...it isn't ideal but it is working:


I ended up creating 5 approval processes for our Quote__c object.  The first 4 have very specific entry criteria.  The 5th and last in the order does not have any entry critieria.  It has one step defined with a condition that we hope could never possibley be true:  ex:  Account Name equals Null


This first step then allows you to select the option to "else Approve".  Which does what you would expect it to and does the final approval actions.


Using this method, everytime a record is submitted for approval, if the entry criteria of the first 4 approval process do not pick up the record then it falls into the 5th and final method and then auto approve works.


This is not an ideal situation because for any approval process where you want "Auto Approve" to work you also have to configure this final approval process.  This can get very tedious.  Salesforce should allow for this situation within a single approval process.


Hope that helps.


This seems like an acceptable workaround. Pardon my ignorance, but I have been paqued with a similar issue. I fully agree that the flow chart that does reflect the right logic does NOT reflect the way the approval process works.


What I don't understand is how do I have multiple processes that run in a specific order.