Академический Документы
Профессиональный Документы
Культура Документы
BO Inheritance
Check Point
You know how to:
Define a BO's data structure (i.e., its schema)
Create plug-ins for a BO that hold its more sophisticated business
rules
6-2
6-4
<formType mapField="CASE_TYPE_CD"
default="1040a.07" />
<includeDA name="StandardTaxpayerElements"/>
<1040page1 type="group" mapXML="BO_DEFN_AREA">
<line1 dataType="number"/>
<line2 dataType="number"/>
<1040page1/>
Form1040ez BO Schema
<formType mapField="CASE_TYPE_CD"
default="1040ez.07" />
<includeDA name="StandardTaxpayerElements"/>
<1040ezpage1 type="group" mapXML="BO_DEFN_AREA">
<line1 dataType="number"/>
<line2 dataType="number"/>
<1040ezpage1/>
BO /
Algorithm
Algorithm
System
Event
Algorithm
Type
Valid Values:
Validation
Pre-processing
Post-processing
Audit
Information
6-6
Remember - the
program type and
program name are
defined here
businessName
employerIdentityNbr
lastName
firstName
driversLicense
6-8
BO: BusinessCustomer
BO: HumanCustomer
6-9
lastName
firstName
driversLicense
BO: BusinessCustomer
businessName
employerIdentityNbr
Parent BO ERD
A parent BO is simply a BO
that is referenced by other
BO's
Business
Object
Algorithm
BO: HumanCustomer
6 - 10
There's a FK on BO
that references a
parent BO (this is
optional)
lastName
firstName
driversLicense
BO: BusinessCustomer
businessName
employerIdentityNbr
BO: HumanCustomer
lastName
firstName
driversLicense
BO: BusinessCustomer
Post Processing: Check
credit history
BO: CorporateCustomer
When this type of customer is
added, only a welcome letter is
sent
6 - 11
BO: PartnershipCustomer
Pre-processing
Post-processing
Validation
Audit
BO: HumanCustomer
lastName
firstName
driversLicense
BO: BusinessCustomer
3
Post Processing: Check
credit history
BO: CorporateCustomer
6 - 13
BO: PartnershipCustomer
BO: HumanCustomer
We'd show the customer name
for this type of BO
We'd show the
employer ID,
customer name and
credit rating for this
type of BO
6 - 14
BO: BusinessCustomer
Info: Include employer ID,
name and credit rating
BO: CorporateCustomer
We'd show the partnership name
and credit rating and partnership
date for this type of BO
BO: PartnershipCustomer
Info: Include partnership name
and credit rating and partnership
date
Instantiable Flag
While it is good practice to not allow users to create instances of
parent BO's, the framework will not prevent it by default
Rather, you must tell the framework if instances of a BO aren't
allowed (and there's a flag on BO Main for this purpose)
Parent BO: GenericCustomer
Instantiable: No
BO: HumanCustomer
BO: BusinessCustomer
Instantiable: Yes
Instantiable: No
BO: CorporateCustomer
BO: PartnershipCustomer
Instantiable: Yes
6 - 16
Instantiable: Yes
BO: HumanCustomer
BO: BusinessCustomer
6 - 18
BO: BusinessCustomer
BO: HumanCustomer
<includeBO name="GenericCustomer" />
<dateOfBirth ... />
<mothersMaidenName ... />
...
6 - 19
6 - 21
BO: Customer
Owner: C1 (Base)
<name ... />
<customerId ... />
...
BO: MyCustomer
Owner: CM (Customer)
CM Algorithms on CM Objects
Implementations can
obviously add algorithms
to their BO's
BO: Customer
Owner: C1 (Base)
<name ... />
<customerId ... />
...
BO: MyCustomer
Owner: CM (Customer)
<includeBO name="Customer" />
<employerIdentityNumber ... />
<marketingContact ... />
...
6 - 23
Owner: CM (Customer)
Validation: Check My Elements
BO: HumanCustomer
lastName
firstName
driversLicense
BO: BusinessCustomer
Post Processing: Check
credit history
BO: CorporateCustomer
6 - 24
BO: PartnershipCustomer
BO: GenericCustomer
Owner: C1 (Base)
Owner: C1 (Base)
Post Processing: Send welcome letter on add
BO: BusinessCustomer
Owner: C1 (Base)
Owner: C1 (Base)
Post Processing: Check credit history
Owner: CM (Customer)
Post Processing: Create To Do entry
6 - 25
Algorithm Sequence
When you add an algorithm to a BO, you must define its sequence
number (this allows you to position your algorithms before or after
other logic)
You must select a unique sequence
After an upgrade, it's possible for your algorithms to have the same
sequence number as a base-package algorithm
If this happens, an error will be issued at run time and you must reassign the
sequence number (there is no clear upgrade path for duplicate sequences)
BO: BusinessCustomer
Owner: C1 (Base)
Owner: C1 (Base)
Post Processing: Check credit history
Sequence: 10
Owner: CM (Customer)
Post Processing: Create To Do entry
Sequence: 15
6 - 26
Business
Object
BO /
Algorithm
There is a sequence
number on this table
that controls the
order of execution
6 - 27
Inheriting a Nightmare
6 - 30
6 - 31
Review Questions
6 - 32
6 - 33