The present invention is directed to methods for dynamically setting function reversibility among a mixture of business functions that have been made available to customers through different releases of software packages.
Procurement of complex business applications moves toward on-demand and as-needed purchases. Instead of purchasing major releases of a business application every five years or so, a customer may selectively purchase from an annual enhancement package based on the customer's business needs. The customer may choose and purchase components of specific functionalities from the enhancement package for immediate deployment at a reduced cost. Thus, the customer may enhance its business application capabilities timely without incurring unnecessary expenses.
To deploy the selected functionalities of the enhanced package, a user and/or a vendor may need to switch on the selected functionalities.
To deploy business functions to the user's system, a processor in the user's system executes a user interface program to display graphic elements 104, 106 on a hardware display counsel. The displays are organized into sets in accordance with types of business functions. Each set and/or business function is associated with a select element such as a checkbox button. For example, the graphic element 104 includes a display for “Business Function Set 1” and an associated select element. Further, the “Business Function Set 1” includes business functions such as “Advertise Management” and “Contract Account,” each being associated with a select element. Similarly, the graphic element 106 includes a display for the “Business Function Set 2” and an associated select element. Further, the “Business Function Set 2” includes business functions such as “HCM E-Recruit” and “Maternal Management,” each being associated with a select element. When the select elements of a business function set and/or a business function are selected, a corresponding switch is switched on. For example, switches 1, 3, and 5 in the set of switches 108 are switched on in response to the selection of “Business Function Set 1,” “Advertise Management function,” and “HCM E-Recruit” function. The set of switches 108 includes binary bits that, when turned into “1,” indicate that a corresponding business function has been activated.
In response to the activation of a business function by enabling a switch (switch on), the processor is configured to activate the business function corresponding to development objects by making these objects visible and active. From the code development point of view, this means that these objects are executed after they are switched on and activated. In response to the activation or switching-on of switchable development objects 112, SBCS 114, 116 that are also associated with the activated switch (SWITCH1) via development package 110 may also be activated. The activation of the associated SBCS may cause the extraction of the SBCS contents to corresponding tables 118 stored in the user's system.
Previously, the process of extracting table entries contained in SBCS 114, 116 into the tables 118 is not reversible in the sense that once the table entries are inserted into tables 118, they may overwrite contents stored in the table 118. Thus, business functions of earlier versions of enhancement packages that refer to these SBCS may not be reversible.
It may be desirable to grant customers the ability of testing business functions contained in the enhancement package on the customer's development and test systems prior to actual deployment in the customer's productive system. Thus, the latest version of enhancement packages allows SBCS 114, 116 to be reversed so that business functions associated with the new SBCS 114, 116 may be set to be reversible and be capable of switching off after customer evaluation.
Embodiments of the present invention may include a computer-implemented method for determining reversibility of a business function performed by a plurality of development objects in a user's system. The method may include determining reversibility of an accessory container object based on a plurality of environmental factors of the user's system, responsive to a determination that the accessory container object is reversible, checking a set of conditions specific to the business function to determine whether the business function is reversible, and if the business function is reversible, displaying the business function as reversible, and if not, displaying the business function as irreversible.
Due to the legacy of code development, a mixture of different versions of business functions may be co-existing in the customer's system. This may be best explained in the following exemplary scenario. In a first release, only a few business functions may be hard-coded as “reversible,” but the majority of the business functions are not labeled as “reversible.” In a subsequent second release, the business functions may be similarly labeled as the first release. In a subsequent third release, the business functions may be released to customers as “reversible.” In addition, a software patch to create reversibility to business functions of the second release may also be released to customers. However, since most business functions of the second release in customer's possession are not labeled as “reversible,” these business functions need a determination of their reversibility based on environmental factors of the user's system. The customer may have activated a portion of the second release of business functions along with SBCS. This portion of business functions may not be reversible. However, the remainder portion of these business functions may have yet been activated by the customer. Since these yet-activated business functions are not hard-coded with a “reversible” flag, they do not appear to be “reversible” once they are activated. Additionally, in the customer's system, development objects installed thereon along with the latest version of SBCS are coded with flags indicating whether these development objects are reversible or not. To reduce confusion and present a consistent service to customers, it is desirable for customers to be able to reverse those yet-activated development objects installed along with SBCS.
To reverse an activated business function, the business function needs to be switched off. Additionally, it is expected that table storing the table entries of the SBCS associated with the activated development object be restored. As discussed above, table entries extracted from the SBCS associated with development objects may have been updated or deleted during activation of the development objects. To have the capability of restoring the table, contents of the original table may need to be archived in an image file on the user's system. Because the earlier version of SBCS is not associated with such an image file, table restoration may not be achieved through pre-images of the table. In contrast, the newer version of SBCS may include a link to an image file so that prior to an update or deletion of a table entry, a pre-image of the table may be archived in the image file so that the pre-image may be used to restore the table when necessary.
Software patches may add reversibility to an earlier version of SBCS. These software patches may be shipped to and installed on the customer's system to enable the earlier version of SBCS to be reversible. These software patches may, upon activation of a business function and before extracting table entries from SBCS and overwriting existing table entries on the customer's system, create pre-images for the existing table contents so that these table contents may be copied into the pre-images. With all these different options on the user's system, it is an object of an embodiment of the present invention to provide a method to determine the reversibility of a business function dynamically based on the environmental factors of the user's system rather than statically based on flags associated with the business function. The environmental factors of the user's system may include availability of the reversibility patches, image files, and attributes of business functions.
At 204, in response to a determination that the global setting allows for a reversal of business functions, the processor may be configured to determine the reversibility of SBCS associated with the development package and the business function contained therein based on environmental factors on user's system. The environmental factors may include the availability of certain patches that may convert the earlier version of SBCS into a reversible SBCS and the availability of image files associated with the SBCS.
At 206, in response to a determination that the SBCS may be reversed, the processor may be configured to determine the reversibility of the business function based on certain attributes of the development objects that, when activated, perform the business function. These attributes of the development objects may specify conditions under which the corresponding business function may be reversed or switched off.
At 208, in response to a determination that attributes of the business functions allow them to be reversed, the processor may proceed to prepare and display the business function as reversible. The preparation of the business function may include creating image files for the business function and further associating the created image files with SBCS. Thus, these business functions may be reversed after they are activated in the future. Further, the processor may display an indicator on a display counsel of the reversibility.
If the global setting allows for such a reversal, at 306, the processor may be configured to search for SBCS that are associated with the business function via a development package and determine whether these associated SBCS are reversible. For clarity, an embodiment of the process to determine whether these associated SBCS are reversible is illustrated in
Referring back to step 306 of
Although the present invention has been described with reference to particular examples and embodiments, it is understood that the present invention is not limited to those examples and embodiments. Further, those embodiments may be used in various combinations with and without each other. The present invention as claimed therefore includes variations from the specific examples and embodiments described herein, as will be apparent to one of skill in the art.