- 发行说明
- 在开始之前
- 入门指南
- 集成
- 使用流程应用程序
- 创建应用程序
- 正在加载数据
- 自定义流程应用程序
- 发布流程应用程序
- 应用程序模板
- 其他资源

Process Mining
Structure of transformations
输入步骤用于加载原始数据。 通常会执行以下操作,为下一个转换步骤准备数据:
- 选择具有可选宏和必选宏的字段。 使用可选宏时,原始数据中不需要存在字段。
- 将字段类型 转换为适当的数据类型。
-
在转换的早期筛选 表以减少数据大小。
在对象步骤中,输入表将转换为对象表。 预期事件所需的每个对象都应拥有自己的表格。 请参阅设计事件日志。 此外,支持对象也可在此处定义。
Invoices_input
、 Invoice_types_input
和Customers_input
联接在一起以创建对象表 Invoices。
创建对象表时,请按照以下准则进行操作。
- 有一个对象 ID 字段,对于每条数据记录,该字段都是唯一的。
- 数据分析所需的所有对象字段都存在。
- 所有对象字段都具有易于理解的名称。
Invoice_ID
字段与发票对象相关联。
并非所有输入表都会转换为对象表。 此外,其他输入表可能包含相关信息,例如示例中的 Customers 表。 您可以在“对象”步骤中方便地将其定义为单独的表格,以便在数据转换中重用。
3. events
。
在此转换步骤中,系统将为每个对象创建事件表。 请查看设计事件日志。 事件表中的每条记录都代表发生的一个事件。 关于数据的结构化方式,有两种情况:
- 时间戳字段:对象表上具有事件时间戳的字段。 例如,
Invoices
表中的Invoice_created
字段。 - 事务日志:事件列表。
根据数据的结构,用于创建事件表的转换会有所不同。
在这种情况下,必须将时间戳字段的值转换为事件表中单独的记录。 以下示例是包含三个时间戳字段的发票表。
每个时间戳字段用于创建单独的事件表。 对于时间戳字段包含值的每条记录,请创建一个表格,其中包含发票 ID、事件名称(活动)和事件发生的时间戳(事件结束)。
Invoices_input table
分为Invoice_events_Create_invoice
、 Invoice_events_Delete_invoice
和Invoices_events_Change_invoice_price
。
Invoices_events
。
如果事件存储在事务日志中,则应标识每个对象的相关事件。 为每个对象创建一个表,并存储相应的对象 ID、事件(活动)名称和事件发生的时间戳(事件结束)。
在事件表中,以下字段为必填字段。 事件表中的所有记录都应包含这些字段的值。
字段 |
描述 |
---|---|
对象 ID |
发生事件的对象的 ID。 例如,发票 ID 。 |
活动 |
活动描述了在对象上发生的操作。 |
Event end |
“事件结束”字段指示特定事件的完成时间。 理想情况下,这应该是日期时间字段,而不是日期。 |
当一个流程中涉及多个对象时,所有对象的事件都需要链接到流程中被视为“案例”的主对象。 有关详细信息,请参阅定义事件日志。 以下步骤描述了如何将所有事件与主对象相关联,以及如何将它们组合到一个事件日志中。
创建“对象关系”表以集中所有对象之间的关系。 此对象关系表将包含相关对象的 ID 字段。
要创建对象关系表,请根据其 ID 字段联接所有对象表:
- 从主要对象开始
- 使用左联接将相关对象联接到主对象。
- 如果对象与主对象不直接直接相关,则将其左联接到已联接到主对象的相关对象。
在以下示例中,存在三个对象:采购订单、发票行和发票。 采购订单被视为流程中的主要对象。 “发票”行直接链接到采购订单,而“发票”通过“发票”行间接链接到。
Object_relations as (
select
Purchase_orders."Purchase_order_ID"
Invoice_lines.Invoice_line_ID
"Invoices.Invoice_ID"
from Purchase_orders
left join Invoice_lines
on Purchase_orders."Purchase_order_ID" = "Invoice_lines."Purchase_order_ID"
left join Invoices
on Invoice_lines."Invoice_ID" = Invoices."Invoice_ID
)
Object_relations as (
select
Purchase_orders."Purchase_order_ID"
Invoice_lines.Invoice_line_ID
"Invoices.Invoice_ID"
from Purchase_orders
left join Invoice_lines
on Purchase_orders."Purchase_order_ID" = "Invoice_lines."Purchase_order_ID"
left join Invoices
on Invoice_lines."Invoice_ID" = Invoices."Invoice_ID
)
以下示例显示了生成的对象关系表。
使用对象关系表中的合并信息,将主对象与每个其他对象之间的各个关系存储在单独的表中。
Relation_invoice_lines as (
select
Object_relations."Purchase_order_ID"
Object_relations."Invoice_line_ID"
from Object_relations
group by "Purchase_order_ID", "Invoice_line_ID"
)
Relation_invoice_lines as (
select
Object_relations."Purchase_order_ID"
Object_relations."Invoice_line_ID"
from Object_relations
group by "Purchase_order_ID", "Invoice_line_ID"
)
Relation_invoices as (
select
Object_relations."Purchase_order_ID"
Object_relations."Invoice_ID"
from Object_relations
group by "Purchase_order_ID", "Invoice_ID"
)
Relation_invoices as (
select
Object_relations."Purchase_order_ID"
Object_relations."Invoice_ID"
from Object_relations
group by "Purchase_order_ID", "Invoice_ID"
)
下一步是使用这些关系向每个事件表添加相应的“案例 ID”。 “案例 ID”是通过关系表获取的,其中事件信息则从事件表中获取。 要创建完整的事件日志,需要合并每个对象的事件表。
Purchase_order_event_log as (
select
Purchase_order_events."Purchase_order_ID"
Purchase_order_events."Activity"
Purchase_order_events."Event_end"
from Purchase_order_events
union all
select
Relation_invoice_lines."Purchase_order_ID"
Invoice_line_events."Activity"
Invoice_line_events."Event_end"
from Invoice_line_events
inner join Relation_invoice_lines
on Invoice_line_events."Invoice_line_ID" = "Relation_invoice_lines."Invoice_line_ID"
union all
select
Relation_invoices."Purchase_order_ID"
Invoice_events. "Activity"
Invoice_events. "Event_end"
from Invoice_events
inner join Relation_invoices
on Invoice_events."Invoice_line_ID" = Relation_invoices."Invoice_line_ID"
)
Purchase_order_event_log as (
select
Purchase_order_events."Purchase_order_ID"
Purchase_order_events."Activity"
Purchase_order_events."Event_end"
from Purchase_order_events
union all
select
Relation_invoice_lines."Purchase_order_ID"
Invoice_line_events."Activity"
Invoice_line_events."Event_end"
from Invoice_line_events
inner join Relation_invoice_lines
on Invoice_line_events."Invoice_line_ID" = "Relation_invoice_lines."Invoice_line_ID"
union all
select
Relation_invoices."Purchase_order_ID"
Invoice_events. "Activity"
Invoice_events. "Event_end"
from Invoice_events
inner join Relation_invoices
on Invoice_events."Invoice_line_ID" = Relation_invoices."Invoice_line_ID"
)
在最后一个转换步骤中,根据需要添加业务逻辑以进行数据分析。 可以在此处将其他派生字段添加到现有表格中。 例如,在仪表板的 KPI 中使用的特定吞吐量时间或布尔值字段。
Tags
和Due dates
。
标签是对象的属性,表示某些业务规则。 通常会添加标签,以便轻松分析这些业务规则。 例如:
- 由同一人支付和批准的发票。
- 发票审批时间超过 10 天。
- 已跳过检查发票活动。
Object ID
和Tag
。 并非所有对象都有标签,有些对象可能有多个标签。 下图显示了一个“标签”表示例。
数据模型中仅允许一张标签表。