Porting to New Business Units

[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:

  1. 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.

  2. 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.

  3. 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). ENVY would replace this.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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:
    1. Write one(or more) methods for initializing items to be used for selection(the initializing protocol)
    2. Write a method mapping the selections to the queries on the database(the queries protocol).
    3. Implement a GUI for setting SelectionCriterion (currently done via the SelectionBox class)

  9. 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.

  10. 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.

  11. 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:

This list of places to look for business unit specific code serves as an adding checklist for finding potential porting problems:


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