Process Management¶
Maximizing performance while minimizing human error is a requirement of organizations of all sizes. This need is covered by defined processes and workflows, for recurring tasks. Ensuring all required information is available in the right place, and contacts are informed about their responsibilities like adding information, approving requests, etc.
OTRS supports this requirement by process management. Process tickets help by using the required mandatory and optional fields (see Dynamic Fields) that information is not forgotten upon ticket creation or during later steps of the process. Process tickets are simple to handle for customer users and agents, so no intensive training is required.
Processes are designed completely and efficiently within the OTRS front end to fit the requirements of your organization.
Use this screen to manage processes in the system. The process management screen is available in the Process Management module of the Processes & Automation group.
Manage Processes¶
To create a new process:
- Click on the Create New Process button in the left sidebar.
- Fill in the required fields.
- Click on the Save button.
- Add activities, user task activity dialogs, sequence flows and sequence flow actions.
- Set State to Active.
- Deploy all processes.
To edit a process:
- Click on a process in the list of processes.
- Modify the fields and the process path.
- Click on the Save or Save and finish button.
- Deploy all processes.
To copy a process:
- Click on the copy icon in the fifth column of list of processes.
- Click on the newly created process to edit it.
To delete a process:
- Click on a process in the list of processes.
- Set the State option to Inactive.
- Click on the Save button. A new Delete Inactive Process button will appear in the left sidebar.
- Click on the Delete Inactive Process button.
- Click on the Delete button in the confirmation screen.
- Deploy all processes.
Warning
Processes are written into file in Perl format. Without deploying, all processes are still in this cache file even if they are deleted or the State option is set to Inactive or FadeAway. Don’t forget to deploy all processes after modifications!
Give some time for agents to complete the running process tickets before the process will be deleted. It is possible to mark a process for deletion, i. e. set the process as not to be selected anymore. Process states can be:
- Active
- Processes can be used in new process tickets.
- FadeAway
- Agents and customer users cannot select this process for new tickets and neither can they assign this process to an existing ticket, but tickets where this process was assigned to can still use the process. For automation, other processes can still create new tickets with this process or assign this process to existing tickets.
- Inactive
- Processes are deactivated and cannot be used for new or existing tickets.
To deploy all processes:
- Click on the Deploy All Processes button in the left sidebar.
Note
New or modified processes have to be deployed in order to affect the behavior of the system. Setting the State option to Active just indicates, which processes should be deployed.
To export a process:
- Click on the export icon in the fourth column of list of processes.
- Choose a location in your computer to save the
Export_ProcessEntityID_xxx.yml
file.
Warning
The exported file contains only the process itself, and doesn’t contain the Queues, Agents, Dynamic Fields, etc. needed for the process.
To import a process:
- Click on the Browse… button of the Configuration Import widget in the left sidebar.
- Select a previously exported
.yml
file. - Click on the Import process configuration button.
- Deploy all processes.
Note
Before import a process, it is still necessary to create all Queues, Agents and Dynamic Fields, as well as to set System Configuration, that are needed by each process before the import. If the process requires the use of Access Control Lists (ACL) those are also needed to be set manually.
Note
If several processes are added to the system, use the filter box to find a particular process by just typing the name to filter.
Warning
The maximum number of 50 deployed processes should not be exceeded. Exceeding this limit may affect the system performance.
Process Elements¶
The element names of the process modeler have been adapted to the Business Process Model and Notation (BPMN) ISO naming convention.
Activities¶
The following task activities can be used as basic elements of the process.
- Script task activity
Script task activity is executed by the process management module and it can set dynamic field values or manage tickets automatically.
The following settings are available when adding or editing this resource. The fields marked with an asterisk are mandatory.
- Activity name *
- The name of this resource. Any type of characters can be entered to this field including uppercase letters and spaces.
- Activity type *
The following types of task activities can be used:
- Script task activity (selected for now)
- Service task activity
- User task activity
- Activity description
- Add additional information to this resource. It is recommended to always fill this field as a description of the resource with a full sentence for better clarity.
- Activity error code
- Define a custom error code for script or service task activities. The custom error code must be a positive integer number.
- Can start processes in
Defines, where can the processes be started by the agents or customer users. A process can be started in the following interfaces:
- Agent Interface
- Agent and External Interface
- External Interface
- Script *
In this drop-down can be selected which script should be triggered immediately if the activity is set. Click on the Configure button to add parameters (key-value pairs) for the script.
See also
Each module has its own and different parameters. Please refer to the Process Modules section to learn all required and optional parameters.
- Service task activity
Service task activity uses a web service to complete the task.
The following settings are available when adding or editing this resource. The fields marked with an asterisk are mandatory.
- Activity name *
- The name of this resource. Any type of characters can be entered to this field including uppercase letters and spaces.
- Activity type *
The following types of task activities can be used:
- Script task activity
- Service task activity (selected for now)
- User task activity
- Activity description
- Add additional information to this resource. It is recommended to always fill this field as a description of the resource with a full sentence for better clarity.
- Activity error code
- Define a custom error code for script or service task activities. The custom error code must be a positive integer number.
- Can start processes in
Defines, where can the processes be started by the agents or customer users. A process can be started in the following interfaces:
- Agent Interface
- Agent and External Interface
- External Interface
- Web Service *
- Select one of the Web Services from the drop-down list.
- Invoker *
- Select an invoker for the web service. Click on the Configure button to add parameters for the invoker.
- User task activity
User task activity can be used when the task is being done by an agent or a customer user.
The following settings are available when adding or editing this resource. The fields marked with an asterisk are mandatory.
- Activity name *
- The name of this resource. Any type of characters can be entered to this field including uppercase letters and spaces.
- Activity type *
The following types of task activities can be used:
- Script task activity
- Service task activity
- User task activity (selected for now)
- User Task Activity Dialogs
You can assign user task activity dialogs to this activity by dragging the elements with the mouse from the left list to the right list. Ordering the elements within the list is also possible by drag and drop.
Click on the Create New User Task Activity Dialog button to create new dialogs.
For each configured field in a user task activity dialog, the process modeler is able to choose the following options for the fields:
- Do not show Field
- Show Field
- Show Field As Mandatory
If you use Show Field for a select field the empty value needs to be added to the possible values. Otherwise without having an empty value available, this field will be always a mandatory field.
User Task Activity Dialogs¶
A user task activity dialog contains the actual user interaction of the process and consists of fields that can be displayed to the users in the Ticket Zoom screen or can be set automatically by them.
Click on the User Task Activity Dialogs item in the Available Process Elements widget in the left sidebar. This action will expand the User Task Activity Dialogs options and will collapse all others doing an accordion like effect.
Click on the Create New User Task Activity Dialog button.
The following settings are available when adding or editing this resource. The fields marked with an asterisk are mandatory.
- Dialog Name *
- The name of this resource. Any type of characters can be entered to this field including uppercase letters and spaces.
- Available in
It determines in which interface the dialog appears.
Possible values are:
- Agent Interface
- External Interface
- Agent and External Interface
- Description (short) *
- The dialog can be explained briefly here. The description is displayed in the user task activity dialog in the Ticket Zoom screen.
- Description (long)
- The dialog can be explained in more detail here. The description is displayed in the user task activity dialog in the Ticket Zoom screen.
- Permission
By means of this setting, the visibility of the process dialogs can be controlled, based on the user’s permissions on the queue in which the ticket is currently located. If a user does not have the here configured permissions on the group which is associated to the queue in which the ticket is currently located, the dialog will not be visible in the Ticket Zoom screen.
This permission setting does not affect the visibility of the first user task activity dialog while creating a new process ticket.
- Required Lock
By means of this setting, it is achieved that the ticket is automatically locked to the executing agent or not once an agent opens the user task activity dialog in the Ticket Zoom screen.
Possible values are:
- yes: the ticket is locked to the executing agent while executing
- no: the ticket is not locked to the executing agent while executing
- Submit Advice Text
- This text will be shown above the submit button and may contain an advice for the user.
- Submit Button Text
- With this text the button label can be changed from Submit to the text entered here.
To assign fields to the user task activity dialog simple drag the required field from the Available Fields pool and drop into the Assigned Fields pool. The order in the Assigned Fields pool is the order as the fields will have in the screen. To modify the order simply drag and drop the field within the pool to rearrange it in the correct place.
- Available Fields
- All available fields of the system are shown here in an alphabetical order.
- Assigned Fields
- The fields assigned to the dialog are displayed here.
As soon as the fields are dropped into the Assigned Fields pool another popup screen is shown with some details about the field.
- Description (short)
- A short explanatory text for the field can be specified here. The description will be displayed underneath the field.
- Description (long)
- A more detailed explanatory text for the field can be specified here. The description will be displayed when hovering over the icon next to the label of the field.
- Default value
- Defines a default value for that field.
- Communication Channel
- Defines the communication channel.
- Is visible to customer
- If this is checked, the customer user will be able to see the article created by the process.
- Time units
For each configured field in a user task activity dialog, the process modeler is able to choose the following options for the fields:
- Do not show Field
- Show Field
- Show Field As Mandatory
- Display
For each configured field in a user task activity dialog, the process modeler is able to choose the following options for the fields:
- Do not show Field
- Show Field
- Show Field As Mandatory
The option Do not show Field offers the possibility to set a field automatically to a certain value configured as a Default value.
If you use Show Field for a select field the empty value needs to be added to the possible values. Otherwise without having an empty value available, this field will be always a mandatory field.
Sequence Flows¶
A sequence flow is used to connect objects of a process and to represent the flow. The sequence flow controls the sequence of activities by checking whether certain defined conditions are met.
Click on the Sequence Flows item in the Available Process Elements widget in the left sidebar. This action will expand the Sequence Flows options and will collapse all others doing an accordion like effect.
Click on the Create New Sequence Flow button.
The following settings are available when adding or editing this resource. The fields marked with an asterisk are mandatory.
- Sequence Flow Name *
- The name of this resource. Any type of characters can be entered to this field including uppercase letters and spaces.
- Type of Linking between Condition Expressions
A sequence flow consists of one or many condition expressions. If the sequence flow has more than one condition expressions you can select the type of linking between the condition expressions.
Possible logical operators:
- and: the output is true if all inputs are true.
- or: the output is true if one or many of its inputs are true.
- xor: the output is true only if exactly one of its inputs is true.
A new condition expression can be added by clicking on the Add New Condition Expression button.
- Type of Linking
A condition expression can have one or many conditions. If your condition expression has more than one condition you can select the type of linking between them.
Possible logical operators:
- and: the output is true if all inputs are true.
- or: the output is true if one or many of its inputs are true.
- xor: the output is true only if exactly one of its inputs is true.
- Name
The name field contains the name of the attribute which shall be checked.
In case of dynamic fields the prefix
DynamicField_
has to be used in front of its name. Make sure that the spelling of the attribute name is correct.- Type
Three types of condition checks can be selected here.
- String: checks for a fixed value.
- Regular Expression: checks for patterns using regular expressions.
- Validation Module: checks if a certain logic is met which is contained in the validation module. Validation modules are custom made.
- Value
The value field can contain the following values:
- string,
- regular expression,
- a combination of the above.
By means of the + symbol on the right side, a new condition consisting of name, type and value can be added.
Examples:
Check if the ticket state is open.
- Name:
State
- Type: String
- Value: open
Check if the dynamic field named NewField1
contains the string full.
- Name:
DynamicField_NewField1
- Type: String
- Value: full
Check if the dynamic field named NewField1
contains something.
- Name:
DynamicField_NewField1
- Type: Regular expression
- Value:
.+
Sequence Flows Actions¶
With sequence flow actions ticket data can be changed or created, mails can be send from a ticket and data can be pushed from one OTRS object to the other.
Sequence flow actions need to be associated to a sequence flow. A sequence flow action is executed if the sequence flow is triggered and it gets executed after the following activity.
Click on the Sequence Flow Actions item in the Available Process Elements widget in the left sidebar. This action will expand the Sequence Flow Actions options and will collapse all others doing an accordion like effect.
Click on the Create New Sequence Flow Action button.
The following settings are available when adding or editing this resource. The fields marked with an asterisk are mandatory.
- Sequence Flow Action Name *
- The name of this resource. Any type of characters can be entered to this field including uppercase letters and spaces.
- Sequence Flow Action Module *
- In this drop-down field it can be selected which action module shall be executed.
If both fields are filled in, click on the Save button. A new Configure button will appear next to the action module field. Click on the Configure button and add the needed configuration parameter keys and values.
See also
Each module has its own and different parameters. Please refer to the Process Modules section to learn all required and optional parameters.
Process Modules¶
Process management modules can be used in sequence flow actions and script task activities. The modules are scripts which can interact with other objects like tickets, knowledge base articles, configuration items or appointments. Using these modules makes it possible to change the attributes of the process ticket or other objects.
Some built-in modules are shipped with the framework.
DynamicFieldSet
¶
A module to set the dynamic field values of a ticket.
- Configuration parameters section
The dynamic field values of the process ticket can be set here. The key is the attribute of the process ticket. The value can be a pre-defined text, an attribute from the process ticket in form of an OTRS tag or a concatenation of both. The
<OTRS_TICKET_*>
OTRS tag prefix can be used here.Examples:
Key Value Approved
1
User_ID
123
See also
See the DynamicFieldSet API reference.
TicketArticleCreate
¶
A module to create an article for a ticket.
- Configuration parameters section
Here can be set the article attributes of a ticket. The key is the attribute of the article which will be created. The value can be a pre-defined text, an attribute from the process ticket in form of an OTRS tag or a concatenation of both. The
<OTRS_TICKET_*>
OTRS tag prefix can be used here.Examples:
Key Value Body
<table cellspacing="2" cellpadding="2" border="1"> <thead> <tr> <th>Field</th> <th>Content</th> </tr> </thead> <tbody> <tr> <td>Book Title</td> <td><OTRS_TICKET_DynamicField_Title></td> </tr> <tr> <td>Book Author</td> <td><OTRS_TICKET_DynamicField_Author></td> </tr> <tr> <td>ISBN</td> <td><OTRS_TICKET_DynamicField_ISBN></td> </tr> </tbody> </table>
CommunicationChannel
Internal
ContentType
text/html;charset=UTF-8
HistoryComment
Last man standing
HistoryType
AddNote
IsVisibleForCustomer
1
SenderType
agent
Subject
Summarization of Former Process Ticket Content: <OTRS_TICKET_Title>
See also
See the TicketArticleCreate and the ArticleCreate() API reference.
TicketCreate
¶
A module to create a ticket.
- Configuration parameters section
Here can be set the ticket attributes. The key is the attribute of the ticket which will be created. The value can be a pre-defined text, an attribute from the process ticket in form of an OTRS tag or a concatenation of both. The
<OTRS_TICKET_*>
OTRS tag prefix can be used here.Examples:
Key Value CustomerID
<OTRS_TICKET_CustomerID>
CustomerUser
<OTRS_TICKET_CustomerUserID>
DynamicField_ProcessManagementActivityID
Activity-1a1924ad9c1a6b23f70fc58a80961760
DynamicField_ProcessManagementProcessID
Process-95a06ad414cf371ebc4b82c8c2a3c389
LinkAs
Child
Lock
unlock
OwnerID
1
Priority
3 normal
Queue
Postmaster
State
open
Title
Subtask of: <OTRS_TICKET_Title>
See also
See the TicketCreate and the TicketCreate() API reference.
TicketCustomerSet
¶
A module to set the customer of a ticket.
- Configuration parameters section
Here can be set the customer of the ticket. The key is the attribute of the process ticket. The value can be a pre-defined text, an attribute from the process ticket in form of an OTRS tag or a concatenation of both. The
<OTRS_TICKET_*>
OTRS tag prefix can be used here.Examples:
Key Value CustomerID
client123
CustomerUserID
client-user-123
See also
See the TicketCustomerSet and the TicketCustomerSet() API reference.
TicketLockSet
¶
A module to set the lock status of a ticket.
- Configuration parameters section
Here can be set the lock status of a ticket.
Examples:
Key Value Lock
locked
LockID
1
See also
See the TicketLockSet and the TicketLockSet() API reference.
TicketOwnerSet
¶
A module to set the owner of a ticket.
- Configuration parameters section
Here can be set the owner of a ticket.
Examples:
Key Value Owner
root@localhost
OwnerID
1
See also
See the TicketOwnerSet and the TicketOwnerSet() API reference.
TicketQueueSet
¶
A module to move a ticket to a new queue.
- Configuration parameters section
Here can be set the queue of a ticket.
Examples:
Key Value Queue
Misc
QueueID
1
See also
See the TicketQueueSet and the TicketQueueSet() API reference.
TicketResponsibleSet
¶
A module to set the responsible agent of a ticket.
- Configuration parameters section
Here can be set the responsible agent of a ticket.
Examples:
Key Value Responsible
root@localhost
ResponsibleID
1
See also
See the TicketResponsibleSet and the TicketResponsibleSet() API reference.
TicketSendEmail
¶
A module to send an email from a ticket.
- Configuration parameters for recipients section
Here can be set the recipients of the email.
- Send to these agents
- Select the agents who will receive the email.
- Additional recipient email addresses
- Additional email addresses can be added here.
- Configuration parameters for article section
- Here can be set if the article is visible to customer.
- Configuration parameters for email section
Here can be set the subject and the body of the email. Multiple languages are supported.
See also
See the TicketSendEmail API reference.
TicketServiceSet
¶
A module to set the service of a ticket.
- Configuration parameters section
Here can be set the service of a ticket.
Examples:
Key Value Service
MyService::Subservice
ServiceID
123
See also
See the TicketServiceSet and the TicketServiceSet() API reference.
TicketSLASet
¶
A module to set the SLA of a ticket.
- Configuration parameters section
Here can be set the service level agreement of a ticket.
Examples:
Key Value SLA
MySLA
SLAID
123
See also
See the TicketSLASet and the TicketSLASet() API reference.
TicketStateSet
¶
A module to set the state of a ticket.
- Configuration parameters section
Here can be set the state of a ticket.
Examples:
Key Value State
open
StateID
1
See also
See the TicketStateSet and the TicketStateSet() API reference.
TicketTitleSet
¶
A module to set the title of a ticket.
- Configuration parameters section
Here can be set the title of a ticket.
Examples:
Key Value Title
Some ticket title
See also
See the TicketTitleSet and the TicketTitleUpdate() API reference.
TicketTypeSet
¶
A module to set the type of a ticket.
- Configuration parameters section
Here can be set the type of a ticket.
Examples:
Key Value Type
Default
TypeID
1
See also
See the TicketTypeSet and the TicketTypeSet() API reference.
Example process¶
Processes are more complex than other resources in OTRS. To create a process, you need to do several steps. The following chapters shows you, how to define a process from the specification and create the needed resources. Let’s see an example to make it more demonstrative. We will define a book order process.
Process Specification¶
The book order process has four states.
- Recording the demand
Before an order will be placed, the demand for literature by an employee will be recorded. The following book is needed in our example:
Title: Prozessmanagement für Dummies Autor: Thilo Knuppertz ISBN: 3527703713
- Approval by manager
- The head of the employee’s department needs to decide on the order. In case of a denial, a reason should be recorded by the manager. In case of approval, the order is passed to the purchasing department.
- Processing by purchasing department
- Purchasing now has the task to find out where the book can be ordered with the best conditions. If it is out of stock, this can be recorded in the order. In case of a successful order purchasing will record the supplier, the price and the delivery date.
- Processing by the mail room
- The shipment will arrive at the company. The incoming goods department checks the shipment and records the date of receipt. Now the employee will be informed that their order has arrived and is ready to be collected.
Introduce The Process Elements¶
If we assume that a ticket acts in this workflow like an accompanying document that can receive change notes, we already have a clear picture of process tickets.
From the analysis of the example process we can identify the following necessary items:
- Possibility to record data, let’s call this user task activity dialog.
- Check which can react to changed data automatically, let’s call this sequence flow.
- Change which can be applied to a process ticket after successful transitions of a process ticket, let’s call this sequence flow action.
- A possibility to offer more than just one user task activity dialog to be available. In our example this is needed when the manager must have the choice between Approve and Deny. Let’s call this activity.
Now, with activities, user task activity dialogs, sequence flows and sequence flow actions we have the necessary tools to model the individual steps of our example. What is still missing is an area where for each workflow the order of the steps can be specified. Let’s call this process.
Create Necessary Resources¶
Before the creation of the process and its parts is necessary to prepare the system. We need to define some Queues, Agents and Dynamic Fields as well as set some System Configuration settings.
Create the following Queues:
- Management
- Employees
- Purchasing
- Post office
Create the following Agents:
- Manager
- Employee
Create the following Dynamic Fields:
Object | Type | Name | Label | Possible values |
---|---|---|---|---|
Ticket | Text | Title |
Title | |
Ticket | Text | Author |
Author | |
Ticket | Text | ISBN |
ISBN | |
Ticket | Dropdown | Status |
Status |
|
Ticket | Text | Supplier |
Supplier | |
Ticket | Text | Price |
Price | |
Ticket | Date | DeliveryDate |
Delivery date | |
Ticket | Date | DateOfReceipt |
Date of receipt |
Set the following System Configuration settings:
-
- Enabled
Ticket::Frontend::AgentTicketZoom###ProcessWidgetDynamicField
Author
→ 1 - EnabledDateOfReceipt
→ 1 - EnabledDeliveryDate
→ 1 - EnabledISBN
→ 1 - EnabledPrice
→ 1 - EnabledStatus
→ 1 - EnabledSupplier
→ 1 - EnabledTitle
→ 1 - Enabled
Ticket::Frontend::AgentTicketZoom###ProcessWidgetDynamicFieldGroups
Book
→Title,Author,ISBN
General
→Status
Order
→Price,Supplier,DeliveryDate
Shipment
→DateOfReceipt
Note
Don’t forget to deploy the modified system configuration settings.
Now, go back to the Process Management screen and click on the Create New Process. Fill in the required fields.
The new process is created. You can add some process element now.
Create User Task Activity Dialogs¶
Click on the User Task Activity Dialogs item in the Available Process Elements widget in the left sidebar. This action will expand the User Task Activity Dialogs options and will collapse all others doing an accordion like effect. Click on the Create New User Task Activity Dialog button.
In the opened popup screen fill in the Dialog Name as well as the Description (short) fields. For this example we will leave all other fields as the default.
To assign fields to the user task activity dialog simple drag the required field from the Available Fields pool and drop into the Assigned Fields pool. The order in the Assigned Fields pool is the order as the fields will have in the screen. To modify the order simply drag and drop the field within the pool to rearrange it in the correct place.
In this example we will use:
Article
field for comments.DynamicField_Title
,DynamicField_Author
,DynamicField_ISBN
fields for the data to be collected for the order.DynamicField_Status
with the possibility to choose Approval.
Drag these fields from the Available Fields pool and drop into the Assigned Fields pool.
Note
In this screen all dynamic fields has the prefix DynamicField_
as in DynamicField_Title
. Do not confuse with the field Title
that is the ticket title.
As soon as the fields are dropped into the Assigned Fields pool another popup screen is shown with some details about the field. We will leave the default options and only for Article
fields we should make sure that the Communication Channel field is set to OTRS and that the Is visible for customer is not checked.
After all fields are filled in, click on the Save and finish button to save the changes and go back to the project management screen.
Create the following user task activity dialogs with fields:
Recording the demand (already created before)
Article
field for comments.DynamicField_Title
,DynamicField_Author
,DynamicField_ISBN
fields for the data to be collected for the order.DynamicField_Status
with the possibility to choose Approval.
Approval denied
Article
field for comments.DynamicField_Status
with the possibility to choose Approval denied.
Approved
DynamicField_Status
with the possibility to choose Approved.
Order denied
Article
field for comments.DynamicField_Status
with the possibility to choose Order denied.
Order placed
DynamicField_Supplier
,DynamicField_Price
,DynamicField_DeliveryDate
fields for purchasing.DynamicField_Status
with the possibility to choose Order placed.
Shipment received
DynamicField_DateOfReceipt
for the mail room.DynamicField_Status
with the possibility to choose Shipment received.
Create Sequence Flows¶
Click on the Sequence Flows item in the Available Process Elements widget in the left sidebar. This action will expand the Sequence Flows options and will collapse all others doing an accordion like effect. Click on the Create New Sequence Flow button.
In the opened popup screen fill in the Sequence Flow Name. For this example in the Condition Expressions we will use just one condition expression and just one field. For both we can leave the Type of Linking as and and we will use the filed match type value as String.
After all fields are filled in, click on the Save and finish button to save the changes and go back to the project management screen.
Create the following sequence flows:
Approval (already created before)
Check if the
DynamicField_Status
is set to Approval.Approval denied
Check if the
DynamicField_Status
field is set to Approval denied.Approved
Check if the
DynamicField_Status
field is set to Approved.Order denied
Check if the
DynamicField_Status
field is set to Order denied.Order placed
Check if the
DynamicField_Status
field is set to Order placed.Shipment received
Check if the
DynamicField_Status
field is set to Shipment received.
Create Sequence Flow Actions¶
Click on the Sequence Flow Actions item in the Available Process Elements widget in the left sidebar. This action will expand the Sequence Flow Actions options and will collapse all others doing an accordion like effect. Click on the Create New Sequence Flow Action button.
In the opened popup screen fill in the Sequence Flow Action Name and the Sequence Flow Action module then click on the Save button. A new Configure button will appear next to the module field.
Click on the Configure button and add the needed configuration parameter keys and values.
See also
Each module has its own and different parameters. Please refer to the Process Modules section to learn all required and optional parameters.
After all fields are filled in, click on the Save and finish button to save the changes and go back to the project management screen.
Create the following sequence flow actions:
Move the process ticket into the “Management” queue (already created before)
To be executed when the sequence flow Approval applied.
Change ticket responsible to “Manager”
To be executed when the sequence flow Approval applied.
Move process ticket into the “Employees” queue
To be executed when:
- The sequence flow Approval denied applied.
- The sequence flow Order denied applied.
- The sequence flow Shipment received applied.
Change ticket responsible to “Employee”
To be executed when:
- The sequence flow Approval denied applied.
- The sequence flow Order denied applied.
- The sequence flow Shipment received applied.
Move process ticket into the “Purchasing” queue
To be executed when the sequence flow Approved applied.
Move process ticket into the “Post office” queue
To be executed when the sequence flow Order placed applied.
Close ticket successfully
To be executed when the sequence flow Shipment received applied.
Close ticket unsuccessfully
To be executed when:
- The sequence flow Approval denied applied.
- The sequence flow Order denied applied.
There are places where the same sequence flow actions should be executed. Therefore it is reasonable to make it possible to link sequence flow actions freely with sequence flows to be able to reuse them.
Create Activities¶
Click on the Activities item in the Available Process Elements widget in the left sidebar. This action will expand the Activities options and will collapse all others doing an accordion like effect. Click on the Create New Activity button.
In the opened popup screen fill in the Activity name field and select User task activity from the Activity type drop-down.
To assign dialogs to the activity simple drag the required dialogs from the Available User Task Activity Dialogs pool and drop into the Assigned User Task Activity Dialogs pool. The order in the Assigned User Task Activity Dialogs pool is the order as the dialogs will be presented in the Ticket Zoom screen. To modify the order simply drag and drop the dialog within the pool to rearrange it in the correct place.
Note
This order is specially important in the first activity, since the first user task activity dialog for this activity is the only one that is presented when the process starts.
In this example we need to assign only the Recording the demand user task activity dialog. Drag this dialog from the Available User Task Activity Dialogs pool and drop into the Assigned User Task Activity Dialogs pool.
After all fields are filled in, click on the Save and finish button to save the changes and go back to the project management screen.
Create the following activities:
Recording the demand (already created before)
Assign the user task activity dialog Recording the demand.
Approval
Assign the user task activity dialogs Approval denied and Approved.
Order
Assign the user task activity dialogs Order denied and Order placed.
Incoming
Assign the user task activity dialog Shipment received.
Process complete
This is an activity without possible user task activity dialogs. It will be set after Approval denied, Order denied or Shipment received and represents the end of the process.
Now we can clearly see that activities are precisely defined states of a process ticket. After a successful sequence flow a process ticket moves from one activity to another.
Create Process Path¶
Let us conclude our example with the last missing piece in the puzzle, the process as the a flow describer. In our case this is the whole ordering workflow. Other processes could be office supply ordering or completely different processes.
The process has a starting point which consists of the start activity and the start user task activity dialog. For any new book order, the first user task activity dialog of the first activity is the first screen that is displayed. If this is completed and saved, the process ticket will be created and can follow the configured workflow.
The process also contains the directions for how the process ticket can move through the process. Let’s call this process path. It consists of the start activity, one or more sequence flows (possibly with sequence flow actions) and other activities.
Assuming that the activities has already assigned their user task activity dialogs, drag an activity from the accordion in the Available Process Elements widget in the left sidebar and drop it into the canvas area below the process information. Notice that an arrow from the process start (white circle) to the activity is placed automatically. This is the first activity and its first user task activity dialog is the first screen that will be shown when the process starts.
Next, drag another activity into the canvas too. Now we will have two activities in the canvas. The first one is connected to the start point and the second has no connections. You can hover the mouse over each activity to reveal their own activity dialogs.
Then let’s create the process path (connection) between this two activities. For this we will use the sequence flows. Click on sequence flow in the accordion, drag a sequence flow and drop it inside the first activity. As soon as the sequence flow is dropped the end point of the sequence flow arrow will be placed next to the process start point. Drag the sequence flow arrow end point and drop it inside the other activity to create the connection between the activities.
Now that the process path between the actions is defined, then we need to assign the sequence flow actions to the sequence flow. Double click the sequence flow label in the canvas to open a new popup window.
After the sequence flow actions are assigned, click on the Save button to go back to the main process edit screen. Click on Save button below the canvas to save all other changes.
Complete the process path by adding the following activities, sequence flows and sequence flow actions:
Recording the demand (already created before)
Possible sequence flow: Approval
Starting activity: Recording the demand
Next activity: Approval
If the condition of this activity is fulfilled, the ticket will move to activity Approval.
Additionally, the following sequence flow actions are executed:
- Move the process ticket into the “Management” queue
- Change ticket responsible to “Manager”
The activity Recording the demand is a defined step of the process ticket, where there is the possibility for the sequence flow Approval. If this applies, the ticket will move to the next activity Approval, and the sequence flow actions Move the process ticket into the “Management” queue and Change ticket responsible to “Manager” are executed. In the activity Approval, the user task activity dialogs Approval denied and Approved are available.
Approval
Possible sequence flow: Approval denied
Starting activity: Approval
Next activity: Process complete
If this matches, the process ticket will move to activity Process complete.
Additionally, the following sequence flow actions are executed:
- Move process ticket into the “Employees” queue
- Change ticket responsible to “Employee”
- Close ticket unsuccessfully
Possible sequence flow: Approved
Starting activity: Approval
Next activity: Order
If this matches, the process ticket will move to activity Order.
Additionally, the following sequence flow actions are executed:
- Move process ticket into the “Purchasing” queue
We can see that from the current activity, which defines a step of the process ticket, there are one or more possibilities for sequence flow which have exactly one target activity (and possibly one or more sequence flow actions).
Order
Possible sequence flow: Order denied
Starting activity: Order
Next activity: Process complete
If this matches, the process ticket will move to activity Process complete.
Additionally, the following sequence flow actions are executed:
- Move process ticket into the “Employees” queue
- Change ticket responsible to “Employee”
- Close ticket unsuccessfully
Possible sequence flow: Order placed
Starting activity: Order
Next activity: Incoming
If this matches, the process ticket will move to activity Incoming.
Additionally, the following sequence flow actions are executed:
- Move process ticket into the “Post office” queue
Incoming
Possible sequence flow: Shipment received
Starting activity: Incoming
Next activity: Process complete
If this matches, the process ticket will move to activity Process complete.
Additionally, the following sequence flow actions are executed:
- Move process ticket into the “Employees” queue
- Change ticket responsible to “Employee”
- Close ticket successfully
The complete process path for the book ordering process will then look like this:
After you finish the process path, click on Save and finish button below the canvas to go back to the process management screen.
Click on the Deploy All Processes button in the left sidebar. This will gather all processes information form the database and create a cache file (in Perl language). This cache file is actually the processes configuration that the system will use to create or use process tickets.
Note
Any change that is made on the process will require to re-deploy the process in order to get the change reflected in the system.
Create Access Control Lists¶
With the help of Access Control Lists (ACL), the selectable values in process tickets can be limited. Some ACLs have to be defined for the book ordering process to operate correctly.
In this section, all necessary ACLs are defined. Each ACL is added here in YAML format, so you can copy them, save them as separate .yml
files and import them in the ACL management screen.
Warning
The exported ACLs contain the activity dialog IDs from the system, where they were exported from. Do not forget to change the IDs based on your process. Otherwise the ACLs will not work.
See also
Use the Show EntityIDs link in the header of the process canvas to see the entity IDs. For the activity dialogs, hover the mouse over the name in the list of activity dialogs in the left sidebar to see the ID.
001-ACL-BookOrderingStatus
This ACL enables only the Approval value for the
Status
dynamic field in the Recording the demand activity dialog.--- - ChangeBy: root@localhost ChangeTime: 2020-04-18 15:46:16 Comment: Approval ConfigChange: Possible: Ticket: DynamicField_Status: - Approval ConfigMatch: Properties: Process: ActivityDialogEntityID: - ActivityDialog-bfa31751ee47f8d8ec3a15e4cf1de732 CreateBy: root@localhost CreateTime: 2020-04-18 15:42:06 Description: '' ID: 1 Name: 001-ACL-BookOrderingStatus StopAfterMatch: 0 ValidID: 1
002-ACL-BookOrderingStatus
This ACL enables only the Approval denied value for the
Status
dynamic field in the Approval denied activity dialog.--- - ChangeBy: root@localhost ChangeTime: 2020-04-18 15:46:08 Comment: Approval denied ConfigChange: Possible: Ticket: DynamicField_Status: - Approval denied ConfigMatch: Properties: Process: ActivityDialogEntityID: - ActivityDialog-1ce810fd3668ce799f25cf968b139427 CreateBy: root@localhost CreateTime: 2020-04-18 15:44:21 Description: '' ID: 2 Name: 002-ACL-BookOrderingStatus StopAfterMatch: 0 ValidID: 1
003-ACL-BookOrderingStatus
This ACL enables only the Approved value for the
Status
dynamic field in the Approved activity dialog.--- - ChangeBy: root@localhost ChangeTime: 2020-04-18 15:47:04 Comment: Approved ConfigChange: Possible: Ticket: DynamicField_Status: - Approved ConfigMatch: Properties: Process: ActivityDialogEntityID: - ActivityDialog-96b8e0d7f8a0e69e170f7871cbb83e15 CreateBy: root@localhost CreateTime: 2020-04-18 15:46:22 Description: '' ID: 3 Name: 003-ACL-BookOrderingStatus StopAfterMatch: 0 ValidID: 1
004-ACL-BookOrderingStatus
This ACL enables only the Order denied value for the
Status
dynamic field in the Order denied activity dialog.--- - ChangeBy: root@localhost ChangeTime: 2020-04-18 15:48:07 Comment: Order denied ConfigChange: Possible: Ticket: DynamicField_Status: - Order denied ConfigMatch: Properties: Process: ActivityDialogEntityID: - ActivityDialog-5b60db9960a9cd488f448e3308cc8b4f CreateBy: root@localhost CreateTime: 2020-04-18 15:47:07 Description: '' ID: 4 Name: 004-ACL-BookOrderingStatus StopAfterMatch: 0 ValidID: 1
005-ACL-BookOrderingStatus
This ACL enables only the Order placed value for the
Status
dynamic field in the Order placed activity dialog.--- - ChangeBy: root@localhost ChangeTime: 2020-04-18 15:48:51 Comment: Order placed ConfigChange: Possible: Ticket: DynamicField_Status: - Order placed ConfigMatch: Properties: Process: ActivityDialogEntityID: - ActivityDialog-a756ccae6ae83f356faa8333549a87f0 CreateBy: root@localhost CreateTime: 2020-04-18 15:48:13 Description: '' ID: 5 Name: 005-ACL-BookOrderingStatus StopAfterMatch: 0 ValidID: 1
006-ACL-BookOrderingStatus
This ACL enables only the Shipment received value for the
Status
dynamic field in the Shipment received activity dialog.--- - ChangeBy: root@localhost ChangeTime: 2020-04-18 15:49:41 Comment: Shipment received ConfigChange: Possible: Ticket: DynamicField_Status: - Shipment received ConfigMatch: Properties: Process: ActivityDialogEntityID: - ActivityDialog-885f547d9a0e07aa6e2703af59ec08ae CreateBy: root@localhost CreateTime: 2020-04-18 15:48:57 Description: '' ID: 6 Name: 006-ACL-BookOrderingStatus StopAfterMatch: 0 ValidID: 1
Note
Don’t forget to deploy the imported ACLs.
Create Process Ticket¶
The book ordering process is ready to use. Go to the New Process Ticket screen in the agent interface, and find the book ordering process.