|
||||||||
Task Scheduler2000, BroadRiver CommunicationsProblemDesign a corporate workflow engine that worked with BroadRiver's existing CRM tool, Clarify. SolutionThe Clarify product contains a facility for managing individual users' daily tasks. I extended the task engine to support sequential sets of tasks: one task (a "predecessor") would lead to several other tasks (the "successors"), which could not themselves be completed before their predecessor was completed. The system thus allowed a manager to ensure that all tasks were completed in a certain order. In addition to helping design the system architecture, my specific task was design and build the engine which would enforce the dependencies between tasks, allowing tasks to be organized hierarchically. ArchitectureClarify's development environment is an offshoot of an early release of Visual Basic. Among other things, it is not an object-oriented environment. However, I find that object-oriented designs tend to work well they tend to let you represent human reality closely. So I did an object-oriented design for the task scheduler, and then translated that design into Clarify's procedural environment. I did this at different levels of technical detail, for different audiences:
I then translated the whole the middle two sections into procedural description of the same process. Here is that document: As with most of my writing, I have organized the English portions of the document as a tutorial. Here is the source code: |
||||||||