Process Mining
最新
Process Mining
Last updated 2024年6月25日

期限日

はじめに

[期限日] ダッシュボードには、期限を守ったケースまたは超過したケースに関する情報と、関連するコストが表示されます。プロセスにおける重要な段階やアクティビティの期限を設定するために、期限日を事前に定義しておくことができます。[期限日] ダッシュボードを使用すると、プロセス内の期限日をさまざまな観点から分析できます。このダッシュボードを使用することで、支払期限や、期限までに達成する必要のある SLA 項目など、プロセスで事前に定義された期限日について調べることができます。

期限日には、期限日を超過した場合のコストを関連付けることができます。

Purchase-to-Pay アプリ テンプレートのすぐに使える「期限日」機能

以下に、Purchase-to-Pay 関連のアプリ テンプレートで利用できる期限日の概要を示します。

支払予定

支払予定」期限日を使用すると、請求書に対する支払が間に合っているかどうかを分析できます。 「支払予定」期限日の場合、Actual date[支払を作成] または [出金支払を作成] イベントの時点を基準とします。期限日の Expected date は、Invoices_base.Net_payment_period が追加された Invoices_base.Baseline_date に基づいて定義されます。
重要:
いずれかのフィールドが定義されておらず、Actual date または Expected date を特定できない場合、「支払予定」期限日は「期限日」ダッシュボードに表示されません。
注:
完了した支払い (Payments.Payment_is_complete = true) のみが考慮されます。

PR から PO へのスループット時間

[PR から PO へのスループット時間] 期限日を使用すると、購買依頼の作成から発注品目の作成までにかかる時間を分析できます。

Actual dateCreate purchase order item イベントです。Expected date は、PR と PO 間のすべての既知のスループット時間の標準偏差と組み合わせた Create purchase requisition イベントに基づいています。

Order-to-Cash アプリ テンプレートのすぐに使える「期限日」機能

以下に、Order-to-Cash 関連のアプリ テンプレートで利用できる期限日の概要を示します。

支払予定

支払予定」期限日を使用すると、請求書に対する支払が間に合っているかどうかを分析できます。「支払予定」期限日の場合、Actual dateCreate incoming payment イベントの時点を基準とします。期限日の Expected date は、Invoices_base.Net_payment_period が追加された Invoices_base.Baseline_date に基づいて定義されます。
重要:
いずれかのフィールドが定義されておらず、Actual date または Expected date を特定できない場合、「支払予定」期限日は「期限日」ダッシュボードに表示されません。
注:
完了した支払い (Payments.Payment_is_complete = true) のみが考慮されます。

納品予定

納品予定」期限日を使用すると、納品が間に合うかどうかを分析することができます。

納品予定」期限日の場合、Actual dateDeliveries.Delivery_date を、予定日は Deliveries.Planned_delivery_date を基準とします。
重要:
いずれかのフィールドが定義されておらず、Actual date または Expected date を特定できない場合、「納品予定」 期限日は [期限日] ダッシュボードに表示されません。

期限日を設定する

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

アプリ テンプレートにすぐに使える期限日がある場合、その期限日が [期限日] ダッシュボードに表示されます。 利用可能な期限日の概要は、アプリ テンプレートのドキュメントで確認できます。 詳しくは、「アプリ テンプレート」をご覧ください。

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

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

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

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

  • 支払イベントの支払期限。
  • 承認イベントの承認期限。
このテーブルの必須フィールドは、Event_IDDue_dateActual_dateExpected_date です。


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

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

[期限日] ダッシュボードの計算に使用する追加の入力データは、dbt シード ファイルを使用して提供できます。アプリ テンプレートのアプリ変換の seeds\ フォルダーには、 Due_dates_configuration_raw.csv ファイルが含まれています。すべての期限日に対して、以下のフィールドを指定できます。

名前

入力

説明

Due_dateテキスト期限日の名前

.

Due_date_typeテキスト期限日の種類です。
Fixed_costs

Boolean

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

コスト

フローティング

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

Time

Integer

時間ベースのコストの場合の時間を示す数値です。
Time_typeテキストコストを計算する期間の種類です。dayhourminutesecondmillisecond のいずれかの値を指定できます。
以下の画像で例をご確認ください。
docs image
詳しくは、「変換」をご覧ください。

期限日を設定する SQL の例

以下に、変換を使用して期限日を設定するために使用できる SQL の例をいくつか示します。
注意:
以下の SQL の例は、イベント ログカスタム プロセスのアプリ テンプレートをベースとし、Case_ID を持つケースを使用します。SQL の例を使用して Purchase-to-Pay アプリ テンプレートまたは Order-to-Cash アプリ テンプレートの期限日を定義する場合は、適切なエンティティと関連する内部 entity_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ダイアレクトによっては、引用を " から ` に変更する必要があります。

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

期限日を分析する

[期限日] ダッシュボード

[期限日] ダッシュボードを使用すると、プロセス内で発生する期限日を分析できます。

[期限日] ダッシュボードを表示するには、以下の手順に従います。

  1. ダッシュボードの左側にあるメニューで [期限日] を選択します。

[期限日] ダッシュボードが表示されます。

以下に、[期限日] ダッシュボードで利用可能なグラフの概要を示します。

グラフ

説明

利用可能なメトリック

期限日の詳細選択したメトリックに基づいて、期限日に関連する詳細を表示する棒グラフです。
ケース数
合計遅延時間
平均遅延時間
期限遵守の割合
合計コスト*
平均コスト*
遅延の履歴選択したメトリックに基づいて、選択した期間の期限日情報を表示する履歴グラフです。
合計遅延時間
平均遅延時間
期限遵守の割合
合計コスト*
平均コスト*
差異の分布遅延日数に関連する期限日の数を示す分布グラフです。 
* [Total cost late] および [Average cost late] は、Due_dates_configuration_raw.csv シード ファイルを使用して Fixed_costCost を入力した場合にのみ利用可能です。

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.