Workflow Framework

Project acronym: PWFE

Project name: PIO Workflow Framework

Project duration: 3 months

Short description: This project was subpart of a bigger project. We needed to build a framework that will define transition of documents within a company, from one work place to another, and to define a set of actions that a person working on a specific workplace can do when document is in their possession.


Project aims/goals: Problem that this framework resolves are

  • Defines predetermined paths for different types of documents
  • Defines workflow of document in a human-readable way
  • Allows easy change of workflow, without a need for code change

In order to fulfill this we have defined:

  • Flow of a document from one workplace to another
  • Actions that user can do with the document (when it is at the workplace of that user)
  • Conditions for actions (for each workplace there is a subset of actions that can be performed by the user on that workplace on that document, depending on previously executed actions)
  • Conditions for document transition (document can be sent to other workplaces depending on previously executed actions)

Key words: Workflow framework, document transitions

Technology aspect: Description of workflows and its elements is done in XML.

The framework supports different types of documents. Each type of document is described in workflow file. It would also be possible to group all of the files and combine them into one big document. All od the files are actually describing the same big workflow and can reference states from another file.

Since documents are plain text all states and workplaces need to have corresponding representative in real life, which is in MSQLDB.  In order not to introduce conflict, on initial parsing of XML, entities from XML are checked against DB representatives.

Code implementation of the workflow and API is done in C# .Net.

Since all workflows, actions and conditions are written in XML, these XML files can be easily changed, allowing the business logic code not to be tightly coupled with the workflow.

XML schema does not contain a big set of elements, about 10, and this allows humans to easily understand and change workflow.

Significant results: This project is in use for a couple of years. There is about 100 workflows that are defined and more than 400 users who are exchanging documents and executing actions in their everyday work through this system.

Additional resources

Workflow example 1
Workflow example 2