process-mining
2023.10
false
Wichtig :
Bitte beachten Sie, dass dieser Inhalt teilweise mithilfe von maschineller Übersetzung lokalisiert wurde. Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.
UiPath logo, featuring letters U and I in white

Process Mining

Letzte Aktualisierung 6. Nov. 2025

Tags

Einleitung

In Process Mining sind Tags die Geschäftsregeln, die Sie auf Ihre Daten anwenden, mit denen Sie die Konformität Ihres Prozesses überprüfen können, z. B. Ineffizienzen, Nacharbeit oder Verstöße.

Hinweis:
Wenn Sie das Tags- Dashboard zum Analysieren von Tags verwenden möchten, müssen die Felder für die Tags -Tabelle in Ihrem Dataset vorhanden sein.

Weitere Informationen zu vorgefertigten Tags für Order-to-Cash-App-Vorlagen finden Sie unter Vorgefertigte Tags und Fälligkeitsdaten .

Weitere Informationen zum Konfigurieren von Tags in Datentransformationen finden Sie unter Konfigurieren von Tags.

Konfigurieren von Tags

Wenn Sie das Tags- Dashboard zum Analysieren von Tags in Ihrem Prozess verwenden möchten, müssen Tags für Ihre App-Vorlage definiert werden.

Für bestimmte App-Vorlagen sind sofort einsetzbare Tags verfügbar, die im Dashboard angezeigt werden. In der Dokumentation für Ihre spezifische App-Vorlage finden Sie eine Übersicht über die verfügbaren Tags. Die Seite App-Vorlagen enthält Links zur Dokumentation für alle verfügbaren App-Vorlagen.

Bei allen benutzerdefinierten Prozess-App-Vorlagen ist ein Tag sofort implementiert, das überprüft, ob ein Fall Nachbearbeitungsaktivitäten enthält, die von verschiedenen Benutzern ausgeführt werden.

Wenn im Tags -Dashboard keine Daten verfügbar sind, müssen Sie Ihre eigenen Tags mithilfe von Datentransformationen konfigurieren. Hier können Sie auch alle Standard-Tags für Ihre geschäftlichen Anforderungen konfigurieren. In der folgenden Tabelle werden die Tags-Konfigurationsdateien für die verschiedenen App-Vorlagen beschrieben.

App-Vorlagen basierend auf

Tags-Konfigurationsdatei

Ereignisprotokoll

models\5_business_logic\Tags_base.sql
Benutzerdefinierter Prozess 1models\5_business_logic\Tags_base.sql

Purchase-to-Pay

models\5_business_logic\Tags.sql

Order-to-Cash

models\5_business_logic\Tags.sql
1) Dies gilt für die Benutzerdefinierte Prozess -App-Vorlage und alle anderen App-Vorlagen, die auf einem Benutzerdefinierten Prozess basieren, z. B. SAP-Lagerverwaltung.
Für benutzerdefinierten Prozesse können Sie Tags auch mit der Datei Tags_raw.csv hochladen. Sehen Sie sich Benutzerdefinierte Prozesseingabefelder an.

Hinzufügen von Geschäftslogik in Transformationen

Im letzten Transformationsschritt wird nach Bedarf Geschäftslogik für die Datenanalyse hinzugefügt.

Jeder Datensatz in der Tags-Tabelle stellt ein Tag für einen bestimmten Fall dar. Beispiel-Tags:

  • SLA-Verstoß für einen Vertrag.
  • eine Zahlung durch eine nicht autorisierte Person.
Die Pflichtfelder für diese Tabelle sind Case_ID und Tag.

Nicht alle Objekte haben ein Tag und einige Objekte können mehrere Tags haben.

Weitere Informationen finden Sie unter Datentransformationen .

SQL-Beispiele zum Konfigurieren von Tags

Diese Seite enthält einige SQL-Beispiele, mit denen Sie Tags mithilfe von Transformationen konfigurieren können.

Achtung:
Die SQL-Beispiele basieren auf Ereignisprotokoll- App-Vorlagen und verwenden Fälle mit einem Case_ID. Wenn Sie die SQL-Beispiele verwenden möchten, um Tags für Purchase-to-Pay-App- Vorlagen oder Order-to-Cash -App-Vorlagen zu definieren, stellen Sie sicher, dass Sie das entsprechende Objekt und die zugehörige interne Objekt_ID verwenden. Folgen Sie beim Erweitern der Implementierung für Tags der vorhandenen Implementierung.

Der folgende Codeblock zeigt eine SQL-Beispielabfrage zum Definieren eines Tags.

select
        Time_to_resolved."Case_ID",
        {{ pm_utils.as_varchar('Resolved in less than a day') }} as "Tag",
        {{ pm_utils.to_varchar('Optional tag type') }} as "Tag_type"
    from Time_to_resolved
    where Time_to_resolved."Throughput_time" < 24select
        Time_to_resolved."Case_ID",
        {{ pm_utils.as_varchar('Resolved in less than a day') }} as "Tag",
        {{ pm_utils.to_varchar('Optional tag type') }} as "Tag_type"
    from Time_to_resolved
    where Time_to_resolved."Throughput_time" < 24

Der folgende Codeblock zeigt ein Beispiel für eine CTE-SQL-Abfrage (Common Table Expression) zum Konfigurieren eines Tags.

Time_to_resolved as (
    select
        Event_log."Case_ID",
        {{ pm_utils.datediff('hour', 'min(Cases."Creation_date")', 'max(Event_log."Event_end")') }} as "Throughput_time"
    from {{ ref('Event_log') }} as Event_log
    left join {{ ref('Cases ') }} as Cases 
        on Event_log."Case_ID" = Cases."Case_ID"
    where Event_log."Activity" = 'Set resolution to Done'
    group by Event_log."Case_ID"
)Time_to_resolved as (
    select
        Event_log."Case_ID",
        {{ pm_utils.datediff('hour', 'min(Cases."Creation_date")', 'max(Event_log."Event_end")') }} as "Throughput_time"
    from {{ ref('Event_log') }} as Event_log
    left join {{ ref('Cases ') }} as Cases 
        on Event_log."Case_ID" = Cases."Case_ID"
    where Event_log."Activity" = 'Set resolution to Done'
    group by Event_log."Case_ID"
)

Folgt direkt

Dieser SQL-Code identifiziert Fälle, in denen die Aktivität „X“ direkt auf die Aktivität „Y“ folgt, und markiert sie als „Verstoß“.

with Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- Event log with current activity and next activity
Event_log_extended as (
    select
        Event_log_base."Case_ID",
        Event_log_base."Activity" as "Current_activity",
        lead(Event_log_base."Activity") over (order by "Event_end") as "Next_activity"
    from Event_log_base
),

-- This SQL code checks whether activity X is directly followed by Y in a given case
Directly_follows as (
    select
        Event_log_extended ."Case_ID",
        {{ pm_utils.as_varchar('Activity X directly followed by activity Y') }} as "Tag",
        {{ pm_utils.as_varchar('Violation') }} as "Tag_type"
    from Event_log_extended 
    where Event_log_extended ."Current_activity" = 'X' and Event_log_extended ."Next_activity" = 'Y'
    group by Event_log_extended ."Case_ID"
)

select * from Directly_followswith Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- Event log with current activity and next activity
Event_log_extended as (
    select
        Event_log_base."Case_ID",
        Event_log_base."Activity" as "Current_activity",
        lead(Event_log_base."Activity") over (order by "Event_end") as "Next_activity"
    from Event_log_base
),

-- This SQL code checks whether activity X is directly followed by Y in a given case
Directly_follows as (
    select
        Event_log_extended ."Case_ID",
        {{ pm_utils.as_varchar('Activity X directly followed by activity Y') }} as "Tag",
        {{ pm_utils.as_varchar('Violation') }} as "Tag_type"
    from Event_log_extended 
    where Event_log_extended ."Current_activity" = 'X' and Event_log_extended ."Next_activity" = 'Y'
    group by Event_log_extended ."Case_ID"
)

select * from Directly_follows
Folgt indirekt

Dieser SQL-Code identifiziert Fälle, in denen die Aktivität „X“ direkt oder indirekt von der Aktivität „Y“ folgt, und markiert sie als „Verstoß“.

with Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

Cases_with_activity_X as (
    select
        Event_log_base."Case_ID",
        min(Event_log_base."Event_end") as "Event_end"
    from Event_log_base
    where Event_log_base."Activity" = 'X'
    group by Event_log_base."Case_ID"
),

-- Activity X is directly or indirectly followed by activity Y
Indirectly_follows as (
    select
        Event_log_base."Case_ID",
        {{ pm_utils.as_varchar('Activity X indirectly followed by activity Y') }} as "Tag",
        {{ pm_utils.as_varchar('Violation') }} as "Tag_type"
    from Event_log_base
    inner join Cases_with_activity_X
        on Event_log_base."Case_ID" = Cases_with_activity_X."Case_ID"
    where Event_log_base."Activity" = 'Y' and Event_log_base."Event_end" > Cases_with_activity_X."Event_end"
    group by Event_log_base."Case_ID"
)

select * from Indirectly_followswith Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

Cases_with_activity_X as (
    select
        Event_log_base."Case_ID",
        min(Event_log_base."Event_end") as "Event_end"
    from Event_log_base
    where Event_log_base."Activity" = 'X'
    group by Event_log_base."Case_ID"
),

-- Activity X is directly or indirectly followed by activity Y
Indirectly_follows as (
    select
        Event_log_base."Case_ID",
        {{ pm_utils.as_varchar('Activity X indirectly followed by activity Y') }} as "Tag",
        {{ pm_utils.as_varchar('Violation') }} as "Tag_type"
    from Event_log_base
    inner join Cases_with_activity_X
        on Event_log_base."Case_ID" = Cases_with_activity_X."Case_ID"
    where Event_log_base."Activity" = 'Y' and Event_log_base."Event_end" > Cases_with_activity_X."Event_end"
    group by Event_log_base."Case_ID"
)

select * from Indirectly_follows
Aktivität X mehrmals

Dieser SQL-Code identifiziert Fälle, in denen die Aktivität „X“ mehrmals auftritt, und markiert sie mit „Ineffizienz“.

with Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- This SQL code checks if Activity X occurs twice or more times in the same case
Activity_X_multiple_times as (
    select
        Event_log_base."Case_ID",
        {{ pm_utils.as_varchar('Activity X multiple times') }} as "Tag",
        {{ pm_utils.as_varchar('Inefficiency') }} as "Tag_type"
    from Event_log_base
    where Event_log_base."Activity" = 'X'
    group by Event_log_base."Case_ID"
    having count(Event_log_base."Activity") > 1
)

select * from Activity_X_multiple_timeswith Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- This SQL code checks if Activity X occurs twice or more times in the same case
Activity_X_multiple_times as (
    select
        Event_log_base."Case_ID",
        {{ pm_utils.as_varchar('Activity X multiple times') }} as "Tag",
        {{ pm_utils.as_varchar('Inefficiency') }} as "Tag_type"
    from Event_log_base
    where Event_log_base."Activity" = 'X'
    group by Event_log_base."Case_ID"
    having count(Event_log_base."Activity") > 1
)

select * from Activity_X_multiple_times
Fall hat Aktivität X

Dieser SQL-Code identifiziert Fälle, die eine oder mehrere Aktivitäten mit einem Namen haben, der „X“ enthält, und markiert sie mit „Ineffizienz“.

with Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- Case has activity with name like X
Case_has_activity_X as (
    select
        Event_log_base."Case_ID",
        {{ pm_utils.as_varchar('Case has activity X') }} as "Tag",
        {{ pm_utils.as_varchar('Inefficiency') }} as "Tag_type"
    from Event_log_base
    where {{ pm_utils.charindex('X', 'Event_log_base."Activity"') }} > 0
    group by Event_log_base."Case_ID"
)

select * from Case_has_activity_Xwith Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- Case has activity with name like X
Case_has_activity_X as (
    select
        Event_log_base."Case_ID",
        {{ pm_utils.as_varchar('Case has activity X') }} as "Tag",
        {{ pm_utils.as_varchar('Inefficiency') }} as "Tag_type"
    from Event_log_base
    where {{ pm_utils.charindex('X', 'Event_log_base."Activity"') }} > 0
    group by Event_log_base."Case_ID"
)

select * from Case_has_activity_X
Fall hat keine Aktivität X

Dieser SQL-Code identifiziert Fälle, für die keine Aktivitäten vorhanden sind, deren Name „X“ enthält, und sie werden als „Ineffizienz“ gekennzeichnet.

with Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

Cases as (
    select * from {{ ref('Cases') }}
),

-- Case has no activity with name like X
-- Obtained by subtracting the set of cases that have activity X from the set of all cases
Case_has_no_activity_X as (
    select
        Cases."Case_ID",
        {{ pm_utils.as_varchar('Case has no activity X') }} as "Tag",
        {{ pm_utils.as_varchar('Inefficiency') }} as "Tag_type"
    from Cases
    where Cases."Case_ID" not in (
        -- Case has activity with name like X
        select
            Event_log_base."Case_ID"
        from Event_log_base
        where {{ pm_utils.charindex('X', 'Event_log_base."Activity"') }} > 0
        group by Event_log_base."Case_ID"
    )
)

select * from Case_has_no_activity_Xwith Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

Cases as (
    select * from {{ ref('Cases') }}
),

-- Case has no activity with name like X
-- Obtained by subtracting the set of cases that have activity X from the set of all cases
Case_has_no_activity_X as (
    select
        Cases."Case_ID",
        {{ pm_utils.as_varchar('Case has no activity X') }} as "Tag",
        {{ pm_utils.as_varchar('Inefficiency') }} as "Tag_type"
    from Cases
    where Cases."Case_ID" not in (
        -- Case has activity with name like X
        select
            Event_log_base."Case_ID"
        from Event_log_base
        where {{ pm_utils.charindex('X', 'Event_log_base."Activity"') }} > 0
        group by Event_log_base."Case_ID"
    )
)

select * from Case_has_no_activity_X
Beginnend mit (Starts with)

Dieser SQL-Code identifiziert Fälle, die mit der Aktivität „X“ beginnen, und markiert sie als „Verstoß“.

with Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- Add row_number to initial event log
Event_log_base_numbered as (
    select
        Event_log_base."Case_ID",
        Event_log_base."Activity",
        Event_log_base."Event_end",
        row_number() over (partition by Event_log_base."Case_ID" order by Event_log_base."Event_end") as "Row_number"
    from Event_log_base
),

-- Case starts with activity X
Starts_with as (
    select
        Event_log_base_numbered."Case_ID",
        {{ pm_utils.as_varchar('Case starts with activity X') }} as "Tag",
        {{ pm_utils.as_varchar('Violation') }} as "Tag_type"
    from Event_log_base_numbered
    where
        Event_log_base_numbered."Row_number" = 1
        and Event_log_base_numbered."Activity" = 'X'
)

select * from Starts_withwith Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- Add row_number to initial event log
Event_log_base_numbered as (
    select
        Event_log_base."Case_ID",
        Event_log_base."Activity",
        Event_log_base."Event_end",
        row_number() over (partition by Event_log_base."Case_ID" order by Event_log_base."Event_end") as "Row_number"
    from Event_log_base
),

-- Case starts with activity X
Starts_with as (
    select
        Event_log_base_numbered."Case_ID",
        {{ pm_utils.as_varchar('Case starts with activity X') }} as "Tag",
        {{ pm_utils.as_varchar('Violation') }} as "Tag_type"
    from Event_log_base_numbered
    where
        Event_log_base_numbered."Row_number" = 1
        and Event_log_base_numbered."Activity" = 'X'
)

select * from Starts_with
Durchsatzzeit länger als 10 Tage

Dieser SQL-Code identifiziert Fälle, bei denen die Durchsatzzeit länger als 10 Tage ist, und kennzeichnet sie mit „Ineffizienz“.

with Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- Throuput time of each case
Throughput_time_per_case as (
    select
        Event_log_base."Case_ID",
        {{ pm_utils.datediff('day', 'coalesce(min(Event_log_base."Event_start"), min(Event_log_base."Event_end"))', 'max(Event_log_base."Event_end")') }} as "Throughput_time"
    from Event_log_base
    group by Event_log_base."Case_ID"
),

-- Case throughput time is longer than 10 days
Throughput_time_longer_than_10_days as (
    select
        Throughput_time_per_case."Case_ID",
        {{ pm_utils.as_varchar('Throughput time is longer than 10 days') }} as "Tag",
        {{ pm_utils.as_varchar('Inneficiency') }} as "Tag_type"
    from Throughput_time_per_case
    where Throughput_time_per_case."Throughput_time" > 10
)

select * from Throughput_time_longer_than_10_dayswith Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- Throuput time of each case
Throughput_time_per_case as (
    select
        Event_log_base."Case_ID",
        {{ pm_utils.datediff('day', 'coalesce(min(Event_log_base."Event_start"), min(Event_log_base."Event_end"))', 'max(Event_log_base."Event_end")') }} as "Throughput_time"
    from Event_log_base
    group by Event_log_base."Case_ID"
),

-- Case throughput time is longer than 10 days
Throughput_time_longer_than_10_days as (
    select
        Throughput_time_per_case."Case_ID",
        {{ pm_utils.as_varchar('Throughput time is longer than 10 days') }} as "Tag",
        {{ pm_utils.as_varchar('Inneficiency') }} as "Tag_type"
    from Throughput_time_per_case
    where Throughput_time_per_case."Throughput_time" > 10
)

select * from Throughput_time_longer_than_10_days
Dauer mehr als 30 Minuten

Dieser SQL-Code identifiziert Fälle, in denen die Zeitdauer zwischen der Aktivität „X“ und „Y“ mehr als 30 Minuten beträgt, und kennzeichnet sie mit „Ineffizienz“.

with Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- First activity X of each case
First_activity_X_of_each_case as (
    select
        Event_log_base."Case_ID",
        min(Event_log_base."Event_end") as "Event_end"
    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_of_each_case as (
    select
        Event_log_base."Case_ID",
        max(Event_log_base."Event_end") as "Event_end"
    from Event_log_base
    where Event_log_base."Activity" = 'Y'
    group by Event_log_base."Case_ID"
),

-- Time between first X and last Y > 30 minutes
Duration_more_than_30_minutes as (
    select
        First_activity_X_of_each_case."Case_ID",
        {{ pm_utils.as_varchar('Duration more than 30 minutes') }} as "Tag",
        {{ pm_utils.as_varchar('Inefficiency') }} as "Tag_type"
    from First_activity_X_of_each_case
    inner join Last_activity_Y_of_each_case
        on First_activity_X_of_each_case."Case_ID" = Last_activity_Y_of_each_case."Case_ID"
    where {{ pm_utils.datediff('minute', 'First_activity_X_of_each_case."Event_end"', 'Last_activity_Y_of_each_case."Event_end"') }} > 30
)

select * from Duration_more_than_30_minuteswith Event_log_base as (
    select * from {{ ref('Event_log_base') }}
),

-- First activity X of each case
First_activity_X_of_each_case as (
    select
        Event_log_base."Case_ID",
        min(Event_log_base."Event_end") as "Event_end"
    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_of_each_case as (
    select
        Event_log_base."Case_ID",
        max(Event_log_base."Event_end") as "Event_end"
    from Event_log_base
    where Event_log_base."Activity" = 'Y'
    group by Event_log_base."Case_ID"
),

-- Time between first X and last Y > 30 minutes
Duration_more_than_30_minutes as (
    select
        First_activity_X_of_each_case."Case_ID",
        {{ pm_utils.as_varchar('Duration more than 30 minutes') }} as "Tag",
        {{ pm_utils.as_varchar('Inefficiency') }} as "Tag_type"
    from First_activity_X_of_each_case
    inner join Last_activity_Y_of_each_case
        on First_activity_X_of_each_case."Case_ID" = Last_activity_Y_of_each_case."Case_ID"
    where {{ pm_utils.datediff('minute', 'First_activity_X_of_each_case."Event_end"', 'Last_activity_Y_of_each_case."Event_end"') }} > 30
)

select * from Duration_more_than_30_minutes

Analysieren von Tags

Tags-Dashboard

Mit dem Tags-Dashboard können Sie die Tags analysieren, die im Prozess auftreten.

Führen Sie die folgenden Schritte aus, um das Tags- Dashboard anzuzeigen.

  1. Wählen Sie Tags im Menü auf der linken Seite des Dashboards aus.

Das Tags- Dashboard wird angezeigt.

Metriken

In der folgenden Tabelle werden die Metriken beschrieben, die zum Analysieren der Objekte in Bezug auf Tags verwendet werden können.

Metrik

Beschreibung

Anzahl der Objekte

Die Anzahl der Objekte, denen das Tag zugewiesen ist.

Anzahl der Tags

Die Anzahl der zugewiesenen Tags.

  • Einleitung
  • Konfigurieren von Tags
  • Hinzufügen von Geschäftslogik in Transformationen
  • SQL-Beispiele zum Konfigurieren von Tags
  • Analysieren von Tags
  • Tags-Dashboard

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
Uipath Logo
Vertrauen und Sicherheit
© 2005–2025 UiPath. Alle Rechte vorbehalten