Multiple approvals for same RITM only showing last approval in sysapproval_approver table?

Brian Bouchard
Mega Sage

I have a catalog item with a list collector of various software packages. The User can select any number of software packages to be granted access to and the idea is even though everything comes through under 1 RITM, the workflow has a loop in which it gets the first item requested, and generates an approval request. Once approved/rejected, the next requested access will generate an approval request.. so on and so forth until all requested access has been approved or rejected.

The issue I'm running into is an approval is generated for ApplicationOne and the process waits until it is approved or rejected. Then an approval is generated for ApplicationTwo and the process waits until it is approved or rejected. However, there is no record in the sysapproval_approver table for the approval of ApplicationOne.  The only record that exists at the end of the flow is the one for the last access that was approved/rejected.

Trying to figure out if I'm doing something wrong here, or if this is expected behavior since these are coming in as the same RITM.  Do I need to do something to differentiate the multiple approvals, or is what I'm attempting to do not even realistic?  (I know I could effectively do the same thing with an order guide, but then I would need a catalog item for all 500+ pieces of software that can be requested, so I was hoping I could to it in 1 catalog item with this list collector).

4 REPLIES 4

Ashutosh Munot1
Kilo Patron
Kilo Patron

HI,


I assume that you are using the same approval activity in a loop and generating approval for applications under that RITM. So basically what you are doing is you are doing rollback of approvals and over riding existing approval and again generating new approval for different application.


What i will suggest is to use a approval user activity where you have to generate all approval at a time and wait for all approval to be approved or rejected. In User approval activity you have top write a script to push sys_id of the approver based upon your software packages.

For example:

1) IF software package is Anitvirus then approval should goto abc person: answer.push('sys_id of abc');

2)  IF software package is Outlook 365 then approval should goto xyz person: answer.push('sys_id of xyz');


Thanks,
Ashutosh

Thanks for the quick reply Ashutosh. I am doing the loop as you assumed.

I was doing it the way you are suggesting, but each access request has 2 approvers and I only need one of the two approvers to approve for it to be moved to the next level. If I do this as you suggested, I can't break it up that way (at least I haven't figured out how to).

 

Basically, the requirement is for a level of access, I have 2 approvers and one of them needs to approve. Once that access has been approved (or at the same time if possible) the second access request needs to be approved by one of the two approvers for that access.  this is the part I have not been able to figure out.  I can't have them treated all as one approval, because I don't want a rejection for one level of access to halt everything else from going through.

Brian Bouchard
Mega Sage

Anyone else try to do something like this?

I was considering having each level of access requested written to a row of a new table, then creating approvals off of each row in that table through a business rule. Then, in my workflow, I can wait until all rows in that table for that RITM are approved or rejected before continuing on in the process.

 Seems like this could work, but I'm not sure if it's the best way to accomplish what I'm looking for here.

HI,

 

There can be n number of access and each will have multiple approvers, right?

 

Thanks,
Ashutosh