Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Multiple BizObj Scenario
Message
General information
Forum:
Visual FoxPro
Category:
The Mere Mortals Framework
Title:
Multiple BizObj Scenario
Miscellaneous
Thread ID:
00260860
Message ID:
00260860
Views:
61
This is one of those "does this make sense" posts as opposed to a specific question.

The Scenario:
I'm trying implemented a UI via the framework form classes & BizObj classes for what's called "rate setting process". For sake of discussion, lets define "rate setting process" as an algorithm made up of multiple processes. Each process involves multiple steps in calculations and/or logical comparisons. In an UML Activity Diagram for this algorithm, I have more than 20 processes identified. The different processes do not have to follow a specific order (IOW do process1, then process2, then process3), instead some processes are completely stand alone while others are contingent on 1-to-many other processes being done first. In the past, this algorithm was implemented with procedural code that did not give flexibility for running the various processes in different sequences. My UI needs to provide that flexibility.

The Design:
I've created a form based off of an app-specific subclass of cbizobjform. It has an outer pageframe with 3 tabs, and each tab has another inner pageframe with 4-9 tabs. Each of those inner pageframes represents a process in the algorithm, & displays a gridlist based off a view if the process has been run for the specified timeframe (a textbox denoting year/quarter on the form itself). If the process hasn't been run, it displays a message in place of gridlist telling user to hit a button to run that process (or maybe run another process first, that come back & push the button). The views for each gridlist have been designed specifically for the form's functionality, and all of them involve multiple tables and a parameter for time period (year/quarter). So therefore each tab in the inner pageframes will have it's own BizObj where the data environment contains 1 view. Most of these views are read-only, only a few will be updateable via a separate add/edit form.

So far so good, not too tricky & it feels nice and clean. But handling the flexibility for running the different process in different sequences set me back a step. So I set up like a status log table, to keep track of which process have been run for which time period. That way on page activate, as apart of delayed instantiation, I can check the status log to see if the process has been run so that the form knows whether to instantiate the gridlist or the "sorry, please push button" message. (When they do push the button to run that process, this of course will add a record to the status log). Pretty cool I thought, because now with this status log I can provide the additionally functionality of an undo, or rather... unrun a particular process.

Now typically with a BizObj maintentenance form that has a pageframe with multiple pages, and a BizObj on each page, you disable the BizObj on the form that comes along for the ride from the form class. But after pondering how to fit my new status log into the Design in a way that all the different page-based BizObj's can work with it when they need to I had another pretty cool thought (or so I think...) Why not make the form's default BizObj manage the status log, and set it as a child object to my process specific BizObj's on each page. As far as I can tell in my prototype this should work, but I've never done a form with 17 BizObjs (2-3 yes, but geeze not 17!)

So I'm wondering if this make sense - using the form's default BizObj to manage the status log BizObj that will be a child BizObj to all others - or do I need to take a few steps back and rework my design and add the status log view to each of the other BizObj's? Any other comments welcome too.
Roxanne M. Seibert
Independent Consultant, VFP MCP

Code Monkey Like Fritos
Next
Reply
Map
View

Click here to load this message in the networking platform