Hello @Sri_Nijs
I think you will need to use a calculated field to "store" the approval decision in the issue:
The issue object refers only to the approval object and doesn't hold on to who made what decision.
In my example I have an approval process with 1 path that triggers approval at the status "INP" and reverts to NEW on rejection.
If you need to do multiple paths, the logic would need to expand to check the result per path.
Add a calculated field at the issue/request, in an Admin-only section.
IF(
!ISBLANK({currentApprovalStep}.{name}),
{status},
IF(
!ISBLANK({approvalCompletionDate}) && CONTAINS(":A",{DE:approvalState}),
IF(
CONTAINS({status},{DE:approvalState}),
"Approved",
"Rejected"
),
{DE:approvalState}
)
)
If the approvalStep is not blank, there is a live approval process, so we save the value of the current status (here, INP:A).
If approvalStep is blank, approval either
- hasn't kicked in (here: not set to INP yet),
- the item was reset back to e.g. NEW manually (and may have been approve / rejected previously), or
- the approval is rejected (in which case the approvalCompletionDate would have a value).
If approvalStep is blank and approvalCompletionDate has a value, AND the current value has ":A" (meaning "pending approval") we figure out whether it was an approval or rejection:
During approval, the status is INP:A, right after approval it's INP - so we compare the status we saved with current and if they match, the issue was approved (otherwise the status reverted).
With this technique - the kinda-set-once - it gets tricky because the calculated field gets re-evaluated on every change to the issue. That's why you'll see the last line that "just keeps the current value".
If you decide to give this a whirl, please test (and let me know if you find any cases there this false).
Good luck!
Report set up
View of report