Changes between Initial Version and Version 1 of BluePrint/WorkflowSupport


Ignore:
Timestamp:
07/08/13 21:49:29 (12 years ago)
Author:
hardik juneja
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BluePrint/WorkflowSupport

    v1 v1  
     1= !BluePrint: WORKFLOW SUPPORT =
     2[[TOC]]
     3== Introduction ==
     4
     5The Blueprint outlines the improvement of Workflow Support for Sahana Eden i.e to develop a engine that can generate workflows for user of Sahana Eden.A workflow consists of a sequence of connected steps which are typically to be accomplished in a certain order. To accomplish this we will need a Workflow Engine,which manages workflow configuration, tracks and restores status of user tasks,provides the "next" options according to pre-defined conditions, and invokes
     6the respective methods.
     7
     8=== Target Problem ===
     9
     10Currently in Eden we realize  if a user has successfully completed a CRUD action, he's forwarded to the next page.[[BR]]
     11
     12The main problem with that is that the "next page" is hardcoded and doesn't
     13adapt to the actual user-task - it connects always the same steps in always
     14the same way - unconditionally.[[BR]]
     15
     16So to overcome such problem we need a workflow Engine that can connects the steps, defined in the configuration and then perform different task accordingly.[[BR]]
     17
     18== Stakeholders ==
     19
     20* '''End Users''' - Users of Sahana Eden will be benefited the most with Workflow Support as it help them to complete task quickly.
     21* '''Developers''' - With the help of workflow engine, developers of sahana eden can easily create a workflow for different modules.
     22
     23
     24== User Stories ==
     25
     26* As an end user, I want a workflow to guide me and help me through different resources available in Sahana Eden.
     27                * To take a Workflow User will click on the Workflow Button
     28                * Then he will first step and as he will complete his task.
     29                * He will be then redirected to next step.
     30                * The workflow will end when he complete all the steps.
     31                * The User can end the workflow at any time
     32                * And may be will have a option to save the progress also
     33 
     34* As a developer, I want a Workflow engine that can easily create Workflow for me by accepting some simple data.
     35                * Developer will be able to easily define the configuration of the Workflow Engine.
     36                * Which will be converted into Workflows by the Workflow Engine.
     37
     38== Requirements ==
     39=== Functional ===
     40
     41* Workflow should easy to configure.
     42* Workflow thus generated should have the ability to adapt changes as the configuration defined to Engine changes..
     43* Workflows should provide full access control to the user, they can go back, skip steps and quit at any point.
     44* Workflow should support decision(branches) Ex. they will ask user to choose from option A or option B to proceed further.
     45* Workflow should track the audit trails i.e keeping the record of the running processes as they unfold, so that users can come back to the same point where they left off.
     46* Allow the user to choose the route, e.g. from a menu of user tasks
     47* These workflow should be easily available and accessible to the user after successful login.
     48
     49== Design ==
     50=== Data Model ===
     51todo
     52=== Workflows ===
     53
     54==== As Developer ====
     55
     56* Developers will have to configure the workflows
     57* All configuration will be placed in private/template/<module-name>/default
     58* The configuration pattern  is going to be very easy to define a configuration pattern first one need to import S3WorkflowNode class
     59* Now Each node will be defined something like  S3WorkflowNode(“req”,”req”,”create”)
     60* And full workflow can be defined like
     61{{{
     62wf = N(“supply”,”items”,”create”) &
     63     N(“req”,”req”,”create”) &
     64      ( N( . . . ) | N( . . . ) & Exit( . . ) )
     65}}}
     66
     67* Here ‘&’ depict that the next node is a necessary or required node and ‘|’ depict that next node is a optional or a choice node.
     68* Exit(..) tells the workflow engine to end workflow here
     69* The defined data data structure will be of the following format -
     70
     71
     72
     73
     74=== Technologies ===
     75== Implementation ==
     76
     77Currently the project is under development and we have set following Goals
     78
     79Goals -
     80
     81* Configuration of event handlers (nodes) in a workflow
     82* Storing and retrieving of workflow instances
     83* Mapping of instance status + current event to a certain node
     84* Interface between workflow engine (=event manager) and workflow nodes (=event handler)
     85* Interface between nodes and "actions" (=S3Methods?)
     86* Workflow widgets (=widgets for users to perform workflow actions), and how to put them into a page
     87
     88
     89
     90For more detail please follow this page - [[http://eden.sahanafoundation.org/wiki/Event/2013/GSoC/WorkflowSupport Workflow Support(Gsoc 2013 )]]
     91
     92
     93
     94
     95
     96
     97
     98
     99
     100