We have customized absence workflow process.
Per the customization the absence application goes to the first approver (derived using AME, based on PQH roles), if first approver does not act on the notification it times out and goes to the first approver's supervisor(second approver). Now when the second approver approves this, the approval again goes back to the first approver instead of completing. We have only one level of approval in AME.
We are deriving and routing the workflow approval to the second approver using a custom function. So post second approver's approval the workflow goes back to check if the approval was final (using "hr_approval_ss.isfinalapprover") which gives NO, causing the approval process to go to first approver.
Please suggest if we need to run some role maintenance process and so on....
This seems to be an issue with the HR API hr_approval_ss.isfinalapprover returning an incorrect status. Please check with the HR team why this wouldn't consider the absense to be approved.
Hope this helps
Would you have any idea, on what basis the packaged procedure decides whther the person who acted on the notification as the last approver?
I mean to say.. based on which workflow attribute.. username, displaynanme, personid..or something else.. ?
As noted before, please open a thread with the HR group because the logic in HR_APPROVAL_SS.isFinalApprover is specific to HR as there are functional rules that they can check to determine whether the final approval is considered. From the WF point of view the engine is just doing what is defined in the workflow, continue to revisit these activities according to the value returned by isfinalapprover.