History: Transition Engine
Source of version: 4 (current)
Copy to clipboard
Gezza: Isn't this just enhancing ((Group Transitions)) and ((Category Transitions)) ? {sign user="marclaporte" datetime="2013-03-10T16:28:31+00:00"}
This page is work-in-progress draft breeding ideas on a flexible, powerful transition (workflow) engine for Tiki objects such as tracker items, wiki pages, groups, articles, etc
It is related to ((Approval Workflow))
!! Brief overview:
- statues - available through categories but need enhancement
- transitions - available but need enhancement
- actions - new?
- conditions - new?
- events - new
- permission control - enhancement of existing permission system
- control of screen item appearance (action buttons, fields) - it is not CSS related
!! Details:
* statuses [TIKI_CATEGORIES] - details later
* transitions [TIKI_TRANSITIONS] - details later
* actions - [TIKI_TRANSITION_ACTIONS?] these should trigger shift between 2 statues (categories). Actions have permissions assigned (see later)
* conditions - [TIKI_TRANSITION_CONDITIONS, TIKI_TRANSITION_CONDITION_REL] should be evaluated BEFORE a transition takes place. Based on the outcome of the validation (TRUE/FALSE) the transition shift should be either DENIED or ALLOWED. There can be several conditions that must be evaluated in a predefined sequence
* events - [TIKI_TRANSITION_EVENTS, TIKI_TRANSITION_EVENT_REL] should happen AFTER a transition happened. There can be several event that should happen in a predefined sequence
* permission control - [TIKI_TRANSITION_PERM_REL, USERS_ROLES] permissions can be assigned to categories but this is not enough. There should be a ROLE concept and a REL table that links a the TIKI_TRANSITIONS.TRANSITIONID to a ROLE_ID and an OBJECT_ID (where object _id is the id of a tracker, a page, etc) Roles can be than assigned to GROUPS and users can be assigned to the GROUPS as well (this is how user gets the permission to execute a transition). Should be evaluated by a stored procedure.
* visual control - [TIKI_VISUAL_PROFILES, TIKI_VISUAL_PROFILE_ITEMS] defines what screen items (action buttons, fields) are visible for the end user in a certain status (category). This is evaluated by a stored procedure runtime based on the permission assigned to a user to execute a certain action. A visual profile is linked to a status (= a category).
!! Objects (tables, stored procedures/functions)
{SHEET(id="4",simple="n",editable="y",subsheets="y")}{SHEET}