skip to main content
Corticon Studio: Rule Modeling Guide : Writing Rules to access external data

Try Corticon Now

Writing Rules to access external data

Corticon rules can read from and write to an RDBMS. This feature is its Enterprise Data Connector or "EDC", and is sometimes referred to as Direct Database Access or "DDA".
Online tutorials for EDC that use Microsoft SQL Server 2014 as the EDC database:
*Modeling Progress Corticon Rules to Access a Database using EDC is aimed at rule modelers. It covers how to model and test rules that read/write to a relational database
*Connecting a Progress Corticon Decision Service to a Database using EDC is aimed at integration developers. It covers how to set up the Vocabulary to connect and map to a database, configure EDC settings in the Web Console, and other deployment-related tasks.
Documentation topics on EDC:
*"Writing Rules to access external data" chapter in the Rule Modeling Guide extends the tutorial into scope, validation, collections, and filters.
*"Relational database concepts in the Enterprise Data Connector (EDC)" in the Integration and Deployment Guide discusses identity strategies, key assignments, catalogs and schemas, database views, table names and dependencies, inferred values, and join expressions.
*"Implementing EDC" in the Integration and Deployment Guide discusses the mappings and validations in a Corticon connection to an RDBMS.
*Packaging and deploying Decision Services describes the Decision Service parameters for EDC and the associated deployment tools.
*"Vocabularies: Populating a New Vocabulary: Adding nodes to the Vocabulary tree view" in the Quick Reference Guide extends its subtopics to detail all the available fields for Entities, Attributes, and Associations.
You should work through the procedural style of the Corticon Tutorial: Using Enterprise Data Connector (EDC) to experience configuring and using this new feature.
Note: The functionality described in this chapter is always enabled in Studio; however, Corticon Servers need explicit licensing for EDC, even in evaluation installations. Contact Progress Software technical support or your Progress Software representative for additional details on licensing and RDBMS support.
Note: When using the Vocabulary editor, setting it to show details exposes properties related to database interaction. When you enter data in properties when showing details and then switch to hide those properties, the properties are just hidden, not changed or cleared.


When you create a Vocabulary, you use the properties of the Entities, Attributes, and Associations to define Rulesheets, Ruletests, and Ruleflows. Everything is local -- any data required by the rules is either entered as Ruletest input or is generated by the rules during execution.
Corticon EDC lets you define mappings to a database so that rules can "reach out": to access (query) a database directly, and then retrieve what it needs "on-the-fly" during execution, thus enriching the information available to the rules.
As useful as this capability is to the technical people responsible for Rulesheet deployment and integration, a rule modeler might ask "what's the cost to me?" In designing EDC, Corticon made this capability as transparent to the rule modeler as possible. In other words, we don’t want the rule modeler to worry about where the data "fed" to Corticon Server is stored, how it’s retrieved and assembled, or how it is sent. We want the rule modeler to be concerned with getting the rules right, and let everything else follow from there. This is consistent with our declarative approach to rule modeling – modeling rules that express what to do, not how to do it.
This chapter focuses on the aspects of rule modeling that are affected by the Corticon Enterprise Data Connector.
* A Scope refresher
* Showing vocabulary details in a Rulesheet
* Clearing database mappings in the vocabulary
* Validation of database properties
* Enabling Database Access for Rules using root-level Entities
* Precondition and Filters as query filters
* Defining database caching in Studio
* Test yourself questions: Writing rules to access external data