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

Process Mining

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

変換の構造

概要

次の図に、Process Mining アプリ テンプレートの変換手順を示します。


[データ変換] [ 変換] セクションのmodels\ [] フォルダーは、変換ステップの構造に従って編成されています。
注:

イベント ログカスタム プロセスのアプリ テンプレートのデータ変換の構造が簡素化されています。これらのアプリ テンプレートを使用して作成されたプロセス アプリは、このフォルダー構造を持ちません。

1. 入力

入力手順を使用して生データを読み込みます。通常は、次の操作を行って、データを次の変換手順用に準備します。

  • 任意および必須のマクロが含まれるフィールドを選択します。任意のマクロが使用される場合、フィールドを生データに含める必要はありません。
  • フィールドを適切なデータ型に型キャストします。
注: 可能な場合は、抽出時までにデータ サイズを減らしておくことをお勧めします。

命名規則

次の変換手順でテーブル名の競合が予想される場合のベスト プラクティスは、入力テーブルにサフィックス _input を追加することです。

任意のフィールド

コネクタの入力は必須のデータと任意のデータからなります。任意のフィールドの場合は、pm-utils パッケージの任意のマクロを使用する必要があります。これにより、ソース データに値がない場合、フィールドが確実に値 null を取得するようにします。こうすることで、すべての変換が正しく実行されます。
  • テーブル全体が任意の場合は optional_table() マクロを使用します。

2. オブジェクト

オブジェクトの手順では、入力テーブルをオブジェクト テーブルに変換します。予期されるイベントに必要なオブジェクトごとに専用のテーブルを用意する必要があります。「イベント ログをデザインする」をご覧ください。さらに、サポート オブジェクトもここで定義できます。

以下の例では、Invoices_inputInvoice_types_inputCustomers_input の 3 つの入力テーブルが結合され、オブジェクト テーブル「Invoices」が作成されています。


ガイドライン

オブジェクト テーブルを作成する際は、以下のガイドラインに従ってください。

  • オブジェクト ID フィールドが 1 つあり、各データ レコードで一意である。
  • データ分析に必要なすべてのオブジェクト フィールドが存在する。
  • すべてのオブジェクト フィールドに分かりやすい名前が付いている。
これに該当する場合、オブジェクト テーブルは ID フィールドを介して別のオブジェクトに関連しています。以下の例では、請求書明細 (invoice_lines) は、Invoice_ID フィールドを介して請求書オブジェクトに関連しています。


その他の変換

すべての入力テーブルがオブジェクト テーブルに変換されるわけではありません。また、他の入力テーブルに関連情報が含まれる場合もあります (この例では Customers テーブル)。オブジェクトの手順でそれらを別個のテーブルとして定義し、データ変換で再利用できるようにしておくと便利です。

命名規則

オブジェクト テーブルの名前が後で競合する場合は、テーブルにサフィックス「_base」を追加します。

3. イベント

手記:イベント ログカスタム プロセスのアプリ テンプレートの入力データは、既に Process Mining 用に適切に定義されたイベント ログです。ソース システムのデータを Process Mining のイベントに変換する必要はありません。

この変換手順では、各オブジェクトに対してイベント テーブルを作成します。「イベント ログをデザインする」をご覧ください。イベント テーブルの各レコードは、実行される 1 つのイベントを表します。データを構造化する方法には次の 2 つのシナリオがあります。

  • タイムスタンプ フィールド: イベントのタイムスタンプが付いたオブジェクト テーブルのフィールドです。たとえば、Invoices テーブルの Invoice_created フィールドです。
  • トランザクション ログ: イベントのリストです。

データがどのように構造化されているかによって、イベント テーブルを作成するための変換は異なります。

タイムスタンプ フィールド

このシナリオでは、タイムスタンプ フィールドの値をイベント テーブルの別個のレコードに変換する必要があります。以下の例は、3 つのタイムスタンプ フィールドを含む Invoices テーブルです。



各タイムスタンプ フィールドを使用して、別個のイベント テーブルを作成します。タイムスタンプ フィールドに値が含まれるすべてのレコードに対して、請求書 ID (Invoice ID)、イベントの名前 (Activity)、イベントが発生したタイムスタンプ (Event end) が含まれるテーブルを作成します。



Invoices_input table は、Invoice_events_Create_invoiceInvoice_events_Delete_invoice、および Invoices_events_Change_invoice_price に分割されます。
その後、別個のイベント テーブルをオブジェクトごとに 1 つのイベント テーブルにマージできます (例: Invoices_events)。

トランザクション ログ

イベントがトランザクション ログに保存されている場合は、オブジェクトごとの関連イベントを特定する必要があります。オブジェクトごとのテーブルを作成し、対応するオブジェクト ID、イベントの名前 (Activity)、イベントが発生したタイムスタンプ (Event end) を格納します。

以下の例では、トランザクション ログに Purchase Order オブジェクトと Invoice オブジェクトのイベントが含まれています。
トランザクション ログとイベント テーブル

以下のフィールドは、イベント テーブルで必須です。イベント テーブルのすべてのレコードに、これらのフィールドに対応する値が含まれる必要があります。

フィールド

説明

オブジェクト ID

イベントが発生するオブジェクトの ID です。たとえば、Invoice ID です。

アクティビティ

アクティビティでは、オブジェクトで発生したアクションを記述します。

Event end

[Event end] フィールドは、特定のイベントが完了したタイミングを示します。日付フィールドではなく日時フィールドであるのが理想的です。

命名規則

アクティビティごとに 1 つのイベント ファイルを作成するには、[Activity] + _events に従ってテーブルに名前を付けます。オブジェクトごとに 1 つのイベント ファイルを作成するには、[Object] + _events に従って名前を付けます。たとえば、Purchase_order_approved_eventsPurchase_order_created_events という名前にしたり、すべての発注アクティビティを 1 つのファイルにまとめて Purchase_order_events という名前にしたりすることができます。

4. イベント ログ

単一のオブジェクト プロセス

プロセスに含まれるオブジェクトが 1 つである場合、この手順でさらに変換を行う必要はありません。単一のオブジェクト テーブルと複数のイベント テーブルですでに正しい形式になっています。

複数オブジェクトのプロセス

プロセスに複数のオブジェクトが含まれる場合、すべてのオブジェクトのイベントを、プロセスの「ケース」と見なされるメイン オブジェクトにリンクする必要があります。詳しくは、「イベント ログを定義する」をご覧ください。以下の手順では、すべてのイベントをメイン オブジェクトに関連させる方法と、そのイベントを単一のイベント ログに結合する方法について説明します。

オブジェクトの関係

「object-relations」テーブルを作成して、すべてのオブジェクト間の関係を一元管理します。この object-relations テーブルに、関連するオブジェクトの ID フィールドを格納します。

object-relations テーブルを作成するには、すべてのオブジェクト テーブルを ID フィールドに基づいて結合します。

  • メイン オブジェクトから開始します。
  • 関連するオブジェクトを左結合でメイン オブジェクトに結合します。
  • オブジェクトがメイン オブジェクトに直接関連していない場合は、それらのオブジェクトを、すでにメイン オブジェクトに結合されている関連オブジェクトに左結合します。

以下の例では、Purchase orderInvoice lineInvoice の 3 つのオブジェクトがあります。Purchase order はプロセスのメイン オブジェクトと見なされます。Invoice linePurchase order に直接リンクされ、InvoiceInvoice line を介して間接的にリンクされます。





 Object_relations as (
	select
		Purchase_orders."Purchase_order_ID"
		Invoice_lines.Invoice_line_ID
		"Invoices.Invoice_ID"
	from Purchase_orders
	left join Invoice_lines
		on Purchase_orders."Purchase_order_ID" = "Invoice_lines."Purchase_order_ID"
	left join Invoices
		on Invoice_lines."Invoice_ID" = Invoices."Invoice_ID
)Object_relations as (
	select
		Purchase_orders."Purchase_order_ID"
		Invoice_lines.Invoice_line_ID
		"Invoices.Invoice_ID"
	from Purchase_orders
	left join Invoice_lines
		on Purchase_orders."Purchase_order_ID" = "Invoice_lines."Purchase_order_ID"
	left join Invoices
		on Invoice_lines."Invoice_ID" = Invoices."Invoice_ID
)

次の図に、生成される object-relations テーブルを示します。



リレーション テーブル

メイン オブジェクトと他の各オブジェクト間の個々のリレーションは、object-relations テーブルの情報を結合して、別個のテーブルに保存されます。

 Relation_invoice_lines as (
	select
		Object_relations."Purchase_order_ID"
		Object_relations."Invoice_line_ID"
	from Object_relations
	group by "Purchase_order_ID", "Invoice_line_ID"
)Relation_invoice_lines as (
	select
		Object_relations."Purchase_order_ID"
		Object_relations."Invoice_line_ID"
	from Object_relations
	group by "Purchase_order_ID", "Invoice_line_ID"
)


 Relation_invoices as (
	select
		Object_relations."Purchase_order_ID"
		Object_relations."Invoice_ID"
	from Object_relations
	group by "Purchase_order_ID", "Invoice_ID"
)Relation_invoices as (
	select
		Object_relations."Purchase_order_ID"
		Object_relations."Invoice_ID"
	from Object_relations
	group by "Purchase_order_ID", "Invoice_ID"
)


イベント ログ

次の手順では、これらのリレーションを使用して、対応する「ケース ID」を各イベント テーブルに追加します。「ケース ID」はリレーション テーブルを介して取得し、イベント情報はイベント テーブルから取得します。完全なイベント ログを作成するために、各オブジェクトのイベント テーブルを和集合にします。

 Purchase_order_event_log as (
	select
		Purchase_order_events."Purchase_order_ID"
		Purchase_order_events."Activity"
		Purchase_order_events."Event_end"
	from Purchase_order_events
	union all
	select
		Relation_invoice_lines."Purchase_order_ID"
		Invoice_line_events."Activity"
		Invoice_line_events."Event_end"
	from Invoice_line_events
	inner join Relation_invoice_lines
		on Invoice_line_events."Invoice_line_ID" = "Relation_invoice_lines."Invoice_line_ID"
	union all
	select
		Relation_invoices."Purchase_order_ID"
		Invoice_events. "Activity"
		Invoice_events. "Event_end"
	from Invoice_events
	inner join Relation_invoices
		on Invoice_events."Invoice_line_ID" = Relation_invoices."Invoice_line_ID"
)Purchase_order_event_log as (
	select
		Purchase_order_events."Purchase_order_ID"
		Purchase_order_events."Activity"
		Purchase_order_events."Event_end"
	from Purchase_order_events
	union all
	select
		Relation_invoice_lines."Purchase_order_ID"
		Invoice_line_events."Activity"
		Invoice_line_events."Event_end"
	from Invoice_line_events
	inner join Relation_invoice_lines
		on Invoice_line_events."Invoice_line_ID" = "Relation_invoice_lines."Invoice_line_ID"
	union all
	select
		Relation_invoices."Purchase_order_ID"
		Invoice_events. "Activity"
		Invoice_events. "Event_end"
	from Invoice_events
	inner join Relation_invoices
		on Invoice_events."Invoice_line_ID" = Relation_invoices."Invoice_line_ID"
)

命名規則

イベント ログ テーブルの名前が後で競合する可能性がある場合は、イベント ログ テーブルの名前にサフィックス _base を追加します。

5. ビジネス ロジック

最後の変換手順では、データ分析に必要なビジネス ロジックが追加されます。ここでは、追加の派生フィールドを既存のテーブルに追加できます。たとえば、ダッシュボードの KPI で使用する特定のスループット時間フィールドや Boolean フィールドです。

Process Miningでは、この変換手順で定義される標準的な 2 つの追加テーブルとして、TagsDue dates があります。

タグ

タグはオブジェクトのプロパティで、特定のビジネス ルールを表します。通常は、ビジネス ルールを簡単に分析できるようにするためにタグを追加します。以下に例を示します。

  • 請求書の支払と承認が同じユーザーによって行われている。
  • 請求書の承認時間が 10 日を超えている。
  • 請求書を確認するアクティビティがスキップされている。
タグ テーブルの各レコードは、特定のケースのデータで発生した 1 つのタグを表します。このテーブルの必須フィールドは、Object IDTag です。すべてのオブジェクトにタグが付くわけではありません。一部のオブジェクトには複数のタグが付く可能性もあります。次の図に、Tags テーブルの例を示します。


注:

このデータ モデルでは 1 つの Tags テーブルのみが許可されます。

期限日

期限日はプロセスの期限を表します。期限日をデータに追加して、アクティビティが期限内に実行されているかどうかを分析します。

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

  • 支払の支払期限。
  • 発注書の承認期限。
このテーブルの必須フィールドは、Object IDDue dateActual dateExpected date です。


注:

このデータ モデルでは 1 つの Due dates テーブルのみが許可されます。

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

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
Uipath Logo White