Announcing the Saviynt Knowledge Exchange unifying the Saviynt forums, documentation, training,
and more in a single search tool across platforms. Read the announcement here.

Role Owner Rank Issue in Workflow

sjaincpk
New Contributor
New Contributor
Hi Team,
 
We are having issue with workflow. Please find our use case below -
 
User Case : 
We are using Enterprise Roles which are mapped to Endpoint/Application and Requested through Request for Self/ Others NOT through Request Enterprise Roles tile. We need to configured role owner with rank 1 and rank 6th to 24th. And when role owner with rank between 6th and 24th is raised request, it should go to requestee manager's approval. 
 
To achieve this, we are checking "entitlement.getOwnerRank6().contains(user.username)" in if-else component of workflow. If requestee is role owner of any rank between 6th and 24th, we are sending request for requestee manager.
 
If role owner is not requesting for himself, we are using custom query block to assign approver.
 
Issue :
If role owner rank is between 1 and 5, if-else block is working fine. We are not able to fetch the role owner with rank 6th to 24th using method getOwnerRank. 
We are getting No Such method exception for method getOwnerRank6(),getOwnerRank7() till getOwnerRank24th.
 
Please let us know why only method allowed till getOwnerRank1() to getOwnerRank5(), and why it is NOT ALLOWED after that.
 
Error :
2022-05-30/04:40:00.933 [{}] [https-jsse-nio-443-exec-12] ERROR services.WorkflowService - Exception in workflow service
javax.el.MethodNotFoundException: Method not found: class com.saviynt.ecm.identitywarehouse.domain.Roles.getOwnerRank6()
at javax.el.Util.findWrapper(Util.java:370)
at javax.el.Util.findMethod(Util.java:216)
 
sjaincpk_0-1653898972661.png

Thanks,

Sachin Jain

10 REPLIES 10

sundas7
Regular Contributor II
Regular Contributor II

Hi Sachin 

We encountered somewhat similar error when we were are trying to check if the requested enterprise role by the user is having an owner or not in the Workflow IF ELSE Condition block. If the condition satisfies we want to route the request to Role Owner. If False we want to route the request to some other team.

 

Error:javax.el.PropertyNotFoundException: Cannot resolve identifier 'Role_Owners'
javax.el.PropertyNotFoundException: Cannot resolve identifier 'role'

We opened a ticket and were provided the following action plan.Please check if it helps.

  • Please use expression language as groovy for the condition

Thanks

Shyam

rushikeshvartak
All-Star
All-Star

Try role object instead of entitlement


Regards,
Rushikesh Vartak
If you find the response useful, kindly consider selecting Accept As Solution and clicking on the kudos button.

Manu269
All-Star
All-Star

Role object seems not to be working :

Request Access count Map [NEW_ACC_REQUESTS_COUNT:0, ADD_ACCESS_REQUESTS_COUNT:0, REMOVE_ACCESS_REQUESTS_COUNT:0, MODIFY_ACC_REQUESTS_COUNT:0, DELETE_ACC_REQUESTS_COUNT:0]
2022-05-31/06:09:02.428 [{}] [https-jsse-nio-443-exec-30] DEBUG services.WorkflowService - ffidpreapprovedmap = [:]
2022-05-31/06:09:02.507 [{}] [https-jsse-nio-443-exec-30] ERROR services.WorkflowService - Exception in workflow service
org.jbpm.api.JbpmException: script evaluation error: javax.script.ScriptException: groovy.lang.MissingPropertyException: No such property: role for class: Script5
Regards
Manish Kumar
If the response answered your query, please Accept As Solution and Kudos
.

Yes, we are also getting same error -

2022-05-31/06:09:02.507 [{}] [https-jsse-nio-443-exec-30] ERROR services.WorkflowService - Exception in workflow service
org.jbpm.api.JbpmException: script evaluation error: javax.script.ScriptException: groovy.lang.MissingPropertyException: No such property: role for class: Script5
 at org.jbpm.pvm.internal.script.ScriptManager.evaluate(ScriptManager.java:127)

sahajranajee
Saviynt Employee
Saviynt Employee

Hello,

Please use entitlement as object for Role in workflow.


Regards,
Sahaj Ranajee
Sr. Product Specialist

Hi Sahaj,

entitlement as a object works till getOwnerRank5(), no such method error after that.

Version 5.5 SP 3.11

Thanks,

Sachin Jain

sahajranajee
Saviynt Employee
Saviynt Employee

Hello,

For your use case, could you try the below condition in the IF-ELSE block :


(!entitlement.getOwnerRank1().contains(user.username) and !entitlement.getOwnerRank2().contains(user.username) and !entitlement.getOwnerRank3().contains(user.username) and !entitlement.getOwnerRank4().contains(user.username) and !entitlement.getOwnerRank5().contains(user.username) and entitlement.allowner.contains(user.username))

 

This will check if the requestee is not a part of the owner rank 1-5 but is still a part of the all owner list. Accordingly you can reroute the worklow.

 

 


Regards,
Sahaj Ranajee
Sr. Product Specialist

sjaincpk
New Contributor
New Contributor

Hi Sahaj,

Thanks a lot!!

This seems to be working, I will test further and let you know if there are any issues.

Regards,

Sachin Jain

Hi Sahaj,

Is there any method to check Primary and Secondary Certifier other than getOwnerRank26() and getOwnerRank27() ?

Thanks,

Sachin Jain

 

 

sahajranajee
Saviynt Employee
Saviynt Employee

Hello,

Primary and Secondary Certifier should be used for Certification related use cases. For other processes, please use the Ranks. You should be able to add the same user as Ranked and Primary/Secondary Certifier for the same object. Example below : Role 

sahajranajee_0-1654588894814.png

 

 


Regards,
Sahaj Ranajee
Sr. Product Specialist