UiPath Documentation
process-mining
latest
false

Process Mining ユーザー ガイド

最終更新日時 2026年5月6日

期限日を設定する

重要:

このページの情報は、期限日、構成ファイル、 seeds\ フォルダーを持つアプリ テンプレートにのみ適用されます。

[期限日] ダッシュボードを使用して期限日を分析するには、アプリ テンプレートに期限日が定義されている必要があります。

アプリ テンプレートにすぐに使える期限日がある場合、その期限日が [期限日] ダッシュボードに表示されます。特定のアプリ テンプレートに関するドキュメントに、利用可能な期限日の概要が記述されています。[アプリ テンプレート] ページには、利用可能なすべてのアプリ テンプレートに関するドキュメントへのリンクがあります。

[期限日] ダッシュボードに利用可能なデータが無い場合は、データ変換を使用して models\5_business_logic\Due_dates_base.sql ファイル内に独自の期限日を設定する必要があります。ここでは、業務の必要性に応じて既定の期限日を設定することもできます。

カスタム プロセスでは、Due_dates.csv ファイルを使用して期限日をアップロードすることもできます。「 カスタム プロセスの入力フィールド」をご覧ください。

変換にビジネス ロジックを追加する

最後の変換手順では、データ分析に必要なビジネス ロジックが追加されます。

期限日テーブルの各レコードは、特定のオブジェクトの 1 つの期限日を表します。期限日の例は次のとおりです。

  • 支払対象の支払期限
  • 購買依頼の承認期限。

このテーブルの必須フィールドは、Case_IDDue_dateActual_dateExpected_date です。

期限日の例

すべてのイベントに期限日が設定されているわけではありません。また、複数の期限日が設定されているイベントもあります。

詳しくは、「 データ変換エディター 」をご覧ください。

データ変換で期限日設定の入力を提供する

データ変換の SQL ステートメントを使用して、[期限日] ダッシュボードの計算に使用する追加の入力データを指定できます。すべての期限日に対して、次のフィールドを設定できます。

名前入力説明
Due_dateテキスト期限日の名前です。
Due_date_typeテキスト期限日の種類です。
Fixed_costsBooleanコストが固定か、時間ベースかを示します。
Costフローティング固定コスト: コストの金額です。 変動コスト: Time および Type_type あたりのコストの金額です。
TimeInteger時間ベースのコストの場合の時間を示す数値です。
Time_typeテキストコストを計算する期間の種類です。dayhourminutesecondmillisecond のいずれかの値を指定できます。
Case_IDテキスト/整数型期限日が関連付けられているケースの ID です。

変換」をご覧ください。

dbt シードを使用して期限日設定の入力を提供する

データ変換の seeds\ フォルダーに Due_dates_configuration_raw.csv seeds ファイルがまだ含まれているプロセス アプリの場合、このファイルを使用して、[ 期限日 ] ダッシュボードの計算に使用する追加の入力データを提供できます。

次の図にシード ファイルの例を示します。

シード ファイルの例

変換」をご覧ください。

期限日を設定する SQL の例

このページでは、変換を使用して期限日を設定するために使用できる SQL の例をいくつか示します。

注:

SQL の例は、イベント ログカスタム プロセスのアプリ テンプレートをベースとし、Case_IDを持つケースを使用します。SQL の例を使用して Purchase-to-Pay アプリ テンプレートまたは Order-to-Cash アプリ テンプレートの期限日を定義する場合は、適切なオブジェクトと関連する内部object_IDを使用してください。Purchase-to-Pay の場合は、Purchase_order_item_end_to_end_events イベント ログ、Purchase_order_items オブジェクト、Purchase_order_item_ID_internalCase_IDとして使用できます。Order-to-Cash の場合は、Sales_order_item_end_to_end_events イベント ログ、Sales_order_items オブジェクト、Sales_order_item_ID_internalCase_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_base
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_base

Activity X done before date 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_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_Y

Activity X done within 5 days after activity Y

この 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_Y
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_Y

このページは役に立ちましたか?

接続

ヘルプ リソース サポート

学習する UiPath アカデミー

質問する UiPath フォーラム

最新情報を取得