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

Process Mining ユーザー ガイド

最終更新日時 2026年4月23日

変換の構造

概要

次の図に、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 フィールドを介して請求書オブジェクトに関連しています。

請求書明細 (invoice_lines) は、請求書オブジェクトに関連している

その他の変換

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

命名規則

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

3. イベント

注:

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

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

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

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

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

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

3 つのタイムスタンプ フィールドを含む Invoices テーブル

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

Invoices テーブルは別個の複数のイベント テーブルに分割される

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 テーブル

リレーション テーブル

メイン オブジェクトと他の各オブジェクト間の個々のリレーションは、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"
)

relations テーブルの例

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"
)

relations テーブルの例

イベント ログ

次の手順では、これらのリレーションを使用して、対応する「ケース 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 テーブルの例を示します。

Tags テーブルの例

注:

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

期限日

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

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

  • 支払の支払期限。
  • 発注書の承認期限。

このテーブルの必須フィールドは、Object IDDue dateActual dateExpected date です。

Due dates テーブルの例

注:

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

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

接続

ヘルプ リソース サポート

学習する UiPath アカデミー

質問する UiPath フォーラム

最新情報を取得