Professional Documents
Culture Documents
Web Application
Server Server DB
Web Application
Server Server DB
Person / Person /
Person ID Person / ID Phone Type
CI_ID_TYPE CI_PER_ID Name Phone CI_PHONE_TYPE
CI_PER_NAME CI_PER_PHONE
Name Type
CI_LOOKUP_FIELD
Person / Person /
Person / ID
CI_PER_ID Name Phone
CI_PER_NAME CI_PER_PHONE
An implementation
can set up an
unlimited number of
user-defined fields for
their premises (here's
an example of a
premise with 6 chars)
MO
Char Type
You've only been exposed to a small percentage of
the tables that have "owned" meta-data
<birthDate mdField="BIRTH_DT" > validates the element is formatted as per the field's meta-
data
<propertyManager fkRef="SA" > validates the element is a foreign key to the reference
table
<birthDate required="true" > validates the element is specified
Individual Taxpayer
Enter Exit
M oke
v
O
Person MO
In
3. Validation algorithms
2. MO Processing (Service)
Individual Taxpayer
1. Pre-processing rules Enter Exit
M oke
5. Audit rules
v
O
Person MO
In
3. Validation rules
2. MO Processing
BO's Object
Note, the parent and its children Algorithm
must reference the same MO
BO: HumanCustomer
lastName BO: BusinessCustomer
firstName Post Processing: Check
driversLicense credit history
BO: GenericCustomer
Let's assume you just want to
Post Processing: Send add another post-processing
welcome letter on add algorithm to this BO that's
owned by the base-
package
BO: HumanCustomer
lastName BO: BusinessCustomer
firstName Post Processing: Check
driversLicense credit history
Owner: C1 (Base)
Post Processing: Send welcome letter on add
BO: BusinessCustomer
Notice the 2nd algorithm's owner
flag (CM) differs from the owner of
the BO (C1) Owner: C1 (Base)
Owner: C1 (Base)
We did this so you could add Post Processing: Check credit history
additional validation / processing
without having to create a child BO
Owner: CM (Customer)
Post Processing: Create To Do entry
BO: BusinessCustomer
Owner: C1 (Base)
Owner: C1 (Base)
Post Processing: Check credit history
Sequence: 10
Preliminary
Follow Up
Investigation
Not Interested
Rejected
Refer To Investigation
Salesperson Canceled In Progress
Decision
Checkpoint
Cancel / Rebill
Approved
Enter
Exit
Error Canceled
Exit algorithms execute when an object Enter algorithms execute before the
attempts to leave a state (and errors roll BO enters a state (and errors roll
back to the prior state) back to the prior state)
Valid
Status Algorithm
Algorithm
Type
Valid Values:
BO / State / System Enter
Algorithm Event Exit
and one more
You plug-in rules on the BO for logic that is true regardless of the BO's state
You plug-in rules on the BO / State for logic that only applies to an object when it
enters (or exits) a state
Business
Object Valid Values:
BO / System Pre processing
Algorithm Event Validation
Post processing
Valid
Status
Valid Values:
BO / State / System Enter
Algorithm Event Exit
and one more
Let's assume:
You have many different types of field activities (install meter, investigate service
theft, read meter, remove meter, exchange meter, )
You're going to create a separate BO for each type of activity
Every type of activity has the same valid states
Some activity types have special processing that takes place when they enter / exit
some states
If you knew nothing more, you'd be forced to define the same valid states on
every BO
Complete
Complete
Complete
Rather than repeat the lifecycle again and again, you can
set up a parent BO and declare the lifecycle on it
Parent BO: GenericFieldActivity
Pending
Canceled
Dispatched
Complete
Dispatched
All BO's beneath the line
have the lifecycle of the
Complete topmost BO in the hierarchy
Dispatched
Complete
Valid Values:
Info
MO / System
Transition
Algorithm Event Transition Error
Determine BO
BO Valid Values:
Validation
Algorithm Pre Processing
Post Processing
BO / System Audit
Algorithm Event Info
some designs
introduce these
Valid
Status
Valid Values:
BO / State / System Enter
Exit
Algorithm Event Monitor
BO k e
vo
Individual Taxpayer
In
Enter Exit
1. Pre-processing rules
M oke
8. Audit rules (BO)
v
O
In Person MO 7. Post-processing rules (BO)
4. Determine BO (MO)
When you link a business object to an application service, you are granting all
users in the group access to its instances
You can prevent users from transitioning a BO into specific states by correlating
each BO status with each application service action (and then don't give the user
group rights to the related action)
Application
BO User Group User
Service
The framework checks if a user has access rights each time the app server is
invoked to add, change, delete, read, or transition a BO
However, if a BO invokes another BO, we assume that access was controlled by the
initial BO invocation and we do NOT check access for other BO's that it invokes
In other words, access rights are only checked for the initial BO invoked in a service
call
Web Application
Server Server DB