cond-table
Checks data object against decision table.
-> DMN Notation.
Usage
const Table = Table; var testTable = description: 'Applicant Risk rating' // optional hitPolicy: 'First' // optional (actual only First possible) input: 'age': description: 'Applicant Age' // optional type: 'number' // optional 'hist': description: 'Medical History' type: 'string' output: 'risk': description: 'Risk Rating' //optional type: 'string' //optional rules: 'older 60 / good': 'age': '>60' 'hist': 'good' 'risk': 'Medium' 'older 60 / bad': 'age': '>60' 'hist': 'bad' 'risk': 'High' 'mid age': 'age': '[25..60]' 'risk': 'Medium' 'kids / good': 'age': '<25' 'hist': 'good' 'risk': 'Low' 'kids / bad)': 'age': '<25' 'hist': 'bad' 'risk': 'Medium' ; // example data sets, to be checked var testData = 'age': '65' 'hist':'good' 'age': '70' 'hist':'bad' 'age': '26' 'hist':'good' 'age': '20' 'hist':'bad' 'age': '10' 'hist':'good'; // create an instancelet table = testTable; // use table to process data sets for let i=0; i< testDatalength; i++ let result = table; // result.risk is set now console;;
More Examples
Initiate and compile in separate steps
// create an instance direct..let table = testTable; // ...or set and compile separatelylet table = ;table;
Formular expressions in input
let testTable = description: 'Simple table' hitPolicy: 'Unique' input: 'x': description: 'Input x' type: 'number' 'y': description: 'Input y' type: 'number' default: 2 'a': description: 'Formula Input' type: 'expression' // optional expression: '2 * x + y' // check expr-eval for syntax output: 'z': {} 't': {} rules: 'First rule': 'x': '< 5, [20..30]' 'y': '> 6,[30..40]' 'a': '< 15' // uses the calculated value 'z': '7' 't': 'first' 'Second rule': 'x': '> 5' 'a': '> 15' 'z': '2' 't': 'second' ;
Set default values for input (if value is not provided in data sets)
input: 'x': description: 'Input x' type: 'number' default: '0' // 0 must be in quotes 'y': description: 'Input y' type: 'number' default: 2 // with or without quotes