More Flexible Rule Structure

Common Knowledge now allows Rule Extenders to be added directly to an Application Environment and allows Knowledgebases to be nested. That is, Knowledgebases may be added to Knowledgebases to allow your rules to be more logically structured.

New Rule Extenders

Workflow, Ruleflow, Flowchart, State Map - The Common Knowledge Workflow Extender is used to model and automate business processes. Additionally, it can be used for representing and automating Ruleflows (control over the sequence of rule execution and chaining), Flowcharts and State Maps. Each of these variations uses the same Workflow rule extender, allowing concepts from each format to be integrated into powerful hybrid solutions.

Decision Grid Extender - The Common Knowledge Decision Grid Extender is used to represent business rules that are a function of two or more inter-related variable groupings. The grid consists of one or more row conditions and one or more column conditions with the intersections of the row and column conditions being grid entries to which a list of actions or a simple assignment expression can be specified.

Rete Rules Extender - Delivers a forward chaining, declarative rules evaluation engine and rules editor. Uses the Rete algorithm for the efficient evaluation of complex rules.

Enhanced Rule Extenders

Decision Table - Block Clipboard Operations - The Decision Table now allows the Selection, Copying, Pasting and Deletion of blocks of cells through the Windows clipboard. This allows blocks of data to be easily copied from and to external applications such as Excel. Blocks of text can also have quoting toggled on or off allowing blocks of imported text to be easily converted to strings.

All - Properties Inspector Integration - all properties associated with rule extenders are now edited using the property inspector rather than using popup dialogs.

Decision Table - Lookup Mode (fast binary condition evaluation) for the Decision Table Extender allows tables with sortable conditions to execute in O(logn) time.

All - Pre and Post execute actions on all rule extenders. All rule extenders support the execution of actions both before (pre) execution and after (post) execution of the extender.

All - Extender Parameters - allows rule extenders such as Decision Tables, Decision Trees and Workflows to be provided with parameters when executed from your application or from within your rules.

All - Reasons - Decision Table Rules, Decision Tree nodes, and Workflow nodes and connections can have a Reason defined for the rule or node being fired. If a rule that fires has an associated Reason defined, then it is made available to Studio via the Reason Results output window or to an application via the API.

All - Tag Property is available on all rule elements. The Tag is a string and has no predefined meaning. The Tag property is provided for the convenience of rules designers and can be used to store an additional value that can be referenced by an application during execution. An tag editor allows the tag to be edited as plain text, or HTML.

Decision Table - Actions Only - Decision tables without conditions can be created that will perform all actions when executed. This allows Decision Tables to be used to easily create named create action lists.

Studio Enhancements

Debugging - a full interactive debugger has been added to Common Knowledge allowing you to step through your rules, set breakpoints and inspect intermediate values.

Enhanced and Extended Properties Inspector - The Properties Inspector now replaces modal dialogs for all edit operations on Application Environment, Knowledgebase, Rule Extender, Decision Tree node, branch and actions.

Compile time warnings - can be optionally suppressed.

Object Extender Categories - When selecting an object extender using the property inspector, extenders are grouped based on their category (basic, array, advanced, channel operations, channel results) making them easier to locate and select.

Workflow Task Window allows interactive confirmation of Workflow Tasks during execution.

File Backup and Versioning management for Application Environments, implementing the ISO 9660 file versioning standard.

File Change Monitoring - If an Application Environment file loaded in Studio is changed externally then the user is notified.

Syncing Rule Extenders - A "Sync" option has been added to all Rule Extender context menus, allowing the rule extender to be easily located and displayed in the Workspace tree view.

Value Window Clearing - Optional flag in Studio options allowing the value window to be automatically cleared each time rules are executed.

Value Logging Flag - Flag added to all context objects, properties and class attributes specifying if the context object, property or attribute value should be logged to the value window if it changes and value logging is enabled. This allows you to control which context objects, properties and attributes do and don't have their values logged during execution.

Prompting Flag - Flag added to all context objects, properties and class attributes specifying if the context object, property or attribute value should be prompted for if it's value is accessed during execution in Common Knowledge Studio. This allows you to control which context objects, properties and attributes do and don't have their values prompted for during execution.

Class Prompting - when prompting is performed for complex data types such as User Class types, the prompting dialog allows all attributes of the instance to be accessed and provides options to allow values to be easily set for individual attributes or for the complete instance.

Workspace Toolbar - The workspace view now has a toolbar that includes the ability to move tree items up or down (re-order), sort items in ascending or descending order (sort), fully collapse or expand items and to toggle the displaying of empty elements such as Contexts containing no definitions.

Output View Toolbars - all output views (Build, Watch, Value, Find Results, Execution and Reasons) now include a toolbar containing the operations previously only available through the context menu for the specific output view.

Engine Enhancements

Context Classes - Allow custom data types to be defined or imported into your rules. User defined classes allow the definition of a class entirely within Common Knowledge while the ActiveX class importer allows the inclusion of ActiveX classes within Common Knowledge.

New operator allows the dynamic creation of any Common Knowledge class, or classes defined in the Context (see Context Classes below). Constructors are supported on classes allowing an instance to be created and initialised using the new keyword.

ActiveX Enumeration Import - enumerations defined in an ActiveX type library (e.g. Excel) can be imported into Common Knowledge as Context Definitions.

Context Channels - Provide definable connections to external resources such as e-mail servers, message queues, sockets and web services.

Advanced Action Extenders - Additional actions which allow for greater interaction with external systems using email, message queues, web services, sockets and databases.

Type Checking - Additional compile-time and run-time data type checking has been added. Where possible, object attributes are now checked at compile time and warnings are given of attributes (methods or properties) that cannot be determined during compilation.

Data Boxing - Native values (such as Strings etc) are automatically converted (boxed) to the corresponding Common Knowledge data type so that the methods and properties of the Common Knowledge data type are available on these values.

Initial Values - Initial Values for Context Objects and Context Properties are now checked at compile time and errors are given for invalid initial values. Additionally, the format for Date Array, DateTime Array and Time Array initial values are now consistent with the ISO-8601 date and time format.

Persistence - The ability to persist the runtime execution state of the engine - runtime persistence allows the current execution state to be saved and later restored. This feature is designed to work with the new Workflow extender, Context Objects and Context Properties.

Application Environments are now executable and can be directly executed from within Studio or using the API.

Regular Expressions are available on the String object extender for Matching and Splitting of delimited text.

Timestamps have been removed from all items. Only the application environment file itself is time stamped.

Rules Manager - The Rules Manager has been developed to compliment the use of the new Professional rules engine component within server or multi-user environments such as Microsoft Internet Information Server. The component loads and compiles one or more Application Environments, and creates one or more Execution Context objects on request. It is shipped as an ActiveX component (dll).

New Object Extenders

Dictionary - data type has been added, allowing access to name-value (associative) collections.

XML Components - XML Context Object types have been added that supports basic DOM operations, XSLT transformations and XPath 2.0 querying from your business rules. These include an XML Document, XML Node and XML Node List component.

Enhanced Object Extenders

New Methods - A number of new methods have been added to various Object Extenders.

Enhanced Context Libraries

New Functions - A number of new functions have been added to various Library Extenders.