xaraya / workflow
Workflow Module based on the Galaxia Workflow Engine
Installs: 98
Dependents: 1
Suggesters: 1
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:xaraya-module
Requires
- psr/log: ^3.0
- symfony/event-dispatcher: ^6.4||^7.1
- symfony/workflow: ^6.4||^7.1
Conflicts
- xaraya/core: <2.4.1
README
What is it?
This is a modern State Machine approach using the Symfony Workflow component.
Getting started
- Use composer to install the symfony/workflow package
$ composer require --dev symfony/workflow
$ composer update
- Define the workflows in configuration
See [xardata/config.workflows.php](xardata/config.workflows.php)
-
Use the workflows with modules or objects
-
Try out the user interface
Hook Sample
Use Workflow as hook module and let item create/update/delete/display hook events from other modules trigger the workflow transitions you want
Music CD Loans
Or add the new Workflows property to an existing object and let the value of its properties affect the workflow
Further Information
Overview with Galaxia Workflow Engine
What is it?
See the introduction and user manual of Galaxia for more details on what this module is all about, and how to use it.
However, we clarify their definitions here a bit. In the workflow module a distinction could be made between:
- The definition part: processes and activities
- The running part: instances and workitems
So, you define processes with activities and you run instances to complete workitems. During the use of the module you Manage processes and activities. There is functionality available to monitor all of processes, activities, instances and workitems. Each workitem can be completed by one or more process roles. In Xaraya, you map the users or groups in the roles module to these process roles. The description given here will be reflected in the Xaraya interface for the workflow module.
Getting started
- make sure that the webserver can write to the directory
var/processes
(chmod 777 or equivalent) - install GraphViz
if you want to generate some nice process graphs, and adapt
GRAPHVIZ_DIR in
modules/workflow/lib/galaxia/config.php
if necessary; - go to the Dynamic Data Import Object Definition page and paste the content of the file cdcollection3_dd.xml in the text area to create the sample database table;
- go to Admin Processes and upload the file cdcollection3.xml to create a sample process;
- map some Xaraya users to the 'admin' and 'user' workflow roles for that process, or add all current users from a Xaraya group to one of the workflow roles [TODO: Galaxia does not support a permanent mapping between Xaraya groups and workflow roles at the moment]
- mark the process as active once you no longer have the errors "Role: ... is not mapped"
- go to the Workflow User Interface and play around :-)
- come back here and try some of the monitoring and administration options
- create your own fancy processes and submit them back to the open source community
Note: this is mostly a 1-to-1 conversion of the current Galaxia interface scripts from TikiWiki, and a quick & dirty conversion of the templates that go with them. The sample CD Loan process has been modified a bit to be more representative of actual processes, but is otherwise unchanged.
With version 1.1, you can also automatically start a workflow process after some module item is created, updated or deleted. To try this out, you should :
- upload the review_articles.xml file to create the Review Articles process
- assign some users to the 'editors' workflow role and mark the process as active
- enable the workflow hooks for articles
- configure the workflow module so that the Review Articles - start activity is started when Create hooks are called from articles
- create a new article and have fun...
Version 1.3 adds the support for two BL tags : <xar:workflow-activity activityId="123" ... /> and <xar:workflow-status ... />. Those can be used in any template to run some workflow activity and show its output, resp. to show you the status of all the instances *you* started. To try that out, you should :
- delete your old "Music Loan 3" process, import the new version, assign users and mark as active
- find out what the activityId of activity "Request CD" is, in that new process
- in some template, add the following BL tags : <xar:workflow-activity activityId="123"/> (with 123 the activityId) and <xar:workflow-status/>
- go to that page and enjoy...
Version 1.4 also adds the BL tag <xar:workflow-instances .../> to show the instances that are assigned/accessible to you (i.e. your task list).
Patches and contributions are most welcome ;-)
Based on the Galaxia Workflow Engine
// Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
Further Information
Further information on the Workflow module can be found at
- Workflow Extension page at Xaraya Extension and Releases. Click on Version History tab at the bottom to get the latest release information.
- Related tutorials and documentation on Workflow found at Xaraya Documentation.
** Workflow Module Overview**
Version 1.0.0 2006-03-08