Uploaded image for project: 'Kuali Rice Roadmap'
  1. Kuali Rice Roadmap
  2. KRRM-13

Implement simple Document-Type-based Delegation Features

    Details

    • Type: Rice Enhancement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Component/s: KEW, KIM
    • Labels:
      None
    • Rice Theme:
      Usability
    • Priority Score:
      11
    • Functional Justification :
      Hide
      I will try to describe the scenarios where I think this would be useful. First of all a description of the current status-quo in Kuali Rice. There are presently two places in Rice where delegations can be implemented:

      1) In routing rules in KEW
      2) On roles in KIM

      In the first of these cases (routing rules in KEW) you have to perform delegations on each rule responsibility that you want to delegate. Furthermore, the rule template that your rules are using needs to support delegation. This is very difficult to configure and not at all intuitive. Additionally, it requires you to plan ahead when you construct your rule templates to ensure that delegation is enabled. The way that this works functionally is as follows:

      Imagine you have a routing rule that says "If total dollar amount of transaction is greater than $1000, then send an approval request to Eric". In the KEW rules framework you can create a "delegation rule" which is associated with this responsibility and says that if the request in this scenario is routed to Eric, then create a primary or secondary delegation to some other party.

      In the KIM role case, when you create a role you can declare delegations on that role. These delegations are tied to that role and it's members and are used during responsibility-based routing as well as allowing for delegation of permissions that have been granted to that role.

      There are some inadequacies with both of these cases:

      1) There is no easy way to say something like "I am going on vacation from date X through date Y, please delegate all my requests and authority to this alternate party during my absence."
      2) These delegations only apply to the specific types of routing on which they are applied (i.e. either rule-based routing or responsibility-based routing). There is no way to apply these delegations in a more global fashion.
      3) As per the above, these delegations aren't triggered when adhoc requests are sent, or when requests are generated from a custom route module.

      The desired functional scenarios here would allow for the following:

      1) A person is going on vacation for two weeks, however they are responsible for important transactions at their institution and want to make sure that those transactions can be deal with in their absence. They have a collegue or an office assistant who they trust to review such transactions (or at least contact the appropriate parties to ensure that the transactions are valid prior to approving them) and they would like to set up a temporary delegation (using secondary delegation) while they are out of the office. They would like for this to be a very simple operation, just navigate to a user interface where they can perform a "temporary" delegation of their responsibilities which should cover approval of workflow requests and permissions to perform certain actions during this time period. This request to perform this level of delegation would be routed for approval as well. Once approved, they would like it to automatically expire after the two-week period has elapsed.

      2) A person is in a high-ranking position at an institution. They are responsible for approving research transactions, financial transactions, paid time off for their employees, and much more. They have an administrative assistant to which they would like to permanently delegate (as a primary delegation type) all approval transactions *except* research-related transactions. However, they only want to delegate approvals, not the additional permissions they have (i.e. such as creating new transactions). They should be able to launch a user interface, select the different transactions that they want to permanently delegate workflow approvals for, and then route the request for approval.

      3) A person is a fiscal officer at their institution and is required to approve financial transactions in their area. However, they are often traveling and want to allow themselves to have a backup in case an important financial transactions comes through while they are out of the office. The would like to delegate to their supervisor as a backup (using secondary delegation type) so that their supervisor can approve these transactions in their absence. They only want to delegate approvals at a particular step in the financial process (the fiscal officer approval step) but they want the delegation to always be active, even though it will only be exercised by their supervisor while the employee is out of the office.

      4) A person receives an item in their action list but knows that, while it may have been sent to them correctly, there is another person in their office who is better equipped to process they request. They would like to perform an ad hoc delegation to a party of their choosing in order to allow the request to be reviewed and approved by that party.

      These are just a few examples of cases where allowing for an easier way to perform delegations on a more global scale would be easier. Note that this brings up some addiitonal thoughts. For example, say the financial systems wants to declare that it should never be possible to globally delegate away all financial approvals. It should be able to specify this and the user trying to delegate away their approval should be notified that they are not permitted to do so.
      Show
      I will try to describe the scenarios where I think this would be useful. First of all a description of the current status-quo in Kuali Rice. There are presently two places in Rice where delegations can be implemented: 1) In routing rules in KEW 2) On roles in KIM In the first of these cases (routing rules in KEW) you have to perform delegations on each rule responsibility that you want to delegate. Furthermore, the rule template that your rules are using needs to support delegation. This is very difficult to configure and not at all intuitive. Additionally, it requires you to plan ahead when you construct your rule templates to ensure that delegation is enabled. The way that this works functionally is as follows: Imagine you have a routing rule that says "If total dollar amount of transaction is greater than $1000, then send an approval request to Eric". In the KEW rules framework you can create a "delegation rule" which is associated with this responsibility and says that if the request in this scenario is routed to Eric, then create a primary or secondary delegation to some other party. In the KIM role case, when you create a role you can declare delegations on that role. These delegations are tied to that role and it's members and are used during responsibility-based routing as well as allowing for delegation of permissions that have been granted to that role. There are some inadequacies with both of these cases: 1) There is no easy way to say something like "I am going on vacation from date X through date Y, please delegate all my requests and authority to this alternate party during my absence." 2) These delegations only apply to the specific types of routing on which they are applied (i.e. either rule-based routing or responsibility-based routing). There is no way to apply these delegations in a more global fashion. 3) As per the above, these delegations aren't triggered when adhoc requests are sent, or when requests are generated from a custom route module. The desired functional scenarios here would allow for the following: 1) A person is going on vacation for two weeks, however they are responsible for important transactions at their institution and want to make sure that those transactions can be deal with in their absence. They have a collegue or an office assistant who they trust to review such transactions (or at least contact the appropriate parties to ensure that the transactions are valid prior to approving them) and they would like to set up a temporary delegation (using secondary delegation) while they are out of the office. They would like for this to be a very simple operation, just navigate to a user interface where they can perform a "temporary" delegation of their responsibilities which should cover approval of workflow requests and permissions to perform certain actions during this time period. This request to perform this level of delegation would be routed for approval as well. Once approved, they would like it to automatically expire after the two-week period has elapsed. 2) A person is in a high-ranking position at an institution. They are responsible for approving research transactions, financial transactions, paid time off for their employees, and much more. They have an administrative assistant to which they would like to permanently delegate (as a primary delegation type) all approval transactions *except* research-related transactions. However, they only want to delegate approvals, not the additional permissions they have (i.e. such as creating new transactions). They should be able to launch a user interface, select the different transactions that they want to permanently delegate workflow approvals for, and then route the request for approval. 3) A person is a fiscal officer at their institution and is required to approve financial transactions in their area. However, they are often traveling and want to allow themselves to have a backup in case an important financial transactions comes through while they are out of the office. The would like to delegate to their supervisor as a backup (using secondary delegation type) so that their supervisor can approve these transactions in their absence. They only want to delegate approvals at a particular step in the financial process (the fiscal officer approval step) but they want the delegation to always be active, even though it will only be exercised by their supervisor while the employee is out of the office. 4) A person receives an item in their action list but knows that, while it may have been sent to them correctly, there is another person in their office who is better equipped to process they request. They would like to perform an ad hoc delegation to a party of their choosing in order to allow the request to be reviewed and approved by that party. These are just a few examples of cases where allowing for an easier way to perform delegations on a more global scale would be easier. Note that this brings up some addiitonal thoughts. For example, say the financial systems wants to declare that it should never be possible to globally delegate away all financial approvals. It should be able to specify this and the user trying to delegate away their approval should be notified that they are not permitted to do so.
    • Technical Justification:
      This item has no technical justification.
    • Impact if not Implemented:
      Hide
      Proper management of delegations will still be a chore in Kuali-rice based applications and will likely get used improperly or result in routing configurations that are too open and allow too much access in order to prevent the need to delegate in cases of an employee being out of the office.
      Show
      Proper management of delegations will still be a chore in Kuali-rice based applications and will likely get used improperly or result in routing configurations that are too open and allow too much access in order to prevent the need to delegate in cases of an employee being out of the office.
    • Priority - KFS:
      High
    • Priority - KC:
      Medium
    • Priority - KS:
      Uncertain - Need More information
    • Priority - Rice:
      High
    • Theme:
      Usability, Kuali Application Business Drivers
    • Application Impact:
      Low
    • Effort Estimate:
      High ~ 1000 hrs

      Description

      This has been discussed many times. I will find all the related issues and link them in.

      KC Rice Enhancement Proposal: https://test.kuali.org/confluence/display/KULRICE/Enable+delegations+at+document+type+level

      Summary of Work Involved: Currently delegations are a system controlled feature of KEW that involves configuration of rule templates and a high maintenance overhead to setup and maintain. This work would allow for delegations to be a user controlled feature where the user is allowed to setup their own. While there would also have to be consideration for application based relegations and restrictions of when, what, how, and who could setup or be setup as a delegate, the empowerment of the end user to do so would greatly increase the flexibility of KEW and ensure documents continue to flow efficiently. The linked JIRA has a variety of use cases where this would be useful.

        Attachments

          Issue Links

            Activity

            Hide
            cfairlie Cath Fairlie (Inactive) added a comment -

            KS was not clear if this was intended to be role-based routing or rule-based routing. We'd like more information on this one before we vote.

            Show
            cfairlie Cath Fairlie (Inactive) added a comment - KS was not clear if this was intended to be role-based routing or rule-based routing. We'd like more information on this one before we vote.
            Hide
            lschultz Lori Schultz (Inactive) added a comment - - edited

            According to the KC request (link above): this is delegation at the document type level, including the root doc type, rather than at the rule level.

            Show
            lschultz Lori Schultz (Inactive) added a comment - - edited According to the KC request (link above): this is delegation at the document type level, including the root doc type, rather than at the rule level.
            Hide
            ewestfal Eric Westfall added a comment -

            I can champion this one with my "IU hat" on.

            Show
            ewestfal Eric Westfall added a comment - I can champion this one with my "IU hat" on.
            Hide
            gpro Gary Prohaska (Inactive) added a comment -

            would be nice to see business justification and examples

            Show
            gpro Gary Prohaska (Inactive) added a comment - would be nice to see business justification and examples
            Hide
            masargen Matt Sargent added a comment -

            Gary Prohaska - Question: how would the parameters be configured/managed for delegation? Any chance KRMS could play a role? Wondering if delegation is not better suited for KIM and role management?

            Show
            masargen Matt Sargent added a comment - Gary Prohaska - Question: how would the parameters be configured/managed for delegation? Any chance KRMS could play a role? Wondering if delegation is not better suited for KIM and role management?

              People

              • Assignee:
                ewestfal Eric Westfall
                Reporter:
                ewestfal Eric Westfall
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: