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

Saviynt API - updateUser Response Time

Sivagami
Valued Contributor
Valued Contributor

Hi Team,

I have a scenario where response of a specific API call needs to be stored in users table. I tried using Saviynt API - updateUser -https://documenter.getpostman.com/view/1797923/TVsvi7G2#5e6acb36-5804-4301-bda3-9cf3ba14c402 

The update is working fine as well but the call is almost taking 2 mins and while checking the logs could see that it's processing all tech rules as well even through the attribute I updated didn't match any existing rules. Not sure what's happening in the backend. 

 

Sivagami_0-1682418364394.png

Detailed logs are shared in the freshdesk ticket for review - https://saviynt.freshdesk.com/support/tickets/1622631 

Kindly check and assist.

-Siva

 

12 REPLIES 12

Sivagami
Valued Contributor
Valued Contributor

I found from the documentation that passing inlineruleevaluation as falsewill stop the rules from getting processed and it's working as well - https://documenter.getpostman.com/view/1797923/TVsvi7G2#5e6acb36-5804-4301-bda3-9cf3ba14c402  

inlineruleevaluation - true/ false (default is true), if true then rules will be evaluated immediately, if false rules will be evaluated by a job.

Sivagami_0-1682422322424.png

@Saviynt Team: I have couple of questions here.

1) When the user is updated with inlineruleevaluation: false, then the rules are not processed but available in the execution trail as Not Processed.

Sivagami_1-1682424501686.png

It's mentioned in the documentation that It's highly recommended to pass inlineruleevaluation:"false" for bulk load and call processrules api to evaluate and run the rules after the load is done.

In my case, the update to this attribute won't match any user update rule but if I send inlineruleevaluation: false, it will load the execution trail with lot of Not processed user changes. So, what it's the recommendation here?

2) Could you guys confirm why inlineruleevaluation: trueis executing all the birthright rules. Ideally, it should execute only the update rules and when there is an action of re-run all / selected provisioning rules for the matched update rule, it should execute specific technical rules. The existing behaviour is kind of weird. 

Notify @SB / @Darshanjain / @rushikeshvartak 

Hi @Sivagami 

Please find the responses accordingly below

1. When ever there is a bulk upload we highly recommend to put inlineruleevaluation as false as there is no issues in Api update. Now even though you don't have any attribute matching suggest you to pass it has false. 

2. As execution trial is now loaded if you have done a bulk upload , you can run the process rule Api now.

Now in both calls if you send this in the body "runzerodayrules" : "false", then it will not check zeroday rules and run only user udpate rules 

Noteinline rule evaluation if its true it checks zerodays rules by default, its the product behavior.

 

 

Thanks

Darshan

Thanks @Darshanjain for the response. When you mean both calls, do you mean updateUser as well as processrules api? I don't see runzerodayrules to be an accepted parameter for updateUser. Please clarify.

-Siva

Yes its for both. you can use it

 

Darshanjain_0-1682436084755.png

 

Thanks

Darshan

Sivagami
Valued Contributor
Valued Contributor

It is still executing all rules in the backend. runzerodayrules set to false in the API.

Sivagami_1-1682926110145.png

-Siva

 

Darshanjain
Saviynt Employee
Saviynt Employee

Hi @Sivagami 

Please pass the false in double invited commas like below

    "runzerodayrules" : "false"
 
Also still after running it as false , if rules are calculated, attach the logs to see so that i can confirm what is missing there.
 
Thanks
Darshan 

Tried the below as well and still it's executing all rules

Sivagami_0-1683106666009.png

Logs shared in the Saviynt freshdesk ticket for reference - https://saviynt.freshdesk.com/support/tickets/1622631 

-Siva

 

Hi @Sivagami 

Just to clarify its not executing the rules but it is checking the birthright access and if doesn't  match it removes for update user ( even from UI this is the behaviour ).

So better to suggest you to use second approach put inlineruleevalaution as false and then in processrules Api just pass it as false where it will work as expected.

 

Thanks

Darshan

 

Sivagami
Valued Contributor
Valued Contributor

Thanks @Darshanjain ! Do we need to log a enhancement request to update the expected behaviour?

Irrespective api should not take time in minutes. Performance improvement should be done. Please also mention no. Of active rules in your system to properly prepare use case for product team


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

Hi @rushikeshvartak 

I agree, so that's why we have the variable to set it inlineruleevaluation as false so that the performance is improved and run the Process Api call as you wish.

Now why is this needed is being explained in above response already, so these you can use those variables accoridngly.

 

Thanks

Darshan 

Hi @Sivagami 

This is the expected behavior and this is needed to check if there is any change in the attribute it needs to check the BR access as you would have kept the condition of remove BR access if not matching. so you can use the above method to get it updated.

 

Thanks

Darshan