METHOD AND APPARATUS FOR POLICY CRITERIA GENERATION
Methods, apparatuses, and computer program products are described herein that are configured to generate criteria that defines instances in which a policy is to be applied or otherwise activated. In some example embodiments, a method is provided that comprises receiving an indication of a selected field of one or more fields that are applicable to a criteria for a policy. The method of this embodiment may also include receiving an indication of an operation selection and a specified value related to the selected field. The method of this embodiment may also include generating a criterion that modifies the criteria for the policy.
Latest MCKESSON FINANCIAL HOLDINGS Patents:
- Apparatuses, methods, and computer program products for automatic internationalization of grammatical output
- Method and apparatus for managing a configurable display environment
- Method and apparatus for implementing a task plan including transmission of one or more test messages
- Method and apparatus for selectively deleting cached records
- System, method, and apparatus for barcode identification workflow
Embodiments of the present invention relate generally to a method, apparatus, and computer program product for generating criteria for policy activation and/or application.
BACKGROUNDIn some instances, software programs are generated such that they provide a polished front end for users. Such a front end enables a user to easily navigate through the functionality of the program. However, the backend of those same software programs are generally very complex and do not lend themselves to easy modification and/or updating. For example, a novice user may be able to navigate the front end whereas a programmer or other experienced software professional may be required to provide the necessary updates or modifications to the software program. While the software programmer or other software professional may be qualified to make the updates or modifications, the time or resources expended may not be as efficient as if users themselves could update or modify the software program should a change need to be made. As such, in some cases the updates or modifications are not simply made or may be delayed.
BRIEF SUMMARYMethods, apparatuses, and computer program products are described herein that, are configured to provide an intuitive user interface that allows a novice user to update or modify a software program. In particular, the embodiments of the present invention enable a user to generate criteria that are configured to define instances in which a policy associated with the software program is to be applied or otherwise activated. In some example embodiments, a method is provided that comprises receiving an indication of a selected policy of one or more policies defined by a software program. The method of this embodiment may also include generating, using a processor and in response to receiving the indication of a selected policy, a plurality of fields that are applicable to a criteria for the selected policy. In some example embodiments, the criteria comprises one or more criterion that define instances in which the policy is to be activated by the software program. The method of this embodiment may also include enabling a user to build a criterion that modifies the criteria for the selected policy. In some example embodiments, the criterion is generated based on an indication of at least one selected field of the plurality of fields and an indication of an operation selection and a specified value associated with each selected field. In some example embodiments, the software program is configured to use the modified criteria to determine an instance in which the selected policy is to be applied.
In further example embodiments, an apparatus is provided that includes at least one processor and at least one memory including computer program code with the at least one memory and the computer program code being configured, with the at least one processor, to cause the apparatus to at least receive an indication of a selected policy of one or more policies defined by a software program. The at least one memory and computer program code may also be configured to, with the at least one processor, cause the apparatus to generate a plurality of fields that are applicable to a criteria for a selected policy in response to receiving the indication of the selected policy. In some example embodiments, the criteria comprises one or more criterion that define instances in which the selected policy is to be activated by the software program. The at least one memory and computer program code may also be configured to, with the at least one processor, cause the apparatus to enable a user to build a criterion that modifies the criteria for the selected policy. In some example embodiments, the criterion is generated based on an indication of at least one selected field of the plurality of fields and an indication of an operation selection and a specified value associated with each selected field. In some example embodiments, the software program is configured to use the criteria to determine an instance in which the selected policy is to be applied.
In yet further example embodiments, a computer program product may be provided that includes at least one non-transitory computer-readable storage medium having computer-readable program instructions stored therein with the computer-readable program instructions including program instructions configured to receive an indication of a selected policy of one or more policies defined by a software program. The computer-readable program instructions may also include program instructions configured to generate a plurality of fields that are applicable to a criteria for a selected policy in response to receiving the indication of the selected policy. In some example embodiments, the criteria comprises one or more criterion that define instances in which the selected policy is to be activated by the software program. The computer-readable program instructions may also include program instructions configured to enable a user to build a criterion that modifies the criteria for the selected policy. In some example embodiments, the criterion is generated based on an indication of at least one selected field of the plurality of fields and an indication of an operation selection and a specified value associated with each selected field. In some example embodiments, the software program is configured to use the criteria to determine an instance in which the selected policy is to be applied.
In yet further example embodiments, an apparatus is provided that includes means for receiving an indication of a selected policy of one or more policies defined by a software program. The apparatus of this embodiment may also include means for generating, in response to receiving the indication of a selected policy, a plurality of fields that are applicable to a criteria for the selected policy. In some example embodiments, the criteria comprises one or more criterion that define instances in which the selected policy is to be activated by the software program. The apparatus of this embodiment may also include means for enabling a user to build a criterion that modifies the criteria for the selected policy. In some example embodiments, the criterion is generated based on an indication of at least one selected field of the plurality of fields and an indication of an operation selection and a specified value associated with each selected field. In some example embodiments, the software program is configured to use the criteria to determine an instance in which the selected policy is to be applied.
Having thus described embodiments of the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Example embodiments will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all, embodiments are shown. Indeed, the embodiments may take many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout. The terms “data,” “content,” “information,” and similar terms may be used interchangeably, according to some example embodiments, to refer to data capable of being transmitted, received, operated on, and/or stored. Moreover, the term “exemplary”, as may be used herein, is not provided to convey any qualitative assessment, but instead merely to convey an illustration of an example. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention.
In some examples, software programs may be built such that they include various policies that, based on established criteria, may result in particular action or consequence occurring. For example, a software program, such as a time and attendance program, may include criteria that may define an instance in which a pay rule set is applied to a particular timesheet. As such, methods, apparatuses, and computer program products are described herein that are configured to enable a user to quickly and easily generate criteria (e.g., a formula) that indicate instances in which a policy is to be activated or otherwise applied by a software program. In some example embodiments, a policy may comprise one or more rules that are to be applied when a criteria is satisfied. For example, a policy of applying an overtime pay rate to worked hours may be applied in an instance in which an employee's hours are over 40 hours and if they are a full time employee.
In further examples, the criteria may be used to invoke a policy that causes a particular scheduling entry to be transitioned to a time card. For example, in an instance in which holiday time or education time is on a schedule, that particular block of time may be transferred directly to a timecard in an instance in which that particular employee meets the criteria defined in the policy.
The methods, apparatuses, and computer program products described herein are therefore configured to enable a user, who is not necessarily a computer programmer, to generate a criteria based on a series of defined criterion in order to modify a corresponding computer program (e.g., a time and attendance system). In some examples and in an instance in which a selection of a policy to be accessed or otherwise modified is received, one or more fields may be automatically generated that may be used by a user in generating a criterion for the selected policy. For example, a class that is related to a particular policy defines one or more fields. The fields presented are those fields that are appropriate or otherwise useable in conjunction with the particular policy to be applied.
The one or more fields are selectable, such that once an indication is received that a field has been selected, the selected field may be displayed in conjunction with a list of operations (e.g., greater than, less than or the like). A user may then select a particular operation then may enter a specific value as the operand. For example, if a number of hours field was selected for an overtime policy, the operation selected may be greater than and the operand may be 40 hours, thus causing the policy to be activated if a particular employee had hours greater than 40 hours. In some cases a predefined set of values may also be presented. Once a field, an operation and an operand are received, the criterion may be verified and then stored.
In some examples, criterion may be grouped with the other criterion related to the same policy. For example, an overtime policy may include criteria that define each of the various instances overtime is applied. In a first case overtime may be applied when hours are greater than 40, but overtime may also be applied if the work day was a holiday. As such, a logical operator, such as “or” may then be applied to signify that the overtime policy is to be applied when hours are greater than 40 or if the day is a holiday. Using this input, the system may generate the criteria for the policy, such as the overtime policy, so that the overtime policy can be applied by a time and attendance system.
As such, a user may generate criteria for a policy using the intuitive user interface that is configured as described herein. Advantageously, the user interface displays those fields and related operations that the user may use to build a particular criterion. The use of the interface is operable, for example, to simplify the entire process of building the criteria for the policy. Once the criterion is defined in the user interface, the methods, apparatuses and computer program products are configured to generate the criteria in the appropriate programming language using the appropriate variables and the proper syntax so that the criteria can be implemented by the software program.
In some example embodiments, the criteria builder 102 may operate as a component of, be embodied by or otherwise have access to the time and attendance, or similar, system 110. As such, the criteria builder 102 is configured to receive an indication of a particular policy associated with the system 110 that has been selected and an indication of any current criterion that make up the criteria for that policy. In order to build or otherwise modify the current criteria, the criteria builder 102 comprises a criterion field generation system 104, a criterion builder 106 and a criterion management system 108.
In some example embodiments, the criterion field generation system 104 is configured to provide a user with one or more selectable fields related to the selected policy. In some example embodiments, and as discussed in more detail below with regard to
In some example embodiments, the criterion builder 106 may be configured to receive an indication of the selected field. The indication may be received via a double click of a field by a user, a drag and drop of the field and/or the like. In some examples, the criterion builder 106 may be configured to cause the selected field to be displayed along with an operation selection drop box (e.g., in list, equals, greater than, less than and/or the like) and an input area for a specified value. In some examples, the specified value may be pre-defined based on the selected field and/or a selected operation. Consequently, the criterion builder 106 is configured to receive the field, operation and specified value and based on the received field, operation and specified value generate a criterion for addition to the criteria for the policy.
In some example embodiments, the criterion that makes up the criteria for activating a policy can be managed by the criterion management system 108. In some example embodiments, the criterion management system 108 is configured to display the criterion that has been generated with respect to the criteria (e.g., a visual representation of each of the currently generated formulas). In some example embodiments, the criterion management system 108 may then enable users to group or otherwise define how the criterion will be used with respect to each other, such as via the use of logical operators or logical statements. In other example embodiments, the criterion management system 108 may further enable a user to group, ungroup, move up, move down, and/or delete a criterion.
Alternatively or additionally, and as discussed in more detail below with regard to
In the example embodiment shown, computing system 300 comprises a computer memory (“memory”) 302, a display 304, one or more processors 306, input/output devices 308 (e.g., keyboard, mouse, CRT or LCD display, touch screen, gesture sensing device and/or the like), other computer readable media 310, and communications interface 312. The processor 306 may, for example, be embodied as various means including one or more microprocessors with accompanying digital signal processor(s), one or more processor(s) without an accompanying digital signal processor, one or more coprocessors, one or more multi-core processors, one or more controllers, processing circuitry, one or more computers, various other processing elements including integrated circuits such as, for example, an application-specific integrated circuit (ASIC) or field-programmable gate array (FPGA), or some combination thereof. Accordingly, although illustrated in
The criteria builder 102 is shown residing in memory 302. In some examples embodiments, the criteria builder 102 is shown as part of the time and attendance, or similar, system 110 also residing in the memory 302. The memory 302 may comprise, for example, transitory and/or non-transitory memory, such as volatile memory, non-volatile memory, or some combination thereof. Although illustrated in
In other embodiments, some portion of the contents, and/or some or all of the components of the criteria builder 102 may be stored on and/or transmitted over the other computer-readable media 310. The components of the criteria builder 102 preferably execute on one or more processors 306 and are configured to enable operation of a criteria builder application, as described herein.
Alternatively or additionally, other code or other programs 340 (e.g., an administrative interface, one or more application programming interface, a Web server, and the like) and potentially other data repositories, such as other data sources 330, also reside in the memory 302, and preferably execute on one or more processors 306. Of note, one or more of the components in
The criteria builder 102 is further configured to provide functions such as those described with reference to
In an example embodiment, components/modules of the criteria builder 102 are implemented using standard programming techniques. For example, the criteria builder 102 may be implemented as a “native” executable running on the processor 306, along with one or more static or dynamic libraries. In other embodiments, the criteria builder 102 may be implemented as instructions processed by a virtual machine that executes as one of the other programs 340. In general, a range of programming languages known in the art may be employed for implementing such example embodiments, including representative implementations of various programming language paradigms, including but not limited to, object-oriented (e.g., Java, C++, C#, Visual Basic.NET, Smalltalk, and the like), functional (e.g., ML, Lisp, Scheme, and the like), procedural (e.g., C, Pascal, Ada, Modula, and the like), scripting (e.g., Perl, Ruby, Python, JavaScript, VBScript, and the like), and declarative (e.g., SQL, Prolog, and the like).
The embodiments described above may also use synchronous or asynchronous client-server computing techniques. Also, the various components may be implemented using more monolithic programming techniques, for example, as an executable running on a single processor computer system, or alternatively decomposed using a variety of structuring techniques, including but not limited to, multiprogramming, multithreading, client-server, or peer-to-peer, running on one or more computer systems each having one or more processors. Some embodiments may execute concurrently and asynchronously, and communicate using message passing techniques. Equivalent synchronous embodiments are also supported. Also, other functions could be implemented and/or performed by each component/module, and in different orders, and by different components/modules, yet still achieve the described functions.
In addition, programming interfaces to the data stored as part of the criteria builder 102, such as by using one or more application programming interfaces can be made available by mechanisms such as through application programming interfaces (API) (e.g., C, C++, C#, Objective C and Java); libraries for accessing files, databases, or other data repositories; through scripting languages such as XML; or through Web servers, FTP servers, or other types of servers providing access to stored data. The other data sources 330 may be implemented as one or more database systems, file systems, or any other technique for storing such information, or any combination of the above, including implementations using distributed computing techniques.
Different configurations and locations of programs and data are contemplated for use with techniques described herein. A variety of distributed computing techniques are appropriate for implementing the components of the illustrated embodiments in a distributed manner including but not limited to TCP/IP sockets, RPC, RMI, HTTP, Web Services (XML-RPC, JAX-RPC, SOAP, and the like). Other variations are possible. Also, other functionality could be provided by each component/module, or existing functionality could be distributed amongst the components/modules in different ways, yet still achieve the functions described herein.
Furthermore, in some embodiments, some or all of the components of the criteria builder 102 may be implemented or provided in other manners, such as at least partially in firmware and/or hardware, including, but not limited to one or more ASICs, standard integrated circuits, controllers executing appropriate instructions, and including microcontrollers and/or embedded controllers, FPGAs, complex programmable logic devices (“CPLDs”), and the like. Some or all of the system components and/or data structures may also be stored as contents (e.g., as executable or other machine-readable software instructions or structured data) on a computer-readable medium so as to enable or configure the computer-readable medium and/or one or more associated computing systems or devices to execute or otherwise use or provide the contents to perform at least some of the described techniques. Some or all of the system components and data structures may also be stored as data signals (e.g., by being encoded as part of a carrier wave or included as part of an analog or digital propagated signal) on a variety of computer-readable transmission mediums, which are then transmitted, including across wireless-based and wired/cable-based mediums, and may take a variety of forms (e.g., as part of a single or multiplexed analog signal, or as multiple discrete digital packets or frames). Such computer program products may also take other forms in other embodiments. Accordingly, embodiments of this disclosure may be practiced with other computer system configurations.
Accordingly, blocks of the flowcharts support combinations of means for performing the specified functions and combinations of operations for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
In some example embodiments, certain ones of the operations herein may be modified or further amplified as described herein. Moreover, in some embodiments additional optional operations may also be included. It should be appreciated that each of the modifications, optional additions or amplifications described herein may be included with the operations herein either alone or in combination with any others among the features described herein.
As is shown in operation 404, an apparatus, such as the computing system 300, may include means, such as the criteria builder 102, the criterion field generation system 104, the processor 306, or the like, for generating one or more fields for selection based on the policy that is being accessed. In some example embodiments the fields selected are the particular fields that are applicable to the policy. A more detailed discussion of how the fields may be generated is provided below with regard to
As is shown in operation 406, an apparatus, such as the computing system 300, may include means, such as the criteria builder 102, the criterion builder 106, the processor 306, or the like, for receiving an indication of a selected field of the one or more fields. As is shown in operation 408, an apparatus, such as the computing system 300, may include means, such as the criteria builder 102, the criterion builder 106, the processor 306, or the like, for generating a criterion builder. In some example embodiments, the criterion builder comprises an indication of the selected field, a listing of operations that may be applied to a specific value or a predefined value and an input area for the entry of a specified value.
As is shown in operation 410, an apparatus, such as the computing system 300, may include means, such as the criteria builder 102, the criterion builder 106, the processor 306, or the like, for receiving an indication of an operation selection and a specified value. As is shown in operation 412, an apparatus, such as the computing system 300, may include means, such as the criteria builder 102, the criterion builder 106, the processor 306, or the like, for generating a criterion that modifies the criteria for the policy. In some example embodiments, the criterion is generated based on the indication of the selected field and the indication of an operation selection and the specified value.
In response to the modification of the criteria for the policy, the computing system 300, may include means, such as the criteria builder 102, the processor 306, or the like, for storing the criteria. In some examples, the criteria may be stored as illustrated by the schema diagram shown with reference to
In some examples the criteria builder window 616 is associated with a criteria controller 604 (e.g., a class that is configured to enable interaction between a policy editor and a criteria builder) which is associated with a criteria utility 602 (e.g., a utility class that is configured to transform criterion into a data structure that is able to be transferred to and from the criteria builder), DbRec_Criteria_policy_detail 620 (e.g., represents database records in a criteria_policy_detail table) and a javax.swing.Jtree 622 (e.g., a Java Swing control that is configured to display hierarchical data as an outline). The javax.swing.Jtree 622 is associated with the criteria tree transfer handler 624 (e.g., configured to extend a TransferHandler class that enables the transfer of data during a drag-and-drop operation), the criteria tree node 626 (e.g., an extension of a DefaultMutableTreeNode class that is configured to hold selectable field information such as data type, field value, column name and table name) and the criteria text field transfer handler 628 (e.g., configured to extend a TransferHandler class that enables the transfer of data during a double-click operation). In some examples the transfer handler 624 and the criteria text field transfer handler 628 are also associated with the criteria tree node 626 and the javax.swing.TransferHandler 632 (e.g., a Java Swing class that is configured to be used to handle the transfer of a Transferable to and from Swing Component). In some examples the criteria tree node 626 is associated with the javax.swing.tree.DefaultMutableTreeNode 630 (e.g., a Java Swing general purpose node in an example tree data structure).
In some example embodiments, one or more fields relating to a policy are derived from a criteria context interface implementation, which, as shown above, also define the tables and pre-defined values to be used by the criteria builder for the policy. The policy is mapped to a criteria context based on the detail table name of the policy. As is shown in operation 702, an apparatus, such as the computing system 300, may include means, such as the criteria builder 102, the processor 306, or the like, for determining a criteria context implementation class name of the criteria context based on a table name relating to the policy (e.g., TIME_HANDLING_RULE_DETAIL>>Time Handling Rule Criteria Context) in an instance in which the policy has a related CriteriaContext implementation. In some example embodiments, the computing system 300, such as via the criteria builder 102, the processor 306, or the like may be configured to determine whether the policy has a related CriteriaContext implementation by performing a lookup against the CriteriaContextMap to find and initialize the corresponding CriteriaContext class implementation.
As is shown in operation 704, an apparatus, such as the computing system 300, may include means, such as the criteria builder 102, the processor 306, or the like, for identifying one or more table column records for one or more fields specified in the criteria context interface implementation class. In some examples, each table name and/or column pair specified in the CriteriaContext implementation may be processed individually. In some examples, the table name is used to retrieve the corresponding TableInfo record from a DataDictionary.
As is shown in operation 706, an apparatus, such as the computing system 300, may include means, such as the criteria builder 102, the processor 306, or the like, for receiving one or more table column records, such as from the TableInfo record in the data dictionary. In some examples, the TableColumnRecord is stored in the CriteriaContext instance in an ordered list, such as an alphabetically ordered list, holding the TableColumnRecords for each selectable field. The table column records may comprise data type, table name, column name, field variable number and/or the like.
As is shown in operation 708, an apparatus, such as the computing system 300, may include means, such as the criteria builder 102, the processor 306, or the like, for generating a criteria field selection tree having a selectable field for the one or more table column records. For example, the CriteriaContext class instance may be passed to a CriteriaWindow, such as the window shown with reference to claim 2b, in an instance in which the window is launched. In some cases and while initializing the CriteriaWindow, the list of TableColumnRecords may be retrieved by the computing system 300, such as via the criteria builder 102, the processor 306, or the like from the context. From this list, a CriteriaTreeNode for each TableColumnRecord is created and added to the Field Selection Tree (i.e., JTree). In some examples, the CriteriaTreeNode extends DefaultMutableTreeNode to enable one or more of the nodes to store additional information, such as but not limited to table name, column name, field value, and data type, that may be used to perform criteria validation once the selectable field is used in a condition.
As is shown in operation 904, an apparatus, such as the computing system 300, may include means, such as the criteria builder 102, the processor 306, or the like, for receiving related data to the criteria to be evaluated. In some examples, a Criteria Evaluation context is configured to capture the data that is to be used to evaluate the Criteria. For example, in a time and attendance system such data may relate to an employee, time sheet, assignment data and/or the like.
As is shown in operation 906, an apparatus, such as the computing system 300, may include means, such as the criteria builder 102, the processor 306, or the like, for determining whether the criteria is to be applied. In some examples, the criteria evaluation system includes the following classes: CriteriaEvaluator, GroupEvaluator and ConditionEvaluator as is described with reference to
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Claims
1. A method comprising:
- receiving an indication of a selected policy of one or more policies defined by a software program;
- generating, using a processor and in response to receiving the indication of a selected policy, a plurality of fields that are applicable to a criteria for the selected policy, wherein the criteria comprises one or more criterion that define instances in which the selected policy is to be activated by the software program; and
- enabling a user to build a criterion that modifies the criteria for the selected policy, wherein the criterion is generated based on an indication of at least one selected field of the plurality of fields and an indication of an operation selection and a specified value associated with each selected field, wherein the software program is configured to use the criteria to determine an instance in which the selected policy is to be applied.
2. A method according to claim 1, wherein generating a plurality of fields further comprises:
- determining a class name of a criteria context implementation based on a table name relating to the selected policy; and
- identifying one or more table column records for one or more fields specified in the criteria context implementation, wherein the one or more table column records are usable for generating the plurality of fields.
3. A method according to claim 2, further comprising:
- generating a criteria field selection tree having the plurality of fields for the one or more table column records.
4. A method according to claim 1, further comprising:
- generating a criterion builder, wherein the criterion builder comprises the plurality of fields and at least one selectable operation; and
- receiving the operation selection and the specified value.
5. A method according to claim 1, further comprising:
- causing display of the plurality of fields;
- receiving an indication of a selected field of the plurality of fields; and
- receiving an indication of an operation selection and a specified value related to the selected field.
6. A method according to claim 1, further comprising:
- displaying the criterion with one or more previously generated criterion;
- receiving an indication of a grouping of at least two criterion from the criterion and the one or more previously generated criterion; and
- modifying the criteria based on the indication.
7. A method according to claim 6, wherein grouping of the at least two criterion comprises joining at least two criterion with a logical operator.
8. A method according to claim 1, further comprising:
- receiving an indication of criteria to be evaluated;
- receiving data from the software program related to the criteria to be evaluated; and
- determining whether the criteria is to be applied.
9. An apparatus comprising:
- at least one processor; and
- at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to at least: receive an indication of a selected policy of one or more policies defined by a software program; generate a plurality of fields that are applicable to a criteria for a selected policy in response to receiving the indication of the selected policy, wherein the criteria comprises one or more criterion that define instances in which the selected policy is to be activated by the software program; and enable a user to build a criterion that modifies the criteria for the selected policy, wherein the criterion is generated based on an indication of at least one selected field of the plurality of fields and an indication of an operation selection and a specified value associated with each selected field, wherein the software program is configured to use the criteria to determine an instance in which the selected policy is to be applied.
10. An apparatus according to claim 9, wherein the at least one memory including the computer program code is further configured to, with the at least one processor, cause the apparatus to:
- determine a class name of a criteria context implementation based on a table name relating to the selected policy; and
- identify one or more table column records for one or more fields specified in the criteria context implementation, wherein the one or more table column records are usable for generating the plurality of fields.
11. An apparatus according to claim 10, wherein the at least one memory including the computer program code is further configured to, with the at least one processor, cause the apparatus to:
- generate a criteria field selection tree having the plurality of fields for the one or more table column records.
12. An apparatus according to claim 9, wherein the at least one memory including the computer program code is further configured to, with the at least one processor, cause the apparatus to:
- generate a criterion builder, wherein the criterion builder comprises the plurality of fields and at least one selectable operation; and
- receive the operation selection and the specified value.
13. An apparatus according to claim 9, wherein the at least one memory including the computer program code is further configured to, with the at least one processor, cause the apparatus to:
- cause display of the plurality of fields;
- receive an indication of a selected field of the plurality of fields; and
- receive an indication of an operation selection and a specified value related to the selected field.
14. An apparatus according to claim 9, wherein the at least one memory including the computer program code is further configured to, with the at least one processor, cause the apparatus to:
- display the criterion with one or more previously generated criterion;
- receive an indication of a grouping of at least two criterion from the criterion and the one or more previously generated criterion; and
- modify the criteria based on the indication.
15. An apparatus according to claim 14, wherein grouping of the at least two criterion comprises joining at least two criterion with a logical operator.
16. An apparatus according to claim 9, wherein the at least one memory including the computer program code is further configured to, with the at least one processor, cause the apparatus to:
- receive an indication of criteria to be evaluated;
- receive data from the software program related to the criteria to be evaluated; and
- determine whether the criteria is to be applied.
17. A computer program product comprising:
- at least one computer readable non-transitory memory medium having program code instructions stored thereon, the program code instructions which when executed by an apparatus cause the apparatus at least to: receive an indication of a selected policy of one or more policies defined by a software program; generate a plurality of fields that are applicable to a criteria for a selected policy in response to receiving the indication of the selected policy, wherein the criteria comprises one or more criterion that define instances in which the selected policy is to be activated by the software program; and enable a user to build a criterion that modifies the criteria for the selected policy, wherein the criterion is generated based on an indication of at least one selected field of the plurality of fields and an indication of an operation selection and a specified value associated with each selected field, wherein the software program is configured to use the criteria to determine an instance in which the selected policy is to be applied.
18. A computer program product according to claim 17, wherein the program code instructions are further configured to, when executed by the apparatus, cause the apparatus at least to:
- generate a criterion builder, wherein the criterion builder comprises the plurality of fields and at least one selectable operation; and
- receive the operation selection and the specified value.
19. A computer program product according to claim 17, wherein the program code instructions are further configured to, when executed by the apparatus, cause the apparatus at least to:
- display the criterion with one or more previously generated criterion;
- receive an indication of a grouping of at least two criterion from the criterion and the one or more previously generated criterion; and
- modify the criteria based on the indication.
20. A computer program product according to claim 17, wherein the program code instructions are further configured to, when executed by the apparatus, cause the apparatus at least to:
- receive an indication of criteria to be evaluated;
- receive data from the software program related to the criteria to be evaluated; and
- determine whether the criteria is to be applied.
Type: Application
Filed: Jan 31, 2013
Publication Date: Jul 31, 2014
Applicant: MCKESSON FINANCIAL HOLDINGS (Hamilton)
Inventors: Nataraja Thuppanna (Morrisville, NC), Ismael Cruz (Durham, NC), Debora Sinclair (Durham, NC)
Application Number: 13/755,659