process-mining
latest
false
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。
UiPath logo, featuring letters U and I in white

Process Mining

上次更新日期 2025年4月2日

配置截止日期

如果要使用“ 到期日期 ”仪表板来分析到期日期,则必须为应用程序模板定义到期日期。

如果您的应用程序模板有开箱即用的到期日期,则这些到期日期将显示在到期日期仪表板中。 在特定应用程序模板的文档中,您可以找到可用截止日期的概述。 “应用程序模板”页面包含指向所有可用应用程序模板的文档的链接。

如果到期日期仪表板中没有可用的数据,则需要使用数据转换在 models\5_business_logic\Due_dates_base.sql 文件中配置自己的到期日期。 您还可以在此处根据业务需求配置任何默认到期日期。
对于自定义流程,您还可以使用Due_dates_raw.csv文件上传到期日期。 请查看自定义流程输入字段

在转换中添加业务逻辑

在最后一个转换步骤中,根据需要添加业务逻辑以进行数据分析。

到期日期表中的每条记录代表特定对象的一个到期日期。 到期日期示例如下:

  • 付款对象的付款截止日期。
  • 采购申请的批准截止日期。
此表的必填字段为 Case_IDDue_dateActual_dateExpected_date


并非所有活动都有截止日期,有些活动可能有多个截止日期。

有关更多信息,请参阅数据转换编辑器

在数据转换中提供到期日期配置输入

您可以使用 数据转换 中的 SQL 语句提供其他输入数据,用于“到期日期” 仪表板中的计算。对于所有到期日期,您可以配置以下字段。

名称

类型

描述

Due_date文本

到期日的名称。

Due_date_type文本

截止日期类型。

Fixed_costs

布尔值

指示成本是固定的还是基于时间的。

Cost

浮动

固定成本:成本金额。
可变成本:每个 TimeType_type的成本金额。

Time

整数

一个数字,指示在基于时间的成本情况下的时间量。

Time_type文本成本计算的时间段类型。 这可以是以下任何值: 小时分钟毫秒

Case_ID

文本/整数

与到期日期相关的案例 ID。

请查看转换

Providing due date configuration input using dbt seeds

对于数据转换的 seeds\ 文件夹中仍包含 Due_dates_configuration_raw.csv 种子文件的流程应用程序,您可以使用此文件来提供其他输入数据,以用于 截止日期 仪表板中的计算。

下图显示了一个种子文件示例。
种子文件示例
请查看转换

配置截止日期的 SQL 示例

此页包含一些 SQL 示例,您可用于通过转换配置到期日期
注意:
SQL 示例基于事件日志自定义流程应用程序模板,并且用具有Case_ID 。 如果要使用 SQL 示例来为“采购到付款”应用程序模板或“订单到现金”应用程序模板定义到期日期,请确保使用适当的对象和相关的内部 object_ID。 对于“购买到付款”,您可以使用Purchase_order_item_end_to_end_events事件日志、 Purchase_order_items对象和Purchase_order_item_ID_internal作为Case_ID 。 对于订单到收款,您可以使用Sales_order_item_end_to_end_events事件日志、 Sales_order_items对象,并将Sales_order_item_ID_internal用作Case_ID

以下代码块显示了用于定义到期日期的 SQL 查询示例。

 select
    tableA."Case_ID",
    {{ pm_utils.as_varchar('Name of Due date') }} as "Due_date",
    tableB."SLA_date" as "Expected_date",
     tableA."Executed_date" as "Actual_date"
from {{ ref('tableA') }} as tableA
left join {{ ref('tableB') }} as tableB
on tableA."Case_ID" = tableB."Case_ID"select
    tableA."Case_ID",
    {{ pm_utils.as_varchar('Name of Due date') }} as "Due_date",
    tableB."SLA_date" as "Expected_date",
     tableA."Executed_date" as "Actual_date"
from {{ ref('tableA') }} as tableA
left join {{ ref('tableB') }} as tableB
on tableA."Case_ID" = tableB."Case_ID"

以下代码块显示了用于配置截止日期的 SQL 查询示例。

 select
        Due_dates_base."Case_ID",
        Due_dates_base."Due_date",
        Due_dates_base."Actual_date",
        Due_dates_base."Expected_date",
        {{ pm_utils.as_varchar('Type of Due date') }} as "Due_date_type",
        case
            when Due_dates_base."Actual_date" <= Due_dates_base."Expected_date"
                then {{ pm_utils.to_boolean('true') }}
            else {{ pm_utils.to_boolean('false') }}
        end as "On_time",
        case
            -- when actual or expected date are null
            when Due_dates_base."Actual_date" is null or Due_dates_base."Expected_date" is null
                then {{ pm_utils.to_double('null') }}
            -- when the due date is on time, the cost is 0
            when Due_dates_base."Actual_date" <= Due_dates_base."Expected_date"
                then {{ pm_utils.to_double('0') }}
            -- when the due date is late, configure a cost
            when Due_dates_base."Expected_date" > Due_dates_base."Actual_date"
                then {{ pm_utils.to_double('10') }}
        end as "Cost",
        {{ pm_utils.datediff('millisecond', 'Due_dates_base."Expected_date"', 'Due_dates_base."Actual_date"') }} as "Difference"
    from Due_dates_baseselect
        Due_dates_base."Case_ID",
        Due_dates_base."Due_date",
        Due_dates_base."Actual_date",
        Due_dates_base."Expected_date",
        {{ pm_utils.as_varchar('Type of Due date') }} as "Due_date_type",
        case
            when Due_dates_base."Actual_date" <= Due_dates_base."Expected_date"
                then {{ pm_utils.to_boolean('true') }}
            else {{ pm_utils.to_boolean('false') }}
        end as "On_time",
        case
            -- when actual or expected date are null
            when Due_dates_base."Actual_date" is null or Due_dates_base."Expected_date" is null
                then {{ pm_utils.to_double('null') }}
            -- when the due date is on time, the cost is 0
            when Due_dates_base."Actual_date" <= Due_dates_base."Expected_date"
                then {{ pm_utils.to_double('0') }}
            -- when the due date is late, configure a cost
            when Due_dates_base."Expected_date" > Due_dates_base."Actual_date"
                then {{ pm_utils.to_double('10') }}
        end as "Cost",
        {{ pm_utils.datediff('millisecond', 'Due_dates_base."Expected_date"', 'Due_dates_base."Actual_date"') }} as "Difference"
    from Due_dates_base

活动 X 在日期 Y 之前完成

此 SQL 代码可识别最后一次出现的活动“X”在日期“Y”之前完成的情况。

 with Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

Cases_base as (
    select * from {{ ref('Cases_base') }}
),

-- Last activity X of each case
Last_activity_X as (
    select
        Event_log_base."Case_ID",
        max(Event_log_base."Event_end") as "Event_end",
        max(Event_log_base."Event_ID") as "Event_ID"
    from Event_log_base
    where Event_log_base."Activity" = 'X'
    group by Event_log_base."Case_ID"
),

-- Last activity X should be done before Case date field Y
Activity_X_done_before_date_Y as (
    select
        Last_activity_X."Case_ID",
        {{ pm_utils.as_varchar('Last activity X before Cases date field Y') }} as "Due_date",
        Last_activity_X."Event_end" as "Actual_date",
        Cases_base."Case_date_field_Y" as "Expected_date",
        Last_activity_X."Event_ID"
    from Last_activity_X
    inner join Cases_base
        on Last_activity_X."Case_ID" = Cases_base."Case_ID"
)

select * from Activity_X_done_before_date_Ywith Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

Cases_base as (
    select * from {{ ref('Cases_base') }}
),

-- Last activity X of each case
Last_activity_X as (
    select
        Event_log_base."Case_ID",
        max(Event_log_base."Event_end") as "Event_end",
        max(Event_log_base."Event_ID") as "Event_ID"
    from Event_log_base
    where Event_log_base."Activity" = 'X'
    group by Event_log_base."Case_ID"
),

-- Last activity X should be done before Case date field Y
Activity_X_done_before_date_Y as (
    select
        Last_activity_X."Case_ID",
        {{ pm_utils.as_varchar('Last activity X before Cases date field Y') }} as "Due_date",
        Last_activity_X."Event_end" as "Actual_date",
        Cases_base."Case_date_field_Y" as "Expected_date",
        Last_activity_X."Event_ID"
    from Last_activity_X
    inner join Cases_base
        on Last_activity_X."Case_ID" = Cases_base."Case_ID"
)

select * from Activity_X_done_before_date_Y

活动 X 在活动 Y 后 5 天内完成

此 SQL 代码用于标识活动“X”最后一次出现是在活动“Y”最后一次出现之后 5 天内发生的案例。

 with Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- Last activity X of each case
Last_activity_X as (
    select
        Event_log_base."Case_ID",
        max(Event_log_base."Event_end") as "Event_end",
        max(Event_log_base."Event_ID") as "Event_ID"
    from Event_log_base
    where Event_log_base."Activity" = 'X'
    group by Event_log_base."Case_ID"
),

-- Last activity Y of each case
Last_activity_Y as (
    select
        Event_log_base."Case_ID",
        max(Event_log_base."Event_end") as "Event_end",
        max(Event_log_base."Event_ID") as "Event_ID"
    from Event_log_base
    where Event_log_base."Activity" = 'Y'
    group by Event_log_base."Case_ID"
),

-- Last activity X should be done at date of last Event Y + 5 days
Activity_X_done_within_5_days_after_activity_Y as (
    select
        Last_activity_Y."Case_ID",
        {{ pm_utils.as_varchar('Last activity X before last activity Y + 5 days') }} as "Due_date",
        {{ pm_utils.dateadd('day', 5, 'Last_activity_Y."Event_end"') }} as "Expected_date",
        Last_activity_X."Event_end" as "Actual_date",
        Last_activity_Y."Event_ID" as "Event_ID"
    from Last_activity_Y
    inner join Last_activity_X
        on Last_activity_Y."Case_ID" = Last_activity_X."Case_ID"
)

select * from Activity_X_done_within_5_days_after_activity_Ywith Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- Last activity X of each case
Last_activity_X as (
    select
        Event_log_base."Case_ID",
        max(Event_log_base."Event_end") as "Event_end",
        max(Event_log_base."Event_ID") as "Event_ID"
    from Event_log_base
    where Event_log_base."Activity" = 'X'
    group by Event_log_base."Case_ID"
),

-- Last activity Y of each case
Last_activity_Y as (
    select
        Event_log_base."Case_ID",
        max(Event_log_base."Event_end") as "Event_end",
        max(Event_log_base."Event_ID") as "Event_ID"
    from Event_log_base
    where Event_log_base."Activity" = 'Y'
    group by Event_log_base."Case_ID"
),

-- Last activity X should be done at date of last Event Y + 5 days
Activity_X_done_within_5_days_after_activity_Y as (
    select
        Last_activity_Y."Case_ID",
        {{ pm_utils.as_varchar('Last activity X before last activity Y + 5 days') }} as "Due_date",
        {{ pm_utils.dateadd('day', 5, 'Last_activity_Y."Event_end"') }} as "Expected_date",
        Last_activity_X."Event_end" as "Actual_date",
        Last_activity_Y."Event_ID" as "Event_ID"
    from Last_activity_Y
    inner join Last_activity_X
        on Last_activity_Y."Case_ID" = Last_activity_X."Case_ID"
)

select * from Activity_X_done_within_5_days_after_activity_Y

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
© 2005-2025 UiPath。保留所有权利。