- リリース ノート
- はじめる前に
- 基本情報
- Integrations
- プロセス アプリを使用する
- アプリを作成する
- データを読み込む
- プロセス アプリをカスタマイズする
- アプリ テンプレート
- その他のリソース
- すぐに使えるタグと期限日
- ローカル環境でデータ変換を編集する
- ローカルのテスト環境を設定する
- イベント ログをデザインする
- SAP Ariba の抽出ツールを拡張する
- パフォーマンス特性

Process Mining
[期限日] ダッシュボードには、期限を守ったオブジェクトまたは超過したオブジェクトに関する情報と、関連するコストが表示されます。プロセスにおける重要な段階やアクティビティの期限を設定するために、期限日を事前に定義しておくことができます。[期限日] ダッシュボードを使用すると、プロセス内の期限日をさまざまな観点から分析できます。このダッシュボードを使用することで、支払期限や、期限までに達成する必要のある SLA 項目など、プロセスで事前に定義された期限日について調べることができます。
期限日には、期限日を超過した場合のコストを関連付けることができます。
Check out Out-of-the-box Tags and Due dates for more information on out-of-the box Due dates for Purchase-to-Pay app templates and Order-to-Cash app templates.
Check out Configuring Due dates for more information on how to configure Due dates in data transformations.
[期限日] ダッシュボードを使用して期限日を分析するには、アプリ テンプレートに期限日が定義されている必要があります。
If there are out of the box due dates available for your app template, these due dates will be shown in the Due dates dashboard. In the documentation for your specific app template you will find an overview of the available due dates. The App Templates page contains links to the documentation for all available app templates.
models\5_business_logic\Due_dates_base.sql ファイル内に独自の期限日を設定する必要があります。ここでは、業務の必要性に応じて既定の期限日を設定することもできます。
Due_dates_raw.csv file. Check out Custom process input fields.
変換にビジネス ロジックを追加する
最後の変換手順では、データ分析に必要なビジネス ロジックが追加されます。
期限日テーブルの各レコードは、特定のオブジェクトの 1 つの期限日を表します。期限日の例は次のとおりです。
- 支払対象の支払期限
- 購買依頼の承認期限。
Event_ID、Due_date、Actual_date、Expected_date です。
すべてのイベントに期限日が設定されているわけではありません。また、複数の期限日が設定されているイベントもあります。
Refer to Data transformations for more information.
dbt シードを使用して期限日設定の入力を提供する
[期限日] ダッシュボードの計算に使用する追加の入力データは、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 のいずれかの値を指定できます。 |
期限日を設定する 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_internal を Case_ID として使用できます。Order-to-Cash の場合は、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_baseActivity 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_YActivity 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
[期限日] ダッシュボード
[期限日] ダッシュボードを使用すると、プロセス内で発生する期限日を分析できます。
[期限日] ダッシュボードを表示するには、以下の手順に従います。
-
ダッシュボードの左側にあるメニューで [期限日] を選択します。
[期限日] ダッシュボードが表示されます。
次の表で、[期限日] ダッシュボードで利用可能なグラフについて説明します。
|
グラフ |
説明 |
利用可能なメトリック |
| 期限日の詳細 | 選択したメトリックに基づいて、期限日に関連する詳細を表示する棒グラフです。 |
オブジェクトの数
合計遅延時間
平均遅延時間
期限遵守の割合
合計コスト*
平均コスト*
|
| 遅延の履歴 | 選択したメトリックに基づいて、選択した期間の期限日情報を表示する履歴グラフです。 |
合計遅延時間
平均遅延時間
期限遵守の割合
合計コスト*
平均コスト*
|
| 差異の分布 | 遅延日数に関連する期限日の数を示す分布グラフです。 |
[概要] タブ
[概要] タブのグラフでは、プロセスに定義されている期限日が強調表示されます。各期限日について、ケース数 (遅延ケース) と合計遅延時間が選択した期間に基づいて表示されます。
詳細タブ
[詳細] タブには、遅延アクティビティをより詳細に分析できるグラフが複数表示されます。以下の画像に例を示します。
|
グラフ |
説明 |
利用可能なメトリック |
| 節約が見込まれる時間 | データセットで定義された期限日で節約が見込まれる時間を示す円グラフです。 |
合計遅延時間
平均遅延時間
合計コスト*
平均コスト*
|
| 遅延の履歴 | 選択したメトリックに基づいて、選択した期間の期限日情報を表示する履歴グラフです。 |
合計遅延時間
平均遅延時間
期限遵守の割合
合計コスト*
平均コスト*
|
| 期限日の詳細 | 選択したメトリックに基づいて、期限日に関連する詳細を表示する棒グラフです。 |
ケース数
合計遅延時間
平均遅延時間
期限遵守の割合
合計コスト*
平均コスト*
|
| 差異の分布 | 遅延日数に関連する期限日の数を示す分布グラフです。 |
期限日の詳細
The Due dates details chart enables you to view detailed due dates information based on different metrics and fields. You can select the following fields.
|
フィールド |
説明 |
| 期限日 | 期限日の名前です。 |
| 期限日の種類* | 期限日の種類です。 |
| コスト* | 期限日に関連するコストです。 |
| 予定日 | アクティビティの実行予定日です。 |
| 実際の日付 | アクティビティの実際の実行日です。 |
| 期限内 | 期限内または遅延のアクティビティです。
注: 遅延アクティビティとは、実際の日付が予定日より後であるアクティビティです。
|
| 違い | 予定日から実際の日付までの時間です。 |