SlideShare a Scribd company logo
1 of 60
Download to read offline
rapidgen.com 
Howard Rogers 
Director Technical Support 
howard.rogers@rapidgen.com 
Decision Tables as a Programming tool
rapidgen.com 
Agenda 
•A brief history 
•Decision table structures 
•Rule formats 
•Rule redundancy, reduction and optimisation 
•Relevance testing 
•Some practical examples 
•Current examples of use 
•Future developments 
•Questions and Answers 
2
rapidgen.com 
Speaker 
•Statistics & Operation Research 
•UK National Health Service 
•35 years IT 
•Decision table based languages and compilers 
•Query & reporting tools 
•Generic file & database access 
•Brief interlude with RTPI 
•Technical support 
3
rapidgen.com 
History 
•NASA 
•Morgan Crucible – LITA – List &Tabulate 
•TABN for ICL 1900 series mainframes 
•(DE)TAB-360 for IBM System/360 
•UNITAB for UNIVAC 
•HTAB for Honeywell 
•TAB-11 for RSTS/E on PDP-11 
•FTL6/DTPL for ICT 1900 series 
•RPL-11 for RT-11, RSTS/E, RSX-11 on PDP-11 
•RPL-3 for IBM System/3 
•Filetab-D for x86 and PDP-11, OpenVMS VAX 
•FPL - IBM PCs and compatibles. 
•RPL, Rapid-Expert and expertGenius extended syntax for Microsoft Windows, Unix, Linux and OpenVMS,VAX, Alpha & Itanium 
4
rapidgen.com 
History 
•Excel – query tables 
•COPE – Translate DTs to COBOL 
•LogicGEM – Translate to BASIC,C, C++, FORTRAN, Pascal etc etc 
•CCIDE – Pre-processor for BASIC, JAVA, CC, C++, BASH, QB, VB, and EX(euphoria) 
•Silk (Simple In-line Logic Kompiler) converting decision tables to Cobol code and vice versa. 
•PASPREP – Pascal preprocessor 
•Many many others 
5
rapidgen.com 
Decision table structure 
•Conditions 
•Actions 
•Condition rules 
•Action rules 
6
rapidgen.com 
Single Condition Decision Table 
Condition Stubs 
Rules 
Action Stubs 
Actions 
7 
Quantity > 100 
Y N 
Apply 20% Discount 
X -
rapidgen.com 
Decision Tables Horizontal vs Vertical 
Condition Stubs 
Action Stubs 
Rules 
Actions 
8 
Quantity > 100 
Apply 20% Discount 
Y 
N 
X 
-
rapidgen.com 
Multiple Single Decision Table 
Condition Stubs 
Rules 
Action Stubs 
Actions 
9 
Quantity > 100 
Y Y N N 
Cash payment 
Y N Y N 
Apply 20% Discount 
X - - - 
Apply 10% Discount 
- X - - 
Apply 5% Discount 
- - X - 
No discount 
- - - -
rapidgen.com 
Multiple Condition DTs 
10 
•Complete True/False Y N require 2^Conditions rules 
•3 Conditions – 8 rules 
•4 Conditions – 16 rules 
•etc 
•Use of “-” to reduce completeness 
•Practical limit 32
rapidgen.com 
Five Conditions – One rule 
11 
Initially no discount 
Quantity > 100 
Y - 
Cash payment 
Y - 
Credit_check 
Y - 
Product type is laptop 
Y - 
Employee 
N - 
Apply 5% Discount 
X -
rapidgen.com 
Multiple Section Decision Table 
12 
Quantity > 100 
Y Y N N 
Cash payment 
Y N Y N 
Apply 20% Discount 
X - - - 
Apply 10% Discount 
- X - - 
Apply 5% Discount 
- - X - 
No discount 
- - - - 
Discount_amount < $1 
Y - 
No discount 
X - 
Discount amount > $1000 
Y - 
Set discount $1000 
X -
rapidgen.com 
Simplifying Decision Tables 1 
13 
1 2 3 4 5 6 7 8 
Credit limit exceeded 
Y Y Y Y N N N N 
Cash payment 
Y Y N N Y Y N N 
Special clearance 
Y N Y N Y N Y N 
Accept order 
X X X - X X X X 
Reject Order 
- - - X - - - -
rapidgen.com 
Simplifying Decision Tables 2 
14 
1&2 3 4 5 6 7 8 
Credit limit exceeded 
Y Y Y N N N N 
Cash payment 
Y N N Y Y N N 
Special clearance 
- Y N Y N Y N 
Accept order 
X X - X X X X 
Reject Order 
- - X - - - -
rapidgen.com 
Simplifying Decision Tables 3 
15 
1&2 3 4 5&6 7&8 
Credit limit exceeded 
Y Y Y N N 
Cash payment 
Y N N Y N 
Special clearance 
- Y N - - 
Accept order 
X X - X X 
Reject Order 
- - X - -
rapidgen.com 
Simplifying Decision Tables 4 
16 
1&2 3 4 567&8 
Credit limit exceeded 
Y Y Y N 
Cash payment 
Y N N - 
Special clearance 
- Y N - 
Accept order 
X X - X 
Reject Order 
- - X -
rapidgen.com 
Simplifying Decision Tables 5 
17 
4 123567&8 
Credit limit exceeded 
Y ELSE 
Cash payment 
N - 
Special clearance 
N - 
Accept order 
- X 
Reject Order 
X -
rapidgen.com 
Optimising Decision Tables 
18 
1 2 3 4 5 6 7 8 
Credit limit exceeded 
Y Y Y Y N N N N 
Cash payment 
Y Y N N Y Y N N 
Special clearance 
Y N Y N Y N Y N 
Accept order 
X - X - X X X X 
Reject Order 
- X - X - - - - 
2&4 123567&8 
Credit limit exceeded 
Y ELSE 
Special clearance 
N - 
Accept order 
- X 
Reject Order 
X -
rapidgen.com 
ELSE Rule 
19 
4 123567&8 
Credit limit exceeded 
Y ELSE 
Cash payment 
N - 
Special clearance 
N - 
Accept order 
- X 
Reject Order 
X -
rapidgen.com 
Simplifying Decision Tables – Extended entry 
20 
TRANSKEY GT MASTKEY 
Y - - - ELSE 
TRANSKEY EQ MASTKEY 
- Y Y - - 
TRANSKEY LT MASTKEY 
- - - Y - 
TRANSTYPE = “I” 
- - - Y - 
TRANSTYPE = “D” 
- - Y - - 
TRANSTYPE = “A” 
- Y - - - 
CALL PROCESS_MATCH 
- X - - - 
CALL PROCESS_MISS 
- - X - - 
CALL PROCESS_ADD 
- - - X - 
CALL NEXT_TRANS 
- X X X - 
CALL NEXT_MAST 
X X X - - 
REPEAT 
X X X X -
rapidgen.com 
Simplifying Decision Tables – Extended entry 
21 
TRANSKEY ? MASTKEY 
> = = < ELSE 
TRANSTYPE = “?” 
- A D I - 
CALL PROCESS_? 
- MATCH MISS ADD - 
CALL NEXT_TRANS 
- X X X - 
CALL NEXT_MAST 
X X X - - 
REPEAT 
X X X X -
rapidgen.com 
Ambiguity or Multi-ruling? 
22 
Set discount 
Initialise DISCOUNT_PERC 
Cash payment 
Y - - - 
Special offer 
- Y - - 
Good credit history 
- - Y - 
DISCOUNT_PERC + ? 
5 10 2 -
rapidgen.com 
Code generation 1 
23 
|--------------------------------------------------| 
|--------------------------------------------------| 
|# |STATEMENT 1 2 3 4 5 6 7 8 | 
|--------------------------------------------------| 
|C1 |Cash payment |y |y |y |y |n |n |n |n | 
|C2 |Special offer |y |y |n |n |y |y |n |n | 
|C3 |Good credit history |y |n |y |n |y |n |y |n | 
|==================================================| 
|A1 |Discount initialise | | | | | | | | | 
|A2 |Discount + 5 |X |X |X |X | | | | | 
|A3 |Discount + 10 |X |X | | |X |X | | | 
|A4 |Discount + 2 |X | |X | |X | |X | | 
|--------------------------------------------------|
rapidgen.com 
Generation – Nested If/else 1 
24 
{ 
if ((Cash payment)) { 
if ((Special offer)) { 
if ((Good credit history)) { 
/* rule 1 */ 
Discount + 5; 
Discount + 10; 
Discount + 2; } 
else { 
/* rule 2 */ 
Discount + 5; 
Discount + 10; } 
} 
else { 
if ((Good credit history)) { 
/* rule 3 */ 
Discount + 5; 
Discount + 2; } 
else { 
/* rule 4 */ 
Discount + 5; 
} 
} 
} 
else {
rapidgen.com 
Generation – Nested If/else 2 
25 
if ((Special offer)) { 
if ((Good credit history)) { 
/* rule 5 */ 
Discount + 10; 
Discount + 2; 
} 
else { 
/* rule 6 */ 
Discount + 10; 
} 
} 
else { 
if ((Good credit history)) { 
/* rule 7 */ 
Discount + 2; 
} 
else { 
/* rule 8 */ 
} 
} 
} 
}
rapidgen.com 
Generation – Case Switch 1 
26 
{ 
if ((Cash payment)) { 
if ((Special offer)) { 
if ((Good credit history)) { 
rule_number = 1; 
} 
else { 
rule_number = 2; 
} 
} 
else { 
if ((Good credit history)) { 
rule_number = 3; 
} 
else { 
rule_number = 4; 
} 
} 
}
rapidgen.com 
Generation – Case Switch 2 
27 
else { 
if ((Special offer)) { 
if ((Good credit history)) { 
rule_number = 5; 
} 
else { 
rule_number = 6; 
} 
} 
else { 
if ((Good credit history)) { 
rule_number = 7; 
} 
else { 
rule_number = 8; 
} 
} 
}
rapidgen.com 
Generation – Case Switch 3 
28 
switch (rule_number) { 
case 1: 
Discount + 5; 
Discount + 10 ; 
Discount + 2; 
break; 
case 2: 
Discount + 5; 
Discount + 10; 
break; 
case 3: 
Discount + 5; 
Discount + 2; 
break; 
case 4: 
Discount + 5; 
break;
rapidgen.com 
Generation – Case Switch 4 
29 
case 5: 
Discount + 10; 
Discount + 2; 
break; 
case 6: 
Discount + 10; 
break; 
case 7: 
Discount + 2; 
break; 
case 8: 
break; }
rapidgen.com 
Generation – Rule List 1 
30 
{ 
if ( ((Cash payment)) && 
((Special offer)) && 
((Good credit history)) ) { 
Discount + 5; Discount + 10; Discount + 2; 
} 
if ( ((Cash payment)) && 
((Special offer)) && 
(!(Good credit history)) ) { 
Discount + 5; Discount + 10; 
} 
if ( ((Cash payment)) && 
(!(Special offer)) && 
((Good credit history)) ) { 
Discount + 5; Discount + 2; 
} 
if ( ((Cash payment)) && 
(!(Special offer)) && 
(!(Good credit history)) ) { 
Discount + 5; 
}
rapidgen.com 
Generation – Rule List 2 
31 
if ( (!(Cash payment)) && 
((Special offer)) && 
((Good credit history)) ) { 
Discount + 10; Discount + 2; 
} 
if ( (!(Cash payment)) && 
((Special offer)) && 
(!(Good credit history)) ) { 
Discount + 10; 
} 
if ( (!(Cash payment)) && 
(!(Special offer)) && 
((Good credit history)) ) { 
Discount + 2; 
} 
if ( (!(Cash payment)) && 
(!(Special offer)) && 
(!(Good credit history)) ) { 
} 
}
rapidgen.com 
Generation – Rule Mask 
32 
{Mask = 11111111 
{if ( Cash payment) 
Mask AND 11110000; 
} 
{if ( Special Offer) 
Mask AND 11001100; 
} 
{if (Good credit history) 
Mask AND 10101010; 
} 
{if (Mask AND 11110000) 
Discount + 5 ; 
} 
if (Mask AND 11001100) 
Discount + 10; 
} 
if (Mask AND 10101010) 
Discount + 2; 
}
rapidgen.com 
Rule masking 
33 
•Succinct code 
•Reduces repetition of condition testing 
•Reduced repetition of action code 
•Fast execution 
•No frequency/cost weighting of rules needed 
• All conditions are evaluated
rapidgen.com 
Relevance Testing 
34 
AGE > 50 
Y - - 
CALL ADJUST_COVER 
Y - - 
TRANSKEY LT MASTKEY 
- Y - 
LOOKUP MASTER TRANSKEY 
- Y - 
Some operations require dynamic masking where actions may be performed or I/O occurs
rapidgen.com 
Relevance Testing 
35 
AGE > 50 
Y - - 
COVER + 20 
R - - 
TRANSKEY LT MASTKEY 
- Y - 
DISPLAY “Message” 
- R - 
Dynamic masking again needed when Actions are inserted into condition section of Decision Table using “R”
rapidgen.com 
Decision table linkage 
36 
CALLs to other DTs or object library routines 
CALL Credit_limit_exceeded 
Y ELSE 
CALL Cash_payment 
N - 
CALL Special_clearance 
N - 
CALL ACCEPT_ORDER 
- X 
CALL REJECT_ORDER 
X - 
GOTO link to DT or indirect CALL 
CALL Credit_limit_exceeded 
Y ELSE 
CALL Cash_payment 
N - 
CALL Special_clearance 
N - 
GOTO ACCEPT_ORDER 
- X 
CALL_I Variable_name 
X -
rapidgen.com 
Requirements of a DT language 
•Feature rich language 
•Support for multiple data types 
•Unmatched data type comparison 
•Good string handling/text manipulation 
•Access external routines/library functions 
•File, database, object and data dictionary 
•Callable access from other products 
•Source code maintenance, version control 
•Compiled and portable execution 
37
rapidgen.com 
Decision Tables in other products 
•Uses GUI in SAP HANA Studio 
•SAP Parameter/Database DTs 
•Alternate use via Excel spreadsheets 
•SMARTS 
•OpenRules Engine 
•Decision First Modeler 
•Drools 
•Many more … 
38
rapidgen.com 
Usage of RPL - expertGenius 
•Self compiling 
•Cross compiling 
•Source of Genius Suite 
•Code writing and compiling 4GL and RAD toolset 
•Complete layered application suites 
•Reporting – fixed logic 
39
rapidgen.com 
Genius deployment 
•Aerospace factory tracking systems 
•Mobile phone billing systems 
•Payroll data mining 
•HR system ad-hoc querying 
•Newspaper distribution system 
•Stock control 
•Sales order dashboard & EIS 
•Web based on-line parts ordering 
40
rapidgen.com 
CDT Callable Decision Tables 
•Simple calculator 
•Calculator code 
•Tax formula (UK) 
•Tax calculator 
•Tax code 
•CDT Callable access from other languages and applications 
41
rapidgen.com 
Future developments 
•Extend range of generic database access 
•Ports to new architectures 
•Macro expansions for FEEL or S-FEEL 
•GUI extensions 
•CDT Callable access from other languages and applications 
•Cloud based compiler 
42
rapidgen.com 
Questions 
? 
43
rapidgen.com 
Howard Rogers 
Director Technical Support 
howard.rogers@rapidgen.com 
howard.rogers@rapidgen.co.uk 
Decision Tables as a Programming tool
rapidgen.com 
Filetab 
•DEcision TABle-based computer programming language. 
•Long history originating in late 1960s 
•Developed by the UK National Computing Centre (NCC) 
•Originally used on ICL OS such as GEORGE 2/3 and VME, 
•Ported to a large number of others. 
45
rapidgen.com 
Filetab 
•Original architect - Tom Barnard, who developed the program (LITA - LIst and TAbulate) for Morgan Crucible on an ICL 1902 from 1965–1968. Original purpose was to produce simple ad hoc reports with a plugboard on a punched card tabulator, replaced PLAN assembly language. 
•80 column card based parameters 
•Reporting tool specifying input and output formats, headings, sequencing and totalling. 
46
rapidgen.com 
RapidGen Solutions 
RapidGen solves tough integration problems for OpenVMS customers 
• A variety of flexible options available 
–Analyse and provide ‘Customised Solutions’ 
–Future Proofing options with RapidGen 
• In-depth Legacy expertise 
• Services + Software 
–OpenVMS to Linux Migration Routines 
•Databases and Porting 
•Data Structures migration 
47
rapidgen.com 
What Customers Tell Us 
Want to preserve, modernize or replace 
• Total cost of ownership 
• Risk, flexibility 
…but difficult 
• Bespoke or end-of-life applications 
• Custom interfaces issues 
• Skills shortage becoming more evident 
• Application Changes not permitted 
–E.g. Aerospace, Defence, Nuclear, Utilities 
48
rapidgen.com 
Customers Want Flexibility They Need Options 
Choices 
1.Update OpenVMS 
–Until end of 2015 
2.Modernise 
–Translate data 
–Translate logic 
–Redefine logic in 4GL 
–Redevelop 
–Seamless Transition 
3.Emulation Options 
–Reduce Operating Costs 
–Suitable for some 
Want 
•Proceed in stages 
–Reduces risk 
•Integration 
–Legacy ↔ Modern 
•Portability 
–Future-proof 
•Cost-effective Solutions 
49
rapidgen.com 
HP Forward-looking statements 
Published Jan 2014 
This is a rolling (up to three year) roadmap and is subject to change without notice. 
50
rapidgen.com 
HP Forward-looking statements 
51
rapidgen.com 
Example of HANA parameter DT 
QUANTITY 
ORDER_AMOUNT 
DISCOUNT 
<=2000 
>10000 
10 
<=10000 
5 
>2000 
>10000 
15 
<=10000 
10 
52
rapidgen.com 
Example of HANA Database DT 
MANUFACTURER 
MODEL_CLASS 
QUANTITY 
DISCOUNT 
Sprongal 
Handset 
>5 
25 
<=5 
10 
Notebook 
>5 
15 
<=5 
10 
Pruckman 
Tablet 
>5 
15 
<=5 
8 
Range Extender 
>5 
10 
<=5 
5 
53
rapidgen.com 
HP Forward-looking statements 
54
rapidgen.com 
Genius Supported Platforms 
55 
Operating System 
Platforms 
Min. Version 
OpenVMS 
VAX 
5.6 
OpenVMS 
Alpha 
6.1 
OpenVMS 
Integrity / Itanium 
* 
Tru64 
Alpha 
4.0 
HP-UX 
HP PA 
9.x 
Windows 
Intel/AMD 32/64 
2000 
Linux 
•Red Hat, Debian, SUSE, Ubuntu, Fedora, Knoppix, Gentoo etc 
Intel/AMD 32/64 
2.6.18 kernel
rapidgen.com 
Genius Supported File Types & Databases 
56 
OpenVMS 
Tru64 
Windows 
Linux 
RMS Indexed 
✔ 
via TCP/IP 
via TCP/IP 
ISAM 
✔ 
✔ 
✔ 
✔ 
Oracle RDB 
•via DSRI 
✔ 
Oracle 
•via OCI 
✔ 
✔ 
✔ 
✔ 
DBMS-32 
•Codasyl 
✔ 
Generic ODBC 
•SQL Server 
•MySQL 
•PostgreSQL 
•…others on request 
✔ 
✔ 
Ingres 
•Low-level API 
✔ 
✔ 
✔
rapidgen.com 
• Howard Rogers 
• Jolyon Cox 
QUESTIONS
rapidgen.com 
Howard Rogers 
howard.rogers@rapidgen.com 
Tel: +44 (0) 1732 850081 
Mob: +44 (0) 7734 962855 
Providing Solutions and Options For OpenVMS Customers 
RapidGen Offices 
Info@RapidGen.com 
Tel: +44 (0) 207 630 9291
rapidgen.com 
About RapidGen 
•Integrating and modernizing legacy IT systems for over 30 years 
•Specialise in OpenVMS and Tru64 
•Software is Powered by the ‘Genius’ Suite 
•Our USP Unique Selling Point – Decision Tables = 
–Rapid Development Turnaround 
–Providing Cost Effective Solutions 
–Applications Future Proofing 
59
rapidgen.com 
Customers in EMEA include

More Related Content

Similar to Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01

Rebuilding the Busiest Trading Exchange in the World to Scale 10X (Manjunath ...
Rebuilding the Busiest Trading Exchange in the World to Scale 10X (Manjunath ...Rebuilding the Busiest Trading Exchange in the World to Scale 10X (Manjunath ...
Rebuilding the Busiest Trading Exchange in the World to Scale 10X (Manjunath ...confluent
 
Airline scheduling and pricing using a genetic algorithm
Airline scheduling and pricing using a genetic algorithmAirline scheduling and pricing using a genetic algorithm
Airline scheduling and pricing using a genetic algorithmAlan Walker
 
Test case format
Test case formatTest case format
Test case formatAtul Tiwari
 
Nestle Quick Wins Digital Commerce Conversion Workshop
Nestle Quick Wins Digital Commerce Conversion WorkshopNestle Quick Wins Digital Commerce Conversion Workshop
Nestle Quick Wins Digital Commerce Conversion WorkshopMarcos Pueyrredon
 
Monitor Your Car From the Cloud: DIY Telematics and the Internet of Things
Monitor Your Car From the Cloud: DIY Telematics and the Internet of ThingsMonitor Your Car From the Cloud: DIY Telematics and the Internet of Things
Monitor Your Car From the Cloud: DIY Telematics and the Internet of ThingsSalesforce Developers
 
Statistical Models for Proportional Outcomes
Statistical Models for Proportional OutcomesStatistical Models for Proportional Outcomes
Statistical Models for Proportional OutcomesWenSui Liu
 
Lazy Join Optimizations Without Upfront Statistics with Matteo Interlandi
Lazy Join Optimizations Without Upfront Statistics with Matteo InterlandiLazy Join Optimizations Without Upfront Statistics with Matteo Interlandi
Lazy Join Optimizations Without Upfront Statistics with Matteo InterlandiDatabricks
 
SAP FSCM ONLINE TRAINING
SAP FSCM ONLINE TRAININGSAP FSCM ONLINE TRAINING
SAP FSCM ONLINE TRAININGTRAINING ICON
 
Oracle Goldengate for Big Data - LendingClub Implementation
Oracle Goldengate for Big Data - LendingClub ImplementationOracle Goldengate for Big Data - LendingClub Implementation
Oracle Goldengate for Big Data - LendingClub ImplementationVengata Guruswamy
 
Pattern Matching with SQL - APEX World Rotterdam 2019
Pattern Matching with SQL - APEX World Rotterdam 2019Pattern Matching with SQL - APEX World Rotterdam 2019
Pattern Matching with SQL - APEX World Rotterdam 2019Connor McDonald
 
How to have it all quality, cost, and performance
How to have it all  quality, cost, and performanceHow to have it all  quality, cost, and performance
How to have it all quality, cost, and performancePaul Menig
 
Taxmann's CRACKER | Corporate & Economic Laws
Taxmann's CRACKER | Corporate & Economic LawsTaxmann's CRACKER | Corporate & Economic Laws
Taxmann's CRACKER | Corporate & Economic LawsTaxmann
 
CMPG321_P_2023-07-24_SU1-CH10.pptx
CMPG321_P_2023-07-24_SU1-CH10.pptxCMPG321_P_2023-07-24_SU1-CH10.pptx
CMPG321_P_2023-07-24_SU1-CH10.pptxDenzelMuwanazi
 
Recommending a Strategy
Recommending a StrategyRecommending a Strategy
Recommending a StrategyBill Sims
 
Latin America Tour 2019 - pattern matching
Latin America Tour 2019 - pattern matchingLatin America Tour 2019 - pattern matching
Latin America Tour 2019 - pattern matchingConnor McDonald
 

Similar to Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01 (20)

Rebuilding the Busiest Trading Exchange in the World to Scale 10X (Manjunath ...
Rebuilding the Busiest Trading Exchange in the World to Scale 10X (Manjunath ...Rebuilding the Busiest Trading Exchange in the World to Scale 10X (Manjunath ...
Rebuilding the Busiest Trading Exchange in the World to Scale 10X (Manjunath ...
 
Boston 16 03
Boston 16 03Boston 16 03
Boston 16 03
 
Tally.ERP 9 shortcut keys
Tally.ERP 9 shortcut keysTally.ERP 9 shortcut keys
Tally.ERP 9 shortcut keys
 
Airline scheduling and pricing using a genetic algorithm
Airline scheduling and pricing using a genetic algorithmAirline scheduling and pricing using a genetic algorithm
Airline scheduling and pricing using a genetic algorithm
 
Test case format
Test case formatTest case format
Test case format
 
Nestle Quick Wins Digital Commerce Conversion Workshop
Nestle Quick Wins Digital Commerce Conversion WorkshopNestle Quick Wins Digital Commerce Conversion Workshop
Nestle Quick Wins Digital Commerce Conversion Workshop
 
Monitor Your Car From the Cloud: DIY Telematics and the Internet of Things
Monitor Your Car From the Cloud: DIY Telematics and the Internet of ThingsMonitor Your Car From the Cloud: DIY Telematics and the Internet of Things
Monitor Your Car From the Cloud: DIY Telematics and the Internet of Things
 
Statistical Models for Proportional Outcomes
Statistical Models for Proportional OutcomesStatistical Models for Proportional Outcomes
Statistical Models for Proportional Outcomes
 
Lazy Join Optimizations Without Upfront Statistics with Matteo Interlandi
Lazy Join Optimizations Without Upfront Statistics with Matteo InterlandiLazy Join Optimizations Without Upfront Statistics with Matteo Interlandi
Lazy Join Optimizations Without Upfront Statistics with Matteo Interlandi
 
SAP FSCM ONLINE TRAINING
SAP FSCM ONLINE TRAININGSAP FSCM ONLINE TRAINING
SAP FSCM ONLINE TRAINING
 
Oracle Goldengate for Big Data - LendingClub Implementation
Oracle Goldengate for Big Data - LendingClub ImplementationOracle Goldengate for Big Data - LendingClub Implementation
Oracle Goldengate for Big Data - LendingClub Implementation
 
Pattern Matching with SQL - APEX World Rotterdam 2019
Pattern Matching with SQL - APEX World Rotterdam 2019Pattern Matching with SQL - APEX World Rotterdam 2019
Pattern Matching with SQL - APEX World Rotterdam 2019
 
How to have it all quality, cost, and performance
How to have it all  quality, cost, and performanceHow to have it all  quality, cost, and performance
How to have it all quality, cost, and performance
 
P2 p and o2c
P2 p and o2cP2 p and o2c
P2 p and o2c
 
Taxmann's CRACKER | Corporate & Economic Laws
Taxmann's CRACKER | Corporate & Economic LawsTaxmann's CRACKER | Corporate & Economic Laws
Taxmann's CRACKER | Corporate & Economic Laws
 
Master Budget
Master Budget Master Budget
Master Budget
 
CMPG321_P_2023-07-24_SU1-CH10.pptx
CMPG321_P_2023-07-24_SU1-CH10.pptxCMPG321_P_2023-07-24_SU1-CH10.pptx
CMPG321_P_2023-07-24_SU1-CH10.pptx
 
Recommending a Strategy
Recommending a StrategyRecommending a Strategy
Recommending a Strategy
 
Latin America Tour 2019 - pattern matching
Latin America Tour 2019 - pattern matchingLatin America Tour 2019 - pattern matching
Latin America Tour 2019 - pattern matching
 
Шаблон KPI от YouExec
Шаблон KPI от YouExecШаблон KPI от YouExec
Шаблон KPI от YouExec
 

More from Decision CAMP

Decision CAMP 2014 - Charles Forgy - Affecting rules performance
Decision CAMP 2014 - Charles Forgy - Affecting rules performanceDecision CAMP 2014 - Charles Forgy - Affecting rules performance
Decision CAMP 2014 - Charles Forgy - Affecting rules performanceDecision CAMP
 
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...Decision CAMP
 
Decision CAMP 2014 - James Taylor - Decision Management 101
Decision CAMP 2014 - James Taylor - Decision Management 101Decision CAMP 2014 - James Taylor - Decision Management 101
Decision CAMP 2014 - James Taylor - Decision Management 101Decision CAMP
 
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...Decision CAMP
 
Decision CAMP 2014 - Mariano de Maio
Decision CAMP 2014 - Mariano de MaioDecision CAMP 2014 - Mariano de Maio
Decision CAMP 2014 - Mariano de MaioDecision CAMP
 
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...Decision CAMP
 
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision ModelsDecision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision ModelsDecision CAMP
 
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...Decision CAMP
 
Decision CAMP 2014 - Decision Management Challenge - Sparkling Logic
Decision CAMP 2014 - Decision Management Challenge - Sparkling LogicDecision CAMP 2014 - Decision Management Challenge - Sparkling Logic
Decision CAMP 2014 - Decision Management Challenge - Sparkling LogicDecision CAMP
 
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud earlyDecision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud earlyDecision CAMP
 
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...Decision CAMP
 
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...Decision CAMP
 
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...Decision CAMP
 

More from Decision CAMP (13)

Decision CAMP 2014 - Charles Forgy - Affecting rules performance
Decision CAMP 2014 - Charles Forgy - Affecting rules performanceDecision CAMP 2014 - Charles Forgy - Affecting rules performance
Decision CAMP 2014 - Charles Forgy - Affecting rules performance
 
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
 
Decision CAMP 2014 - James Taylor - Decision Management 101
Decision CAMP 2014 - James Taylor - Decision Management 101Decision CAMP 2014 - James Taylor - Decision Management 101
Decision CAMP 2014 - James Taylor - Decision Management 101
 
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
 
Decision CAMP 2014 - Mariano de Maio
Decision CAMP 2014 - Mariano de MaioDecision CAMP 2014 - Mariano de Maio
Decision CAMP 2014 - Mariano de Maio
 
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
 
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision ModelsDecision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models
 
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
 
Decision CAMP 2014 - Decision Management Challenge - Sparkling Logic
Decision CAMP 2014 - Decision Management Challenge - Sparkling LogicDecision CAMP 2014 - Decision Management Challenge - Sparkling Logic
Decision CAMP 2014 - Decision Management Challenge - Sparkling Logic
 
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud earlyDecision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
 
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
 
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
 
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
 

Recently uploaded

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 

Recently uploaded (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 

Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01

  • 1. rapidgen.com Howard Rogers Director Technical Support howard.rogers@rapidgen.com Decision Tables as a Programming tool
  • 2. rapidgen.com Agenda •A brief history •Decision table structures •Rule formats •Rule redundancy, reduction and optimisation •Relevance testing •Some practical examples •Current examples of use •Future developments •Questions and Answers 2
  • 3. rapidgen.com Speaker •Statistics & Operation Research •UK National Health Service •35 years IT •Decision table based languages and compilers •Query & reporting tools •Generic file & database access •Brief interlude with RTPI •Technical support 3
  • 4. rapidgen.com History •NASA •Morgan Crucible – LITA – List &Tabulate •TABN for ICL 1900 series mainframes •(DE)TAB-360 for IBM System/360 •UNITAB for UNIVAC •HTAB for Honeywell •TAB-11 for RSTS/E on PDP-11 •FTL6/DTPL for ICT 1900 series •RPL-11 for RT-11, RSTS/E, RSX-11 on PDP-11 •RPL-3 for IBM System/3 •Filetab-D for x86 and PDP-11, OpenVMS VAX •FPL - IBM PCs and compatibles. •RPL, Rapid-Expert and expertGenius extended syntax for Microsoft Windows, Unix, Linux and OpenVMS,VAX, Alpha & Itanium 4
  • 5. rapidgen.com History •Excel – query tables •COPE – Translate DTs to COBOL •LogicGEM – Translate to BASIC,C, C++, FORTRAN, Pascal etc etc •CCIDE – Pre-processor for BASIC, JAVA, CC, C++, BASH, QB, VB, and EX(euphoria) •Silk (Simple In-line Logic Kompiler) converting decision tables to Cobol code and vice versa. •PASPREP – Pascal preprocessor •Many many others 5
  • 6. rapidgen.com Decision table structure •Conditions •Actions •Condition rules •Action rules 6
  • 7. rapidgen.com Single Condition Decision Table Condition Stubs Rules Action Stubs Actions 7 Quantity > 100 Y N Apply 20% Discount X -
  • 8. rapidgen.com Decision Tables Horizontal vs Vertical Condition Stubs Action Stubs Rules Actions 8 Quantity > 100 Apply 20% Discount Y N X -
  • 9. rapidgen.com Multiple Single Decision Table Condition Stubs Rules Action Stubs Actions 9 Quantity > 100 Y Y N N Cash payment Y N Y N Apply 20% Discount X - - - Apply 10% Discount - X - - Apply 5% Discount - - X - No discount - - - -
  • 10. rapidgen.com Multiple Condition DTs 10 •Complete True/False Y N require 2^Conditions rules •3 Conditions – 8 rules •4 Conditions – 16 rules •etc •Use of “-” to reduce completeness •Practical limit 32
  • 11. rapidgen.com Five Conditions – One rule 11 Initially no discount Quantity > 100 Y - Cash payment Y - Credit_check Y - Product type is laptop Y - Employee N - Apply 5% Discount X -
  • 12. rapidgen.com Multiple Section Decision Table 12 Quantity > 100 Y Y N N Cash payment Y N Y N Apply 20% Discount X - - - Apply 10% Discount - X - - Apply 5% Discount - - X - No discount - - - - Discount_amount < $1 Y - No discount X - Discount amount > $1000 Y - Set discount $1000 X -
  • 13. rapidgen.com Simplifying Decision Tables 1 13 1 2 3 4 5 6 7 8 Credit limit exceeded Y Y Y Y N N N N Cash payment Y Y N N Y Y N N Special clearance Y N Y N Y N Y N Accept order X X X - X X X X Reject Order - - - X - - - -
  • 14. rapidgen.com Simplifying Decision Tables 2 14 1&2 3 4 5 6 7 8 Credit limit exceeded Y Y Y N N N N Cash payment Y N N Y Y N N Special clearance - Y N Y N Y N Accept order X X - X X X X Reject Order - - X - - - -
  • 15. rapidgen.com Simplifying Decision Tables 3 15 1&2 3 4 5&6 7&8 Credit limit exceeded Y Y Y N N Cash payment Y N N Y N Special clearance - Y N - - Accept order X X - X X Reject Order - - X - -
  • 16. rapidgen.com Simplifying Decision Tables 4 16 1&2 3 4 567&8 Credit limit exceeded Y Y Y N Cash payment Y N N - Special clearance - Y N - Accept order X X - X Reject Order - - X -
  • 17. rapidgen.com Simplifying Decision Tables 5 17 4 123567&8 Credit limit exceeded Y ELSE Cash payment N - Special clearance N - Accept order - X Reject Order X -
  • 18. rapidgen.com Optimising Decision Tables 18 1 2 3 4 5 6 7 8 Credit limit exceeded Y Y Y Y N N N N Cash payment Y Y N N Y Y N N Special clearance Y N Y N Y N Y N Accept order X - X - X X X X Reject Order - X - X - - - - 2&4 123567&8 Credit limit exceeded Y ELSE Special clearance N - Accept order - X Reject Order X -
  • 19. rapidgen.com ELSE Rule 19 4 123567&8 Credit limit exceeded Y ELSE Cash payment N - Special clearance N - Accept order - X Reject Order X -
  • 20. rapidgen.com Simplifying Decision Tables – Extended entry 20 TRANSKEY GT MASTKEY Y - - - ELSE TRANSKEY EQ MASTKEY - Y Y - - TRANSKEY LT MASTKEY - - - Y - TRANSTYPE = “I” - - - Y - TRANSTYPE = “D” - - Y - - TRANSTYPE = “A” - Y - - - CALL PROCESS_MATCH - X - - - CALL PROCESS_MISS - - X - - CALL PROCESS_ADD - - - X - CALL NEXT_TRANS - X X X - CALL NEXT_MAST X X X - - REPEAT X X X X -
  • 21. rapidgen.com Simplifying Decision Tables – Extended entry 21 TRANSKEY ? MASTKEY > = = < ELSE TRANSTYPE = “?” - A D I - CALL PROCESS_? - MATCH MISS ADD - CALL NEXT_TRANS - X X X - CALL NEXT_MAST X X X - - REPEAT X X X X -
  • 22. rapidgen.com Ambiguity or Multi-ruling? 22 Set discount Initialise DISCOUNT_PERC Cash payment Y - - - Special offer - Y - - Good credit history - - Y - DISCOUNT_PERC + ? 5 10 2 -
  • 23. rapidgen.com Code generation 1 23 |--------------------------------------------------| |--------------------------------------------------| |# |STATEMENT 1 2 3 4 5 6 7 8 | |--------------------------------------------------| |C1 |Cash payment |y |y |y |y |n |n |n |n | |C2 |Special offer |y |y |n |n |y |y |n |n | |C3 |Good credit history |y |n |y |n |y |n |y |n | |==================================================| |A1 |Discount initialise | | | | | | | | | |A2 |Discount + 5 |X |X |X |X | | | | | |A3 |Discount + 10 |X |X | | |X |X | | | |A4 |Discount + 2 |X | |X | |X | |X | | |--------------------------------------------------|
  • 24. rapidgen.com Generation – Nested If/else 1 24 { if ((Cash payment)) { if ((Special offer)) { if ((Good credit history)) { /* rule 1 */ Discount + 5; Discount + 10; Discount + 2; } else { /* rule 2 */ Discount + 5; Discount + 10; } } else { if ((Good credit history)) { /* rule 3 */ Discount + 5; Discount + 2; } else { /* rule 4 */ Discount + 5; } } } else {
  • 25. rapidgen.com Generation – Nested If/else 2 25 if ((Special offer)) { if ((Good credit history)) { /* rule 5 */ Discount + 10; Discount + 2; } else { /* rule 6 */ Discount + 10; } } else { if ((Good credit history)) { /* rule 7 */ Discount + 2; } else { /* rule 8 */ } } } }
  • 26. rapidgen.com Generation – Case Switch 1 26 { if ((Cash payment)) { if ((Special offer)) { if ((Good credit history)) { rule_number = 1; } else { rule_number = 2; } } else { if ((Good credit history)) { rule_number = 3; } else { rule_number = 4; } } }
  • 27. rapidgen.com Generation – Case Switch 2 27 else { if ((Special offer)) { if ((Good credit history)) { rule_number = 5; } else { rule_number = 6; } } else { if ((Good credit history)) { rule_number = 7; } else { rule_number = 8; } } }
  • 28. rapidgen.com Generation – Case Switch 3 28 switch (rule_number) { case 1: Discount + 5; Discount + 10 ; Discount + 2; break; case 2: Discount + 5; Discount + 10; break; case 3: Discount + 5; Discount + 2; break; case 4: Discount + 5; break;
  • 29. rapidgen.com Generation – Case Switch 4 29 case 5: Discount + 10; Discount + 2; break; case 6: Discount + 10; break; case 7: Discount + 2; break; case 8: break; }
  • 30. rapidgen.com Generation – Rule List 1 30 { if ( ((Cash payment)) && ((Special offer)) && ((Good credit history)) ) { Discount + 5; Discount + 10; Discount + 2; } if ( ((Cash payment)) && ((Special offer)) && (!(Good credit history)) ) { Discount + 5; Discount + 10; } if ( ((Cash payment)) && (!(Special offer)) && ((Good credit history)) ) { Discount + 5; Discount + 2; } if ( ((Cash payment)) && (!(Special offer)) && (!(Good credit history)) ) { Discount + 5; }
  • 31. rapidgen.com Generation – Rule List 2 31 if ( (!(Cash payment)) && ((Special offer)) && ((Good credit history)) ) { Discount + 10; Discount + 2; } if ( (!(Cash payment)) && ((Special offer)) && (!(Good credit history)) ) { Discount + 10; } if ( (!(Cash payment)) && (!(Special offer)) && ((Good credit history)) ) { Discount + 2; } if ( (!(Cash payment)) && (!(Special offer)) && (!(Good credit history)) ) { } }
  • 32. rapidgen.com Generation – Rule Mask 32 {Mask = 11111111 {if ( Cash payment) Mask AND 11110000; } {if ( Special Offer) Mask AND 11001100; } {if (Good credit history) Mask AND 10101010; } {if (Mask AND 11110000) Discount + 5 ; } if (Mask AND 11001100) Discount + 10; } if (Mask AND 10101010) Discount + 2; }
  • 33. rapidgen.com Rule masking 33 •Succinct code •Reduces repetition of condition testing •Reduced repetition of action code •Fast execution •No frequency/cost weighting of rules needed • All conditions are evaluated
  • 34. rapidgen.com Relevance Testing 34 AGE > 50 Y - - CALL ADJUST_COVER Y - - TRANSKEY LT MASTKEY - Y - LOOKUP MASTER TRANSKEY - Y - Some operations require dynamic masking where actions may be performed or I/O occurs
  • 35. rapidgen.com Relevance Testing 35 AGE > 50 Y - - COVER + 20 R - - TRANSKEY LT MASTKEY - Y - DISPLAY “Message” - R - Dynamic masking again needed when Actions are inserted into condition section of Decision Table using “R”
  • 36. rapidgen.com Decision table linkage 36 CALLs to other DTs or object library routines CALL Credit_limit_exceeded Y ELSE CALL Cash_payment N - CALL Special_clearance N - CALL ACCEPT_ORDER - X CALL REJECT_ORDER X - GOTO link to DT or indirect CALL CALL Credit_limit_exceeded Y ELSE CALL Cash_payment N - CALL Special_clearance N - GOTO ACCEPT_ORDER - X CALL_I Variable_name X -
  • 37. rapidgen.com Requirements of a DT language •Feature rich language •Support for multiple data types •Unmatched data type comparison •Good string handling/text manipulation •Access external routines/library functions •File, database, object and data dictionary •Callable access from other products •Source code maintenance, version control •Compiled and portable execution 37
  • 38. rapidgen.com Decision Tables in other products •Uses GUI in SAP HANA Studio •SAP Parameter/Database DTs •Alternate use via Excel spreadsheets •SMARTS •OpenRules Engine •Decision First Modeler •Drools •Many more … 38
  • 39. rapidgen.com Usage of RPL - expertGenius •Self compiling •Cross compiling •Source of Genius Suite •Code writing and compiling 4GL and RAD toolset •Complete layered application suites •Reporting – fixed logic 39
  • 40. rapidgen.com Genius deployment •Aerospace factory tracking systems •Mobile phone billing systems •Payroll data mining •HR system ad-hoc querying •Newspaper distribution system •Stock control •Sales order dashboard & EIS •Web based on-line parts ordering 40
  • 41. rapidgen.com CDT Callable Decision Tables •Simple calculator •Calculator code •Tax formula (UK) •Tax calculator •Tax code •CDT Callable access from other languages and applications 41
  • 42. rapidgen.com Future developments •Extend range of generic database access •Ports to new architectures •Macro expansions for FEEL or S-FEEL •GUI extensions •CDT Callable access from other languages and applications •Cloud based compiler 42
  • 44. rapidgen.com Howard Rogers Director Technical Support howard.rogers@rapidgen.com howard.rogers@rapidgen.co.uk Decision Tables as a Programming tool
  • 45. rapidgen.com Filetab •DEcision TABle-based computer programming language. •Long history originating in late 1960s •Developed by the UK National Computing Centre (NCC) •Originally used on ICL OS such as GEORGE 2/3 and VME, •Ported to a large number of others. 45
  • 46. rapidgen.com Filetab •Original architect - Tom Barnard, who developed the program (LITA - LIst and TAbulate) for Morgan Crucible on an ICL 1902 from 1965–1968. Original purpose was to produce simple ad hoc reports with a plugboard on a punched card tabulator, replaced PLAN assembly language. •80 column card based parameters •Reporting tool specifying input and output formats, headings, sequencing and totalling. 46
  • 47. rapidgen.com RapidGen Solutions RapidGen solves tough integration problems for OpenVMS customers • A variety of flexible options available –Analyse and provide ‘Customised Solutions’ –Future Proofing options with RapidGen • In-depth Legacy expertise • Services + Software –OpenVMS to Linux Migration Routines •Databases and Porting •Data Structures migration 47
  • 48. rapidgen.com What Customers Tell Us Want to preserve, modernize or replace • Total cost of ownership • Risk, flexibility …but difficult • Bespoke or end-of-life applications • Custom interfaces issues • Skills shortage becoming more evident • Application Changes not permitted –E.g. Aerospace, Defence, Nuclear, Utilities 48
  • 49. rapidgen.com Customers Want Flexibility They Need Options Choices 1.Update OpenVMS –Until end of 2015 2.Modernise –Translate data –Translate logic –Redefine logic in 4GL –Redevelop –Seamless Transition 3.Emulation Options –Reduce Operating Costs –Suitable for some Want •Proceed in stages –Reduces risk •Integration –Legacy ↔ Modern •Portability –Future-proof •Cost-effective Solutions 49
  • 50. rapidgen.com HP Forward-looking statements Published Jan 2014 This is a rolling (up to three year) roadmap and is subject to change without notice. 50
  • 52. rapidgen.com Example of HANA parameter DT QUANTITY ORDER_AMOUNT DISCOUNT <=2000 >10000 10 <=10000 5 >2000 >10000 15 <=10000 10 52
  • 53. rapidgen.com Example of HANA Database DT MANUFACTURER MODEL_CLASS QUANTITY DISCOUNT Sprongal Handset >5 25 <=5 10 Notebook >5 15 <=5 10 Pruckman Tablet >5 15 <=5 8 Range Extender >5 10 <=5 5 53
  • 55. rapidgen.com Genius Supported Platforms 55 Operating System Platforms Min. Version OpenVMS VAX 5.6 OpenVMS Alpha 6.1 OpenVMS Integrity / Itanium * Tru64 Alpha 4.0 HP-UX HP PA 9.x Windows Intel/AMD 32/64 2000 Linux •Red Hat, Debian, SUSE, Ubuntu, Fedora, Knoppix, Gentoo etc Intel/AMD 32/64 2.6.18 kernel
  • 56. rapidgen.com Genius Supported File Types & Databases 56 OpenVMS Tru64 Windows Linux RMS Indexed ✔ via TCP/IP via TCP/IP ISAM ✔ ✔ ✔ ✔ Oracle RDB •via DSRI ✔ Oracle •via OCI ✔ ✔ ✔ ✔ DBMS-32 •Codasyl ✔ Generic ODBC •SQL Server •MySQL •PostgreSQL •…others on request ✔ ✔ Ingres •Low-level API ✔ ✔ ✔
  • 57. rapidgen.com • Howard Rogers • Jolyon Cox QUESTIONS
  • 58. rapidgen.com Howard Rogers howard.rogers@rapidgen.com Tel: +44 (0) 1732 850081 Mob: +44 (0) 7734 962855 Providing Solutions and Options For OpenVMS Customers RapidGen Offices Info@RapidGen.com Tel: +44 (0) 207 630 9291
  • 59. rapidgen.com About RapidGen •Integrating and modernizing legacy IT systems for over 30 years •Specialise in OpenVMS and Tru64 •Software is Powered by the ‘Genius’ Suite •Our USP Unique Selling Point – Decision Tables = –Rapid Development Turnaround –Providing Cost Effective Solutions –Applications Future Proofing 59