Skip to main contentSkip to search
Powered by Zoomin Software. For more details please contactZoomin
Progress DocumentationProgress Documentation
Progress Documentation
  • Home
  • Home
  • EnglishČeštinaDeutsch (Germany)Español (Spain)Français (France)Italiano (Italy)Português (Brasil)日本語Русский (Russia)中文 (简体) (China)中文 (繁體, 台灣) (Taiwan)ar-AR
  • Login

Corticon Rule Modeling

Looping examples

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
Table of Contents
  • Introduction to Corticon rule modeling
  • Build the Vocabulary
    • Generate a Vocabulary
      • Use JSON Schema to generate a vocabulary
      • Use JSON to generate a vocabulary
    • Build a Vocabulary by hand
      • Step 1: Design the Vocabulary
      • Step 2: Identify the terms
      • Step 3: Separate the generic terms from the specific
      • Step 4: Assemble and relate the terms
      • Step 5: Diagram the Vocabulary
      • Step 6: Model the Vocabulary in Corticon Studio
    • Populate a Vocabulary from a Datasource
      • Step 1: How Datasources are transformed into a Corticon Vocabulary
      • Step 2: The Vocabulary generation process for RDBMS sources
      • Step 3: The Vocabulary generation process from REST sources
      • Step 4: Verify and update the generated Vocabulary
    • Extend a Vocabulary
      • Custom Data Types
        • Constraint Expressions
          • How to use non-enumerated Custom Data Types in Rulesheets and Ruletests
        • Enumerations
          • How enumeration labels and values behave
          • Enumerations defined in the Vocabulary
          • Enumerations retrieved from a database
        • How to use Custom Data Types
          • Use Custom Data Types in a Vocabulary
            • Use enumerated Custom Data Types in Ruletests
            • Use IN operator with an enumerated list
          • Use enumerated Custom Data Types in Rulesheets
          • Use enumerated Custom Data Types in Ruletests
          • Use IN operator with an enumerated list
        • How to relax enforcement of Custom Data Types
      • Domains
        • Domains in a Rulesheet
        • Domains in a Ruletest
      • Support for inheritance
    • TestYourself questions for Build the vocabulary
  • Rule scope and context
    • Rule scope
    • Aliases
    • Scope and perspectives in the vocabulary tree
      • How to use roles
      • Technical aside
    • TestYourself questions for Rule scope and context
  • Rule writing techniques
    • How to generate rules with the AI Assistant
    • How to work with rules and filters in natural language
    • Filters versus conditions
    • Qualify rules with ranges and lists
      • Ranges and lists in conditions and filters
        • Value ranges in condition and filter expressions
        • Value lists in condition and filter expressions
      • Ranges and value sets in condition cells
        • Boolean condition versus values set
          • Exclusionary syntax
          • How to use other in condition cells
        • Numeric value ranges in conditions
        • String value ranges in condition cells
        • Value sets in condition cells
        • Variables as condition cell values
        • DateTime, date, and time value ranges in condition cells
        • Inclusive and exclusive ranges
        • Value ranges that overlap
        • Alternatives to value ranges
    • How to use standard Boolean constructions
    • How to embed attributes in posted rule statements
    • How to include apostrophes in strings
    • How to work with rules and filters in natural language
    • TestYourself questions for Rule writing techniques and logical equivalents
  • Collections
    • How Corticon Studio handles collections
    • How to visualize collections
    • A basic collection operator
    • How to filter collections
    • How to use aliases to represent collections
    • Sorted aliases
    • Advanced collection sorting syntax
    • Statement blocks
    • Using sorts to find the first or last in grandchild collections
    • Singletons
    • Special collection operators
      • Universal quantifier
      • Existential quantifier
      • Another example using the existential quantifier
    • Aggregations that optimize EDC database access
    • TestYourself questions for Collections
  • Rules containing calculations and equations
    • Operator precedence and order of evaluation
    • Data type compatibility and casting
      • Data type of an expression
      • Defeating the parser
      • Manipulating data types with casting operators
    • Supported uses of calculation expressions
      • Calculation as a comparison in a precondition
      • Calculation as an assignment in a noncondition
      • Calculation as a comparison in a condition
      • Calculation as an assignment in an action
    • Unsupported uses of calculation expressions
    • TestYourself questions for Rules containing calculations and equations
  • Rule dependency in chaining and looping
    • Forward chaining
    • Rulesheet processing modes of looping
      • Types of loops
    • Looping controls in Corticon Studio
      • How to identify loops
        • The loop detection tool
        • How to remove loops
        • How to terminate infinite loops
    • Looping examples
      • Determine the next working day when given a date
      • Remove duplicated children in an association
    • How to use conditions as a processing threshold
    • TestYourself questions for Rule dependency chaining and looping
  • Filters and preconditions
    • What is a filter
      • Full filters
      • Limiting filters
      • Database filters
    • What is a precondition
      • Summary of filter and preconditions behaviors
      • Performance implications of the precondition behavior
    • How to use collection operators in a filter
      • Location matters
      • Multiple filters on collections
    • Filters that use OR
    • TestYourself questions for Filters and preconditions
  • How to recognize and model parameterized rules
    • Parameterized rule where a specific attribute is a variable or parameter within a general business rule
    • Parameterized rule where a specific business rule is a parameter within a generic business rule
    • How to populate an AccountRestriction table from a sample user interface
    • TestYourself questions for Recognizing and modeling parameterized rules
  • How to write rules to access external data
    • A scope refresher
    • Quick steps for setting up the Cargo sample
    • Enable database access for rules using root-level entities
      • Test the Rulesheet with database access disabled
      • Test the Rulesheet with database access enabled
      • Optimize aggregations that extend to database
    • Precondition and filters as query filters
      • Filter query qualification criteria
      • Operators supported in query filters
      • How to use multiple filters in filter queries
    • Insert new records in a middle table
    • Integrate EDC Datasource data into rule output
    • TestYourself questions for how to write rules to access external data
  • Logical analysis and optimization
    • Ask the AI Assistant for help
    • Test, validate, and optimize your rules
      • Generate Ruletests
      • Scenario testing
      • Rulesheet analysis and optimization
    • Traditional methods of analyzing logic
      • Flowcharts
      • Test suites
    • Validate and test Rulesheets in Corticon Studio
      • How to expand rules
      • The conflict checker
      • The completeness checker
        • Automatically determine the complete values set
        • Automatically compress the new columns
        • Handle limitations of the completeness checker
        • Let the expansion tool work for you with tabular rules
        • Memory management
      • Logical loop detection
    • Test rule scenarios in the Ruletest Expected panel
      • How to navigate in Ruletest Expected comparison results
      • Review test results when using the Expected panel
        • Output results match expected exactly
        • Different values output than expected
        • Fewer values output than expected
        • More values output than expected
        • All Expected panel problems
      • Techniques that refine rule testing
        • Set selected attributes to ignore validation
        • Use key attributes to improve difference detection in Ruletests
        • Set how whitespace is handled
        • Numerical equivalence
    • How to optimize Rulesheets
      • The compress tool
      • How to produce characteristic Rulesheet patterns
      • Compression creates subrule redundancy
      • Effect of compression on Corticon Server performance
    • Precise location of problem markers in editors
    • TestYourself questions for Logical analysis and optimization
  • Advanced Ruleflow techniques and tools
    • How to use a Ruleflow in another Ruleflow
    • Conditional branching in Ruleflows
      • Example of branching based on a Boolean
      • Example of branching based on an enumeration
      • Logical analysis of a branch container
      • How branches in a Ruleflow are processed
    • How to generate Ruleflow dependency graphs
    • Ruleflow versions and effective dates
    • TestYourself questions for Ruleflow versions and effective dates
  • Troubleshooting Corticon Studio problems
    • Where did the problem occur
    • Use Corticon Studio to reproduce the behavior
      • Observe constraint violations or severe errors
      • Analyze Ruletest results
      • Trace rule execution
      • Use rule messages to expose values
      • Identify the breakpoint
      • At the breakpoint
        • No results
        • Incorrect results in Studio
      • Partial rule firing
      • How to initialize null attributes
      • How to handle nulls in compare operations
    • Studio license expiration
    • How to compare and report on Rulesheet differences
    • TestYourself questions for Troubleshooting rulesheets and ruleflows
  • Studio properties and settings
  • Answers to TestYourself questions
    • TestYourself answers for Building the vocabulary
    • TestYourself answers for Rule scope and context
    • TestYourself answers for Rule writing techniques and logical equivalents
    • TestYourself answers for Collections
    • TestYourself answers for Rules containing calculations and equations
    • TestYourself answers for Rule dependency and inferencing
    • TestYourself answers for Filters and preconditions
    • TestYourself answers for Recognizing and modeling parameterized rules
    • TestYourself answers for Writing rules to access external data
    • TestYourself answers for Logical analysis and optimization
    • TestYourself answers for Ruleflow versioning and effective dating
    • TestYourself answers for Troubleshooting rulesheets
Table of Contents

Looping examples

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
  • Last Updated: April 30, 2021
  • 1 minute read
    • Corticon
    • Version 7.2
    • Documentation

The following examples show how looping can be useful in your models.

For details, see:
  • Determine the next working day when given a date
  • Remove duplicated children in an association
Contents
  1. Determine the next working day when given a date
  2. Remove duplicated children in an association
Previous topic: Looping controls in Corticon Studio
Next topic: How to use conditions as a processing threshold
TitleResults for “How to create a CRG?”Also Available inAlert