Jump To Close Expand all Collapse all Table of contents Developing decision services in Red Hat Decision Manager Preface Making open source more inclusive I. Designing a decision service using DMN models Expand section "I. Designing a decision service using DMN models" Collapse section "I. Designing a decision service using DMN models" 1. Decision-authoring assets in Red Hat Decision Manager 2. Decision Model and Notation (DMN) Expand section "2. Decision Model and Notation (DMN)" Collapse section "2. Decision Model and Notation (DMN)" 2.1. DMN conformance levels 2.2. DMN decision requirements diagram (DRD) components 2.3. Rule expressions in FEEL Expand section "2.3. Rule expressions in FEEL" Collapse section "2.3. Rule expressions in FEEL" 2.3.1. Data types in FEEL 2.3.2. Built-in functions in FEEL Expand section "2.3.2. Built-in functions in FEEL" Collapse section "2.3.2. Built-in functions in FEEL" 2.3.2.1. Conversion functions 2.3.2.2. Boolean functions 2.3.2.3. String functions 2.3.2.4. List functions 2.3.2.5. Numeric functions 2.3.2.6. Date and time functions 2.3.2.7. Range functions 2.3.2.8. Temporal functions 2.3.2.9. Sort functions 2.3.2.10. Context functions 2.3.3. Variable and function names in FEEL 2.4. DMN decision logic in boxed expressions Expand section "2.4. DMN decision logic in boxed expressions" Collapse section "2.4. DMN decision logic in boxed expressions" 2.4.1. DMN decision tables Expand section "2.4.1. DMN decision tables" Collapse section "2.4.1. DMN decision tables" 2.4.1.1. Hit policies in DMN decision tables 2.4.2. Boxed literal expressions 2.4.3. Boxed context expressions 2.4.4. Boxed relation expressions 2.4.5. Boxed function expressions 2.4.6. Boxed invocation expressions 2.4.7. Boxed list expressions 2.5. DMN model example 3. DMN support in Red Hat Decision Manager Expand section "3. DMN support in Red Hat Decision Manager" Collapse section "3. DMN support in Red Hat Decision Manager" 3.1. Configurable DMN properties in Red Hat Decision Manager 4. Creating and editing DMN models in Business Central Expand section "4. Creating and editing DMN models in Business Central" Collapse section "4. Creating and editing DMN models in Business Central" 4.1. Defining DMN decision logic in boxed expressions in Business Central 4.2. Creating custom data types for DMN boxed expressions in Business Central 4.3. Included models in DMN files in Business Central Expand section "4.3. Included models in DMN files in Business Central" Collapse section "4.3. Included models in DMN files in Business Central" 4.3.1. Including other DMN models within a DMN file in Business Central 4.3.2. Including PMML models within a DMN file in Business Central 4.4. Creating DMN models with multiple diagrams in Business Central 4.5. DMN model documentation in Business Central 4.6. DMN designer navigation and properties in Business Central 5. DMN model execution Expand section "5. DMN model execution" Collapse section "5. DMN model execution" 5.1. Embedding a DMN call directly in a Java application 5.2. Executing a DMN service using the KIE Server Java client API 5.3. Executing a DMN service using the KIE Server REST API 6. Additional resources II. Designing a decision service using PMML models Expand section "II. Designing a decision service using PMML models" Collapse section "II. Designing a decision service using PMML models" 7. Decision-authoring assets in Red Hat Decision Manager 8. Predictive Model Markup Language (PMML) Expand section "8. Predictive Model Markup Language (PMML)" Collapse section "8. Predictive Model Markup Language (PMML)" 8.1. PMML conformance levels 9. PMML model examples 10. PMML support in Red Hat Decision Manager Expand section "10. PMML support in Red Hat Decision Manager" Collapse section "10. PMML support in Red Hat Decision Manager" 10.1. PMML naming conventions in Red Hat Decision Manager 10.2. PMML extensions in Red Hat Decision Manager 11. PMML model execution Expand section "11. PMML model execution" Collapse section "11. PMML model execution" 11.1. Embedding a PMML call directly in a Java application Expand section "11.1. Embedding a PMML call directly in a Java application" Collapse section "11.1. Embedding a PMML call directly in a Java application" 11.1.1. PMML execution helper class 11.2. Executing a PMML model using KIE Server 12. Additional resources III. Designing a decision service using DRL rules Expand section "III. Designing a decision service using DRL rules" Collapse section "III. Designing a decision service using DRL rules" 13. Decision-authoring assets in Red Hat Decision Manager 14. DRL (Drools Rule Language) rules Expand section "14. DRL (Drools Rule Language) rules" Collapse section "14. DRL (Drools Rule Language) rules" 14.1. Packages in DRL 14.2. Import statements in DRL 14.3. Functions in DRL 14.4. Queries in DRL 14.5. Type declarations and metadata in DRL Expand section "14.5. Type declarations and metadata in DRL" Collapse section "14.5. Type declarations and metadata in DRL" 14.5.1. Type declarations without metadata in DRL 14.5.2. Enumerative type declarations in DRL 14.5.3. Extended type declarations in DRL 14.5.4. Type declarations with metadata in DRL 14.5.5. Metadata tags for fact type and attribute declarations in DRL 14.5.6. Property-change settings and listeners for fact types 14.5.7. Access to DRL declared types in application code 14.6. Global variables in DRL 14.7. Rule attributes in DRL Expand section "14.7. Rule attributes in DRL" Collapse section "14.7. Rule attributes in DRL" 14.7.1. Timer and calendar rule attributes in DRL 14.8. Rule conditions in DRL (WHEN) Expand section "14.8. Rule conditions in DRL (WHEN)" Collapse section "14.8. Rule conditions in DRL (WHEN)" 14.8.1. Patterns and constraints 14.8.2. Bound variables in patterns and constraints 14.8.3. Nested constraints and inline casts 14.8.4. Date literal in constraints 14.8.5. Supported operators in DRL pattern constraints 14.8.6. Operator precedence in DRL pattern constraints 14.8.7. Supported rule condition elements in DRL (keywords) 14.8.8. OOPath syntax with graphs of objects in DRL rule conditions 14.9. Rule actions in DRL (THEN) Expand section "14.9. Rule actions in DRL (THEN)" Collapse section "14.9. Rule actions in DRL (THEN)" 14.9.1. Supported rule action methods in DRL 14.9.2. Other rule action methods from drools and kcontext variables 14.9.3. Advanced rule actions with conditional and named consequences 14.10. Comments in DRL files 14.11. Error messages for DRL troubleshooting 14.12. Rule units in DRL rule sets Expand section "14.12. Rule units in DRL rule sets" Collapse section "14.12. Rule units in DRL rule sets" 14.12.1. Data sources for rule units 14.12.2. Rule unit execution control 14.12.3. Rule unit identity conflicts 15. Data objects Expand section "15. Data objects" Collapse section "15. Data objects" 15.1. Creating data objects 16. Creating DRL rules in Business Central Expand section "16. Creating DRL rules in Business Central" Collapse section "16. Creating DRL rules in Business Central" 16.1. Adding WHEN conditions in DRL rules 16.2. Adding THEN actions in DRL rules 17. Executing rules 18. Other methods for creating and executing DRL rules Expand section "18. Other methods for creating and executing DRL rules" Collapse section "18. Other methods for creating and executing DRL rules" 18.1. Creating and executing DRL rules in Red Hat CodeReady Studio 18.2. Creating and executing DRL rules using Java 18.3. Creating and executing DRL rules using Maven 19. Example decisions in Red Hat Decision Manager for an IDE Expand section "19. Example decisions in Red Hat Decision Manager for an IDE" Collapse section "19. Example decisions in Red Hat Decision Manager for an IDE" 19.1. Importing and executing Red Hat Decision Manager example decisions in an IDE 19.2. Hello World example decisions (basic rules and debugging) 19.3. State example decisions (forward chaining and conflict resolution) 19.4. Fibonacci example decisions (recursion and conflict resolution) 19.5. Pricing example decisions (decision tables) 19.6. Pet Store example decisions (agenda groups, global variables, callbacks, and GUI integration) 19.7. Honest Politician example decisions (truth maintenance and salience) 19.8. Sudoku example decisions (complex pattern matching, callbacks, and GUI integration) 19.9. Conway’s Game of Life example decisions (ruleflow groups and GUI integration) 19.10. House of Doom example decisions (backward chaining and recursion) 20. Performance tuning considerations with DRL 21. Next steps IV. Designing a decision service using guided decision tables Expand section "IV. Designing a decision service using guided decision tables" Collapse section "IV. Designing a decision service using guided decision tables" 22. Decision-authoring assets in Red Hat Decision Manager 23. Guided decision tables 24. Data objects Expand section "24. Data objects" Collapse section "24. Data objects" 24.1. Creating data objects 25. Creating guided decision tables 26. Hit policies for guided decision tables Expand section "26. Hit policies for guided decision tables" Collapse section "26. Hit policies for guided decision tables" 26.1. Hit policy examples: Decision table for discounts on movie tickets Expand section "26.1. Hit policy examples: Decision table for discounts on movie tickets" Collapse section "26.1. Hit policy examples: Decision table for discounts on movie tickets" 26.1.1. Types of guided decision tables 27. Adding columns to guided decision tables 28. Types of columns in guided decision tables Expand section "28. Types of columns in guided decision tables" Collapse section "28. Types of columns in guided decision tables" 28.1. "Add a Condition" Expand section "28.1. "Add a Condition"" Collapse section "28.1. "Add a Condition"" 28.1.1. Inserting an any other value in condition column cells 28.2. "Add a Condition BRL fragment" 28.3. "Add a Metadata column" 28.4. "Add an Action BRL fragment" 28.5. "Add an Attribute column" 28.6. "Delete an existing fact" 28.7. "Execute a Work Item" 28.8. "Set the value of a field" 28.9. "Set the value of a field with a Work Item result" 29. Viewing Rule Name column in guided decision tables 30. Editing or deleting columns in guided decision tables 31. Adding rows and defining rules in guided decision tables 32. Defining enumerations for drop-down lists in rule assets Expand section "32. Defining enumerations for drop-down lists in rule assets" Collapse section "32. Defining enumerations for drop-down lists in rule assets" 32.1. Advanced enumeration options for rule assets 33. Real-time verification and validation of guided decision tables Expand section "33. Real-time verification and validation of guided decision tables" Collapse section "33. Real-time verification and validation of guided decision tables" 33.1. Types of problems in guided decision tables 33.2. Types of notifications 33.3. Disabling verification and validation of guided decision tables 34. Converting a guided decision table to a spreadsheet decision table 35. Executing rules 36. Next steps V. Designing a decision service using spreadsheet decision tables Expand section "V. Designing a decision service using spreadsheet decision tables" Collapse section "V. Designing a decision service using spreadsheet decision tables" 37. Decision-authoring assets in Red Hat Decision Manager 38. Spreadsheet decision tables 39. Data objects Expand section "39. Data objects" Collapse section "39. Data objects" 39.1. Creating data objects 40. Decision table use case 41. Defining spreadsheet decision tables Expand section "41. Defining spreadsheet decision tables" Collapse section "41. Defining spreadsheet decision tables" 41.1. RuleSet definitions 41.2. RuleTable definitions 41.3. Additional rule attributes for RuleSet or RuleTable definitions 42. Uploading spreadsheet decision tables to Business Central 43. Converting an uploaded spreadsheet decision table to a guided decision table in Business Central 44. Executing rules 45. Next steps VI. Designing a decision service using guided rules Expand section "VI. Designing a decision service using guided rules" Collapse section "VI. Designing a decision service using guided rules" 46. Decision-authoring assets in Red Hat Decision Manager 47. Guided rules 48. Data objects Expand section "48. Data objects" Collapse section "48. Data objects" 48.1. Creating data objects 49. Creating guided rules Expand section "49. Creating guided rules" Collapse section "49. Creating guided rules" 49.1. Adding WHEN conditions in guided rules 49.2. Adding THEN actions in guided rules 49.3. Defining enumerations for drop-down lists in rule assets Expand section "49.3. Defining enumerations for drop-down lists in rule assets" Collapse section "49.3. Defining enumerations for drop-down lists in rule assets" 49.3.1. Advanced enumeration options for rule assets 49.4. Adding other rule options Expand section "49.4. Adding other rule options" Collapse section "49.4. Adding other rule options" 49.4.1. Rule attributes 50. Executing rules 51. Next steps VII. Designing a decision service using guided rule templates Expand section "VII. Designing a decision service using guided rule templates" Collapse section "VII. Designing a decision service using guided rule templates" 52. Decision-authoring assets in Red Hat Decision Manager 53. Guided rule templates 54. Data objects Expand section "54. Data objects" Collapse section "54. Data objects" 54.1. Creating data objects 55. Creating guided rule templates Expand section "55. Creating guided rule templates" Collapse section "55. Creating guided rule templates" 55.1. Adding WHEN conditions in guided rule templates 55.2. Adding THEN actions in guided rule templates 55.3. Defining enumerations for drop-down lists in rule assets Expand section "55.3. Defining enumerations for drop-down lists in rule assets" Collapse section "55.3. Defining enumerations for drop-down lists in rule assets" 55.3.1. Advanced enumeration options for rule assets 55.4. Adding other rule options Expand section "55.4. Adding other rule options" Collapse section "55.4. Adding other rule options" 55.4.1. Rule attributes 56. Defining data tables for guided rule templates 57. Executing rules 58. Next steps VIII. Testing a decision service using test scenarios Expand section "VIII. Testing a decision service using test scenarios" Collapse section "VIII. Testing a decision service using test scenarios" 59. Test scenarios 60. Data objects Expand section "60. Data objects" Collapse section "60. Data objects" 60.1. Creating data objects 61. Test scenarios designer in Business Central Expand section "61. Test scenarios designer in Business Central" Collapse section "61. Test scenarios designer in Business Central" 61.1. Importing data objects 61.2. Importing a test scenario 61.3. Saving a test scenario 61.4. Copying a test scenario 61.5. Downloading a test scenario 61.6. Switching between versions of a test scenario 61.7. View or hide the alerts panel 61.8. Contextual menu options 61.9. Global settings for test scenarios Expand section "61.9. Global settings for test scenarios" Collapse section "61.9. Global settings for test scenarios" 61.9.1. Configuring global settings for rule-based test scenarios 61.9.2. Configuring global settings for DMN-based test scenarios 62. Test scenario template Expand section "62. Test scenario template" Collapse section "62. Test scenario template" 62.1. Creating a test scenario template for rule-based test scenarios 62.2. Using aliases in rule-based test scenarios 63. Test template for DMN-based test scenarios Expand section "63. Test template for DMN-based test scenarios" Collapse section "63. Test template for DMN-based test scenarios" 63.1. Creating a test scenario template for DMN-based test scenarios 64. Defining a test scenario 65. Background instance in test scenarios Expand section "65. Background instance in test scenarios" Collapse section "65. Background instance in test scenarios" 65.1. Adding a background data in rule-based test scenarios 65.2. Adding a background data in DMN-based test scenarios 66. Using list and map collections in test scenarios 67. Expression syntax in test scenarios Expand section "67. Expression syntax in test scenarios" Collapse section "67. Expression syntax in test scenarios" 67.1. Expression syntax in rule-based test scenarios 67.2. Expression syntax in DMN-based scenarios 68. Running the test scenarios 69. Running a test scenario locally 70. Exporting and importing test scenario spreadsheets Expand section "70. Exporting and importing test scenario spreadsheets" Collapse section "70. Exporting and importing test scenario spreadsheets" 70.1. Exporting a test scenario spreadsheet 70.2. Importing a test scenario spreadsheet 71. Coverage reports for test scenarios Expand section "71. Coverage reports for test scenarios" Collapse section "71. Coverage reports for test scenarios" 71.1. Generating coverage reports for rule-based test scenarios 71.2. Generating coverage reports for DMN-based test scenarios 72. Executing a test scenario using the KIE Server REST API 73. Creating test scenario using the sample Mortgages project 74. Test scenarios (legacy) designer in Business Central Expand section "74. Test scenarios (legacy) designer in Business Central" Collapse section "74. Test scenarios (legacy) designer in Business Central" 74.1. Creating and running a test scenario (legacy) Expand section "74.1. Creating and running a test scenario (legacy)" Collapse section "74.1. Creating and running a test scenario (legacy)" 74.1.1. Adding GIVEN facts in test scenarios (legacy) 74.1.2. Adding EXPECT results in test scenarios (legacy) 75. Feature comparison of legacy and new test scenario designer 76. Next steps IX. Decision engine in Red Hat Decision Manager Expand section "IX. Decision engine in Red Hat Decision Manager" Collapse section "IX. Decision engine in Red Hat Decision Manager" 77. Decision engine in Red Hat Decision Manager 78. KIE sessions Expand section "78. KIE sessions" Collapse section "78. KIE sessions" 78.1. Stateless KIE sessions Expand section "78.1. Stateless KIE sessions" Collapse section "78.1. Stateless KIE sessions" 78.1.1. Global variables in stateless KIE sessions 78.2. Stateful KIE sessions 78.3. KIE session pools 79. Inference and truth maintenance in the decision engine Expand section "79. Inference and truth maintenance in the decision engine" Collapse section "79. Inference and truth maintenance in the decision engine" 79.1. Fact equality modes in the decision engine 80. Execution control in the decision engine Expand section "80. Execution control in the decision engine" Collapse section "80. Execution control in the decision engine" 80.1. Salience for rules 80.2. Agenda groups for rules 80.3. Activation groups for rules 80.4. Rule execution modes and thread safety in the decision engine 80.5. Fact propagation modes in the decision engine 80.6. Agenda evaluation filters 80.7. Rule units in DRL rule sets Expand section "80.7. Rule units in DRL rule sets" Collapse section "80.7. Rule units in DRL rule sets" 80.7.1. Data sources for rule units 80.7.2. Rule unit execution control 80.7.3. Rule unit identity conflicts 81. Phreak rule algorithm in the decision engine Expand section "81. Phreak rule algorithm in the decision engine" Collapse section "81. Phreak rule algorithm in the decision engine" 81.1. Rule evaluation in Phreak Expand section "81.1. Rule evaluation in Phreak" Collapse section "81.1. Rule evaluation in Phreak" 81.1.1. Rule evaluation with forward and backward chaining 81.2. Rule base configuration 81.3. Sequential mode in Phreak 82. Complex event processing (CEP) Expand section "82. Complex event processing (CEP)" Collapse section "82. Complex event processing (CEP)" 82.1. Events in complex event processing 82.2. Declaring facts as events 82.3. Metadata tags for events 82.4. Event processing modes in the decision engine Expand section "82.4. Event processing modes in the decision engine" Collapse section "82.4. Event processing modes in the decision engine" 82.4.1. Negative patterns in decision engine stream mode 82.5. Property-change settings and listeners for fact types 82.6. Temporal operators for events 82.7. Session clock implementations in the decision engine 82.8. Event streams and entry points Expand section "82.8. Event streams and entry points" Collapse section "82.8. Event streams and entry points" 82.8.1. Declaring entry points for rule data 82.9. Sliding windows of time or length Expand section "82.9. Sliding windows of time or length" Collapse section "82.9. Sliding windows of time or length" 82.9.1. Declaring sliding windows for rule data 82.10. Memory management for events 83. Decision engine queries and live queries 84. Decision engine event listeners and debug logging Expand section "84. Decision engine event listeners and debug logging" Collapse section "84. Decision engine event listeners and debug logging" 84.1. Configuring a logging utility in the decision engine 85. Example decisions in Red Hat Decision Manager for an IDE Expand section "85. Example decisions in Red Hat Decision Manager for an IDE" Collapse section "85. Example decisions in Red Hat Decision Manager for an IDE" 85.1. Importing and executing Red Hat Decision Manager example decisions in an IDE 85.2. Hello World example decisions (basic rules and debugging) 85.3. State example decisions (forward chaining and conflict resolution) 85.4. Fibonacci example decisions (recursion and conflict resolution) 85.5. Pricing example decisions (decision tables) 85.6. Pet Store example decisions (agenda groups, global variables, callbacks, and GUI integration) 85.7. Honest Politician example decisions (truth maintenance and salience) 85.8. Sudoku example decisions (complex pattern matching, callbacks, and GUI integration) 85.9. Conway’s Game of Life example decisions (ruleflow groups and GUI integration) 85.10. House of Doom example decisions (backward chaining and recursion) 86. Performance tuning considerations with the decision engine 87. Additional resources X. Integrating machine learning with Red Hat Decision Manager Expand section "X. Integrating machine learning with Red Hat Decision Manager" Collapse section "X. Integrating machine learning with Red Hat Decision Manager" 88. Pragmatic AI 89. Credit card fraud dispute use case Expand section "89. Credit card fraud dispute use case" Collapse section "89. Credit card fraud dispute use case" 89.1. Using a PMML model with a DMN model to resolve credit card transaction disputes 89.2. Credit card transaction dispute exercise PMML file 90. Additional resources A. Versioning information B. Contact information Legal Notice Settings Close Language: 日本語 English Language: 日本語 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Language and Page Formatting Options Language: 日本語 English Language: 日本語 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Appendix B. Contact information Red Hat Decision Manager documentation team: brms-docs@redhat.com Previous Next