- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Request approval workflow: how to process an array of returned approvers?
I've been looking for some answers to the question in the subject of this thread, but so far I came up empty handed. So, if someone has some experience with it, could you please, shed some light on this? Here is the case scenario:
"A request was submitted to have an account added to multiple groups. Those groups might have multiple owners (one owner per group). As such, I have a node in my approval workflow querying for the groups and corresponding owners. If there is just one owner for the multiple groups, then, there is no issue. However, when multiple owners are returned, that's when the fun begins. Currently I have a variable set to collect all those owners and it is passed to my approver node. That works (to a point) as each owner is requested to perform the approval. The problem is, however, that when one of them decides to reject such a request, the request proceeds with fulfillment if other approvers come later and accept requests to their own groups. So to sum it up: if I am the last approver and I reject the request, entire request is rejected and that's the behavior I would expect. However, if my rejection is followed by another approver who accepts the request, my 'reject' option gets ignored and the workflow proceeds with fulfillment as if nothing happened."
So, my solution is to split all the group owners into individual approver nodes thus guaranteeing proper behavior in case of a rejection. The condition node allows me to check whether the variable returned by a SQL node is an array. However, I see no other tools available to me so I can process that array one element at a time to assign it to an approval node.
Can anyone shed some light on it and please, do not say "you need to contact professional services" :-). I am asking is not outside of the realm of what this product is supposed to be able to handle.
- Tags:
- approval
- array
- Community Thread
- Discussion
- Forum Thread
- Identity G&L
- Identity Governance & Lifecycle
- IG&L
- IGL
- Request
- RSA Identity
- RSA Identity G&L
- RSA Identity Governance & Lifecycle
- RSA Identity Governance and Lifecycle
- RSA IGL
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
how about configuring the approval workflow with "Create an individual job for each change"?
each item (in your case group) will have it's "own" workflow and your workflow will have 1 approval node.
The approvers will see only the relevant group to them.
Regards
Boris
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
This will not work in our current setup as the account forms I am talking about are 'custom' using JSP. So all elements come in a single form. This option does not work that's why I am looking for a solution through walking through the array returned within the approval workflow.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
FYI There is a jira open now against this behavior not working 6.9.1 P06. Hopefully it will be addressed in the next patch release.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Hi Bolek,
Have you got any workaround for this? I am facing same issue for my implementation, we are fetching names of approvers in a group but since email node don't accept group name as a workflow variable I had thought of using array.
But I was stuck with other thing, wherein to use an array you will have to declare it first in one of node and then assign value to it or pass it to some stored procedure to be returned with values.
In this case the declared and assigned array don't show up as workflow variable at all. And you can't use it simply by putting in '{$variabl}'.
So have you guys have any workaround for this?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Hi Boris,
Can you explain a bit that how we can get array used as workflow variable first ?
Even after that this won't be feasible solution for me, because out of 5-6 approvers only one is going to approve the request. So creating separate flows for each approval is not good idea for me.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I have been told this is not possible. Back to the drawing board.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
If I understand your scenario correctly...
you can create a variable with a list of user ids (using a SQL select node for example that will return 6 values)
here is an example:
SELECT USER_ID As AssignedApprovers
FROM PV_USER_ROLE_MEMBERSHIP R
WHERE R.ROLE_ID = XXXXX
Then you can use this variable in Approval Node
The system will assign the work to multiple approvers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Hi Boris Have you look at creating a loop in your approval workflow. I had a similar issue at one of my customers and it works quite nicely. The difference is I didn’t do approvals but email reminders. Sending email to each member using the attributes in the workflow node. If it is in array you will find all members in the string, so the email template will list all members first name and last name for example..
I added a photo for you
Regards
Nico
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Hi Boris,
I haven't tried above solution thinking that one variable may not return all values stored in it.
Let me try it first.
