Outdated documentation

You are looking at the documentation for an older release. For the latest information, please see current release documentation.

流程管理

最大限度地提高性能,同时最大限度地减少人为错误是各种规模组织的一项需求。对于周期性任务,定义的流程和工作流可以满足这一需求。确保所有必需的信息在正确的位置可用,并向联系人通报其职责,如添加信息、批准请求等。

OTRS通过流程管理支持这一需求。通过使用必填和可选字段(请参阅 动态字段),来帮助您在创建工单时或在流程的后续步骤中不会忘记这些信息。 流程工单对于客户用户和服务人员来说很容易处理,因此不需要强化培训。

流程在OTRS前端内完全有效地设计,以满足您组织的要求。

使用此屏幕管理系统中的流程。流程管理 屏幕位于 流程与自动化 组的 流程管理 模块中。

管理流程

若要创建一个新流程:

  1. 点击左侧边栏中的 创建新的流程 按钮。
  2. 填写必填字段。
  3. 点击 保存 按钮。
  4. 添加活动、用户任务活动对话框、以及序列流和序列流操作。
  5. 状态 设置为 活动的
  6. 部署所有流程。
Create New Process Screen

创建新的流程屏幕

若要编辑一个流程:

  1. 点击流程列表中的一个流程。
  2. 修改字段和流程路径。
  3. 点击 保存保存并完成 按钮。
  4. 部署所有流程。

若要复制一个流程:

  1. 点击流程列表第5列的复制图标。
  2. 点击新创建的流程来编辑。

若要删除一个流程:

  1. 点击流程列表中的一个流程。
  2. 状态 设置为 非活动的
  3. 点击 保存 按钮。在左侧边栏中将出现一个新的 删除非活动的流程 按钮。
  4. 点击 删除非活动的流程 按钮。
  5. 点击确认屏幕中的 删除 按钮。
  6. 部署所有流程。

警告

流程以Perl格式写入文件。在不部署的情况下,所有流程都仍在此缓存文件中,即使它们已被删除或 状态 选项设置为 非活动的消退 。不要忘记在修改后部署所有流程!

在删除流程之前,给服务人员一些时间完成正在运行的流程通知单。可以将流程标记为删除,即将该流程设置为不再被选中。流程状态可以是:

活动的
流程可用于新流程工单。
消退
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.
非活动的
流程被停用,不能用于新的或现有的工单。

若要部署所有流程:

  1. 点击左侧边栏的 部署所有流程 按钮。

注解

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.

若要导出一个流程:

  1. 点击流程列表第4列的导出图标。
  2. 在计算机中选择一个位置以保存 Export_ProcessEntityID_xxx.yml 文件。

警告

导出的文件只包含流程本身,不包含流程所需的 队列服务人员动态字段 等。

若要导入一个流程:

  1. 点击左侧边栏中的 配置导入 小部件的 浏览… 按钮。
  2. 选择一个先前导出的 .yml 文件。
  3. 点击 导入流程配置 按钮。
  4. 部署所有流程。

注解

在导入流程之前,仍然需要创建导入前每个流程所需的所有 队列服务人员动态字段,以及设置 系统配置。如果流程需要使用 访问控制列表(ACL) ,这些也需要手动设置。

注解

如果系统中添加了多个流程,只需键入要过滤的名称,即可使用过滤器框查找特定流程。

警告

The maximum number of 50 deployed processes should not be exceeded. Exceeding this limit may affect the system performance.

流程元素

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 Window

脚本任务活动窗口

添加或编辑此资源时,可以使用以下设置。 标有星号的字段是必填字段。

活动名称 *
此资源的名称。可以在此字段中输入任何类型的字符,包括大写字母和空格。
活动类型 *

可以使用以下类型的任务活动:

  • 脚本任务活动(当前选择)
  • 服务任务活动
  • 用户任务活动
活动描述
向此资源添加附加信息。 为了更加清晰,建议始终将此字段填充为带有完整句子的资源描述。
活动错误代码
自定义产生于脚本或服务任务活动的错误代码。自定义的错误代码必须为正整数。
可以启动流程于

定义服务人员或客户用户在何处启动流程。 可以在以下界面中启动流程:

  • 服务人员界面
  • 服务人员和外部人员界面
  • 外部人员界面
脚本 *

在这个下拉框中,可以选择如果设置了活动,应该立即触发哪个脚本。单击 配置 按钮为脚本添加参数(键值对)。

参见

Each module has its own and different parameters. Please refer to the Process Modules section to learn all required and optional parameters.

服务任务活动

服务任务活动使用 WEB 服务来完成任务。

Service Task Activity Window

服务任务活动窗口

添加或编辑此资源时,可以使用以下设置。 标有星号的字段是必填字段。

活动名称 *
此资源的名称。可以在此字段中输入任何类型的字符,包括大写字母和空格。
活动类型 *

可以使用以下类型的任务活动:

  • 脚本任务活动
  • 服务任务活动(当前选择)
  • 用户任务活动
活动描述
向此资源添加附加信息。 为了更加清晰,建议始终将此字段填充为带有完整句子的资源描述。
活动错误代码
自定义产生于脚本或服务任务活动的错误代码。自定义的错误代码必须为正整数。
可以启动流程于

定义服务人员或客户用户在何处启动流程。 可以在以下界面中启动流程:

  • 服务人员界面
  • 服务人员和外部人员界面
  • 外部人员界面
Web 服务
从下拉列表中选择一个 Web服务
调用程序 *
为 Web 服务选择一个调用程序。点击 配置 按钮为调用程序添加参数。
用户任务活动

当任务由服务人员或客户用户执行时,可以使用用户任务活动。

User Task Activity Window

用户任务活动窗口

添加或编辑此资源时,可以使用以下设置。 标有星号的字段是必填字段。

活动名称 *
此资源的名称。可以在此字段中输入任何类型的字符,包括大写字母和空格。
活动类型 *

可以使用以下类型的任务活动:

  • 脚本任务活动
  • 服务任务活动
  • 用户任务活动(当前选择)
用户任务活动对话框

通过用鼠标将元素从左列表拖到右列表,可以将用户任务活动对话框分配给该活动。通过拖放也可以对列表中的元素进行排序。

点击 创建新用户任务活动对话框 按钮创建新对话框。

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.

用户任务活动对话框

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.

User Task Activity Dialogs

用户任务活动对话框

Click on the Create New User Task Activity Dialog button.

Add User Task Activity Dialog

Add User Task Activity Dialog

添加或编辑此资源时,可以使用以下设置。 标有星号的字段是必填字段。

Dialog Name *
此资源的名称。可以在此字段中输入任何类型的字符,包括大写字母和空格。
Available in

It determines in which interface the dialog appears.

Possible values are:

  • 服务人员界面
  • 外部人员界面
  • 服务人员和外部人员界面
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.

要将字段分配给用户任务活动对话框,只需从 可用字段 池中拖动所需字段,并将其放到 已分配字段 池中。已分配字段 池中的顺序与屏幕中字段的顺序相同。要修改顺序,只需拖放池中的字段,将其重新排列到正确的位置。

Add User Task Activity Dialog Fields

Add User Task Activity Dialog Fields

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.

Edit User Task Activity Dialog Fields

Edit User Task Activity Dialog Fields

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.
默认值
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.

Sequence Flows

Sequence Flows

Click on the Create New Sequence Flow button.

Add Sequence Flow

Add Sequence Flow

添加或编辑此资源时,可以使用以下设置。 标有星号的字段是必填字段。

Sequence Flow Name *
此资源的名称。可以在此字段中输入任何类型的字符,包括大写字母和空格。
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.
名称

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.

类型

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
Sequence Flow Example

Sequence Flow Example

Check if the dynamic field named NewField1 contains the string full.

  • Name: DynamicField_NewField1
  • Type: String
  • Value: full
Sequence Flow Example

Sequence Flow Example

Check if the dynamic field named NewField1 contains something.

  • Name: DynamicField_NewField1
  • Type: Regular expression
  • Value: .+
Sequence Flow Example

Sequence Flow Example

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.

Sequence Flow Actions

Sequence Flow Actions

Click on the Create New Sequence Flow Action button.

Add Sequence Flow Action

Add Sequence Flow Action

添加或编辑此资源时,可以使用以下设置。 标有星号的字段是必填字段。

Sequence Flow Action Name *
此资源的名称。可以在此字段中输入任何类型的字符,包括大写字母和空格。
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.

Sequence Flow Action Parameters

Sequence Flow Action Parameters

参见

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.

Process Management Module DynamicFieldSet

Process Management Module DynamicFieldSet

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 the DynamicFieldSet API reference.

TicketArticleCreate

A module to create an article for a ticket.

Process Management Module TicketArticleCreate

Process Management Module TicketArticleCreate

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 the TicketArticleCreate and the ArticleCreate() API reference.

TicketCreate

A module to create a ticket.

Process Management Module TicketCreate

Process Management Module TicketCreate

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 the TicketCreate and the TicketCreate() API reference.

TicketCustomerSet

A module to set the customer of a ticket.

Process Management Module TicketCustomerSet

Process Management Module TicketCustomerSet

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 the TicketCustomerSet and the TicketCustomerSet() API reference.

TicketLockSet

A module to set the lock status of a ticket.

Process Management Module TicketLockSet

Process Management Module TicketLockSet

Configuration parameters section

Here can be set the lock status of a ticket.

Examples:

Key Value
Lock locked
LockID 1

参见

See the TicketLockSet and the TicketLockSet() API reference.

TicketOwnerSet

A module to set the owner of a ticket.

Process Management Module TicketOwnerSet

Process Management Module TicketOwnerSet

Configuration parameters section

Here can be set the owner of a ticket.

Examples:

Key Value
Owner root@localhost
OwnerID 1

参见

See the TicketOwnerSet and the TicketOwnerSet() API reference.

TicketQueueSet

A module to move a ticket to a new queue.

Process Management Module TicketQueueSet

Process Management Module TicketQueueSet

Configuration parameters section

Here can be set the queue of a ticket.

Examples:

Key Value
Queue Misc
QueueID 1

参见

See the TicketQueueSet and the TicketQueueSet() API reference.

TicketResponsibleSet

A module to set the responsible agent of a ticket.

Process Management Module TicketResponsibleSet

Process Management Module TicketResponsibleSet

Configuration parameters section

Here can be set the responsible agent of a ticket.

Examples:

Key Value
Responsible root@localhost
ResponsibleID 1

参见

See the TicketResponsibleSet and the TicketResponsibleSet() API reference.

TicketSendEmail

A module to send an email from a ticket.

Process Management Module TicketSendEmail

Process Management Module TicketSendEmail

Configuration parameters for recipients section

Here can be set the recipients of the email.

发送给这些服务人员
Select the agents who will receive the email.
额外的收件人邮件地址
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 the TicketSendEmail API reference.

TicketServiceSet

A module to set the service of a ticket.

Process Management Module TicketServiceSet

Process Management Module TicketServiceSet

Configuration parameters section

Here can be set the service of a ticket.

Examples:

Key Value
Service MyService::Subservice
ServiceID 123

参见

See the TicketServiceSet and the TicketServiceSet() API reference.

TicketSLASet

A module to set the SLA of a ticket.

Process Management Module TicketSLASet

Process Management Module TicketSLASet

Configuration parameters section

Here can be set the service level agreement of a ticket.

Examples:

Key Value
SLA MySLA
SLAID 123

参见

See the TicketSLASet and the TicketSLASet() API reference.

TicketStateSet

A module to set the state of a ticket.

Process Management Module TicketStateSet

Process Management Module TicketStateSet

Configuration parameters section

Here can be set the state of a ticket.

Examples:

Key Value
State open
StateID 1

参见

See the TicketStateSet and the TicketStateSet() API reference.

TicketTitleSet

A module to set the title of a ticket.

Process Management Module TicketTitleSet

Process Management Module TicketTitleSet

Configuration parameters section

Here can be set the title of a ticket.

Examples:

Key Value
Title Some ticket title

参见

See the TicketTitleSet and the TicketTitleUpdate() API reference.

TicketTypeSet

A module to set the type of a ticket.

Process Management Module TicketTypeSet

Process Management Module TicketTypeSet

Configuration parameters section

Here can be set the type of a ticket.

Examples:

Key Value
Type Default
TypeID 1

参见

See the TicketTypeSet and the TicketTypeSet() API reference.

流程示例

流程比OTRS中的其他资源更复杂。要创建流程,需要执行几个步骤。下面的章节向您展示了如何根据规范定义流程并创建所需的资源。让我们看一个例子,让它更具演示性。我们将定义图书订购流程。

流程规范

图书订购流程有四种状态。

记录需求

在生成订单之前,雇员对书籍的需求将被记录。下列书籍是我们示例中所需要的:

Title: Prozessmanagement für Dummies
Autor: Thilo Knuppertz
ISBN: 3527703713
经理审批
部门经理需要确认需求。若经理拒绝,需要记录决定原因。若同意,流程将会跳转到采购部。
采购部处理
现在采购人员需要找出如何以最好的条件购买所需书籍。若书籍缺货,需要在工单中进行记录。如果成功下单,将需要记录供应商、售价与交货时间。
收发室处理
这批货物将到达公司。进货部门负责检查货物,并记录货品到达日期。接着员工将被告知他们的订单已经到达,并已准备好进行接收。

介绍流程元素

如果我们假设一个工单在这个工作流中像一个可以接收变更通知的附带文档一样工作,那么我们已经有了一个流程工单的清晰图片。

通过示例流程分析,我们可以确定下列需要的条目:

  • 记录数据的可能性,让我们称之为 用户任务活动对话框
  • 检查哪些可以自动对已更改的数据做出反应,让我们称之为 序列流
  • 在成功转换流程工单后,可以应用于流程工单的更改,我们将其称为 序列流操作
  • 提供多个用户任务活动对话框的可能性。在我们的示例中,当经理必须在 批准拒绝 之间进行选择时,就需要这样做。让我们称之为 活动

现在,有了活动、用户任务活动对话框、序列流和序列流操作,我们就有了必要的工具来建模示例中的各个步骤。仍然缺少的是一个可以为每个工作流指定步骤顺序的区域。让我们称之为 流程

创建必要的资源

在创建流程及其部件之前,必须准备好系统。我们需要定义一些 队列服务人员动态字段 并设置一些 系统配置 设置。

创建以下 队列

  • 管理
  • 员工
  • 采购
  • 收发室

创建以下 服务人员

  • 经理
  • 员工

创建以下 动态字段

对象 类型 名称 标签 可能值
工单 文本 Title 标题  
工单 文本 Author 作者  
工单 文本 ISBN ISBN  
工单 下拉选项框 Status 状态
  • 审批
  • 审批拒绝
  • 通过审批
  • 采购拒绝
  • 生成订单
  • 货品收到
工单 文本 Supplier 供应商  
工单 文本 Price 价格  
工单 日期 DeliveryDate 交货日期  
工单 日期 DateOfReceipt 收件日期  

设置以下内容 系统配置 设置:

注解

不要忘记部署修改后的系统配置设置。

现在,返回到 流程管理 屏幕并单击 创建新的流程。填写所需字段。

Book Ordering - Create New Process

图书预订 - 创建新的流程

新的流程已创建。现在可以添加一些流程元素。

创建用户任务活动对话框

单击左侧边栏中的 可用的流程元素 小部件中的 用户任务活动对话框 项。此操作将展开 用户任务活动对话框 选项,并折叠所有其他的选项,类似手风琴效果。单击 创建新用户任务活动对话框 按钮。

Book Ordering - User Task Activity Dialogs

图书预订 - 用户任务活动对话框

在打开的弹出屏幕中,填写 对话框名称说明(短) 字段。对于这个示例,我们将保留所有其他字段作为默认值。

Book Ordering - Add User Task Activity Dialog

图书预订 - 添加用户任务活动对话框

要将字段分配给用户任务活动对话框,只需从 可用字段 池中拖动所需字段,并将其放到 已分配字段 池中。已分配字段 池中的顺序与屏幕中字段的顺序相同。要修改顺序,只需拖放池中的字段,将其重新排列到正确的位置。

在本例中,我们将使用:

  • Article 字段用于备注。
  • DynamicField_TitleDynamicField_AuthorDynamicField_ISBN 字段用于为订单收集的数据。
  • DynamicField_Status 可选择 批准

将这些字段从 可用字段 池中拖动并放到 已分配字段 池中。

注解

在这个屏幕中,所有动态字段都有 DynamicField_ 前缀比如 DynamicField_Title。不会与工单标题字段 Title 混淆。

Book Ordering - Add User Task Activity Dialog Fields

图书预订 - 添加用户任务活动对话框字段

一旦这些字段被放到 已分配字段 池中,就会显示另一个弹出屏幕,其中包含有关该字段的一些详细信息。我们将保留默认选项,并且仅对于 Article 字段,我们应确保将 通信渠道 字段设置为 OTRS,并且未选中 客户可见

Book Ordering - Edit User Task Activity Dialog Fields

图书预订 - 编辑用户任务活动对话框字段

填写完所有字段后,单击 保存并完成 按钮保存更改并返回到流程管理屏幕。

创建以下带有字段的用户任务活动对话框:

  • 记录需求 (前面已创建)

    • Article 字段用于备注。
    • DynamicField_TitleDynamicField_AuthorDynamicField_ISBN 字段用于为订单收集的数据。
    • DynamicField_Status 可选择 批准
  • 审批拒绝

    • Article 字段用于备注。
    • DynamicField_Status 可选择 审批拒绝
  • 通过审批

    • DynamicField_Status 可选择 批准
  • 采购拒绝

    • Article 字段用于备注。
    • DynamicField_Status 可选择 采购拒绝
  • 生成订单

    • DynamicField_SupplierDynamicField_PriceDynamicField_DeliveryDate 字段用于采购。
    • DynamicField_Status 可选择 订单已生成
  • 货品收到

    • DynamicField_DateOfReceipt 用于收发室。
    • DynamicField_Status 可选择 货品收到

创建序列流

单击左侧边栏中的 可用的流程元素 小部件中的 序列流 项。此操作将扩展 序列流 选项,并折叠所有其他的选项,类似手风琴效果。单击 创建新序列流 按钮。

Book Ordering - Sequence Flows

图书预订 - 序列流

在打开的弹出屏幕中,填写 序列流名称。在这个示例中对于 条件表达式,我们将只使用一个条件表达式和一个字段。对于这两种情况,我们都将 链接类型 保持为 and/和,并且我们将使用字段匹配类型值作为 字符串

Book Ordering - Add Sequence Flow

图书预订 - 添加序列流

填写完所有字段后,单击 保存并完成 按钮保存更改并返回到流程管理屏幕。

创建以下序列流:

  • 审批 (前面已创建)

    检查 DynamicField_Status 是否设置为 批准

  • 审批拒绝

    检查 DynamicField_Status 是否设置为 审批拒绝

  • 通过审批

    检查 DynamicField_Status 是否设置为 批准

  • 采购拒绝

    检查 DynamicField_Status 是否设置为 采购拒绝

  • 生成订单

    检查 DynamicField_Status 是否设置为 订单已生成

  • 货品收到

    检查 DynamicField_Status 是否设置为 货品收到

创建顺序流动作

单击左侧边栏中的 可用的流程元素 小部件中的 序列流操作 项。此操作将扩展 序列流操作 选项,并折叠所有其他的选项,类似手风琴效果。单击 创建新序列流操作 按钮。

Book Ordering - Sequence Flow Actions

图书预订 - 序列流操作

在打开的弹出屏幕中,填写 序列流操作名称序列流操作模块,然后单击 保存 按钮。模块字段旁边将出现一个新的 配置 按钮。

Book Ordering - Add Sequence Flow Action

图书预订 - 添加序列流操作

单击*配置*按钮,添加所需的配置参数键和值。

参见

Each module has its own and different parameters. Please refer to the Process Modules section to learn all required and optional parameters.

Book Ordering - Sequence Flow Action Parameters

图书预订 - 序列流操作参数

填写完所有字段后,单击 保存并完成 按钮保存更改并返回到流程管理屏幕。

创建以下序列流操作:

  • 将流程工单移动到“Management(管理)”队列中 (之前已经创建)

    当序列流应用了 批准 时执行。

  • 更改这个工单的负责人为 “Manager(经理)”

    当序列流应用了 批准 时执行。

  • 将流程工单转移到”Employees(员工)” 队列

    当遇到如下情况时执行:

    • 序列流应用了 审批拒绝
    • 序列流应用了 采购拒绝
    • 序列流应用了 货品收到
  • 更改这个工单的负责人为 “Employee(员工)”

    当遇到如下情况时执行:

    • 序列流应用了 审批拒绝
    • 序列流应用了 采购拒绝
    • 序列流应用了 货品收到
  • 将流程工单转移到”Purchasing(采购)” 队列

    当序列流应用了 批准 时执行。

  • 将流程工单转移到”Post office(收发室)” 队列

    当序列流应用了 订单已生成 时执行。

  • 成功关闭工单

    当序列流应用了 货品收到 时执行。

  • 失败关闭工单

    当遇到如下情况时执行:

    • 序列流应用了 审批拒绝
    • 序列流应用了 采购拒绝

有些地方应该执行相同的序列流操作。因此,可以将序列流操作与序列流自由地链接起来,以便能够重用它们。

创建活动

单击左侧边栏中的 可用的流程元素 小部件中的 活动 项。此操作将扩展 活动 选项,并折叠所有其他的选项,类似手风琴效果。单击 创建新活动 按钮。

Book Ordering - Activities

图书预订 - 活动

在打开的弹出屏幕中,填写 活动名称 字段,然后从 活动类型 下拉列表中选择 用户任务活动

Book Ordering - Add Activity

图书预订 - 添加活动

要将对话框分配给活动,只需将所需对话框从 可用用户任务活动对话框 池中拖动,然后放到 已分配用户任务活动对话框 池中。已分配用户任务活动对话框 池中的顺序是对话框将在 工单详情 屏幕中显示的顺序。要修改顺序,只需在池中拖放对话框,将其重新排列到正确的位置。

注解

此顺序在第一个活动中特别重要,因为此活动的第一个用户任务活动对话框是流程启动时唯一出现的对话框。

在这个例子中,我们只需要分配 记录需求 用户任务活动对话框。将此对话框从 可用用户任务活动对话框 池中拖动,并放到 已分配用户任务活动对话框 池中。

Book Ordering - Assign User Task Activity Dialog

图书预订 - 分配用户任务活动对话框

填写完所有字段后,单击 保存并完成 按钮保存更改并返回到流程管理屏幕。

创建以下活动:

  • 记录需求 (前面已创建)

    分配用户任务活动对话框 记录需求

  • 审批

    分配用户任务活动对话框 审批拒绝批准

  • 订单

    分配用户任务活动对话框 采购拒绝订单已生成

  • 收货

    分配用户任务活动对话框 货品收到

  • 流程完成

    这是一个没有可能的用户任务活动对话框的活动。它将在 审批拒绝采购拒绝货品收到 之后设置,并表示流程结束。

现在我们可以清楚地看到,活动是流程工单的精确定义状态。成功的序列流之后,流程工单从一个活动移动到另一个活动。

创建流程路径

让我们用拼图中最后一个缺失的部分来结束我们的示例,流程就像一个流动的描述者。在我们的例子中,这是整个订购工作流程。其他流程可以是办公用品订购或完全不同的流程。

流程有一个起始点,由初始活动和初始用户任务活动对话框组成。对于任何新的图书订单,第一个活动的第一个用户任务活动对话框是显示的第一个屏幕。如果此操作完成并保存,将创建流程工单,并可以按照配置的工作流操作。

流程还包含流程工单如何在流程中移动的说明。我们称之为 流程路径。它由初始活动、一个或多个序列流(可能带有序列流操作)和其他活动组成。

假设活动已经有分配给它们的用户任务活动对话框,从左侧边栏的 可用的流程元素 小部件中的相应位置拖动一个活动,并将其放到流程信息下方的画布区域。请注意,从流程开始(白色圆圈)到活动的箭头将自动放置。这是第一个活动,它的第一个用户任务活动对话框是流程启动时将显示的第一个屏幕。

Book Ordering - First Activity On Canvas

图书预订 - 画布上的第一个活动

接下来,将另一个活动拖到画布中。现在我们在画布中有两个活动。第一个连接到起点,第二个没有连接。您可以将鼠标悬停在每个活动上,以显示它们自己的活动对话框。

Book Ordering - Second Activity On Canvas

图书预订 - 画布上的第二个活动

然后让我们在这两个活动之间创建流程路径(连接)。为此,我们将使用序列流。单击手风琴中的序列流,拖动序列流并将其放到第一个活动中。一旦序列流被放下,序列流箭头的终点将被放置在流程起点的旁边。拖动序列流箭头端点并将其放到其他活动中,以创建活动之间的连接。

Book Ordering - First Sequence Flow On Canvas

图书预订 - 画布上的第一个序列流

既然已经定义了动作之间的流程路径,那么我们需要将序列流操作分配给序列流。双击画布中的序列流标签以打开新的弹出窗口。

Book Ordering - Assign First Sequence Flow Action

图书预订 - 分配第一个序列流操作

分配序列流操作后,单击 保存 按钮返回主流程编辑屏幕。单击画布下方的 保存 按钮保存所有其他更改。

通过添加以下活动、序列流和序列流操作来完成流程路径:

  • 记录需求 (前面已创建)

    可能的序列流:审批

    初始活动:记录需求

    下一活动:审批

    如果满足此活动的条件,则工单将移动到活动 审批

    此外,还执行以下序列流操作:

    • 将流程工单移动到“Management(管理)”队列中
    • 更改这个工单的负责人为 “Manager(经理)”

    记录需求 活动是流程工单的一个定义步骤,在该步骤中,序列流 批准 是可能的。如果适用,则工单将移动到下一个活动 审批,并执行序列流操作 将流程票据移动到“管理”队列将工单负责人更改为“经理”。在活动 审批 中,用户任务活动对话框 审批拒绝批准 可用。

  • 审批

    可能的序列流:审批拒绝

    初始活动:审批

    下一活动:流程完成

    如果匹配,流程工单将移动到活动 进程完成

    此外,还执行以下序列流操作:

    • 将流程工单转移到”Employees(员工)” 队列
    • 更改这个工单的负责人为 “Employee(员工)”
    • 失败关闭工单

    可能的序列流:批准

    初始活动:审批

    下一活动:采购

    如果匹配,流程工单将移动到活动 采购

    此外,还执行以下序列流操作:

    • 将流程工单转移到”Purchasing(采购)” 队列

    我们可以从当前活动(它定义了流程工单的一个步骤)中看到,活动可能有一个或多个序列流,每个序列流只有一个目标活动(并且可能有一个或多个序列流操作)。

  • 订单

    可能的序列流:采购拒绝

    初始活动:采购

    下一活动:流程完成

    如果匹配,流程工单将移动到活动 进程完成

    此外,还执行以下序列流操作:

    • 将流程工单转移到”Employees(员工)” 队列
    • 更改这个工单的负责人为 “Employee(员工)”
    • 失败关闭工单

    可能的序列流:订单已生成

    初始活动:采购

    下一活动:收货

    如果匹配,流程工单将移动到活动 收货

    此外,还执行以下序列流操作:

    • 将流程工单转移到”Post office(收发室)” 队列
  • 收货

    可能的序列流:货品收到

    初始活动:收货

    下一活动:流程完成

    如果匹配,流程工单将移动到活动 进程完成

    此外,还执行以下序列流操作:

    • 将流程工单转移到”Employees(员工)” 队列
    • 更改这个工单的负责人为 “Employee(员工)”
    • 成功关闭工单

图书订购流程的完整流程路径如下所示:

Book Ordering - Process Complete

图书预订 - 流程完成

完成流程路径后,单击画布下方的 保存并完成 按钮返回到流程管理屏幕。

单击左侧边栏中的 部署所有流程 按钮。这将从数据库中收集所有流程信息,并创建一个缓存文件(使用Perl语言)。这个缓存文件实际上是系统用来创建或使用流程工单的流程配置。

注解

对流程所做的任何更改都需要重新部署流程,以便将更改反映到系统中。

Create Access Control Lists

With the help of 访问控制列表(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.

警告

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.

参见

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

注解

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.