process-mining
latest
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 19. März 2025

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 im Datentransformations-Editor .

Bereitstellen der Tag-Konfigurationseingabe in Datentransformationen

Sie können zusätzliche Eingabedaten bereitstellen, die für die Tags im Tags-Dashboard verwendet werden sollen, indem Sie SQL-Anweisungen in Datentransformationen verwenden. Für alle Tags können Sie die folgenden Felder konfigurieren.

Name

Typ

Beschreibung

TagText

Der Name des Tags.

Tag_typeText

Der Tag-Typ.

Case_ID

Text/Integer

Die ID des Falls, auf den sich das Tag bezieht.

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

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
Uipath Logo White