process-mining
latest
false
重要 :
このコンテンツの一部は機械翻訳によって処理されており、完全な翻訳を保証するものではありません。 新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。
UiPath logo, featuring letters U and I in white

Process Mining

最終更新日時 2025年4月8日

期限日を設定する

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

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

[期限日] ダッシュボードに利用可能なデータが無い場合は、データ変換を使用して models\5_business_logic\Due_dates_base.sql ファイル内に独自の期限日を設定する必要があります。ここでは、業務の必要性に応じて既定の期限日を設定することもできます。
カスタム プロセスでは、Due_dates_raw.csv ファイルを使用して期限日をアップロードすることもできます。「カスタム プロセスの入力フィールド」をご覧ください。

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

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

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

  • 支払対象の支払期限
  • 購買依頼の承認期限。
このテーブルの必須フィールドは、Case_IDDue_dateActual_dateExpected_date です。


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

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

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

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

名前

入力

説明

Due_dateテキスト

期限日の名前です。

Due_date_typeテキスト

期限日の種類です。

Fixed_costs

Boolean

コストが固定か、時間ベースかを示します。

Cost

フローティング

固定コスト: コストの金額です。
変動コスト: Time および Type_type あたりのコストの金額です。

Time

Integer

時間ベースのコストの場合の時間を示す数値です。

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_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

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_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

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_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 コミュニティ フォーラム
Uipath Logo White