- リリース ノート
- はじめる前に
- 基本情報
- Integrations
- プロセス アプリを使用する
- アプリを作成する
- データを読み込む
- プロセス アプリをカスタマイズする
- ダッシュボードをパブリッシュする
- アプリ テンプレート
- その他のリソース
Process Mining
期限日
[期限日] ダッシュボードには、期限を守ったケースまたは超過したケースに関する情報と、関連するコストが表示されます。プロセスにおける重要な段階やアクティビティの期限を設定するために、期限日を事前に定義しておくことができます。[期限日] ダッシュボードを使用すると、プロセス内の期限日をさまざまな観点から分析できます。このダッシュボードを使用することで、支払期限や、期限までに達成する必要のある SLA 項目など、プロセスで事前に定義された期限日について調べることができます。
期限日には、期限日を超過した場合のコストを関連付けることができます。
[期限日] ダッシュボードを使用して期限日を分析するには、アプリ テンプレートに期限日が定義されている必要があります。
アプリ テンプレートにすぐに使える期限日がある場合、その期限日が [期限日] ダッシュボードに表示されます。特定のアプリ テンプレートに関するドキュメントに、利用可能な期限日の概要が記述されています。[アプリ テンプレート] ページには、利用可能なすべてのアプリ テンプレートに関するドキュメントへのリンクがあります。
models\5_business_logic\Due_dates_base.sql
ファイル内に独自の期限日を設定する必要があります。ここでは、業務の必要性に応じて既定の期限日を設定することもできます。
Due_dates_raw.csv
ファイルを使用して期限日をアップロードすることもできます。「カスタム プロセスの入力フィールド」をご覧ください。
最後の変換手順では、データ分析に必要なビジネス ロジックが追加されます。
期限日テーブルの各レコードは、特定のイベントの 1 つの期限日を表します。期限日の例は次のとおりです。
- 支払イベントの支払期限。
- 承認イベントの承認期限。
Event_ID
、Due_date
、Actual_date
、Expected_date
です。
すべてのイベントに期限日が設定されているわけではありません。また、複数の期限日が設定されているイベントもあります。
詳しくは「データ変換」をご覧ください。
[期限日] ダッシュボードの計算に使用する追加の入力データは、dbt シード ファイルを使用して提供できます。アプリ テンプレートのアプリ変換の seeds\ フォルダーには、 Due_dates_configuration_raw.csv ファイルが含まれています。すべての期限日に対して、以下のフィールドを指定できます。
名前 |
入力 |
説明 |
Due_date | テキスト | 期限日の名前
. |
Due_date_type | テキスト | 期限日の種類です。 |
Fixed_costs |
Boolean | コストが固定か、時間ベースかを示します。 |
コスト |
フローティング |
固定コスト: コストの金額です。
変動コスト: Time および Type_type あたりのコストの金額です。
|
Time |
Integer | 時間ベースのコストの場合の時間を示す数値です。 |
Time_type | テキスト | コストを計算する期間の種類です。day、hour、minute、second、millisecond のいずれかの値を指定できます。 |
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_internal
を Case_ID
として使用できます。Order-to-Cash の場合は、Sales_order_item_end_to_end_events
イベント ログ、Sales_order_items
エンティティ、および Sales_order_item_ID_internal
を Case_ID
として使用できます。
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
[期限日] ダッシュボードを使用すると、プロセス内で発生する期限日を分析できます。
[期限日] ダッシュボードを表示するには、以下の手順に従います。
-
ダッシュボードの左側にあるメニューで [期限日] を選択します。
[期限日] ダッシュボードが表示されます。
以下に、[期限日] ダッシュボードで利用可能なグラフの概要を示します。
グラフ |
説明 |
利用可能なメトリック |
期限日の詳細 | 選択したメトリックに基づいて、期限日に関連する詳細を表示する棒グラフです。 |
ケース数
合計遅延時間
平均遅延時間
期限遵守の割合
合計コスト*
平均コスト*
|
遅延の履歴 | 選択したメトリックに基づいて、選択した期間の期限日情報を表示する履歴グラフです。 |
合計遅延時間
平均遅延時間
期限遵守の割合
合計コスト*
平均コスト*
|
差異の分布 | 遅延日数に関連する期限日の数を示す分布グラフです。 |