Porting to New Business Units
![[GIF]](../../pics/gray_blue_line.gif)
Steps for creating new business units
Since each business unit or specific financial model has some
different business logic and some different possible selection
criteria, we have developed the financial model frameworks
with some customizable pieces to allow for the porting of our
frameworks to different business units. To create a new
business unit, you must do the following:
- Build a database - The database should include the tables holding
the required transactions. We used
ERWIN to create the Aurora DataModel
and then created the database on Oracle.
- Setting up users - Initially, login is only supported for the user
that created the data model. To support new users:
-in Oracle: create public synonyms for all of the tables
-in Oracle: create a user with DBA privledges
-in the financial model: login as the DBA user and select the 'finmod_admin' role.
-in the financial model administor mode: create new users and update the users' roles.
- Create directory for changes -
A directory for storing the changes files needs to also be created.
It should have the same name as the business unit symbol stored in
DataModelBuilder
(see step 4).
Note: If the current data model does not have a "BusinessUnitSpec" entry
in DataModelBuilder, code in
ChangeSupport defaults to the 'aurora' directory.
ENVY would replace this.
- Build DataModel in Smalltalk -
Requires Smalltalk GUI -
This DataModel is how Smalltalk maps to the database. The DataModel can be
built with the DataModeler tool that can be found in the Database menu of
the VisualLauncher window. The top level data model class (i. e.
CatAuroraDataModel) will be used in the next step. When adding
classes for the new datamodel, use a category similar to the
one used for CatAuroraDataModel.
- Setup fileout for image building -
Requires Smalltalk programming -
Create specific class methods for indicating which categories will be used for
building the specific business unit images in the
InstallChanges class.
For example look at the auroraCategories, auroraCategoryFileNames,
auroraDevCategories, and the auroraFileNames methods on the class side of the
InstallChanges class. You also need to change the categories method and the
categoryFileNames method from this class. This can probably be simplified to
only change 2-3 methods....talk to Jeff and Joe about this. Probably
note to the user to save their changes here as well.
- BusinessUnit/DataModel identification -
Requires Smalltalk GUI -
This has just changed. Right now the setup files are in
devimage/aurora/prdimage.
ApplicationInfo
loads and saves these files. A GUI for creating this file is coming soon.
- Set the DataModelBuilder -
Requires Smalltalk call or GUI interaction -
It is important that you set the
DataModelBuilder to
map to the newly created DataModel before you file out any of your
changes and before you create a DuPont Model. To do this
simply type DataModelBuilder buildBusinessUnit where
buildBusinessUnit is the convienence method you wrote, or
type DataModelBuilder open and select your business unit
from the provided GUI and build the model.
- Selection criteria -
Requires little Smalltalk programming .
Selection criteria
represent mapping of user-selected items to the underlying logic
and queries fetching data from the database. This is implemented
by means of the SelectionCriterion class. In order to adjust the
class to a new application, a programmer needs to perform three
steps:
- Write one(or more) methods for initializing items to be used
for selection(the initializing protocol)
- Write a method mapping the selections to the queries on the
database(the queries protocol).
- Implement a GUI for setting SelectionCriterion (currently
done via the SelectionBox class)
-
Build the DuPont Model -
Requires Smalltalk GUI and possibly some programming? -
Simply follow the instructions on how to build a DuPont Model
by drawing the DuPont boxes on a canvas and defining your
formulas and percentages along where the values come from.
CatState values can then be automatically saved to the
database from a provided menu on the canvas builder.
- Business unit specific ReportValues -
Requires Smalltalk programming -
Build all of your specific
ReportValues for accessing the database and returning back the top-level
numbers and for describing the drill-downs. These
ReportValues also allow you to specify what summary reports you have along
with graphs and detailed reports.
- Setup filein for image building -
Requires Smalltalk programming -
When you are ready to make it so you can create a runtime image, you need
to create a build method on the class side of the InstallChanges class
similar to the buildAuroraImage method. This can also probably be abstracted
out to something a little simpler.
An important item to note is that whenever you change a method in a
base system class or add a protocol to a system class, you need to add
which message or protocol to the InstallChanges class under the
sysMessages, sysProtocols, sysDevMessages, or sysDevProtocols
message. The sysDev* messages are for the system changes that are
only needed in the development image.
Business unit specific code
Business unit specific code has been added to the financial model
for several reasons:
- Selecting data model and initializing business unit
- Convenience (initialization)
- Aurora specific info (some of which may get moved into the database)
This list of places to look for business unit specific code serves as
an adding checklist for finding potential porting problems:
-
CatLogin class>instance creation and
DataModelBuilder class>building
These are purely for convenience. They initialize DataModelBuilder
and open a login window for the indicated business unit. See
CatLogin
class>>aurora and
DataModelBuilder class>>buildAurora for examples.
- ReportValues classes
Currently being refactored to make more reusable. These are currently
Aurora specific.
- SelectionBoxCriterion
>>initializeList and
SelectionBoxCriterion>queries
Sets initial family list and a few queries constraints on some buttons. These
are currently Aurora specific.
- InstallChanges
Specific methods for indicating business unit categories and for
building business unit specific images.
If you have any questions or changes, please contact:
Joseph W. Yoder at:(217) 244-4695 or by email:
yoder@ncsa.uiuc.edu

Return to Financial Model Documentation Page