UiPath Documentation
process-mining
2024.10
false
Important :
Veuillez noter que ce contenu a été localisé en partie à l’aide de la traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.
UiPath logo, featuring letters U and I in white

Guide de l'utilisateur de Process Mining

Dernière mise à jour 23 avr. 2026

Métriques de temps de traitement personnalisées

Introduction

En personnalisant les transformations de données et la modification du tableau de bord, vous pouvez créer et utiliser des métriques de délai d'exécution personnalisées. Les délais d'exécution sont les délais entre les deux activités A et B. Les sections suivantes décrivent les étapes que vous devez effectuer pour créer une métrique de délai d'exécution personnalisée lors de la modification des transformations et comment activer la métrique de temps d'exécution dans les tableaux de bord de l'application de processus.

Création d'une mesure de temps de débit personnalisée avec modification des transformations

Vous devez d’abord calculer le délai d’exécution, puis le rendre disponible en tant que champ Cas.

Calcul du temps d'exécution

Par cas, vous pouvez calculer les délais d'exécution entre l'activité A et l'activité B. Étant donné que les activités peuvent se produire plus d’une fois par cas, vous devez prendre en compte si vous prenez la première ou la dernière occurrence d’une activité.

  1. Créez un modèle supplémentaire basé sur le journal des événements pour calculer les délais d’exécution souhaités. Par exemple, Cases_avec_ Délai_ Cloud.
  2. Dans ce modèle, créez des tables de prétraitement dans lesquelles vous définissez la fin d'événement que vous souhaitez utiliser pour les calculs. Par table, vous avez besoin de l' ID d'incident et de la fin de l'événement d'une activité. Le code suivant montre un exemple de sélection de la dernière occurrence de l'activité A pour un incident.
    Event_end_activity_A as (
        select
            Event_log."Case_ID",
            max(Event_log."Event_end") as "Event_end_activity_A"
        from Event_log
        where Event_log."Activity" = 'Activity A'
        group by Event_log."Case_ID")
    Event_end_activity_A as (
        select
            Event_log."Case_ID",
            max(Event_log."Event_end") as "Event_end_activity_A"
        from Event_log
        where Event_log."Activity" = 'Activity A'
        group by Event_log."Case_ID")
    
    Remarque :

    Dans cet exemple, si vous souhaitez sélectionner la première occurrence de l'activité, remplacez max. par min.

  3. Définissez la table du délai d'exécution en joignant les tables de prétraitement au journal des événements et en calculant le délai d'exécution réel.
    Astuce :

    Vous pouvez utiliser la fonction datediff fournie dans le package pm-utils pour calculer la différence de temps entre deux fins d'événement.

Le délai d'exécution doit être calculé en millisecondes pour les instances où l' activité A précède l'activité B. Les millisecondes sont l'unité de temps utilisée pour définir les durées dans le modèle d'application. Étant donné que les délais d'exécution sont déjà regroupés par incident dans les tables de prétraitement, vous pouvez sélectionner n'importe quel enregistrement. Dans l'exemple ci-dessus, le min d'agrégation est utilisé. Le tableau du délai d'exécution, sélectionnant le délai d'exécution et un ID d'incident, peut être défini comme affiché dans le bloc de code suivant.

Cases_with_throughput_times as (
    select
        Event_log."Case_ID",
        case
            when min(Event_end_activity_A."Event_end_activity_A") <= min(Event_end_activity_B."Event_end_activity_B")
                then {{ pm_utils.datediff('millisecond',
                'min(Event_end_activity_A."Event_end_activity_A")',
                'min(Event_end_activity_B."Event_end_activity_B")') }}
        end as "Throughput_time_activity_A_to_activity_B"
    from Event_log
    left join Event_end_activity_A
        on Event_log."Case_ID" = Event_end_activity_A."Case_ID"
    left join Event_end_activity_B
        on Event_log."Case_ID" = Event_end_activity_B."Case_ID"
    group by Event_log."Case_ID)"
Cases_with_throughput_times as (
    select
        Event_log."Case_ID",
        case
            when min(Event_end_activity_A."Event_end_activity_A") <= min(Event_end_activity_B."Event_end_activity_B")
                then {{ pm_utils.datediff('millisecond',
                'min(Event_end_activity_A."Event_end_activity_A")',
                'min(Event_end_activity_B."Event_end_activity_B")') }}
        end as "Throughput_time_activity_A_to_activity_B"
    from Event_log
    left join Event_end_activity_A
        on Event_log."Case_ID" = Event_end_activity_A."Case_ID"
    left join Event_end_activity_B
        on Event_log."Case_ID" = Event_end_activity_B."Case_ID"
    group by Event_log."Case_ID)"
Calcul du délai d'exécution en jours hors week-ends

Vous pouvez utiliser la fonction date_from_timestamp fournie dans le package pm-utils pour calculer le nombre de jours entre deux activités. De plus, la fonction diff_weekdays vous permet de filtrer les jours du week-end.

L'exemple de code suivant montre comment calculer le nombre de jours de la semaine entre l'activité A et l'activité B.

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

Activity_A as (
    select
        Event_log."Case_ID",
        min({{ pm_utils.date_from_timestamp('Event_log."Event_end"') }}) as "Date_activity_A"
    from Event_log
    where Event_log."Activity" = 'Receive invoice'
    group by Event_log."Case_ID"
),

Activity_B as (
    select
        Event_log."Case_ID",
        min({{ pm_utils.date_from_timestamp('Event_log."Event_end"') }}) as "Date_activity_B"
    from Event_log
    where Event_log."Activity" = 'Pay invoice'
    group by Event_log."Case_ID"
),

Total_days_minus_weekends as (
    select
        Activity_A."Case_ID",
        Activity_A."Date_activity_A",
        Activity_B."Date_activity_B",
        {{ pm_utils.diff_weekdays('Activity_A."Date_activity_A"', 'Activity_B."Date_activity_B"') }}
    -- Only compute for cases where both dates are known.
    from Activity_A
    inner join Activity_B
        on Activity_A."Case_ID" = Activity_B."Case_ID"
)

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

Activity_A as (
    select
        Event_log."Case_ID",
        min({{ pm_utils.date_from_timestamp('Event_log."Event_end"') }}) as "Date_activity_A"
    from Event_log
    where Event_log."Activity" = 'Receive invoice'
    group by Event_log."Case_ID"
),

Activity_B as (
    select
        Event_log."Case_ID",
        min({{ pm_utils.date_from_timestamp('Event_log."Event_end"') }}) as "Date_activity_B"
    from Event_log
    where Event_log."Activity" = 'Pay invoice'
    group by Event_log."Case_ID"
),

Total_days_minus_weekends as (
    select
        Activity_A."Case_ID",
        Activity_A."Date_activity_A",
        Activity_B."Date_activity_B",
        {{ pm_utils.diff_weekdays('Activity_A."Date_activity_A"', 'Activity_B."Date_activity_B"') }}
    -- Only compute for cases where both dates are known.
    from Activity_A
    inner join Activity_B
        on Activity_A."Case_ID" = Activity_B."Case_ID"
)

select * from Total_days_minus_weekends
Calcul du délai d'exécution en jours hors jours fériés

Suivez ces étapes pour calculer le délai d'exécution en jours entre l'activité A et l'activité B, hors jours du week-end et les jours fériés.

1. Créez un fichier Holidays.csv pour définir les jours qui doivent être comptabilisés comme des jours fériés. Le fichier doit au moins contenir un enregistrement pour chaque vacances. Utilisez le format suivant :

Jour fériéDateJour de la semaine
Jour du nouvel an2024-01-01Oui (Yes)
Paques2024-03-31Non (No)
......

Les enregistrements du fichier Holidays.csv sont utilisés pour compter le nombre de jours qui doivent être exclus d'une plage de dates.

2. Chargez le fichier Holidays.csv en tant que fichier de référence dans le projet dbt . Pour des informations détaillées, consultez la documentation officielle de dbt sur les donnes jinja.

3. Calculez le délai d'exécution en jours excluant les week-ends à l'aide des fonctions date_from_timestamp et diff_weekdays fournies dans le package pm-utils comme décrit ci-dessus dans Calcul du délai d'exécution en jours hors week-ends.

4. Calculez le nombre d'enregistrements stockés dans le fichier vacances .csv qui tombe dans la plage de date donnée pour chaque incident. Le code suivant vous fournit un exemple.

Holidays_count as (
    select
        Total_days_minus_weekends."Case_ID",
        count(Holidays."Date") as "Number_of_holidays"
    from Total_days_minus_weekends
    left join Holidays
        on Holidays."Date" between Total_days_minus_weekends."Date_activity_A" and Total_days_minus_weekends."Date_activity_B"
    where Holidays."Weekday" = 'Yes'
    group by Total_days_minus_weekends."Case_ID"
)
Holidays_count as (
    select
        Total_days_minus_weekends."Case_ID",
        count(Holidays."Date") as "Number_of_holidays"
    from Total_days_minus_weekends
    left join Holidays
        on Holidays."Date" between Total_days_minus_weekends."Date_activity_A" and Total_days_minus_weekends."Date_activity_B"
    where Holidays."Weekday" = 'Yes'
    group by Total_days_minus_weekends."Case_ID"
)
Remarque :

Dans l'exemple ci-dessus, le filtre Weekday = 'Yes' est utilisé pour ne pas soustraire les jours fériés lorsque ceux-ci sont un samedi ou un dimanche. Ceci est déjà pris en charge dans la fonction diff_weekday .

5. Soustrayez le nombre calculé de vacances du nombre total de jours calculés pour chaque cas. Le code suivant vous fournit un exemple.

Total_days_minus_weekends_and_holidays as (
    select
        Total_days_minus_weekends."Case_ID",
        Total_days_minus_weekends."Number_of_days" - Holidays_count."Number_of_holidays" as "Number_of_days_between_dates"
    from Total_days_minus_weekends
    inner join Holidays_count
        on Total_days_minus_weekends."Case_ID" = Holidays_count."Case_ID"
)
Total_days_minus_weekends_and_holidays as (
    select
        Total_days_minus_weekends."Case_ID",
        Total_days_minus_weekends."Number_of_days" - Holidays_count."Number_of_holidays" as "Number_of_days_between_dates"
    from Total_days_minus_weekends
    inner join Holidays_count
        on Total_days_minus_weekends."Case_ID" = Holidays_count."Case_ID"
)

Rendre le délai d’exécution disponible en tant que champ de cas

Une fois la table de délai d'exécution créée, cette table doit être jointe à la table Incidents pour ajouter les données de délai d'exécution supplémentaires en tant qu'informations sur les incidents. Pour que le nouveau champ de délai d'exécution soit disponible dans les tableaux de bord, il est nécessaire de convertir le nouveau champ de délai d'exécution en un des champs de durée d'incident personnalisés.

Remplacez l'une des lignes de durée d'incident personnalisées dans la table Incidents qui ressemblent à ceci :

{{ pm_utils.optional(ref('Cases_base'), '"custom_case_duration_1"', 'integer') }} as "custom_case_duration_1",
{{ pm_utils.optional(ref('Cases_base'), '"custom_case_duration_1"', 'integer') }} as "custom_case_duration_1",

avec le temps de débit nouvellement créé :

Cases_with_throughput_times."Throughput_time_activity_A_to_activity_B" as "custom_case_duration_1",
Cases_with_throughput_times."Throughput_time_activity_A_to_activity_B" as "custom_case_duration_1",

Les mises à jour des transformations de la mesure de temps de débit personnalisée sont maintenant effectuées et peuvent être importées dans le modèle d'application.

Activation de la mesure du temps de débit dans les tableaux de bord de l'application de processus

Lorsque vous avez créé un délai d'exécution personnalisé dans vos transformations, il est disponible dans votre modèle d'application en tant que propriété de cas sous son alias. Vous pouvez personnaliser votre application de processus pour créer une métrique de délai d'exécution basée sur le délai d'exécution personnalisé que vous avez créé dans les transformations.

Remarque :

Par défaut, un nouveau champ de durée personnalisé est ajouté en tant que champ de type numérique. Assurez-vous de modifier le champ et de changer le Type du nouveau champ en durée. Reportez-vous à Gestionnaire de données.

  • Accédez au Gestionnaire de données (Data Manager) et créez une nouvelle mesure.
  • Sélectionnez le champ de durée personnalisé à utiliser pour le délai d'exécution, puis sélectionnez Moyenne ou toute autre agrégation souhaitée. Vous pouvez également renommer le champ de durée de l'incident personnalisé selon votre choix dans le Gestionnaire de données.
  • Modifiez l'application et placez la nouvelle mesure sur les graphiques où vous souhaitez la rendre disponible pour les utilisateurs professionnels.
  • Publiez les tableaux de bord pour que la métrique du délai d'exécution y soit disponible.
    Remarque :

    Dans les modèles d'application Purchase-to-Pay et Order-to-Cash, un calcul du délai d'exécution est déjà disponible dans Purchase_order_items_with_ Cloudp_times et Sales_order_items_with_grDrive_times, respectivement. Des délais d’exécution personnalisés peuvent y être ajoutés, puis être rendus disponibles sous forme de durée personnalisée dans Purchase_order_items ou Sales_order_items.

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour