Jump To Close Expand all Collapse all Table of contents Developing decision services in Red Hat Process Automation 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 Process Automation Manager 2. Red Hat Process Automation Manager BPMN and DMN modelers Expand section "2. Red Hat Process Automation Manager BPMN and DMN modelers" Collapse section "2. Red Hat Process Automation Manager BPMN and DMN modelers" 2.1. Installing the Red Hat Process Automation Manager VS Code extension bundle 2.2. Configuring the Red Hat Process Automation Manager standalone editors 3. Creating and executing DMN and BPMN models using Maven 4. Decision Model and Notation (DMN) Expand section "4. Decision Model and Notation (DMN)" Collapse section "4. Decision Model and Notation (DMN)" 4.1. DMN conformance levels 4.2. DMN decision requirements diagram (DRD) components 4.3. Rule expressions in FEEL Expand section "4.3. Rule expressions in FEEL" Collapse section "4.3. Rule expressions in FEEL" 4.3.1. Data types in FEEL 4.3.2. Built-in functions in FEEL Expand section "4.3.2. Built-in functions in FEEL" Collapse section "4.3.2. Built-in functions in FEEL" 4.3.2.1. Conversion functions 4.3.2.2. Boolean functions 4.3.2.3. String functions 4.3.2.4. List functions 4.3.2.5. Numeric functions 4.3.2.6. Date and time functions 4.3.2.7. Range functions 4.3.2.8. Temporal functions 4.3.2.9. Sort functions 4.3.2.10. Context functions 4.3.3. Variable and function names in FEEL 4.4. DMN decision logic in boxed expressions Expand section "4.4. DMN decision logic in boxed expressions" Collapse section "4.4. DMN decision logic in boxed expressions" 4.4.1. DMN decision tables Expand section "4.4.1. DMN decision tables" Collapse section "4.4.1. DMN decision tables" 4.4.1.1. Hit policies in DMN decision tables 4.4.2. Boxed literal expressions 4.4.3. Boxed context expressions 4.4.4. Boxed relation expressions 4.4.5. Boxed function expressions 4.4.6. Boxed invocation expressions 4.4.7. Boxed list expressions 4.5. DMN model example 5. DMN support in Red Hat Process Automation Manager Expand section "5. DMN support in Red Hat Process Automation Manager" Collapse section "5. DMN support in Red Hat Process Automation Manager" 5.1. Configurable DMN properties in Red Hat Process Automation Manager 5.2. Configurable DMN validation in Red Hat Process Automation Manager 6. Creating and editing DMN models in Business Central Expand section "6. Creating and editing DMN models in Business Central" Collapse section "6. Creating and editing DMN models in Business Central" 6.1. Defining DMN decision logic in boxed expressions in Business Central 6.2. Creating custom data types for DMN boxed expressions in Business Central 6.3. Included models in DMN files in Business Central Expand section "6.3. Included models in DMN files in Business Central" Collapse section "6.3. Included models in DMN files in Business Central" 6.3.1. Including other DMN models within a DMN file in Business Central 6.3.2. Including PMML models within a DMN file in Business Central 6.4. Creating DMN models with multiple diagrams in Business Central 6.5. DMN model documentation in Business Central 6.6. DMN designer navigation and properties in Business Central 7. DMN model execution Expand section "7. DMN model execution" Collapse section "7. DMN model execution" 7.1. Embedding a DMN call directly in a Java application 7.2. Executing a DMN service using the KIE Server Java client API 7.3. Executing a DMN service using the KIE Server REST API 7.4. REST endpoints for specific DMN models 8. 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" 9. Decision-authoring assets in Red Hat Process Automation Manager 10. Predictive Model Markup Language (PMML) Expand section "10. Predictive Model Markup Language (PMML)" Collapse section "10. Predictive Model Markup Language (PMML)" 10.1. PMML conformance levels 11. PMML model examples 12. PMML support in Red Hat Process Automation Manager Expand section "12. PMML support in Red Hat Process Automation Manager" Collapse section "12. PMML support in Red Hat Process Automation Manager" 12.1. PMML trusty support and naming conventions in Red Hat Process Automation Manager 12.2. PMML legacy support and naming conventions in Red Hat Process Automation Manager Expand section "12.2. PMML legacy support and naming conventions in Red Hat Process Automation Manager" Collapse section "12.2. PMML legacy support and naming conventions in Red Hat Process Automation Manager" 12.2.1. PMML extensions in Red Hat Process Automation Manager 13. PMML model execution Expand section "13. PMML model execution" Collapse section "13. PMML model execution" 13.1. Embedding a PMML trusty call directly in a Java application 13.2. Embedding a PMML legacy call directly in a Java application Expand section "13.2. Embedding a PMML legacy call directly in a Java application" Collapse section "13.2. Embedding a PMML legacy call directly in a Java application" 13.2.1. PMML execution helper class 13.3. Executing a PMML model using KIE Server 14. 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" 15. Decision-authoring assets in Red Hat Process Automation Manager 16. DRL (Drools Rule Language) rules Expand section "16. DRL (Drools Rule Language) rules" Collapse section "16. DRL (Drools Rule Language) rules" 16.1. Packages in DRL 16.2. Import statements in DRL 16.3. Functions in DRL 16.4. Queries in DRL 16.5. Type declarations and metadata in DRL Expand section "16.5. Type declarations and metadata in DRL" Collapse section "16.5. Type declarations and metadata in DRL" 16.5.1. Type declarations without metadata in DRL 16.5.2. Enumerative type declarations in DRL 16.5.3. Extended type declarations in DRL 16.5.4. Type declarations with metadata in DRL 16.5.5. Metadata tags for fact type and attribute declarations in DRL 16.5.6. Property-change settings and listeners for fact types 16.5.7. Access to DRL declared types in application code 16.6. Global variables in DRL 16.7. Rule attributes in DRL Expand section "16.7. Rule attributes in DRL" Collapse section "16.7. Rule attributes in DRL" 16.7.1. Timer and calendar rule attributes in DRL 16.8. Rule conditions in DRL (WHEN) Expand section "16.8. Rule conditions in DRL (WHEN)" Collapse section "16.8. Rule conditions in DRL (WHEN)" 16.8.1. Patterns and constraints 16.8.2. Bound variables in patterns and constraints 16.8.3. Nested constraints and inline casts 16.8.4. Date literal in constraints 16.8.5. Supported operators in DRL pattern constraints 16.8.6. Operator precedence in DRL pattern constraints 16.8.7. Supported rule condition elements in DRL (keywords) 16.8.8. OOPath syntax with graphs of objects in DRL rule conditions 16.9. Rule actions in DRL (THEN) Expand section "16.9. Rule actions in DRL (THEN)" Collapse section "16.9. Rule actions in DRL (THEN)" 16.9.1. Supported rule action methods in DRL 16.9.2. Other rule action methods from drools variable 16.9.3. Advanced rule actions with conditional and named consequences 16.10. Comments in DRL files 16.11. Error messages for DRL troubleshooting 17. Data objects Expand section "17. Data objects" Collapse section "17. Data objects" 17.1. Creating data objects 18. Creating DRL rules in Business Central Expand section "18. Creating DRL rules in Business Central" Collapse section "18. Creating DRL rules in Business Central" 18.1. Adding WHEN conditions in DRL rules 18.2. Adding THEN actions in DRL rules 19. Executing rules 20. Other methods for creating and executing DRL rules Expand section "20. Other methods for creating and executing DRL rules" Collapse section "20. Other methods for creating and executing DRL rules" 20.1. Creating and executing DRL rules using Java 20.2. Creating and executing DRL rules using Maven 21. Example decisions in Red Hat Process Automation Manager for an IDE Expand section "21. Example decisions in Red Hat Process Automation Manager for an IDE" Collapse section "21. Example decisions in Red Hat Process Automation Manager for an IDE" 21.1. Importing and executing Red Hat Process Automation Manager example decisions in an IDE 21.2. Hello World example decisions (basic rules and debugging) 21.3. State example decisions (forward chaining and conflict resolution) 21.4. Fibonacci example decisions (recursion and conflict resolution) 21.5. Pricing example decisions (decision tables) 21.6. Pet Store example decisions (agenda groups, global variables, callbacks, and GUI integration) 21.7. Honest Politician example decisions (truth maintenance and salience) 21.8. Sudoku example decisions (complex pattern matching, callbacks, and GUI integration) 21.9. Conway’s Game of Life example decisions (ruleflow groups and GUI integration) 21.10. House of Doom example decisions (backward chaining and recursion) 22. Performance tuning considerations with DRL 23. 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" 24. Decision-authoring assets in Red Hat Process Automation Manager 25. Guided decision tables 26. Data objects Expand section "26. Data objects" Collapse section "26. Data objects" 26.1. Creating data objects 27. Creating guided decision tables 28. Hit policies for guided decision tables Expand section "28. Hit policies for guided decision tables" Collapse section "28. Hit policies for guided decision tables" 28.1. Hit policy examples: Decision table for discounts on movie tickets Expand section "28.1. Hit policy examples: Decision table for discounts on movie tickets" Collapse section "28.1. Hit policy examples: Decision table for discounts on movie tickets" 28.1.1. Types of guided decision tables 29. Adding columns to guided decision tables 30. Types of columns in guided decision tables Expand section "30. Types of columns in guided decision tables" Collapse section "30. Types of columns in guided decision tables" 30.1. "Add a Condition" Expand section "30.1. "Add a Condition"" Collapse section "30.1. "Add a Condition"" 30.1.1. Inserting an any other value in condition column cells 30.2. "Add a Condition BRL fragment" 30.3. "Add a Metadata column" 30.4. "Add an Action BRL fragment" 30.5. "Add an Attribute column" 30.6. "Delete an existing fact" 30.7. "Execute a Work Item" 30.8. "Set the value of a field" 30.9. "Set the value of a field with a Work Item result" 31. Viewing Rule Name column in guided decision tables 32. Sorting column values in guided decision tables 33. Editing or deleting columns in guided decision tables 34. Adding rows and defining rules in guided decision tables 35. Defining enumerations for drop-down lists in rule assets Expand section "35. Defining enumerations for drop-down lists in rule assets" Collapse section "35. Defining enumerations for drop-down lists in rule assets" 35.1. Advanced enumeration options for rule assets 36. Real-time verification and validation of guided decision tables Expand section "36. Real-time verification and validation of guided decision tables" Collapse section "36. Real-time verification and validation of guided decision tables" 36.1. Types of problems in guided decision tables 36.2. Types of notifications 36.3. Disabling verification and validation of guided decision tables 37. Converting a guided decision table to a spreadsheet decision table 38. Executing rules 39. 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" 40. Decision-authoring assets in Red Hat Process Automation Manager 41. Spreadsheet decision tables 42. Data objects Expand section "42. Data objects" Collapse section "42. Data objects" 42.1. Creating data objects 43. Decision table use case 44. Defining spreadsheet decision tables Expand section "44. Defining spreadsheet decision tables" Collapse section "44. Defining spreadsheet decision tables" 44.1. RuleSet definitions 44.2. RuleTable definitions 44.3. Additional rule attributes for RuleSet or RuleTable definitions 45. Uploading spreadsheet decision tables to Business Central 46. Converting an uploaded spreadsheet decision table to a guided decision table in Business Central 47. Executing rules 48. 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" 49. Decision-authoring assets in Red Hat Process Automation Manager 50. Guided rules 51. Data objects Expand section "51. Data objects" Collapse section "51. Data objects" 51.1. Creating data objects 52. Creating guided rules Expand section "52. Creating guided rules" Collapse section "52. Creating guided rules" 52.1. Adding WHEN conditions in guided rules 52.2. Adding THEN actions in guided rules 52.3. Defining enumerations for drop-down lists in rule assets Expand section "52.3. Defining enumerations for drop-down lists in rule assets" Collapse section "52.3. Defining enumerations for drop-down lists in rule assets" 52.3.1. Advanced enumeration options for rule assets 52.4. Adding other rule options Expand section "52.4. Adding other rule options" Collapse section "52.4. Adding other rule options" 52.4.1. Rule attributes 53. Executing rules 54. 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" 55. Decision-authoring assets in Red Hat Process Automation Manager 56. Guided rule templates 57. Data objects Expand section "57. Data objects" Collapse section "57. Data objects" 57.1. Creating data objects 58. Creating guided rule templates Expand section "58. Creating guided rule templates" Collapse section "58. Creating guided rule templates" 58.1. Adding WHEN conditions in guided rule templates 58.2. Adding THEN actions in guided rule templates 58.3. Defining enumerations for drop-down lists in rule assets Expand section "58.3. Defining enumerations for drop-down lists in rule assets" Collapse section "58.3. Defining enumerations for drop-down lists in rule assets" 58.3.1. Advanced enumeration options for rule assets 58.4. Adding other rule options Expand section "58.4. Adding other rule options" Collapse section "58.4. Adding other rule options" 58.4.1. Rule attributes 59. Defining data tables for guided rule templates 60. Executing rules 61. 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" 62. Test scenarios 63. Data objects Expand section "63. Data objects" Collapse section "63. Data objects" 63.1. Creating data objects 64. Test scenarios designer in Business Central Expand section "64. Test scenarios designer in Business Central" Collapse section "64. Test scenarios designer in Business Central" 64.1. Importing data objects 64.2. Importing a test scenario 64.3. Saving a test scenario 64.4. Copying a test scenario 64.5. Downloading a test scenario 64.6. Switching between versions of a test scenario 64.7. View or hide the alerts panel 64.8. Contextual menu options 64.9. Global settings for test scenarios Expand section "64.9. Global settings for test scenarios" Collapse section "64.9. Global settings for test scenarios" 64.9.1. Configuring global settings for rule-based test scenarios 64.9.2. Configuring global settings for DMN-based test scenarios 65. Test scenario template Expand section "65. Test scenario template" Collapse section "65. Test scenario template" 65.1. Creating a test scenario template for rule-based test scenarios 65.2. Using aliases in rule-based test scenarios 66. Test template for DMN-based test scenarios Expand section "66. Test template for DMN-based test scenarios" Collapse section "66. Test template for DMN-based test scenarios" 66.1. Creating a test scenario template for DMN-based test scenarios 67. Defining a test scenario 68. Background instance in test scenarios Expand section "68. Background instance in test scenarios" Collapse section "68. Background instance in test scenarios" 68.1. Adding a background data in rule-based test scenarios 68.2. Adding a background data in DMN-based test scenarios 69. Using list and map collections in test scenarios 70. Expression syntax in test scenarios Expand section "70. Expression syntax in test scenarios" Collapse section "70. Expression syntax in test scenarios" 70.1. Expression syntax in rule-based test scenarios 70.2. Expression syntax in DMN-based test scenarios 71. Running the test scenarios 72. Running a test scenario locally 73. Exporting and importing test scenario spreadsheets Expand section "73. Exporting and importing test scenario spreadsheets" Collapse section "73. Exporting and importing test scenario spreadsheets" 73.1. Exporting a test scenario spreadsheet 73.2. Importing a test scenario spreadsheet 74. Coverage reports for test scenarios Expand section "74. Coverage reports for test scenarios" Collapse section "74. Coverage reports for test scenarios" 74.1. Generating coverage reports for rule-based test scenarios 74.2. Generating coverage reports for DMN-based test scenarios 75. Executing a test scenario using the KIE Server REST API 76. Creating test scenario using the sample Mortgages project 77. Test scenarios (legacy) designer in Business Central Expand section "77. Test scenarios (legacy) designer in Business Central" Collapse section "77. Test scenarios (legacy) designer in Business Central" 77.1. Creating and running a test scenario (legacy) Expand section "77.1. Creating and running a test scenario (legacy)" Collapse section "77.1. Creating and running a test scenario (legacy)" 77.1.1. Adding GIVEN facts in test scenarios (legacy) 77.1.2. Adding EXPECT results in test scenarios (legacy) 78. Feature comparison of legacy and new test scenario designer 79. Next steps IX. Decision engine in Red Hat Process Automation Manager Expand section "IX. Decision engine in Red Hat Process Automation Manager" Collapse section "IX. Decision engine in Red Hat Process Automation Manager" 80. Decision engine in Red Hat Process Automation Manager 81. KIE sessions Expand section "81. KIE sessions" Collapse section "81. KIE sessions" 81.1. Stateless KIE sessions Expand section "81.1. Stateless KIE sessions" Collapse section "81.1. Stateless KIE sessions" 81.1.1. Global variables in stateless KIE sessions 81.2. Stateful KIE sessions 81.3. KIE session pools 82. Inference and truth maintenance in the decision engine Expand section "82. Inference and truth maintenance in the decision engine" Collapse section "82. Inference and truth maintenance in the decision engine" 82.1. Fact equality modes in the decision engine 83. Execution control in the decision engine Expand section "83. Execution control in the decision engine" Collapse section "83. Execution control in the decision engine" 83.1. Salience for rules 83.2. Agenda groups for rules 83.3. Activation groups for rules 83.4. Rule execution modes and thread safety in the decision engine 83.5. Fact propagation modes in the decision engine 83.6. Agenda evaluation filters 84. Phreak rule algorithm in the decision engine Expand section "84. Phreak rule algorithm in the decision engine" Collapse section "84. Phreak rule algorithm in the decision engine" 84.1. Rule evaluation in Phreak Expand section "84.1. Rule evaluation in Phreak" Collapse section "84.1. Rule evaluation in Phreak" 84.1.1. Rule evaluation with forward and backward chaining 84.2. Rule base configuration 84.3. Sequential mode in Phreak 85. Complex event processing (CEP) Expand section "85. Complex event processing (CEP)" Collapse section "85. Complex event processing (CEP)" 85.1. Events in complex event processing 85.2. Declaring facts as events 85.3. Metadata tags for events 85.4. Event processing modes in the decision engine Expand section "85.4. Event processing modes in the decision engine" Collapse section "85.4. Event processing modes in the decision engine" 85.4.1. Negative patterns in decision engine stream mode 85.5. Property-change settings and listeners for fact types 85.6. Temporal operators for events 85.7. Session clock implementations in the decision engine 85.8. Event streams and entry points Expand section "85.8. Event streams and entry points" Collapse section "85.8. Event streams and entry points" 85.8.1. Declaring entry points for rule data 85.9. Sliding windows of time or length Expand section "85.9. Sliding windows of time or length" Collapse section "85.9. Sliding windows of time or length" 85.9.1. Declaring sliding windows for rule data 85.10. Memory management for events 86. Decision engine queries and live queries 87. Decision engine event listeners and debug logging Expand section "87. Decision engine event listeners and debug logging" Collapse section "87. Decision engine event listeners and debug logging" 87.1. Practices for development of event listeners 88. Configuring a logging utility in the decision engine 89. Example decisions in Red Hat Process Automation Manager for an IDE Expand section "89. Example decisions in Red Hat Process Automation Manager for an IDE" Collapse section "89. Example decisions in Red Hat Process Automation Manager for an IDE" 89.1. Importing and executing Red Hat Process Automation Manager example decisions in an IDE 89.2. Hello World example decisions (basic rules and debugging) 89.3. State example decisions (forward chaining and conflict resolution) 89.4. Fibonacci example decisions (recursion and conflict resolution) 89.5. Pricing example decisions (decision tables) 89.6. Pet Store example decisions (agenda groups, global variables, callbacks, and GUI integration) 89.7. Honest Politician example decisions (truth maintenance and salience) 89.8. Sudoku example decisions (complex pattern matching, callbacks, and GUI integration) 89.9. Conway’s Game of Life example decisions (ruleflow groups and GUI integration) 89.10. House of Doom example decisions (backward chaining and recursion) 90. Performance tuning considerations with the decision engine 91. Additional resources X. Integrating machine learning with Red Hat Process Automation Manager Expand section "X. Integrating machine learning with Red Hat Process Automation Manager" Collapse section "X. Integrating machine learning with Red Hat Process Automation Manager" 92. Pragmatic AI 93. Credit card fraud dispute use case Expand section "93. Credit card fraud dispute use case" Collapse section "93. Credit card fraud dispute use case" 93.1. Using a PMML model with a DMN model to resolve credit card transaction disputes 93.2. Credit card transaction dispute exercise PMML file 94. 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 Chapter 91. Additional resources Designing your decision management architecture for Red Hat Process Automation Manager Getting started with decision services Designing a decision service using DRL rules Packaging and deploying a Red Hat Process Automation Manager project Previous Next