Tables - Kuali Wiki

1
Kuali Rice
System Requirements Specification
Business Rules
Module - <Module Name>
Abstract:
Author(s):
Contributor(s):
Current Owner:
Revision:
Version 1.0
Create Date:
5/6/2008 3:42:00 PM
Last Save Date:
5/5/2008 9:53:00 pm by KHensley
© Kuali Foundation 2008
Contents
CONTENTS .........................................................................................................................................................2
TABLES ...............................................................................................................................................................3
FIGURES ............................................................................................................................................................3
1. INTRODUCTION ...........................................................................................................................................4
1.1.
Purpose ................................................................................................................................................... 4
1.2.
Review ..................................................................................................................................................... 4
1.3.
Document Revision History ......................................................................................................... 4
1.4.
References ............................................................................................................................................ 4
1.5.
Terms and Definitions .................................................................................................................... 5
2. BUSINESS REQUIREMENTS AND OBJECTIVES.....................................................................................7
3. BUSINESS RULES ................................................................................. ERROR! BOOKMARK NOT DEFINED.
4. USER REQUIREMENTS ...............................................................................................................................7
4.1.
Narrative – User Story ................................................................................................................... 7
4.2.
Important Concepts and Background ................................................................................... 8
4.3.
User Classes and Roles .................................................................................................................. 8
4.4.
User Requirements .......................................................................................................................... 8
4.5.
Index to Use Cases .......................................................................................................................... 9
4.6.
Use Cases............................................................................................................................................. 11
5. FUNCTIONAL REQUIREMENTS ...............................................................................................................15
6. DATA DICTIONARY ..................................................................................................................................23
6.1.
Data Dictionary Items .................................................................................................................. 27
6.2.
Grouping and Sort Order ............................................................................................................ 30
7. USER INTERFACE DESIGN ......................................................................................................................31
7.1.
User Interface Workflow .................................................................Error! Bookmark not defined.
7.1.1. Tab Order of Fields ......................................................................Error! Bookmark not defined.
7.2.
Design Requirements ................................................................................................................... 31
7.3.
User Interface Mock-up .............................................................................................................. 31
8. USER DOCUMENTATION NOTES ............................................................................................................31
9. DIFFERENCES FROM COEUS...................................................................................................................31
10. DESIGN AND IMPLEMENTATION NOTES ........................................................................................31
10.1. Constraints and Issues ................................................................................................................ 32
10.2. Other Technical ................................................................................................................................ 32
11. APPENDIX ..............................................................................................................................................32
11.1. Document Change Log ................................................................................................................. 32
11.1.1. [Date] ............................................................................................................................................ 32
11.2. Issues List ........................................................................................................................................... 32
11.2.1. Open/In Progress ...................................................................................................................... 32
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 2 of 38
11.2.2. Resolved ....................................................................................................................................... 34
11.3. Document Parts ............................................................................................................................... 36
11.3.1. Standard Document Table ..................................................................................................... 36
11.3.2. Use Case Template ................................................................................................................... 36
11.3.3. Requirements Table ................................................................................................................. 37
11.3.4. Issue Template .......................................................................................................................... 37
11.3.5. Callouts ......................................................................................................................................... 38
Tables
Table 2 Document Reviewers .........................................................................................................4
Table 3 Document Revision History .............................................................................................4
Table 4 Relevant Documents ..........................................................................................................4
Table 5 Terms and Definitions .......................................................................................................5
Table 6 User Roles and Classes .....................................................................................................8
Table 7 KRA Locking Requirements ...........................................................................................15
Table 9 Issues and questions ....................................................... Error! Bookmark not defined.
Figures
No table of figures entries found.
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 3 of 38
1.
Introduction
1.1. Purpose
1.2. Review
The following people have read and agreed to the contents of this document
Table 1 Document Reviewers
Name, Title (or Role)
Organization
Signoff, Date
<name>, Lead SME, on behalf of SME
<name>, Lead Business Analyst
<name>, Development Manager
<name>, QA Manager
1.3. Document Revision History
The following table lists major revisions of this document following table. Please see the Document Change Log
on page 32 for a detailed list of changes.
Table 2 Document Revision History
Document
Version
Revision Name - Description
1.0
First Draft - LBA Review
1.0
Second Draft – SME Review
1.0
Final –
Revision Date
Author(s)
1.4. References
Documents that have information relating to the information discussed in this document.
Table 3 Relevant Documents
Document Title
Description
Location
Defining Business Rules –
What are they Really?
Systems analysts have long been able to describe enterprises in
terms of the structure of the data those enterprises use and the
organization of the functions they perform, but have tended to
neglect the constraints under which the enterprise operates.
Frequently these are not articulated until it is time to convert
them into program code. While rules which are represented by
the structure and functions of an enterprise have been
documented to a degree, others have not been articulated as
well, if at all.
The GUIDE Business Rules Project was organized in
November 1993 to carry out that articulation. This paper, the
original report of the GUIDE Business Rules Project (now the
Business Rules Group), describes a scheme for understanding
the nature of business rules and the categories into which they
fall. It presents a formal approach for identifying and
articulating the rules that define the structure and control the
operation of an enterprise.
http://www.businessrulesgroup.org/
first_paper/br01c0.htm
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 4 of 38
1.5. Terms and Definitions
The following table lists and defines the terminology used in this document. It is organized to read in an
approximately logical order.
Table 4 Terms and Definitions
Term
Definition
Kuali Rules
Management System
(KRMS)
A module for creating and managing business rules built into Kuali Foundations Rice
middleware.
(In speech, KRMS has come to be referred to as “crumbs”)
context
The area of business where a rule applies and where the terms used to create the rule are
defined and relevant. Rules only make sense in a particular Business Domain and when
evaluated against the information in that domain. For example, rules that are specifically
authored and that are meaningful in application on a Research Proposal would be most
unlikely to make sense or be relevant in the context of a Student Record.
context qualifier
One or more criteria defined by an application that is using KRMS to refine the context
for agenda and rules. For instance, a rule and agenda may only be valid for a particular
unit in the organizational hierarchy.
rule
A rule is a construct to evaluates when a particular condition or state exists and then
optionally execute an action to be taken
From the information systems perspective a rule is a construct used to enforce or help
with enforcement of a business policy. It describes and enforces a constraint, behavior, or
structure for some aspect of the business.
From the business perspective, a rule is guidance that there is an obligation concerning
conduct, action, practice, or procedure within a particular activity or sphere or area of the
business. Two important characteristics of a business rule are:

There ought to be an explicit motivation for it.

It should have an enforcement regime stating what the consequences would be
if the rule were broken.
condition
The part of a rule, made of up of one or more propositions (also called comparison
statements) that evaluates the information to determine if a specific state or condition
exists. Multiple propositions can be combined using the logical operators AND and OR. .
If the condition exists the, the condition evaluates to “True” and if the condition does not
exist it evaluates to “False.”
decision
The result returned by a rule after its condition is evaluated by being applied to a set of
facts. The condition off the rule is evaluated through logical execution of the propositions
and the result returned as a “True” or a “False.”
action
One or more procedure(s) executed if the condition of a rule returns a positive result (a
Boolean TRUE).
proposition
A proposition compares two values and “supposes” it to be true. Propositions consist of
two operands and one of the comparison operators. Each proposition returns a Boolean
(True or False) as the result. For instance: X > Y is True only when the actual value for
X is greater than the actual value for Y. The True or False result of a proposition can be
combined with the result of another proposition using one of the Boolean logical
operators AND and OR. Propositions are for a rule are collectively called a condition.
term
A defined item of business information that evaluates to a specific value called a fact For
example: Student’s First Name, Proposal Total Cost, Student Transcript, Protocol ID - are
all business terms or information that are valid in their relevant contexts. Terms are
inserted as operands in propositions.
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 5 of 38
comparison operator
One of several symbols representing how two values will be compared with each other: =
(equal to), > (greater than) , < (less than), >= (greater than or equal to), <= (less than or
equal to).
logical operator
An AND or OR function in Boolean algebra that determines how each of the TRUE or
FALSE results from two propositions are combined to evaluate to a final Boolean result.
custom term
A custom function that evaluates to any value type except a Boolean True or False.
Custom terms can be used to perform complex logic not possible in the simple proposition
format provided by KRMS and are specified as an operand in a proposition.
custom propositions
A custom function that encapsulates complex logic that cannot be easily expressed in
simple Boolean expressions and that stands alone as a proposition. Custom functions may
be have parameters and accept arguments from the terms defined in its Context. The name
of custom propositions generally imply a Boolean answer, for example: IsNASAProposal
, ProposalNarrativesExist, ProposalHasBudgetMarkedFinal.
operand
One of two expressions that are compared to each other as specified by one of the
comparison operators.
order of evaluation
The order in which pairs of logically combined propositions (using AND and OR) are
organized in nested groups such that they are evaluated beginning with the inner-most
group first.
agenda
A plan of execution for a set of rules. An agenda specifies both ordered and conditional
execution for rules. Rules are run conditionally based on the Boolean return result of a
previous rule.
event
Some defined and detectable “happening.’ An event can be used to start the processing of
an agenda which then causes the rules in the agenda to be evaluated and any actions run
depending on the decision result returned by the rules. Events serve as the “trigger” for
rule processing.
variable operand
An expression such in the form of a term or custom term (a function that returns a nonBoolean value) that is specified as an operand in a proposition and is evaluated to an
actual value from the relevant data record at the time the proposition is evaluated.
constant operand
An unchanging value that is specified as one of the operands in a proposition .
expression
A symbolic representation of an operation such as one or more logically evaluated
propositions.
maps
A construct in Coeus that defines a set of sequential stops for approval workflow with the
capability to have multiple responsible approvers at each stop.
“Request chain” has been suggested for the Rice Equivalent. Other suggestions?
Simple Approval Workflow Definjition (SAWD).
notification
An action that can be specified as part of a rule definition that sends out a pre-defined
communication.
validations
An action which can be specified in a rule that validates the content in a document.
meta rule
In Coeus, a Meta Rule defines the order of execution for a rule. For KRMS this has been
renamed agenda.
comparison
statement
See proposition.
organizational unit
(OU)
Defines a part of an organizational structure and is usually arranged hierarchically.
unit hierarchy
In Coeus and Kuali Coeus, the structure that defines the organizational hierarchy.
Business rules can be defines at the department level.
fact
When a proposition is evaluated with actual data, the Proposition with its True or False
result is called a fact. For instance, the proposition FirstName = “Bill” is a proposition
that asserts that the First Name of an actual person is the name Bill. The evaluation of
“Marge” = “Bill” is False
function
A pre-defined, custom procedure for evaluating data that returns a value that can be
selected for us in a proposition. There are two categories of function based on their return
type: custom propositions which return the a Boolean value and custom Terms which
return are used as an operand
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 6 of 38
variable
A representation of a data item that is replaced with an actual value when evaluating a
proposition.
active rule
A rule that operation because it is associated with a published agenda (an agenda that is
associated with at least one event so that when that event “happens” the rules in the
agenda are evaluated and actions are run for the rules that return true).
term group
A collection of terms that make sense to group logically together.
standard operations
The set of operations and their associated behavior for items in the system such as Save
and Delete.
2.
Business Requirements and Objectives
3.
User Requirements
3.1. Narrative – User Story
There are many rules that have to be followed in business systems. In Higher Education in the area of Research
Administration, to take an example, it must ensure that documents such as Proposals, Awards and Protocols are
managed properly. For example, “Proposals over $250,000 require the Dean’s review.” There are a number of
observations about rules that are important:

These rules are not static. They may change when regulations or institutional policy change are due to a reorganization.

Rules are different based on the department or unit. Units have needs that are particular to how they operate
and consequently they have their own rules.

Rules can be used and re-used to make decisions involving several different tasks. For instance, it may be
used to make a workflow decision or it might also be used in validations.
3.1.1.
Routing Rules: Approval of Development Proposals
After an investigator has approved a development proposal, it must be routed for internal approvals before
submission to the sponsor. Generally the central office that manages sponsored research (OSP – Office of
Sponsored Research) communicates with campus administration in the approving units such as a Dean’s
office or the Vice President for Research’s (VPR) office as well as individual Departments, Labs, and
Centers, to establish each office’s approval criteria. The information conveyed regarding which proposals
should be reviewed at that office and by whom, are then added to logical statements that evaluate business
data. These logical statements are combined into business rules. An example of the types of information that
are included in the
Who: Principal Investigator (PI) and Co-Investigators (Co-Is)
Where: Units maintained for the PI and Co-Is
What:
1) Proposal type (e.g., Fellowship or Instruction)
2) Sponsors
3) Answers to Questions such as:
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 7 of 38
a)
b)
c)
d)
e)
Are special reviews required?
Is Cost Sharing incurred?
Is Under-recovery incurred
Was a Funding amount proposed?
Other specialized functions to meet campus needs
When managing approvals, an administrator often has to deal with the following items:
1. Having to ad-hoc add additional people to the approval route, for instance because a resource that has
been added that belongs to a different department or the use of a restricted material.
2. Questions often arise concerning what happened during approval routing, and so the routing history
needs be maintained with the proposal.
3. Also, the administrator must manage and track with the proposal documents related to approval that
are added during the approval process.
3.1.2.
Other Business Rules functionality: Validations
Proposals often have to be checked for data that is required for certain submissions, but may also be specific
to the institution. Remembering to do this requires checklist and awareness on the part of Administrators as
they proof a proposal prior to submission. These checks are a significant help the process by preventing
Grants.gov sponsor errors or warnings that will reject the submission. Having an automated way to ensure
these rules are applied would increase quality of submissions and ensure that, whatever the knowledge of the
administrator concerning the requirements for a particular sponsor and/or submission, that the proposal has
been validated.
3.2. Important Concepts and Background
3.3. User Classes and Roles
The following table lists the groups of people that are expected interact with the system.
Table 5 User Roles and Classes
User Class
Role
Description: the group and how they are expected to use the system.
System Administrator
3.4. User Requirements
Table 6 User Requirements
#
1
ID(s)
User Requirement
UR-1
1) Business Rules: The user must have the ability to create and define one or more logical
statements that evaluate whether a specific state or conditions exists in business data and
then can execute some action based on the outcome.
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Scope
Page 8 of 38
#
Scope
ID(s)
User Requirement
2
UR-2
2) Data For Use in Business Rules: The user must be able to define which data will be
valid for use in the propositions of a business rule. This will include the capability to
reference a complex function in a proposition, that could be authored with the appropriate
programmer-level technical skill.
3
UR-3
3) Business Rules Actions: The user must be able associate the result or outcome of a rule,
the decision, with an action such that the action is carried out if the decision is positive.
In particular, the user must be able to execute the following actions:
a) Workflow: Initiate an automated approval workflow,
b) Validation: Activate a data validation that either serves to warn the user or require
valid data in order to continue.
c) Notification: Execute a pre-configured notification, such as an email.
d) Custom Action: Provide a development and publishing mechanism for actions such
that a user may request custom actions to be created and published for their use. An
example of this would be an action that includes a Questionnaire on a document.
An “Include Questionnaire” action is functionality specific to KC and is required for
functional equivalence with Coeus, but would not be included in Rice. However, as stated
above, a mechanism for the KC team to create the custom action is necessary.
4
5
4) Permissions: Creating, modifying and activating rules must be controlled by permissions.
UR-5
5) Context and Constraints for Rules: The author of a rule should be able to define the
context for a rule. The context is the logical data area where that rule applies. For
instance, authors must be able to define rules on a per unit basis so that they are specific
to a particular unit.
6
6) Execution: The user must be able to specify which rules are active, the order in which
they will be executed and be able to conditionally run the rules based on the result of a
previous result. .
7
7) Error Management: The user must be informed when rules fail to execute and why the
failed to execute in such manner
8
UR-6
8) Versioning of Rules: The user shall be able to see when a new version of a rule has been
created and be able to control when the new version of the rule is placed in service.
Not in Coeus
Out of Scope
9
UR-7
9) Approval of Rules: The user must have the option to be able to define an approval
process for rules if desire
Not in Coeus
3.5. Index to Use Cases
The following table lists the use cases
Use
Case
ID
Use Case Name
Use Case Description
Term Groups
1)
Create a Term Group
a.
Modify a Term Group
b.
Delete a Term Group
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
A group name is created that describes a logical collection of terms.
Page 9 of 38
Terms
1)
Create a Term
a.
Define term with source as single value
b.
Define term with source as multiple
value list
c.
Define single value term
Terms (something that can stand for an item of data
Custom Functions
A list of available actions must be created and defined in the system
before they can be used in a rule. There will be some default actions
provided by the middleware. An application administrator must be
able to add actions to the list of available actions.
Actions
1)
Add New Action
a.
Modify an Action
b.
Delete an Action
c.
Create an Action
Namespace View
2)
Create a New Namespace
a.
Find a Namespace
Search for and find a namespace
b.
Modify a Namespace
A Namespace is retrieved and modified by changing its attributes or
the terms and term groups that have been added.
c.
Delete a Namespace
A Namespace is deleted
d.
Add a Term
e.
Add a Custom Function
f.
Add a Term Group
Business rules are created from propositions that are active for a
particular namespace.
Business Rule
3)
Create New Business Rule (BR)
a.
Modify BR
b.
Delete BR
c.
Copy a BR
d.
Inactivate a BR
Condition: Proposition Editor
4)
A Namespace is defined that serves as a container for holding terms
organized in groups that will be used as operands in propositions.
This is a maintenance function that must be completed before rules
can be used.
The data is queried using propositions to determine if a certain
condition exists.
Edit a Condition
a.
Add a Proposition
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 10 of 38
b.
Modify a Proposition
c.
Delete a Proposition
d.
Add a Logical Operator
e.
Modify a Logical Operator
f.
Delete a Logical Operator
g.
Create a Group
h.
Remove a Group
i.
Move a Group
An Agenda is created to determine which rules will executed and in
what order. Agendas can be included in other agendas.
Agenda
5)
4.
Create an Agenda
a.
Modify an Agenda
b.
Delete an Agenda
c.
Add a Rule to An Agenda
d.
Delete a Rule from An Agenda
e.
Insert An Agenda as a Sub-Agenda
Use Cases
Table 7 Use Case Sample
1
Use Case ID:
2
Use Case Name
3
Priority:
4
Actor(s):
5
Description:
6
Precondition(s):
PR1
7
Normal Course:
N
1)
8
Alternative Course(s):
A1
2)
9
A2
3)
10
A3
<Alternate Course Name>
1)
2)
11
A?
Delete BR (rule in use)
1) System determines that the business rule is in use
2) System restarts the business
12
Exceptions:
13
Post-conditions:
14
E1
PO1
PO2
15
Special Requirements:
16
Assumptions:
17
Notes and Issues:
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
SR1

Page 11 of 38
4.1. Business Rule – High Level
18
Use Case ID:
19
Use Case Name
20
Priority:
21
Actor(s):
Business Rule Process High Level
Application Administrator (application using KRMS), Rule Author
22
Description:
23
Precondition(s):
PR1
This use case describes the basic steps that are required to use KRMS in an application.
24
Normal Course:
N
25
Alternative Course(s):
1)
Configuration Environment: Using the configuration environment, an Application
Developer defines the following items that will be later used by a Rule Author to
create rules:
a. Context: Creates the one or more Contexts that define functional areas of
the consuming application where the rules will be used.
b. For each Context the user must at least one of each the following
i. Terms – the business information that will be using in
identifying a particular condition exists in the data. Terms are
used as operands in propositions. Terms can be collected
together. logically as needed using Term Groups. Custom,
complex term can also be created and published using a
function.
ii. Custom Propositions: A proposition can be custom
programmed and published in the context.
iii. Actions – Each context has valid Actions that are specified for a
rule. The action is taken on a positive result developed from the
rule. An Application using KRMS must define the actions it
wants to provide. Some default actions will be provided by Rice
including a validation, sending a notification and starting a
simple workflow definition.
iv. Events – Events are defined for the application and are what
trigger the running of an Agenda.
2) The KRMS system is now configured for use by the Rules Authoring Environment
which will reference everything defined in that Context when creating Rules and
adding them to Agenda.
3) The Rule Author navigates to the Rule Authoring Environment and opens the
Rules Editor.
4) KRMS displays the UI for editing Rules
5) The Rules Author creates one or more rules by creating a proposition and specifying
an action to execute if the rule returns True.
6) The Rules Author opens the Rule Agenda
7) KRMS displays the editor for authoring Agenda.
8) The Rule Author adds rules to the agenda specifying:
a.
the order in which a rule should be run and/or
b. whether the rule should be run conditionally based on the result of a
previous rule.
c. They also specify the Event that will trigger the agenda to be evaluated.
9) The Application fires an event.
10) In response to the event, KRMS:
a. detects the event
b. finds the agenda associated with the event
c. evaluates the rules in the agenda
d. executes any actions from the agenda
A1
26
A2
3)
27
A3
<Alternate Course Name>
4)
5)
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 12 of 38
28
A?
29
Exceptions:
30
Post-conditions:
31
Delete BR (rule in use)
6) System determines that the business rule is in use
7) System restarts the business
E1
PO1
PO2
32
Special Requirements:
33
Assumptions:
34
Notes and Issues:
SR1

4.2. Business Rule
Table 8 Use Case Sample
35
Use Case ID:
36
Use Case Name
37
Priority:
38
Actor(s):
39
Description:
Create a Business Rule (BR)
Application Administrator, Business Unit Administrator
The user creates a new Business Rule using the business rules editor
40
Precondition(s):
PR1
41
Normal Course:
N
Create a New Routing Business Rule
8) Search/Lookup: User navigates to search facility for or more business rules
9) System displays search facility with appropriate criteria [Lookup Req]
10) Search Criteria: User enters search criteria and
11) User navigates to the Business Rules editor
12) System displays the Business Rules editor and presents the following actions for
business rules (BR): Create, Modify, Delete
13) User selects a Unit from the Unit Hierarchy where they wish create the rule.
14) System displays the Unit Name so that it can be seen for the duration of the edit
15) User edits the setup information for creating a rule as follows
a. Selects the default value for Rule Type which is “Routing”
16) User executes the “Create Business Rule” action [A1-Modify BR; A2-Delete BR]
17) User fills in the following information about the Business Rule:
a. Selects the Type from list of valid types (Notification, Questionnaire,
Routing, Validation)
b. Selects the Module where the rule will applied
c. Selects the Sub-module the rule will be applied
18) User fills in the following information about the Business Rule
19)
42
Alternative Course(s):
A1
Modify BR
1) User executes the “Modify Business Rule” action
2)
43
A2
Delete BR (rule not in use)
1) User executes the delete business rule action
2) System confirms that the business rule is not in use [A?]
3) System displays message asking the user to confirm the deletion
4) User confirms deletion
5) System deletes the business rule
44
A3
<Alternate Course Name>
6)
7)
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 13 of 38
45
A?
46
Exceptions:
47
Post-conditions:
48
Delete BR (rule in use)
8) System determines that the business rule is in use
9) System restarts the business
E1
PO1
PO2
49
Special Requirements:
50
Assumptions:
51
Notes and Issues:
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
SR1

What happens if you delete a unit that is already in use
Page 14 of 38
5.
Functional Requirements
Note: Only key data
Table 9 Functional Requirements
#
1
2
Trace
Requirements
Scope
1) Standard Operations: The behavior of the following operations, as follows:
a)
Inactivate: Unless otherwise specified, items (for example Terms and Rules that
require an inactivate operation shall use the date range defined by the Active and
Inactive dates to determine if an item is active or inactive, as follows:
Not in Coeus
The use of Active/Inactive dating as a way is the standard method in Rice used to
inactivate an item in the system.
3
i)
Active Items: An active item is one where the start date of the range is older than
the end date of the range and the end date is either not specified or it is the same or
later than the current date.
The effect of this
4
ii) Inactive Items: An item is treated as inactive if
(1) the start date of the range is latter than the current date OR
(2) the start date of the range is earlier or equal to the current date and the end date
of the range is earlier than the current date.
5
iii) Effect on Existing Dependent Items: When an item is inactivated, it shall have no
effect on the existing items that currently depend on the item such that the
dependency must be specifically removed from the definition of that item.
For example, if a term is inactivated, it will not affect existing rules and
propositions that depend on that term immediately. A Rule Author must edit the rule
and remove the dependency on that term render it inactive.
Need to validate this behavior
6
iv) Effect on Creating New Items: When an item is inactivated it shall no longer be
made available in the list of items needed for the creation of dependent items.
For example, if a term is inactivated, it must no longer be available for when
creating the condition in new rules.
7
b) Delete:
8
i)
9
ii) Delete Permission: A Rule Author must have the delete permission in or der to
delete a role.
See table for default Roles and Permissions at the end of the functional
requirements.
10
iii) Delete Validation: The system shall prevent the deletion of any rule that is
currently active and in use on an agenda (see e.
Dependency Check
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 15 of 38
#
Trace
Requirements
11
Scope
iv) Delete Confirmation: The system shall provide a message that asks the user to
confirm deletion.
Need full list of system messages
12
13
14
2) CONTEXT
In Coeus, the idea of Context was not explicitly defined but the equivalent was effected by
Module, Sub-Module and Type (type being the same as a KRMS “Action”). In KC, this list
of criteria will be dynamic and would likely include the type of Document.
15
a)
Context: The system shall provide a means to collect together items valid for a
particular business area including terms, custom functions (custom terms and custom
terms) events, actions, rules and agenda.
Another way of saying this is that Context is the set of all items
16
b) At Least One Context: The Application Developer must create at least one and may
create multiple contexts for use in the consuming application.
17
c)
Default Context: The KRMS system shall define a default context for the KRMS
system that defines the default, terms and other functions that may be used in the
creation of rules.
Validate: Based on a comment by KS on the need to reflect on data in the system (?).
Should we provide this?
18
d) Context Attributes (see Table 11 Entity Data for full list)
19
i)
20
ii) Context Criteria: A list of criteria that define the context.
Standard Attributes: Context shall be described and defined by the following
attributes: Name, Description, Context Criteria (see table)
In practical terms, in Rice, a Document Type will determine the primary boundary
of a context is the Document (or Document Type).
21
22
23
iii) Lists of valid items for creating rules and agenda: A context shall maintain lists
of the following items that define what are valid for use in creating Rules and
Agenda in the context:
(1) Terms
(2) Actions
(3) Events
(4) Custom Terms
(5) Custom Propositions
e)
Effect and Behavior of Context: Contexts have the following effect and use in the
system:
i)
All KRMS Entities Have a Context: When Terms, Custom Terms, Custom
Propositions, Events, Actions, Rules and Agenda are created they must be assigned
to a context.
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 16 of 38
#
Trace
Requirements
Scope
24
ii) Lists are filtered by Context: When displaying lists of terms, events, actions,
custom functions and custom terms to the Rule Author while creating Agenda or
Rules, only entities defined within the same context assigned to the Agenda must be
displayed in the list (in other words, lists are restricted and filtered by the context
that is defined for the Rule and the Agenda that is being worked on).
25
iii) Searching and Lookup: When searching for rules, agenda and various other items
that are defined for a particular Context, the Context Name or ID may be specified
as search criteria.
26
iv) Default Search Criteria: When working within a context, that context shall be
included in the default search criteria.
27
3) TERMS
A term is the definition for any piece of information that a user may need to evaluate in a
rule. The collection of data that is valid “makes sense” in a Namespace
28
a)
29
Terms: The system shall provide a mechanism to define and publish a list of data items
that are valid in the context for authoring the proposition in a rule.
i)
Term Attributes: A Term shall be defined and described by the following
attributes Name, Description, Data Type, Valid Value List, Context(s) ( see Table
11 Entity Data for full list)
a.
ii) Term Operations: The system shall provide the following list of operations that
act on a Term: Create New, Edit, Copy, Delete, Inactivate (see Table 10 Entity
Operations for a list of standard operations)
b.
iii) Delete: An operation that allows an existing Term to be removed from the system
under the following conditions:
c.
(1) Not in use in a proposition: A term may only be deleted from the context
when it is no longer used in any proposition in that Context.
d.
(2) Determining Use: They system shall provide a mechanism for a Rule Author
to see a list Rules where a Term is used.
Not in Coeus
In or out of scope?
30
4) ACTION
Different From
Coeus
Actions are how a rule is “enforced.” When a rule returns a positive (Boolean True) result, the
action that is defined for that rule is executed. In Coeus, actions are not implied by the “type” of
the rule you define – you define a rule as a “Notification Rule” for instance. “Send
Notifications” is the implied action.
31
Actions: They system shall provide a mechanism to define and manage a list of actions for the
specification as part of the rule definition.
32
5) Action Data: The system shall include the following data for Action: Name
33
i)
34
ii) Description: A text value for providing additional information about an action.
35
iii) Context: The Context or Contexts (see above) to which this Term belongs.
Name: A text value that identifies an action.
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 17 of 38
#
Trace
Requirements
36
iv) Action Parameter(s): The system shall provide a mechanism to define zero or
more parameters that can pass information from the current context to the action
before it executes :
Scope
Not in Coeus
This is not in Coeus, but was considered necessary to allow an action to operate
generically enough for most applications.
(1) Action ParameterAttributes: An action’s parameter(s), if provided, shall be
describe by the following attribute: Name, Description, Data Type, Default
Value (see Table 11 Entity Data for a complete list)
37
38
b) Action Operations: The system shall provide the following list of operations for
working with on an Action: Create New, Edit, Copy, Delete (see Table 4 Terms and
DefinitionsTable 10 Entity Operations for a complete list)
39
c)
40
Action Execution: If the condition specified and defined for the rule returns the value
True, they system shall initiate a process to perform the Action associated with the rule.
i)
Standard Actions: They rules system shall provide the following standard actions
that may be selected for a rule:
41
(1) No Operation: An action that essentially does nothing, the “no operation”
action when it is selected initiates no procedures and no steps are taken even if
the rule’s condition evaluates to “True”.
42
(2) Execute Workflow: Select a Sequential Workflow Definition based on the
rules and execute
43
(3) Send Notfication(s): A predefined action system that shall initiate a process to
send notifications that are defined and valid for the context.
44
(4) Validate Document: They system shall prevent a document from being
submitted if the condition for the rule returns the value “False.”
45
6) EVENTS:
The system shall provide a mechanism to define and identify what steps in a process shall
intiate (trigger) the evaluation of rules.
Not Explicitly in
Coeus
Events are not explicitly defined in Coeus, but of course they exist as a concept. For instance
when a Proposal is submitted for approval this is the event that triggers the selection and
execution of a workflow. In KRMS we have made this explicit and some additional
functionality has been added.
46
a)
47
b) Event Operations: The system shall provide one
48
c)
49
d) Default Events: The KRMS shall provide the following standard events
i) Document Close Action Executed
Event Details: Attributes shall be shall be provided to define and describe an Event
including the following: Name, Description, Context (see Table 11 Entity Data for a
complete list)
Events: Event shall be defined by the each software application implementing the
KRMS system
50
ii) Document Submitted
51
iii) Others (?)
What are the other default events that need to be provided with in KRMS?
52
e)
Events and Context: Events may be associated with more than one context.
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 18 of 38
#
Trace
Requirements
53
f)
54
g) List of Agenda: The system shall maintain and be able to display a list of agenda that
are associated with each event.
55
h)
56
Scope
Events and Agenda: An event may be associated with exactly one agenda.
7) RULES: They system shall provide functionality to create and manage one or more rules.
This section discusses requirements for the structure and management of rules, particularly
the three main parts of rules: action, condition and action.
57
58
59
a)
Rule Operations: The system shall include the following operations that act on
business rules: Create New, Edit, Inactivate, Delete. (see Table 10 Entity Operations for
a complete list and the requirements for Standard Operations )
8) Rule Structure: A rule definition shall be constructed of three parts: Descriptive Details, the
Condition and the Action. These are as follows:
a)
Attributes: A rule shall include the following information, Name
60
i)
61
ii) Description: A text value that optionally provided extended descriptive
information.
62
iii) Version: The version number of the rule (see requirements for versioning of rules)
Name: A mandatory text value that identifies the rule.
Not In Coeus
Coeus does not version rules but this may be something that we consider in Rice.
Modifying rules that are in service directly could have a large impact on the
modification of the rules.
63
b) Condition: The system shall provide mechanism for the creation and management of
an expression that evaluates data in a namespace. (see Heading for Conditions &
Propositions below).
Example: To evaluate whether a person is a Key Person, the Key Personnel list must
queried. The rule author must create a statement that can establish that a person is a
member of the Key Personnel list. That statement can be stated in natural language as:
Execute a custom function that accepts a Person ID as a parameter, checks all IDs
assigned to the Key Personnel list on a proposal, and returns true if that list
64
c)
Action: The system shall provide a mechanism for associating an action with a rule such
that when the result of the evaluation of the Conditions defined for a rule results in a
Boolean value of TRUE, the action is executed.
Not in Coeus
An action might also be called the “Enforcement,” or “Consequence,” of that rule. In
Coeus, the “Type” of the rule, indicated what Routing, Validation, Notification or
Include Questionnaire. Actions should be stated as a active verb.
65
i)
Standard Actions: They system shall provide the following actions as standard
These actions are listed here because they likely belong in the middleware (Rice)
since they interact with core functionality provided by Rice. The behavior of the
rules has yet to be determined. Requirements require further discussion.
66
(1) Notify: The positive evaluation of the rule shall cause any defined notifications
to be sent.
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 19 of 38
#
Trace
Requirements
Scope
67
(2) Validate: When the rule returns a negative result in a validation procedures is
applied to the to the data context.
68
(3) Select & Execute Approval Workflow: The rule(s) shall select and execute an
approval workflow (map)
69
ii) Actions: They system shall provide a mechanism for Rule Author to select valid
rules that are associated with
70
Not in Coeus
(1) Custom Action Parameters:
Presumably a rule needs to pass the context to an action? Anything else?
71
72
(2) Return Value:
d) Versions: The system shall track the changes made to a rule such that: ???
73
i)
74
75
Changes Create Versions: If change is made to any aspect of a rule, a new version
of the rule is created.
Need to complete
9) Results of Evaluation: When a rule is evaluated (or executed) the system shall track the
result for the following scenarios:
There are multiple questions here: What happens if a rule fails in one way or another.
76
a)
77
b) Rules: Rules may include other rules ??? more a Rule Set
78
c)
79
Not In Coeus
Result of Successful Rule Evaluation: If condition statement for a rule returns the
value TRUE and also the action executes successfully, then the rule shall return the
Boolean result of TRUE
Rules: If some aspect of a rule
10) Modifying a Rules: That are In Use: When an active rule is modified, the system shall
documents that have a dependency on that rule as follows:
80
How do we want this to work?
81
CONDITION & PROPOSITIONS
This section defines requirements for a “Condition Editor” that allows the user to define what
must true( the condition) in the data domain in order for the rule to execute its action.
82
11) Propositions: The system shall provide a mechanism for creating and editing comparison
statements that compare terms (data) defined in the namespace to a specific value for that
item.
Example: ([AGE] >= 18 AND SPONSOR_CODE=”NIH”) OR [NAME]=”Charles”
83
a)
Structure: A proposition shall consist of the following:
84
i)
85
ii) Logical Operators: Optionally, multiple comparison statements may be joined by
either of the binary logical operators, AND or OR.
86
iii) Order of Evaluation: Propositions may be to indicate the order in which the
Boolean logical expressions should be evaluated.
Comparison Statement(s): One or more propositions that compare two values
using a comparison operator, for example: =, <, >, <=, >=, ≠ (see table ?? for all
operators)
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 20 of 38
Trace
#
Requirements
87
b) Default Order of Evaluation: The logical AND operator shall be evaluated before the
logical OR operator.
88
c)
Scope
Operands: When authoring an expression the operands may be defined as any one of
the following:
In Coeus, the left hand operand of a comparison statement is the variable value (such as
a column name from a database). The right hand operand is the literal or constant
value.
89
(1) Literals: Any numbers or text typed in.
90
(2) Data Item Name: A data item name from taken from the data context.
91
(3) Function: A pre-defined function that returns a
92
ii) Comparison Operators:
93
iii) Logical Operators:
94
iv) Fixed-Value (right-hand) Operand:
95
d) Structure of Conditional Statements:
96
12) Custom Functions: They system must provide a mechanism to define custom functions that
can be used in the data evaluation statements.
97
13) System Data: The system shall provide a mechanism to define which facts may be used the
following data in the system for use in the left operand of the condition:
14)
In Coeus 4.4 YNQ questions are still included, but have been deprecated.
Design Note: 1) when adding questions from the questionnaire, only the ID of the question is
displayed in the condition making it difficult to see what the condition is testing. 2) There is no
type checking in the interface for valid types for the left operand
98
i)
99
ii) Questionnaire Questions: The answers give to a particular question from
particular questionnaire
100
iii) Functions: Custom, user defined, functions that can accept arguments
101
System Data: Pre-specified columnar data items from the data store
b) Operators: The system must provide the following operators for use in building a
logical expression depending on the type of data
102
i)
System Columnar Data: equal to, not equal to, greater than or equal to, less than or
equal to
ii)
103
c)
Natural Language Expression: The comparison and logical statements expressed in
natural language (in English).
104
15)
105
16) Agenda: The system shall provide a mechanism for ordering and conditionally executing
rules called an Agenda.
Not In Coeus
From Kuali Student
In Coeus, this is handled by the“Meta Rule”
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 21 of 38
Trace
#
Requirements
106
a)
107
b) Agenda Operations: The system shall provide the following procedures for operating
on an agenda: Create New, Modify, Delete, Activate/Inactivate (see Table 10 Entity
Operations for a complete list).
108
c)
Agenda Attribute: An agenda shall include the following data attributes: Name,
Description, Event, Condition (see Table Table 11 Entity Data for a complete list)
Events are associated with agenda and when an event occurs it causes any agenda
associated with it to be evaluated.
109
(1) Multiple Event Triggers: An agenda may be associated with one or more
events (see events defined above), such that when the event occurs the rules in
the agenda are evaluated (conditions evaluated, action executed if required)
according the agenda’s rule execution logic.
110
(2) One Agenda Per Event: The system shall allow one, and only one, agenda to
be associated with an event.
111
112
Scope
ii)
d) Sub Agenda(s): The system shall allow one or more sub-agenda(s) to be specified
instead of a rule in the agenda’s rule execution logic.
Not in Coeus
Are we eliminating this for version 1? Can we just allow the naming of a branch in
113
e)
Agenda Execution Logic: They system shall provide a mechanism for defining the
order and conditional execution of rules as follows:
114
i)
115
ii) “Always” Operator: The first rule added to an agenda is always executed and shall
be prefixed with the agenda action “Always.”
116
iii) Ordered, Unconditional Execution “Next” Operator: When a rule is prefixed
with the Next action, the rule is run without consideration for the Boolean value
returned by the evaluation of the condition in the most recently executed rule.
117
iv) “If” Operators: An agenda shall provide for conditional execution of rules by
providing the conditional operations “If True” and “If False” that evaluate the
result returned from the condition in the rule that executed immediately previous.
Order of Execution: Rules shall be executed in the order presented in the agenda.
118
(1) “If True Evaluate <Rule>” operation: When a rule is added to the agenda
prefixed with the “If True” action, the rule is run only if the result of the
condition in rule executed immediately prior is the Boolean value “True”
119
(2) “If False Evaluate <Rule>” operation: When a rule is added to the agenda
prefixed with the “If False” action, the rule is run only if the result of the
condition from the rule executed immediately prior is the Boolean value
“False”
120
(3) “If True” and “If False” are mutually exclusive: If both “If True” and “If
False” actions are specified the logic shall execute only one or the other and
not both.
121
(4) “Branching Behavior”
122
f)
123
g) Agenda Authoring Behavior and Constraints: When adding rules to an agenda the
following constraints apply:
124
i)
First Rule: The first rule inserted in the agenda must have the execution action of
always.
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 22 of 38
Trace
#
Requirements
125
ii) Second Rule Inserted: The second rule may be prefixed by anyone of the standard
execution actions: Next, If True, If False
126
iii) If operation: After an If operation is added, so that the execution is branched,
rules may only be added below the if operation. The second rule must be added
127
iv) When the Second Rule is an If True then the following can be added:
128
(1) An If False at the same level
129
(2) c
130
v) Any Execution Action Can Follow a Next: The execution action Next can be
followed by any other action including another Next.
131
vi) Next Action: Can be added at any time beneath an
132
133
h) Execution Logging: The system shall optionally record the details of how an agenda
was executed, as follows:
i)
Scope
Not In Coeus
Required by KS
Record Rule Decision: The system
Example: A policy may exist at an institution that states: “All Key Personnel on a proposal must file a Conflict of
Interest Report.” It should The implementation of this policy in the system implements requires, first, an answer to the
question: Is the person a member of the Key Personnel list on the proposal? Second, it requires enforcement of an
action “must file a Conflict of Interest (COI) report.” The action is named “Notify and Require a COI Report”
implemented in the system as a set of flags in the Proposal and COI system that notify the person until they file a
report and flag proposals that do not have a completed report.
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 23 of 38
Agenda: Rule Execution Logic and Authoring Constraints
Level 5
Level 4
Level 3
Level 2
Level 1
1. An [Always] execution operation must be first.
2. Multiple [NEXT] operations can be inserted at
any level until a branch is encountered.
(1) [Always] Rule the first
3. During authoring, rules can only be added
under the current, highest level. For instance,
once 4.1 is added, you can only add rules at Level
3 (4.1.x) and not after (4), that is inserting Rule
(5) is not allowed.
(3) [NEXT] Another Rule
(2) [NEXT] Rule
(4) [NEXT] Rule X ...
(4.1) [IF (4) Rule X = TRUE] My True Branch Rule
(4.1.1) [NEXT] Another Rule
4. During execution, when a branch is followed, all
other branches are ignored and never followed
(4.2) [IF (4) Rule X = FALSE] My False Branch Rule
(4.2.1) [IF (4.2)My False Branch Rule = TRUE] Branch Again Please Rule
(4.2.1.1) [NEXT] Yet Another Rule
(4.2.1) [IF 4.2- My False Branch Rule = FALSE] Another True Branch Rule
(5) [NEXT]
5.1. Entity Operations
Table 10 Entity Operations
#
Entity
Action
Entity
Permission
1
Context
Create New
Context
Create New
2
Save
3
Modify
4
Delete
5
6
Rule
7
Create New
Modify
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
The system shall allow the user to create
a new business rule.
Page 24 of 38
Action
Entity
8
Delete
The system shall allow A Rule Author to
modify the descriptive attributes of a
rule.
9
Save
10
Copy
11
Inactivate
An action that
15
Create New
Term
16
Edit
17
Copy
18
Delete
19
Inactivate
#
Entity
Permission
12
13
14
Term
20
21
Proposition
22
Create New
23
Edit
24
Modify
25
Copy
26
Inactivate
Proposition
27
28
Create New
They system shall provide an operation
that creates a new Action
29
Edit
The system shall provide operation that
allows and existing Action to be
modified.
30
Copy
An operation that duplicates the
action.
(Add design requirement for how
copies this will
31
Delete
Action
32
33
Event
(none)
34
Agenda
Create New
35
Modify
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 25 of 38
#
Entity
Action
36
Delete
37
Inactivate/Activate
Entity
Permission
5.2. System Messages
Operator
Message
Delete
Delete Confirmation
5.3. Logical Operators
Operator
Meaning
ALL
TRUE if all of a set of comparisons are TRUE.
AND
TRUE if both Boolean expressions are TRUE.
ANY
TRUE if any one of a set of comparisons are TRUE.
BETWEEN
TRUE if the operand is within a range.
EXISTS
TRUE if a subquery contains any rows.
IN
TRUE if the operand is equal to one of a list of expressions.
LIKE
TRUE if the operand matches a pattern.
NOT
Reverses the value of any other Boolean operator.
OR
TRUE if either Boolean expression is TRUE.
SOME
TRUE if some of a set of comparisons are TRUE.
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 26 of 38
5.4. Comparison Operators
Operator
Meaning
= (Equals)
Equal to
> (Greater Than)
Greater than
< (Less Than)
Less than
>= (Greater Than or Equal To)
Greater than or equal to
<= (Less Than or Equal To)
Less than or equal to
<> (Not Equal To)
Not equal to
!= (Not Equal To)
Not equal to (not ISO standard)
!< (Not Less Than)
Not less than (not ISO standard)
!> (Not Greater Than)
Not greater than (not ISO standard)
6.
Data
Table 11 Entity Data
#
Entity
Name
Description
Scope
38
39
The logical set of all information
needed by the rules and agenda.
Context
40
Name
41
Description
42
Context Criteria
A list of criteria that define the
context.
1
List of Terms
A list containing one or more terms
valid for creating propositions.
2
List of Actions
A list containing one or more actions
that are valid for creating rules.
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Context
Create New
Page 27 of 38
Name
Description
3
List of Custom Functions
A list of pre-defined functions
(created by the application developer)
for use in creating the rule
proposition.
4
List of Rules
The list of rules created for use in the
rules.
5
List of Agenda
The list of agenda that that have been
created for use in the context.
6
Version (?)
#
Entity
Scope
7
8
A construct that is used to make a
decision and run an action of the
decision is positive.
Rule
9
Name
A text value to identify the rule.
10
Description
A text value to provide des
11
List of Actions
A list containing one or more actions
that will be executed if this rule
returns True.
12
Context
The context where this rule is a
member, to which it applies and is
vais a member.
13
Condition
One or more propositions created to
evaluate the data in the context.
14
Version (?)
Not in Coeus
15
16
An item for information used in
creating propostions.
Term
17
Name
Term
18
Description
A text value for providing additional
information about a term.
19
Data Type
The type of data the Term references,
for example: text, integer, decimal
number, currency.
20
Valid Value List
When applicable the system shall
allow a user to specify an existing list
of values to be used for selecting a
valid value for this term when
creating a proposition.
21
List of Contexts
The list of contexts where this term is
valid.
22
Version (?)
23
24
Term Group
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Allows a logical set of terms to be
grouped and displayed together in the
user interface.
Page 28 of 38
#
Entity
Name
25
Name
26
List of Terms
27
Description
Scope
A comparison statement consisting of
two operands that are compared using
a default set of operators.
Proposition
28
Left-Side Operand
29
Right-Side Operand
30
Comparison Operator
31
Term Group
32
Logical Operator
33
34
A way to name larger expression
consisting of one or more
propositions linked by logical
operators.
Proposition Group
35
Name
A name that identifies a proposition
group.
36
37
A procedure is associated with a Rule
and is executed when that Rule
returns “True”
Action
38
Name
A text value that identifies the name
of the action
39
Description
A text value that provides and
extended area for describing the
40
List of Action Parameters
A list of parameters to get things
done
41
42
Defined information that may be
passed to an action when a rule
executes.
Action Parameters
43
Name
A mandatory text value to identify
the Action Parameter.
44
Description
An optional text value for providing
additional descriptive information
about the parameter
45
Data Type
A mandatory value that specifies the
type of data for this parameter.
46
Default Value
An optional value that will be passed
if no specific value is provided at run
time.
47
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 29 of 38
#
Entity
48
Event
Name
Description
Scope
(or Event Trigger) An identified step
in the procedure that is used to
initiate additional steps in the
procedure.
49
Name
50
Description
51
Context Criteria
52
53
54
Agenda
55
Name
Text value to identify rule.
56
Description
Text value for providing extensive
descriptive information
57
Context
The name of the context that the
agenda is associated with.
58
Event List
59
Active Date
60
Inactive Date
61
Rule
0 or more events can will cause this
agenda to be evaluated
62
63
6.1. Grouping and Sort Order
Group in following order:
Group Name
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Sort Order
Page 30 of 38
7.
User Interface Design
7.1. Coeus User Interface
7.2. Design Requirements
7.3. User Interface Mock-up
8.
User Documentation Notes
#
ID
Requirement
1
1) Rule Evaluation and Action Execution: To avoid having to deal with the situation where a
rules’ action(s) might update the fact base thus affecting rules evaluated after it, there is it is
recommended that the decision is returned from all rules in the agenda and then the actions
run in the appropriate order.
User documentation should include an explanation of this behavior.
2
2)
3
a)
4
b)
5
c)
9.
Differences From Coeus
10. Design and Implementation Notes
#
ID
Requirement
6
3) Rule Evaluation and Action Execution: To avoid having to deal with the situation where a
rules’ action(s) might update the fact base thus affecting rules evaluated after it, there is it is
recommended that the decision is returned from all rules in the agenda and then the actions
run in the appropriate order.
User documentation should include an explanation of this behavior.
7
4)
8
a)
9
b)
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 31 of 38
#
ID
Requirement
10
c)


In Agenda, display the action that goes with the rule? Or just rely on the user to name it carefully.
10.1.
10.2.
Constraints and Issues
Other Technical
11. Appendix
11.1.
Document Change Log
Important changes and additions since the last published version are noted in the list below and in the document
by an orange star.
11.1.1.
[Date]
Description of Change
11.2.
Issues List
11.2.1.
Open/In Progress
Issue ID:
Status:
Reporter:
Open/Closed/In Progress
Jira #:
Create Date:
Subject/Title:
Description:
Owner(s):
Next Step(s):
Due:
Date:
Close Date:
Resolution:
Issue ID:
Status:
Reporter:
Open/Closed/In Progress
Jira #:
Create Date:
Subject/Title:
Description:
Owner(s):
Next Step(s):
Due:
Date:
Close Date:
Resolution:
Issue ID:
CustomPropositions
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Reporter:
Jira #:
Page 32 of 38
Status:
Subject/Title:
Description:
Open/Closed/In Progress
Create Date:
2011-02-04 Fri
Do we need a distinction between Custom Propositions and Custom Terms?
Do we want to make a distinction in Custom functions between those that return a Boolean (call them Custom
Propositions?) and everything else (call them Custome Terms?)? The main effect of this would be how they are treated
in the interface.
Owner(s):
Next Step(s):
Larry
Will check with Kamal and get back
Due:
Date:
Close Date:
Resolution:
Issue ID:
Status:
Subject/Title:
Description:
RuleTypeName
Open/Closed/In Progress
Reporter:
Jira #:
Create Date:
Business Rule Type in KRMS?
In Coeus, a Type of business rule is defined by what we are calling the “Action.” This is presumably because rules
have different functionality based on their type. Since our Rule/Action definition is more generic, do we need a type?
Discussion:
This was discussed at the F2F but not completely decided.
Owner(s):
Next Step(s):
Kenton
Examine as the requirements develop and evaluate if it is still warranted.
Due:
Date:
Close Date:
Resolution:
Issue ID:
RuleManagementVersion
Reporter:
Status:
Open/Closed/In Progress
Create Date:
Subject/Title:
Description:
Jira #:
Versioning of Rules - Discussion
Coeus does not version rules, but this has been suggested on the KRMS side? If we are going to version rules, what
functionality is contemplated and if this is necessary, is necessary for the first release of KRMS?
Owner(s):
Next Step(s):
Kenton
Explore Versioning in the requirements to see what the scope of this would look
like.
Due:
Date:
Close Date:
Resolution:
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 33 of 38
11.2.2.
Resolved
Issue ID:
Status:
Subject/Title:
Description:
Owner(s):
Resolution:
Issue ID:
Status:
Subject/Title:
Description:
ExecutionFeedback
Open/Closed/In Progress
Reporter:
Create Date:
Kenton
Jira #:
Jan 26 20011
Do we need excecution feedback and logging?
Two motivations for this
1) Providing feedback to the user so they can see why a rule decision was made
2) Student was thinking of using rules for “best fit.” kind of analysis” by providing information that could be
evaluated as part of the ongoing rule evaluation.
Next Step(s):
Due:
Date:
Close Date:
2011-02-07 Mon: Agreed that we would only address 1) above. Item 2) would have to addressed in custom functions
used as terms or propositions.
SubAccountCase
Open/Closed/In Progress
Reporter:
Create Date:
Kenton
Jira #:
Jan 26 20011
Routing document to correct person’s for large numbers of sub-accounts
A solution for the following case was raised by Eric Westfall: at IU in KFS, users have a simple mapping to route based
on sub-account. There are nearly 3000 sub-accounts. If a user wanted to create rules to identify the person and then
route to them, how would they do that. If you had to create 3000 rules and then add all 3000 to an agenda it seems a bit
heavy. What are the options for this? At Indiana they create and edit large numbers of these rules.
Eric: Is this a use case for dynamic agenda?
Can this solved by custom function?
Owner(s):
Next Step(s):
Due:
Date:
Kenton
Resolution:
Issue ID:
Status:
Subject/Title:
Description:
Close Date:
2011-02-07 Mon: Recommend that this be handled as a custom function.
ConditionReuse
Open/Closed/In Progress
Reporter:
Jira #:
Create Date:
Should there be functionality to allow conditions to be reused in some way? (Not In Coeus)?
Should we allow conditions to be re-used in some way?
1) For rules that have a complex set of propositions and expressions, it may be useful to save some portion of it as a
condition and then use the results of that expression in other conditions. In this
2) Where multiple rules depend on the same condition, it
Owner(s):
Next Step(s):
Kenton
Add the copy requirements to the specification
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Due: Date:
Close Date:
Page 34 of 38
Resolution:
Issue ID:
Status:
Subject/Title:
Description:
Jan 7: Agreed that:

There will be no referential reuse. In other words, a condition cannot be saved with a unique ID that would allow
more than one rule to use that condition. This would create a dependency that would be hard to manage on a large
scale.

Providing the ability to copy a rule and other items will be the extent of the reuse.
FactsChangeDuringRuleEval
Open/Closed/In Progress
Reporter:
Create Date:
What happens if an action updates the facts in the context in which the rules are running?
Should the rule complete against the outdate information?
If not and the facts are cached how do we detect an out of date cache?
Do we need to track that these changes have occurred?
Next Step(s):
Kenton
Update design requirements to reflect resolution
Issue ID:
Status:
Subject/Title:
Description:
2011-02-04 Fri Fri Fri
Fri
What to do about Actions that may change facts in the rule base?
Owner(s):
Resolution:
Jira #:
Due:
Date:
Close Date:
As a matter of design it was settled that all the conditions in the rules will be evaluated and then based on the
decision(s), a list of actions would be created and executed in the order in which they were determined. This would
avoid unpredictable behavior from occurring if the data changing actions were executed while the rule were being
evaluated
ConditionActions
Open/Closed/In Progress
Reporter:
Create Date:
Kenton
Jira #:
Jan 4, 2011
Can a condition have actions?
In Coeus, a Routing Rule can have multiple conditions (as can all rules). Each condition can have the action “use Map”
associated with it. Each condition is evaluated within a conditional IF <condition> ELSEIF statement. The net result
that is that the Routing Rule returns just one Routing Map (workflow definition). This same functionality is true for
Question type rules which essentially execute the action in
Two points:
1) For KRMS, we have defined the Rule as the entity that has an action associated with it. Do we need/want
conditions being able to execute actions as well? Another possible option is allow rules to include other rules.
2)
Owner(s):
The Coeus Routing Rules are essentially have Agenda type (rule execution logic) in the Rule. This puts this logic
in two places.
Next Step(s):
Discuss at Jan 7 Meeting
Resolution:
Due:
Date:
Close Date:
Recommendation:
a) All rule execution logic resides in the Agenda and will be removed from the rule (where it is in Coeus)
b) Agendas shall be allowed to include other agenda (sub-agendas).
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 35 of 38
Issue ID:
Status:
Subject/Title:
Description:
Owner(s):
ActiveInactive
Reporter:
Open/Closed/In Progress
Create Date:
Jira #:
2011-01-09 Sun
Acitivating and Inactivating Rules
There is no way to inactivate a rule in Coeus. In one sense, a rule is not actively used unless it is added to an agenda.
Do we need a way to “archive” or “inactivate” rule. If we are versioning rules how does this impact this requirement?
Also, that data model currently contains active/inactive dating.
Next Step(s):
Add Activate, Inactivate functional requirement to functional specification
Resolution:
11.3.
Due:
Date:
Close Date:
2011-02-08: Rice provides this out of the box.
Document Parts
11.3.1.
Standard Document Table
Use following table to ensure you have the formatting and styles for tables in this document. Using Word’s
create table feature will not setup the standard formatting as in the following table.
To Use: Copy and paste into your document then add, remove and adjust columns and rows as necessary.
Table Heading
11.3.2.
Use Case Template
When you copy this table, the numbering in the # column may change. To reset it so it starts at “1”, rightclick the first numb and select “Restart at 1” from the menu (Windows, Word 2007).
Table 12 Use Case Sample
52
Use Case ID:
53
Use Case Name
54
Priority:
55
Actor(s):
56
Description:
57
Precondition(s):
PR1
Normal Course:
N
<Normal Course Name>
10)
11)
A1
<Alternate Course Name>
12)
13)
58
Alternative Course(s):
59
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 36 of 38
A2
<Alternate Course Name>
14)
15)
A3
<Alternate Course Name>
16)
17)
60
61
62
Exceptions:
63
Post-conditions:
64
E1
PO1
PO2
65
Special Requirements:
66
Assumptions:
67
Notes and Issues:
11.3.3.
SR1
Requirements Table
When you copy this table, the numbering in the # column may change. To reset it so it starts at “1”, rightclick the first numb and select “Restart at 1” from the menu (Windows, Word 2007).
Table 13 Requirements List Template
#
ID
Requirement
1
1)
2
a)
3
b)
4
c)
5
2)
6
a)
7
b)
8
c)
11.3.4.
Issue Template
Issue ID:
Status:
Reporter:
Open/Closed/In Progress
Jira #:
Create Date:
Subject/Title:
Description:
Owner(s):
Next Step(s):
Due:
Date:
Close Date:
Resolution:
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 37 of 38
11.3.5.
Callouts
The following callouts can be used to highlight important points for the user. The layout for each callout is
inside a Word text box. Text boxess will not display in Normal or Draft View - you must be in Print Layout
view to see them.
To Use: Click on a text box below, copy and paste it into your document, then type a short heading in the
bold text and an explanatory text below.
<Note Heading>
A general note
<Process Note>
A process explanation
<A warning!>
A caution and explanation
<A Question?>
An answer
Kuali Rice Rules Management System
Last Save: 7/29/2017 1:53:00 AM
Page 38 of 38