|
1
|
|
|
2
|
|
|
3
|
|
|
4
|
- The Goal, The Problem, and The Solution
- Business Rule Analysis
- Business Rule Design
- CDM RuleFrame Architecture
- Business Rule Generation
- Client Experiences with CDM RuleFrame
|
|
5
|
|
|
6
|
|
|
7
|
- Designer has no tools for modeling the Business Logic Layer
- Business Rules are often ‘hidden’ in function or entity descriptions
- Designer does not promote a structured business rule architecture
- Rules are everywhere: in Form
logic, check constraints, database triggers
|
|
8
|
- It has become normal to add HTML or JAVA front end to existing Forms
application
- some rules not enforced in all front ends
- some rules enforced differently in each front end
- Maintenance is even more difficult than initial development
- business logic is not explicitly modeled in Designer
- developers who built and understand the business logic structure have
often left the team
|
|
9
|
|
|
10
|
- CDM RuleFrame provides
- structured business rule modeling during requirements analysis phase
- transformer to automate transition to design phase
- structured business rule design
- generator to automate creation of runtime objects
- implementation architecture to provide consistent rule implementation
|
|
11
|
|
|
12
|
- Rule Identification
- Employee Salary must be a multiple of 100
- Rule Classification
- Static Data Constraint, Attribute rule
- Triggering Events
- Create Employee
- Update Employee Salary
|
|
13
|
|
|
14
|
|
|
15
|
|
|
16
|
- stored pl/sql package
- generated by Designer
- 1 TAPI per table
- DML services (ins, upd, del, lock)
- Number of Business Rules
- sequences journaling
- audit columns uppercase
- defaults derivations
- dynamic domains
|
|
17
|
- stored pl/sql package
- generated by CDM RuleFrame
- 1 CAPI per table
- code to trigger and enforce Business Rules
- standard services
- get_…_values (char, num, date)
- aggregate_value (sum, count, etc)
- exists_row
- custom services
- code to interact with Transaction Management
|
|
18
|
- Typically one of two setups:
- 1. Forms perform DML directly
on tables.
- TAPI triggers execute business logic
- 2. Forms perform DML against
views (VAPI)
- view ‘Instead of’ trigger calls TAPI which executes business logic
|
|
19
|
- What happens when the user presses Save?
- form opens a transaction
- post record(s)
- trigger => tapi => capi
- loop over all rules for that table
- add rules to rule stack as needed
- form closes transaction
- loop over all rules on rule stack
- call capi to perform the rule
- if error, add to message stack
- if no errors, form commits else, form shows all errors on the stack
|
|
20
|
- All rules enforced at commit time
- Enables database enforcement of transaction level rules
- mandatory master/detail rules
- only one row may have value ‘X’
- sum of rows must = 100%
- No mutating table problems
- All errors reported at once
|
|
21
|
- 1 - Generate the CAPI Definitions
- 2 - Generate CAPI ddl scripts
- 3 - Generate TAPI ddl scripts
|
|
22
|
- Used by more than 20 clients since its introduction last year
- BC Ministry of Advanced Education, Canada
- Bosch und Siemens Hausgerate, Germany
- ING Bank, Netherlands
- OraVision, Netherlands
- Skattedirektoratet, Norway
- Churchill Insurance, UK
- …and many more...
|
|
23
|
- IT consulting company in The Netherlands, Belgium, Luxembourg and
Germany
- Work with the latest Oracle tools:
Designer, Headstart, CDM, Portal, Jdeveloper, iAS
- Use Headstart, CDM, CDM RuleFrame in all Oracle Designer projects
|
|
24
|
- Analysis
- “In the analysis phase, business rules can be related to the
ERD. This makes the business
rules an important part of the functional design and can be used in
communications with the client.”
- Implementation
- “Analysis information can be transformed easliy to the implementation
phase. The implementation phase
means only coding the rule.”
|
|
25
|
- “Easy and quick analysis and implementation of the business logic”
- “Transaction Management”
- “No Mutating-Table problem”
- “Everybody can make business rules; both inexperienced and experienced
developers”
- “No project without CDM RuleFrame”
- “Magic”
|
|
26
|
- Using CDM RuleFrame leads to better documentation, less programming
effort, fewer errors
- CDM RuleFrame allows clients to assign their best pl/sql programmers to
the Business Layer while keeping their best forms programmers working on
the Presentation Layer. Parallel
work => higher productivity
|
|
27
|
- Transaction Management feature provides ability to implement rules
formerly impossible to enforce in the database, e.g. Mandatory
Master/Detail
- Separation of business logic from presentation layer is important as
clients consider migrating away from forms
|
|
28
|
- CDM RuleFrame provides a stable and highly productive environment for
creating an independent Business Logic Layer
|
|
29
|
|