Hello everybody, I have a proposal for a presentation workflow that I'd like to submit as a plug-in to Maverick. I've already started working on it so some of the functionality is already complete, but I'd like to run it by the list to see what functions people want / need in a presentation workflow framework. I'm sure there are situations that I have not considered that others have run into. Here is a rundown of what I'm starting with.
* Functions * - A workflow is a set of commands (or states) that complete some "unit of work", i.e. registering for a site, completing a purchase, etc. Workflows can consist of any number of nested workflows. - Each workflow has a scope, and attributes added to that scope are only visible within that workflow. These are "workflow attributes". - Workflows can be written modularly. This means that one workflow can "call" another workflow to get something done. The caller can pass parameters to the callee, and the callee can return values to the caller. When the callee is complete it simply returns to the state specified by the caller. Calls are put on a stack to keep track of workflow attributes. - Workflows can have an entry point, meaning that if a user tries to enter that workflow s/he will be redirected to the entry point. - Workflows can be modal - the user cannot leave the workflow until the "unit of work" is complete. If they try to go to another page, they will be redirected back. The user *is* allowed to jump around within that workflow. - For workflows that must be completed step by step, states can be numbered within a workflow. A user will be able to go backwards in a workflow but not jump forward. * How it works (basically) * - Workflows are specified within the maverick.xml file. - Each Command class must subclass WorkflowCommand (which subclasses throwawaybean2. if you don't want to use throwawaybean2 you can create your own WorkflowCommand class.) The WorkflowCommand class processes each request to let the Workflow Manager know where the user is, if the user should be bounced somewhere else, etc. - When a workflow wants to call another workflow, it calls a GenerateCall() method which pushes the stack and redirects the client to the called workflow. The called workflow returns by calling generateReturn(), which pops the stack and redirects to the page specified. * Simple Example * A user wants to register for your website, but his company can't be found in your pulldown menu. You write a workflow of about 3 steps that lets a user type in a company, makes sure that the company is not in there (as an acronym or whatever) and lets the user create a company if it's not. This workflow returns a company_id to the registration workflow, and now that workflow can continue. That same "add company" workflow can then be used anywhere else in the application where a company needs to be added to your database. Thanks for any input, and thanks for reading this far. :) Roy ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Gadgets, caffeine, t-shirts, fun stuff. http://thinkgeek.com/sf _______________________________________________ Mav-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/mav-user Archives are available at http://www.mail-archive.com/
