Workflow: Check if App Role Owner is submitting the Request for someone and if so auto approve

yogesh
Regular Contributor III
Regular Contributor III

Use case: 
Application Role workflow with two levels of approval: User's manager then Role Owner
If role owner is submitting the request for someone, then skip BOTH levels of approvals.

Issue:
If Role owner is requesting, Saviynt skips the second level automatically but we have to use if-else block to skip the first manager approval.
I have tried many conditions to no avail, tried some conditions as-it-is from the docs but they don't work either:

entitlement.getOwnerRank1().contains(user.username) eq true    -- as it is from docs, doesn't work
role.getOwnerRank1().contains(user.username) eq true           -- as it is from docs, doesn't work
(entitlement.entowners == null) or (entitlement.entowners.size() == 0 )      -- as it is from docs, doesn't work
entitlement.allowner.contains(requestedBy.username)       -- got from forums also doesnt work
entitlement.getOwnerRank1().contains(user.username)       -- doesn't work, got this from a forum thread

 

6 REPLIES 6

sk
All-Star
All-Star

Can you try this, If it's still not working can you please share the error logs?

 

entitlement.getOwnerRank1().contains(requestedby.username)

 


Regards,
Saathvik

rushikeshvartak
All-Star
All-Star

Share screenshot of if else block

yogesh
Regular Contributor III
Regular Contributor III

This is the workflow:

yogesh_1-1672993501348.png

 

As soon as I add the first if-else condition, the request process stops working and no request ID is generated (the form tells me the request was submitted but that's a lie as per the request history):

yogesh_2-1672993575072.png

Conditions that don't work:

entitlement.getOwnerRank1().contains(user.username) eq true
role.getOwnerRank1().contains(user.username) eq true
(entitlement.entowners == null) or (entitlement.entowners.size() == 0 )
entitlement.allowner.contains(requestedBy.username)
entitlement.getOwnerRank1().contains(user.username)
entitlement.getOwnerRank1().contains(requestedby.username)  

The second block just checks if the Role's cp15 is "Yes" if so auto approves the request. The workflow is working fine if I remove the first if-else block where I want to check if a role owner is submitting the request.

Did you find any error in logs? Can you share the error logs?


Regards,
Saathvik

What type of request are you raising ?

before block check if its account / entitlement/ role request

yogesh
Regular Contributor III
Regular Contributor III

This seems to be working:

role.ownerRank1.contains(requestedby.username)