System and method for optimized metric display
A method includes: receiving, from a user device, a user request for a graphical user interface (GUI) page containing a plurality of calculated performance indicators that are derived from entity data stored in a secured database system; retrieving a first listing of objects from the entity data containing information for use in calculating the performance indicators; filtering the first listing of objects based on user scope to identify first objects from the first listing of objects that are within scope; generating a first query to retrieve objects identified in the first listing of objects from the database system; instructing the database system via the first query to skip security measures directed to ensuring user access rights to the first objects; calculating the performance indicators based on retrieved objects; generating the GUI page containing the plurality of calculated performance indicators; and signaling the user device to display the generated GUI page.
1 . A method in a user application, comprising:
receiving, from a user device, a user request for a graphical user interface (GUI) page containing a plurality of calculated performance indicators that are derived from entity data stored in a secured database system;
retrieving a predetermined first listing of objects from the entity data containing information for use in calculating the calculated performance indicators;
filtering the first listing of objects based on predefined user scope to identify first objects from the first listing of objects that are within scope;
generating a first query to retrieve objects identified in the first listing of objects from the database system;
instructing the database system via the first query to skip security measures directed to ensuring user access rights to the first objects that are within scope;
determining whether a retrieved object is cacheable;
storing the retrieved object as a non-cacheable object within user device memory of the user device when the retrieved object is not cacheable;
calculating the calculated performance indicators based on the retrieved objects;
generating the GUI page containing the plurality of calculated performance indicators;
signaling the user device to display the generated GUI page;
receiving, from the user device, a second user request for a second GUI page containing performance indicator information regarding at least one of the calculated performance indicators;
generating a second listing of objects from the entity data containing information for use in calculating the performance indicator information regarding the at least one of the calculated performance indicators;
determining whether the second listing of objects includes the non-cacheable object that was stored in the user device memory;
filtering the second listing of objects to remove any non-cacheable object that was stored in the user device memory and to identify second objects that are within scope based on the predefined user scope;
retrieving the non-cacheable object from the user device memory;
generating a second query to retrieve from the database system objects from the filtered second listing;
instructing the database system via the second query to skip security measures directed to ensuring user access rights to the first objects and the second objects that are within scope; and
calculating the performance indicator information based on the objects retrieved from the second query and the non-cacheable object.
2 . The method of claim 1 , further comprising:
storing the retrieved object in a cache associated with the database system when the retrieved object is cacheable.
3 . The method of claim 2 , further comprising:
generating the second GUI page containing the performance indicator information; and
signaling the user device to display the second GUI page.
4 . The method of claim 1 , further comprising:
when an object in the first listing of objects is not within scope, determining whether the object is a child object to a parent object that is within scope; and
when the child object is in the first listing of objects along with the parent object that is within scope, instructing the database system to skip security measures directed to ensuring user access rights to the child object.
5 . The method of claim 4 , wherein the child object comprises historical data relating to a parent object.
6 . The method of claim 1 , further comprising:
receiving instructions from a first user who has access to the objects within scope to temporarily grant access rights to a second user who does not have access to the objects within scope; and
storing information indicating a temporary grant of access rights to the second user in an access rights granted file.
7 . The method of claim 6 , wherein instructing the database system to skip security measures directed to ensuring user access rights further comprises:
instructing the database system to skip security measures directed to ensuring user access rights after determining from the access granted file that a user of the user device has been granted access to the objects within scope.
8 . The method of claim 1 , wherein the performance indicators comprise key performance indicators (KPI) comprising one or more of: a sum of deals closed in a current fiscal quarter, a sum of deals pushed out of a current fiscal quarter, and a sum of deals whose amounts were increased within a given time frame.
9 . A data management system comprising:
a secured database system comprising storage media and configured to securely store entity data; and
a server component comprising one or more processors configured by programming instructions on non-transitory computer readable media, the server component configured to:
receive, from a user device over a network, a user request for a graphical user interface (GUI) page containing a plurality of calculated performance indicators that are derived from the entity data stored in the secured database system;
retrieve a predetermined first listing of objects from the entity data containing information for use in calculating the calculated performance indicators;
filter the first listing of objects based on predefined user scope to identify first objects from the first listing of objects that are within scope;
generate a first query to retrieve objects identified in the first listing of objects from the database system;
instruct the database system via the first query to skip security measures directed to ensuring user access rights to the first objects that are within scope;
determine whether a retrieved object is cacheable;
store the retrieved object as a non-cacheable object within user device memory of the user device when the retrieved object is not cacheable;
calculate the calculated performance indicators based on the retrieved objects;
generate the GUI page containing the plurality of calculated performance indicators;
signal the user device to display the generated GUI page;
receive, from the user device, a second user request for a second GUI page containing performance indicator information regarding at least one of the calculated performance indicators;
generate a second listing of objects from the entity data containing information for use in calculating the performance indicator information regarding the at least one of the calculated performance indicators;
determine whether the second listing of objects includes the non-cacheable object that was stored in the user device memory;
filter the second listing of objects to remove any non-cacheable object that was stored in the user device memory and to identify second objects that are within scope based on the predefined user scope;
retrieve the non-cacheable object from the user device memory;
generate a second query to retrieve from the database system objects from the filtered second listing;
instruct the database system via the second query to skip security measures directed to ensuring user access rights to the first objects and the second objects that are within scope; and
calculate the performance indicator information based on the objects retrieved from the second query and the non-cacheable object.
10 . The data management system of claim 9 , wherein the server component is further configured to:
store the retrieved object in a cache associated with the database system when the retrieved object is cacheable.
11 . The data management system of claim 10 , wherein the server component is further configured to:
generate the second GUI page containing the performance indicator information; and
signal the user device to display the second GUI page.
12 . The data management system of claim 9 , wherein the server component is further configured to:
when an object in the first listing of objects is not within scope, determine whether the object is a child object to a parent object that is within scope; and
when the child object is in the first listing of objects along with the parent object that is within scope, instruct the database system to skip security measures directed to ensuring user access rights to the child object.
13 . The data management system of claim 9 , wherein the server component is further configured to:
receive instructions from a first user who has access to the objects within scope to temporarily grant access rights to a second user who does not have access to the objects within scope; and
store information indicating a temporary grant of access rights to the second user in an access rights granted file.
14 . The data management system of claim 13 , wherein to instruct the database system to skip security measures directed to ensuring user access rights the server component is further configured to:
instruct the database system to skip security measures directed to ensuring user access rights after determining from the access granted file that a user of the user device has been granted access to the objects within scope.
15 . A server system comprising:
controller comprising one or more processors configured by programming instructions on non-transitory computer readable media, the controller configured to:
receive, from a user device over a network, a user request for a graphical user interface (GUI) page containing a plurality of calculated performance indicators that are derived from entity data stored in a secured database system;
retrieve a predetermined first listing of objects from entity data containing information for use in calculating the calculated performance indicators;
filter the first listing of objects based on predefined user scope to identify first objects from the first listing of objects that are within scope;
generate a first query to retrieve objects identified in the first listing of objects from the database system;
instruct the database system via the first query to skip security measures directed to ensuring user access rights to the first objects that are within scope;
determine whether a retrieved object is cacheable;
store the retrieved object as a non-cacheable object within user device memory of the user device when the retrieved object is not cacheable;
calculate the calculated performance indicators based on the retrieved objects;
generate the GUI page containing the plurality of calculated performance indicators;
signal the user device to display the generated GUI page;
receive, from the user device, a second user request for a second GUI page containing performance indicator information regarding at least one of the calculated performance indicators;
generate a second listing of objects from the entity data containing information for use in calculating the performance indicator information regarding the at least one of the calculated performance indicators;
determine whether the second listing of objects includes the non-cacheable object that was stored in the user device memory;
filter the second listing of objects to remove any non-cacheable object that was stored in the user device memory and to identify second objects that are within scope based on the predefined user scope;
retrieve the non-cacheable object from the user device memory;
generate a second query to retrieve from the database system objects from the filtered second listing;
instruct the database system via the second query to skip security measures directed to ensuring user access rights to the first objects and the second objects that are within scope; and
calculate the performance indicator information based on the objects retrieved from the second query and the non-cacheable object.
16 . The server system of claim 15 , wherein the controller is further configured to:
store the retrieved object in a cache associated with the database system when the retrieved object is cacheable.
17 . The server system of claim 16 , wherein the controller is further configured to:
generate the second GUI page containing the performance indicator information; and
signal the user device to display the second GUI page.
18 . The server system of claim 15 , wherein the controller is further configured to:
when an object in the first listing of objects is not within scope, determine whether the object is a child object to a parent object that is within scope; and
when the child object is in the first listing of objects along with the parent object that is within scope, instruct the database system to skip security measures directed to ensuring user access rights to the child object.
19 . The server system of claim 15 , wherein the controller is further configured to:
receive instructions from a first user who has access to the objects within scope to temporarily grant access rights to a second user who does not have access to the objects within scope; and
store information indicating a temporary grant of access rights to the second user in an access rights granted file.
20 . The server system of claim 19 , wherein to instruct the database system to skip security measures directed to ensuring user access rights the server component is further configured to:
instruct the database system to skip security measures directed to ensuring user access rights after determining from the access granted file that a user of the user device has been granted access to the objects within scope.