Loading...
 

Transition Engine

Gezza: Isn't this just enhancing Group Transitions and Category Transitions ?


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:

  • 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

  • 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)

Name Type Collation NULL Default Constraints Comment
transitionId int(11) No PK
preserve int(1)
name varchar(50) utf8_general_ci NOT NULL
type varchar(20) utf8_general_ci FK NOT NULL, constrainted to a typeId
from varchar(255) utf8_general_ci No FK -> TIKI_CATEGORIES.categId should be INT, NOT NULL, FK
to varchar(255) utf8_general_ci No FK -> TIKI_CATEGORIES.categId should be INT, NOT NULL, FK
guards text utf8_general_ci guards should be in a rel table
actionId int(11) No FK -> TIKI_TRANSITIONS_ACTIONS.ID Action that triggers the transition
commit int(1) No 0 0,1 Commit allowed or not (data protection from db side)
Name Type Collation Null Default Constraints Comments
Name Type Collation Null Default Constraints Comments
Id int(11) N PK from sequence
Name varchar2 N Unique unique name
Description varchar2 Y
Name Type Collation Null Default Constraints Comments
transitionId int(11) N FK -> TIKI_TRANSITION.transitionId transition instance to which the event belongs
eventId int(11) N FK -> TIKI_TRANSITION_EVENTS.Id event to be executed
serial int(4) N 1 serial in which order the events take place
Name Type Collation Null Default Constraints Comments
transitionId int(11) N FK -> TIKI_TRANSITION.transitionId transition instance to which the event belongs
eventId int(11) N FK -> TIKI_TRANSITION_EVENTS.Id event to be executed
serial int(4) N 1 serial in which order the events take place


Keywords

The following is a list of keywords that should serve as hubs for navigation within the Tiki development and should correspond to documentation keywords.

Each feature in Tiki has a wiki page which regroups all the bugs, requests for enhancements, etc. It is somewhat a form of wiki-based project management. You can also express your interest in a feature by adding it to your profile. You can also try out the Dynamic filter.

Accessibility (WAI & 508)
Accounting
Administration
Ajax
Articles & Submissions
Backlinks
Banner
Batch
BigBlueButton audio/video/chat/screensharing
Blog
Bookmark
Browser Compatibility
Calendar
Category
Chat
Comment
Communication Center
Consistency
Contacts Address book
Contact us
Content template
Contribution
Cookie
Copyright
Credits
Custom Home (and Group Home Page)
Database MySQL - MyISAM
Database MySQL - InnoDB
Date and Time
Debugger Console
Diagram
Directory (of hyperlinks)
Documentation link from Tiki to doc.tiki.org (Help System)
Docs
DogFood
Draw -superseded by Diagram
Dynamic Content
Preferences
Dynamic Variable
External Authentication
FAQ
Featured links
Feeds (RSS)
File Gallery
Forum
Friendship Network (Community)
Gantt
Group
Groupmail
Help
History
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
jQuery
Kaltura video management
Kanban
Karma
Live Support
Logs (system & action)
Lost edit protection
Mail-in
Map
Menu
Meta Tag
Missing features
Visual Mapping
Mobile
Mods
Modules
MultiTiki
MyTiki
Newsletter
Notepad
OS independence (Non-Linux, Windows/IIS, Mac, BSD)
Organic Groups (Self-managed Teams)
Packages
Payment
PDF
Performance Speed / Load / Compression / Cache
Permission
Poll
Profiles
Quiz
Rating
Realname
Report
Revision Approval
Scheduler
Score
Search engine optimization (SEO)
Search
Security
Semantic links
Share
Shopping Cart
Shoutbox
Site Identity
Slideshow
Smarty Template
Social Networking
Spam protection (Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Staging and Approval
Stats
Survey
Syntax Highlighter (Codemirror)
Tablesorter
Tags
Task
Tell a Friend
Terms and Conditions
Theme
TikiTests
Federated Timesheets
Token Access
Toolbar (Quicktags)
Tours
Trackers
TRIM
User Administration
User Files
User Menu
Watch
Webmail and Groupmail
WebServices
Wiki History, page rename, etc
Wiki plugins extends basic syntax
Wiki syntax text area, parser, etc
Wiki structure (book and table of content)
Workspace and perspectives
WYSIWTSN
WYSIWYCA
WYSIWYG
XMLRPC
XMPP




Useful Tools