process-mining
2024.10
true
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 Fälligkeitsdaten

Wenn Sie das Dashboard Fälligkeitsdaten zum Analysieren von Fälligkeitsdaten verwenden möchten, müssen für Ihre App-Vorlage Fälligkeitsdaten definiert werden.

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

Wenn keine Daten im Dashboard für Fälligkeitsdaten verfügbar sind, müssen Sie Ihre eigenen Fälligkeitsdaten in der models\5_business_logic\Due_dates_base.sql -Datei mithilfe von Datentransformationen konfigurieren. Hier können Sie auch standardmäßige Fälligkeitsdaten für Ihre geschäftlichen Anforderungen konfigurieren.
Für benutzerdefinierten Prozess können Sie Fälligkeitsdaten auch mithilfe der Due_dates_raw.csv -Datei 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 Tabelle „Fälligkeitsdaten“ stellt ein Fälligkeitsdatum für ein bestimmtes Objekt dar. Beispiele für Fälligkeitsdaten sind:

  • eine Zahlungsfrist für ein Zahlungsobjekt.
  • eine Genehmigungsfrist für die Bestellanforderung.
Die Pflichtfelder für diese Tabelle sind Case_ID, Due_date, Actual_date und Expected_date.


Nicht alle Ereignisse haben ein Fälligkeitsdatum und einige Ereignisse können mehrere Fälligkeitsdaten haben.

Weitere Informationen finden Sie unter Datentransformationen .

Bereitstellen der Konfigurationseingabe des Fälligkeitsdatums in Datentransformationen

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

Name

Typ

Beschreibung

Due_dateText

Der Name des Fälligkeitsdatums.

Due_date_typeText

Der Typ Fälligkeitsdatum.

Fixed_costs

Boolescher

Eine Angabe, ob die Kosten fest oder zeitbasiert sind.

Cost

Frei anordnen

Fixkosten: Die Höhe der Kosten.
Variable Kosten: Die Höhe der Kosten pro Time und Type_type.

Time

Integer

Eine Zahl, die die Zeitdauer bei zeitbasierten Kosten angibt.

Time_typeTextTyp des Zeitraums für Kostenberechnungen. Dies kann einer der folgenden Werte sein: Tag, Stunde, Minute, Sekunde, Millisekunde.

Case_ID

Text/Integer

Die ID des Falls, auf den sich das Fälligkeitsdatum bezieht.

Sehen Sie sich Transformationen an.

Providing due date configuration input using dbt seeds

Bei Prozess-Apps, die noch die Seed-Datei Due_dates_configuration_raw.csv im Ordner Seeds\ der Datentransformationen enthalten, können Sie diese Datei verwenden, um zusätzliche Eingabedaten bereitzustellen, die für die Berechnungen im Dashboard Fälligkeitsdaten verwendet werden sollen.

Die folgende Abbildung zeigt ein Beispiel für eine Seed-Datei.
Beispiel für eine Seed-Datei
Sehen Sie sich Transformationen an.

SQL-Beispiele zum Konfigurieren von Fälligkeitsdaten

Auf dieser Seite finden Sie einige SQL-Beispiele, mit denen Sie Fälligkeitsdaten mithilfe von Transformationen konfigurieren können.
Achtung:
Die SQL-Beispiele basieren auf Ereignisprotokoll- und benutzerdefinierten Prozess- App-Vorlagen und verwenden Fälle mit einem Case_ID. Wenn Sie die SQL-Beispiele verwenden möchten, um Fälligkeitsdaten 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. Für Purchase-to-Pay können Sie das Purchase_order_item_end_to_end_events -Ereignisprotokoll, das Purchase_order_items -Objekt und das Purchase_order_item_ID_internal als Case_ID verwenden. Für Order-to-Cash können Sie das Sales_order_item_end_to_end_events -Ereignisprotokoll, das Sales_order_items -Objekt und den Sales_order_item_ID_internal als Case_ID verwenden.

Der folgende Codeblock zeigt eine SQL-Beispielabfrage zur Definition eines Fälligkeitsdatums.

 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"

Der folgende Codeblock zeigt eine SQL-Beispielabfrage zum Konfigurieren von Fälligkeitsdaten.

 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_base

Aktivität X wurde vor Datum Y ausgeführt

Dieser SQL-Code identifiziert Fälle, in denen das letzte Vorkommen der Aktivität „X“ vor dem Datum „Y“ geschah.

 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_Y

Aktivität X wird innerhalb von 5 Tagen nach Aktivität Y durchgeführt

Dieser SQL-Code identifiziert Fälle, in denen das letzte Vorkommen der Aktivität „X“ innerhalb von 5 Tagen nach dem letzten Vorkommen der Aktivität „Y“ geschah.

 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

War diese Seite hilfreich?

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