Welcome to the YAWL User Group website yaug.org! We would like to concentrate the know-how of all YAWL users and serve as a plattform for suggestions, discussions and collaboration. YAWL is an open source BPM/Workflow system being developed by the YAWL Foundation.

Please join our community, if you would like to take part in the YAWL User Group. Please use the public forum to ask questions about YAWL or the user group itself. For any private inquiries use our contact form.

Creating and using Codelets

In this tutorial we show in three steps how to work with codelets in YAWL. We first create a codelet, install it and then invoke it from a YAWL workflow. We assume that you are familiar with editing and running workflows in YAWL.

Create Codelet

In the attached zip file you can find a codelet RandomNumberCodelet.java. In order to compile it you need the YAWL library jars from here:


Stylesheet for removing double complete events in YAWL XES logs

YAWL creates XES logs directly from the control centre. This makes it easy to do Process Mining with tools like ProM, Disco or Celonis. There is however a little problem: YAWL creates "complete" events twice for every work item. This can be seen in file processMiningSimple0.1.xes in the attachment.

We have created an XSL sheet that removes these double "complete" events. When you apply this like this

YAWL 4.0 is out!

YAWL 4.0 editor logo

YAWL 4.0 is now available here for download. One of the most prominent new features is a worklet and exlet editor. Worklets allow for so-called ad hoc workflows. Workflow behaviour can be extended while a case is running. Exlets are a concept for exception handling. Everything is described in the new YAWL User Manual.

Try the new version and let us know what you think.

Reusing YAWL specifications as subworkflows (YAWL 4.0)

YAWL 4.0 features an integrated worklet editor that makes the work of  a previous tutorial much easier. Our goal here is to use the worklet service to create a subworkflow that can be reused in many specifications. In order to demonstrate this, we will create two YAWL specifications. MainProcess.yawl is the specification for the workflow that will call the subworkflow. DisplayValue.yawl is the one that will be called. You can find the specs attached below. Let us now start step by step.

Better than BPMN

YAWL workflow

What is the most frequent requirement for a workflow system? Is it BPMN conformance? 

YAWL is not BPMN. We would like to make YAWL better than BPMN. Having fewer constructs with a similar expressivity is certainly an advantage. Using colours instead of swimlanes like in the attached figure certainly saves a lot of space.

We would like to get your opinion on this topic. Just post on this forum or send me an email.