1. Introduction

The BPM.NET Designer is a standalone tool shipped as part of the BPM.NET system. The purpose of the tool is to deliver a business process authoring tool on the .net platform to business users by leveraging the power of windows workflow. The designer tool also provides features such as Execution, Tracking, and External Assembly Referencing etc. which supports the life cycle of business process authoring. The BPM.NET Designer is built on top of the BPM.NET product which is fully compatible with Windows Workflow 4 and Visual Studio 2010.

1.1. Software Requirements

.NET Framework 4 or +

2. BPM.NET for the Business Installation

3. Launch BPM.NET Designer

Find and click the BPM.NET Designer from the start menu (Run as administrator if on Win7/Win8).

3.1. Authoring Environment

The authoring environment is a customized workflow re‐hosted designer (refer to Microsoft Re‐hosted Designer sample: http://www.microsoft.com/en‐au/download/details.aspx?id=21459). The main features that have been added into the tool are design time Intelligence support, execution and trace, and external library reference.

3.2. Menu and Ribbon
3.2.1. Home

The Home menu provides basic functions to create, open and save a workflow. A workflow or a business process is a XAML/XAMLX (xml) file that is stored on a local drive making it easier to share/email with other authors or developers. There are two file types supported by the tool.

  • XAML

    This type of workflow will be executed by an application. Usually invoked by WorkflowInvoker or WorkflowApplication.


    This type of workflow is going to run as a WCF services. Usually hosted by WorkflowServiceHost or IIS.

Authors can use the Add button if external object models or workflow activities (have to be included in the DLL) need to be imported for process authoring. This is a normal senario where developers build business oriented models and activities. These assemblies are imported into the authoring envoirnment so that it simplifies the integration in the business process systems.
When the assembiles are imported, a copy of the files are generated in the plugin folder of the installation folder of the tool. Click the View button to view all the imported assembiles. Once the assemblies need to be updated to a new version, the authoring environment has to be closed and the assemblies have to be cleaned up from the plugin folder. Then it can be imported again to the process designer.
The XAML button shows the content of the physical workflow file. When a workflow is executed, a Trace Viewer Dialog is opened automatically. The Trace button can be used to show the TraceViewer Dialog if it’s closed. The Port textbox can be used to configure the WCF service running port when the XAMLX workflow is created.

3.2.3. Help

The Help menu shows the About button that shows the information pertaining to the tool. The Activiate button can be used to check the installed license or enter the license key. The default license included in the installer is a trial version, however, it has the same functionalities as the full version. If you require a commercial license for source codes, product samples, technical support or customization etc, please see Contact page.

3.3. Workflow Toolbox
3.3.1. Business Process

The Business Process section in toolbox contains all the tools for business process authoring. The features and usage of these tools are described in other parts of the document.

3.3.2. Overall

The toolbox contains all the tools (as in Visual Studio) that are provided by microsoft.

4. Business Process Authoring
4.1. Create a Process

Click the New button in the Home menu and drag the Process from the Business Process toolbox to the middle of the designer. Alternatively, you can Open an existing process to start with.
When the new button is clicked, the Process Type dialog is presented for the creation. The service name is required if the Service (xamlx) is selected.

To change the service name after the creation, click the white background in the designer out side of any activity to change the name in the property window.

Drag a Process activity and drop it into the designer

A Process can be created as a root activity or it can be added to other Microsoft standard activities such as the Sequence:

Variables can be created and will be visible to all the child activities of the process.

4.2. Add a Swimlane

A Swimlane can only be added to a Process activity. Variables can be created and will be visible to all the child activities of the lane.

4.3. Add a Start, State and End activity

All activities except for the Process and the Swimlane in the Business Process section can be added to a Swimlane.

4.4. Create Transitions

Create transitions as shown below:

Although the designer supports the ability to set a condition on each transition, all the activities except for Split and End can have one and only one unconditional transition, otherwise an error message will be reported. Split can have multiple unconditional or conditional transitions but there has to be at least one unconditional transition from it.

4.5. Execute the Process

Before a process can be executed, it has to be saved to a local directory.

4.6. Execution Trace

The execution trace viewer is opened automatically when the process is running. It’s also accessible by clicking the Trace button.

4.7. Workflow XAML

Click the XAML button to view the content of the Process.

4.8. Auto Publish

Click the Publish button to auto deploy the XAMLX service to any local or remote IIS which has Microsoft Web Deploy component installed and configured.

5. Business Process Primitives
5.1. Start

The Start is the first activity that gets executed by the Process it is placed in. Double click a Start activity within the Process and the designer displays the content of the Start activity. There has to be one and only one Start activity for a Process.

5.2. End

The End activity has to be used to finish the execution of a Process otherwise the designer will show an error.

5.3. Process

The Process is the root container of the Swimlane.

5.4. Swimlane

The Swimlane is the container of all other activities in Business Process and it has to be hosted within a Process. Because of the implementation of BPM.NET, Entry and Exit of the Swimlane gets executed every time a child element in the Swimlane is fired.

5.5. State

The State is the major activity to carry out the business actions of a process. Other standard .net workflow activities such as Messaging activities or Flowcharts can be placed in the Body part of the State.

5.6. Task

Task activity is used when there is a human interaction in the process. It introduces the concept of users and groups into the process designer. Although human interactions can be in the body part of State activity with Receive activity etc, the Task activity is a more recommended way because it provides lots of features out of the box with best performance. The In argument defines the data of the human task awaiting human interactions. It is an extension (BusinessProcessExtension) of PersistenceParticipant of WF so it follows the best practise. The data is persisted into the configged InstanceStore in the runtime in XML format. The Out argument defines the data that is submitted back to the process. The object type of the In and Out argument of the Task activity has to be serializable.
To submit the task back to the process, BPM.NET provides a customized WorkflowHostingEndpoint called BusinessProcessControlEndpoint. The endpoint also provides other actions such as assign a task to a user, assign a task to groups and change task due date etc.
The BPM.NET comes with a memory instance stores that helps the developers to quickly build and test the bpm system. When running the BPM as WCF WF service, BPM.NET also provides the behavior of the memory instance store. In addtion to that, BPM.NET encapsulates the BusinessProcessExtension into a SqlBusinessProcessInstanceStoreBehavior. This helps the developers building the BPM system without spending any time in the integration. BPM.NET exposes the Task data with predefined repository classes implementing an interface of ITaskRepository. This abstracts the different instance stores provided by BPM.NET. Developers can simply build the process without worrying about reading the database or writing any serialization code

5.7. Decision

The Decision provides a decision gateway to a Process so that conditions can be evaluated on each transition path from the Decision. At the end of the Decision execution, only one transition path will be taken by the process for further execution. As part of the design, there has to be one and only one unconditional (default) transition path from a Decision otherwise an error is reported.

5.8. Split and Join

The Split and Join have to be used together to achieve parallel tasks within a process. The split routes have to be joined at a certain point in the process by using Join activity so that the multi parallel routes merge to back into one. Each route in the split has to be complete before the process can move any further at Join activity. Conditions can also be applied to the transition paths from a Split activity. There has to be at least one unconditional (default) transition path from a Split.

5.9. Trigger

When an external event gets fired on a State, the Trigger activity can be used to respond to the external event. The Delay, Receive Message and, Receive and Reply Message are the typical activities that can be used as a Trigger. There’s no limit to the type of the activity in a Trigger, but an event type activity is more likely to be used in a real world scenario. When the Trigger gets fired, the body of its State is cancelled immediately so the process takes the route from the Trigger.

An example the Transition of a Trigger that can go to its parent State:

Double click the Trigger icon in the process designer to put the event activity on the Trigger. Errors will be displayed in the process if there’s no event in any Triggers.

5.10. Tracking Point

The Tracking Point is very useful to the business to capture business related data. To set up the tracking points just simply click the Content button in the Tracking Point activity.

The dialog of the Tracking Point content has access to all the variables in the hierarchy of the workflow. The Name column is the Key to the data when the tracking data get emitted at runtime.

5.11. Tracking Point <T>

The generic type of the Tracking Point has the same function of the normal Tracking Point which is to capture the data in the business process for reporting purpose. The generic type also give the business a clear way of defining the data to be captured. The genertic type simplifies the Tracking Point definition and also force the process to use the same data structure accross multiple Tracking Points if the same type is selected. This is beneficial when building standard statistic report of the process or even creating ad hoc report in real time.
select the type to be used for the generic Tracking Point

Unlike the normal Tracking Point, the Name and Type of the generic Tracking Point is not editable because they are auto populated with the Type selected for the generic Tracking Point. The Value column has access to all the variables in the scope of the workflow.

5.12. Transition

Double click to transition to edit the Condition or change the condition of the selected Transition in the Property panel.

5.13. Colors for Swimlanes and States

When selecting a swimlane and state, a Color option is avaiable in the property panel. The predefined colors in the property panel can be used for better process modeling.