This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Delegate Employee Responsibilities of Other Users

In our environment we want to grant to members of a certain business role the ability to delegate any employee responsibility belonging to any user.  For example, if Jane is part of the "Help Desk" business role she should be able to  navigate to a delegation overview showing all employee responsibilities and delegate any one of them to whomever she wishes.  So far I have been able to modify the "VI_Delegation" module and "VI_Delegation_Base" component to give an overview showing all of the employee responsibilities, but am not able to delegate ones that do not belong the current user logged in.  This overview also takes more than a few minutes to load even though the load is only about 13,000 employees.  Is there a best approach option in accomplishing this or is this just not feasible?

Parents
  • Hi,

    Note that the manager can also delegate responsibilities of his direct reports. I suggest you take a look at how that form makes use of the VI_Delegation_Base component, it should not be too hard to adopt it for your use case.

    HTH

    Hanno

  • Thanks for the response Hanno.

    Yes, I've modified the "VI_Delegation_Base" component to be able to show the needed responsibilities, which in our case is ALL managed employees that are of type "Contractor".  To do this, I've modified the WhereClause condition of the DelegableItem table to do this.

    The query is:

    SqlAnd("Criteria = 'HeadPerson'", "uid_org in ( select uid_person from person where ccc_employeetype = 'Contractor' and IsInActive = 0 )")

    This query produces about 13,000 results.  The problem is that when the delegation page is loads it is taking about 5 minutes or more just to load these 13,000 results.  Is there anything we can do to lessen this load time?

  • Hi,

    The form is designed for a situation where you first select an employee. Here the user would have to go through 13,000 delegable items to find the right ones -- correct?

    Also, make sure that your subquery (person selection filtered by CCC_EmployeeType and IsInActive) does not slow down the entire query.

    And finally, there have been some performance hotfixes that could be applied (28964, 29414), depending on your version. Contact support for more details.

    Hanno

  • Thanks Hanno.  I will look into that.

  • Just a quick update.  I was able to retrieve and install hotfix 28964, but unfortunately it did not do much to speed up the load.  I believe it was made in response to this issue:

    https://support.oneidentity.com/identity-manager/kb/235011/slow-performance-in-the-web-portal-with-delegations-when-more-than-700-possible-delegations-exist

    where delegation number went above 700.  It may have worked well if the number of delegations went slightly above that, but I'm thinking for our case, where the number is above 13,000, it does not wok well at all.

    As for the query, I added some more logic to it to lessen the result load (logic to return only the user's employee responsibilities) and that took almost no time at all to load.  From this I concluded that it isn't how my query is structured that slows down the load, its the number of results returned that solely affects the load time.  In other words, me having the sub-query "select uid_person from person where ccc_employeetype = 'Contractor' and IsInActive = 0" is not what slows down the load.  The new query I used below:

    SqlAnd("Criteria = 'HeadPerson'", "uid_org in ( select uid_person from person where ccc_employeetype = 'Contractor' and IsInActive = 0 )", SqlCompareUid("UID_Person", getUIDPerson()))

    where I added the last part "SqlCompareUid("UID_Person", getUIDPerson())" to return less results, loaded almost instantaneously.

    I am beginning to think that maybe the product just cannot handle a large load of delegable items, which makes sense, because in a typical case a user would not usually have thousands of items to delegate. 

Reply
  • Just a quick update.  I was able to retrieve and install hotfix 28964, but unfortunately it did not do much to speed up the load.  I believe it was made in response to this issue:

    https://support.oneidentity.com/identity-manager/kb/235011/slow-performance-in-the-web-portal-with-delegations-when-more-than-700-possible-delegations-exist

    where delegation number went above 700.  It may have worked well if the number of delegations went slightly above that, but I'm thinking for our case, where the number is above 13,000, it does not wok well at all.

    As for the query, I added some more logic to it to lessen the result load (logic to return only the user's employee responsibilities) and that took almost no time at all to load.  From this I concluded that it isn't how my query is structured that slows down the load, its the number of results returned that solely affects the load time.  In other words, me having the sub-query "select uid_person from person where ccc_employeetype = 'Contractor' and IsInActive = 0" is not what slows down the load.  The new query I used below:

    SqlAnd("Criteria = 'HeadPerson'", "uid_org in ( select uid_person from person where ccc_employeetype = 'Contractor' and IsInActive = 0 )", SqlCompareUid("UID_Person", getUIDPerson()))

    where I added the last part "SqlCompareUid("UID_Person", getUIDPerson())" to return less results, loaded almost instantaneously.

    I am beginning to think that maybe the product just cannot handle a large load of delegable items, which makes sense, because in a typical case a user would not usually have thousands of items to delegate. 

Children
No Data