System and method for controlling the on and off state of features of business logic at runtime
First Claim
1. A method for controlling the execution of business logic of a multi-tenant application that is shared by multiple tenants for use in a multi-tenant application development system that allows features of the multi-tenant application to be turned on or off at run time for each particular user entity of a plurality of user entities that are part of a particular tenant in the multi-tenant application development system, wherein the multi-tenant application comprises a plurality of code blocks, wherein each code block corresponds to a particular feature of the multi-tenant application and has an enabling predicate associated with that particular code block, the method comprising:
- prior to run time;
configuring a permissions library that is shared by multiple tenants based on interaction with an interactive control panel at a computer by an administrator associated with the particular tenant of the multi-tenant application development system, wherein configuring the permissions library comprises;
defining, for each particular user entity of the particular tenant, an on/off state for each particular code block via the enabling predicate associated with that particular code block, wherein each particular user entity of the particular tenant is either;
an individual user of the particular tenant, a user group that corresponds to a specific group of users of the particular tenant, a group of users of the particular tenant that have been assigned to a profile, or a default value that represents and corresponds to all users of the particular tenant; and
storing a hash of the configured permissions library in a custom settings cache as a cached permissions library for the particular tenant for use at run time when one or more user entities of the particular tenant attempts to invoke a particular one of the code blocks to determine if that particular one of the code blocks is to be executed, wherein the custom setting cache is provided at the multi-tenant application development system.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems are provided for controlling the execution of business logic that allows features to be turned on or off at run time for each particular user entity of a plurality of user entities. Prior to run time a library is configured based on an administrator'"'"'s interaction with an interactive control panel at a computer of the system. For each particular user entity and for each particular code block of an object that comprises a plurality of code blocks each corresponding to a particular feature and having an enabling predicate associated with that particular code block, the library can be configured by defining an on/off state for each feature of that particular code block via an enabling predicate associated with that particular feature. The library can then be cached in a custom settings cache of the system for use at run time.
161 Citations
22 Claims
-
1. A method for controlling the execution of business logic of a multi-tenant application that is shared by multiple tenants for use in a multi-tenant application development system that allows features of the multi-tenant application to be turned on or off at run time for each particular user entity of a plurality of user entities that are part of a particular tenant in the multi-tenant application development system, wherein the multi-tenant application comprises a plurality of code blocks, wherein each code block corresponds to a particular feature of the multi-tenant application and has an enabling predicate associated with that particular code block, the method comprising:
prior to run time; configuring a permissions library that is shared by multiple tenants based on interaction with an interactive control panel at a computer by an administrator associated with the particular tenant of the multi-tenant application development system, wherein configuring the permissions library comprises; defining, for each particular user entity of the particular tenant, an on/off state for each particular code block via the enabling predicate associated with that particular code block, wherein each particular user entity of the particular tenant is either;
an individual user of the particular tenant, a user group that corresponds to a specific group of users of the particular tenant, a group of users of the particular tenant that have been assigned to a profile, or a default value that represents and corresponds to all users of the particular tenant; andstoring a hash of the configured permissions library in a custom settings cache as a cached permissions library for the particular tenant for use at run time when one or more user entities of the particular tenant attempts to invoke a particular one of the code blocks to determine if that particular one of the code blocks is to be executed, wherein the custom setting cache is provided at the multi-tenant application development system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16)
-
14. A system comprising:
- a multi-tenant application development system configured to generate a multi-tenant application at run-time, wherein the multi-tenant application is shared by multiple tenants; and
a computer comprising;
a display configured to display an interactive control panel, the interactive control panel for controlling the execution of business logic of the multi-tenant application that allows Features of the multi-tenant application to be turned on or off at run time for each particular user entity of a plurality of user entities that are part of a particular tenant in the multi-tenant application development system based on interaction with the interactive control panel by an administrator associated with the particular tenant of the multi-tenant application development system, wherein the multi-tenant application comprises a plurality of code blocks, wherein each code block corresponds to a particular feature of the multitenant application and has an enabling predicate associated with that particular code block, wherein the interactive control panel comprises;
a parent object editing module, displayed at the display, configured to allow the administrator to define for each particular code block, prior to run time, a name of a particular code block; and
a child object editing module, displayed at the display, configured to allow the administrator to configure a permissions library that is shared by multiple tenants by defining for each particular user entity of the particular tenant, prior to run time, an on/off state for each particular code block for that particular user entity of the particular tenant via the enabling predicate associated with that particular code block, wherein each particular user entity of the particular tenant is either;
an individual user of the particular tenant, a user group that corresponds to a specific group of users of the particular tenant, a group of users of the particular tenant that have been assigned to a profile, or a default value that represents and corresponds to all users of the particular tenant; and
a server, comprising;
a custom settings cache for the particular tenant for storing a hash of the configured permissions library in the custom settings cache as a cached permissions library for the particular tenant for use at run time when one or more user entities of the particular tenant attempts to invoke a particular one of the code blocks to determine if that particular one of the code blocks is to be executed, wherein the custom setting cache is provided at the multi-tenant application development system, the cached permissions library comprising the plurality of first attributes and the plurality of second attributes. - View Dependent Claims (15)
- a multi-tenant application development system configured to generate a multi-tenant application at run-time, wherein the multi-tenant application is shared by multiple tenants; and
-
17. Computer code embodied in a non-transitory medium for controlling the execution of business logic of a multi-tenant application that is shared by multiple tenants for use in a multi-tenant application development system that allows features of the multi-tenant application to be turned on or off at run time for each particular user entity of a plurality of user entities that are part of a particular tenant in the multi-tenant application development system, wherein the multi-tenant application comprises a plurality of code blocks, wherein each code block corresponds to a particular feature of the multi-tenant application and has an enabling predicate associated with that particular code block, the computer code configurable to perform the steps of:
-
configuring a permissions library that is shared by multiple tenants based on interaction with an interactive control panel at a computer by an administrator associated with the particular tenant of a multi-tenant application development system, wherein configuration of the permissions library allows for control of the execution of business logic by allowing features of the business logic to be turned on or off at run time for each particular user entity of a plurality of user entities particular user entity of the particular tenant, wherein configuring the permissions library comprises; defining, for each particular user entity of the particular tenant, an on/off state for each particular code block via the enabling predicate associated with that particular code block, wherein each particular user entity of the particular tenant is either;
an individual user of the particular tenant, a user group that corresponds to a specific group of users of the particular tenant, a group of users of the particular tenant that have been assigned to a profile, or a default value that represents and corresponds to all users of the particular tenant; andstoring a hash of the configured permissions library in a custom settings cache as a cached permissions library for the particular tenant for use at run time when one or more user entities of the particular tenant attempts to invoke a particular one of the code blocks to determine if that particular one of the code blocks is to be executed, wherein the custom setting cache is provided at the multi-tenant application development system. - View Dependent Claims (18, 19, 20, 21, 22)
-
Specification