DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:workflow

workflow Plugin

Compatible with DokuWiki

  • 2024-02-06 "Kaos" unknown
  • 2023-04-04 "Jack Jackrum" no
  • 2022-07-31 "Igor" unknown
  • 2020-07-29 "Hogfather" unknown

plugin Interactive Workflow Wizardry

Last updated on
2013-12-29
Provides
Syntax
Conflicts with
box

Installation

Search and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually.

Examples/Usage

Workflow pages, which are just normal wiki pages, represent flowchart activities or process steps. Decision branches or conditionals are implemented as decision tables.

<decision payment="current,late" issue="yes,no" day="mon,tues,wed,thurs,fri">
  * A very simple decision link.
  * some page id | A decision link with text that's different than the page ID.
  * another id | This link remembers a state variable called payment. +payment=late
  * and another | This link appears if state variable payment is late. ?payment=late
  * yet another | This link forgets the state variable called payment. -payment
  * complicated | This link does a lot. +payment=late +abc=123 -cde ?issue=no ?contract=yes ?day=mon,tues,wed
</decision>

which renders to

The decision table usually goes at the bottom of a workflow page after the process documentation for that step. The user reads the workflow page, does what it tells them to do and then follows a decision link to the next step.

Syntax

A decision table is surrounded by the decision tag and is a list of links to other workflow pages. Each decision link begins with two spaces and an asterisk. There are 3 parts to a decision link

  • Page Name: This will be used as the page ID.
  • Descriptive Text: This is what will be shown in the page.
  • Options: Options that can remember state, forget state & filter link visibility based on state.
  * Page Name | Descriptive Text +remember=value -forget ?condition=acceptable
  • Page Name: The page name is optional, but usually recommended. The page name is followed by a vertical bar. If you're omitting the page name then don't include a vertical bar and the descriptive text will be used as the page name.
  • Descriptive Text: The descriptive text is what is shown in the page. The descriptive text can not include words that begin with +, - or ?.
  • Remember state option: After the descriptive text, any word that begins with a + symbol is an option that remembers a state variable. It should not have any spaces and should be of the form +name=value.
  • Forget state option: After the descriptive text, any word that begins with a - symbol is an option that forgets a state variable. It should not have any spaces and should be of the form -name.
  • Filter link option: After the descriptive text, any word that begins with a ? symbol is an option that filters the visibility of the link based on the currently known state variables. The link will be filtered out if that state variable is currently set to a value that's not listed here as an acceptable value. It should not have any spaces and should be of the form ?name=acceptable where acceptable is a comma separated list of acceptable values.

Usually you'll want to define specific state options and specify what values they are allowed to have. Do this by setting attributes in the decision table on the wf:start page. All attributes in the decision table on the wf:start page will be treated as state option definitions for the entire workflow system. The name of the attribute is the name of the state option. The value of the attribute is a comma separated list of values that are considered valid values for that state option.

<decision payment="current,late" issue="yes,no" day="mon,tues,wed,thurs,fri">

Any state options you define on the wf:start page will be available on every workflow page at the bottom of the decision table. You can easily search for them by typing remember or forget in the search box.

State options are only defined on the wf:start page. Do not define state options on other pages. Decision tables on other pages do not have attributes.

<decision>
  * some page id | A decision link with text that's different than the page ID.
  * another id | This link remembers a state variable called payment. +payment=late
  * and another | This link appears if state variable payment is late. ?payment=late
</decision>

That's pretty much it. Define your state options and all your process entry links in the decision table on the wf:start page and follow those links to map out the rest of your processes.

Getting Started

Create the wf:start page and add a decision table to it with decision links to starting points for every process in your business. Then build out the workflow pages from there to complete each process. The wf:start page is the entry point to all your business processes.

Employees use it by starting everything they do with the wf:start page and following the decision links to complete their tasks.

Define any state options you want in the decision table on the wf:start page. Employees use state options to automatically filter out large amounts of decision links to help them find the link they need faster.

Overview

The workflow plugin helps a business document workflow in a way that employees can click through step by step in a wizard like manner, rather than having to read and memorize a daunting operations manual. It works like an interactive flowchart that users can navigate through by following decision links in the same way one would follow decision or conditional branches in a graphical flowchart.

The key to the workflow plugin is filtering the decision links so a user can quickly find the appropriate link to the next step of the process in real time, often while interacting with customers. In this way it functions as a light weight workflow automation system. It doesn't automatically do the work for you like a heavy weight workflow automation system. It provides a simple and efficient way to guide employees through your business processes in real time, quickly providing them the documentation they need to do the job correctly.

What's the Point?

Businesses typically document their business processes in an operations manual. That's simple and fairly straight forward. Getting all the employees to read and memorize the operations manual is a whole different story. It's difficult and expensive. You have to

  1. Hire people who are capable of and willing to read, comprehend and memorize a large and boring document.
  2. Pay for the time they spend reading the manual when they first join the company.
  3. Keep everyone updated as the operations manual changes, which may happen often in a modern company.
  4. Trust that everyone has interpreted the manual in the same way and is providing uniform service to customers.

Hence the creation of workflow automation software which attempts to automate as much of the business execution as possible, leaving as little as possible up to employee discretion and chance. Workflow automation software is great when it's implemented well but in practice we find that is often not the case. Effective workflow automation systems are expensive and difficult to implement. Even if you don't have the means to implement workflow automation well, your company can still benefit a great deal by just automating/optimizing the documentation portion of it. If you're not going to implement an automation system that does the work for the employees, you can at least provide them a system that

  1. Tells employees what they should do next in any particular situation.
  2. Lets employees dive into work and learn as they go without memorizing every detail of their job up front.
  3. Keeps employees aligned and doing things uniformly.
  4. Keeps employees updated on process changes because they are following the workflow documentation in real time.

Why do we need a plugin for this?

At first we tried to do this using regular wiki syntax. The problem was that in any given situation it was difficult to find the next step quickly. If we keep the number of decision links on any particular page small and manageable then we don't cover all the possible decision points that occur in a real life business. On the other hand, if we really do include all the possible decision points in any given situation then quickly finding the next step, especially with the customer on the line, takes too long. The workflow plugin provides a way to efficiently manage and find the appropriate decision link on the fly by filtering them based on the known state of the current situation and by what the user types. Next steps (decision links) are automatically filtered out if they don't apply to the current context, the known state, of the situation. The user can then quickly search through the remaining valid decision links to find the next step just by typing. The search is performed in javascript as they type.

Configuration and Settings

You can change the namespace that the workflow pages live in. The default is wf. If you're going to change the namespace, do it before you create any workflow pages.

Development

None.

Change Log

  • 2014-01-05
    • Added box and button
  • 2013-12-31
    • Added state option definitions
  • 2013-12-29
    • Initial release

Known Bugs and Issues

Probably many.

ToDo/Wish List

None.

FAQ

None.

Discussion

plugin/workflow.txt · Last modified: 2023-09-12 14:11 by SPD

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki