process-mining
latest
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

Process Mining

Dernière mise à jour 19 mars 2025

Configuration des dates d'échéance

Si vous souhaitez utiliser le tableau de bord Dates d'échéance pour analyser les dates d'échéance, les dates d'échéance doivent être définies pour votre modèle d'application.

Si des dates d'échéance prêtes à l'emploi sont disponibles pour votre modèle d'application, ces dates d'échéance seront affichées dans le tableau de bord Dates d'échéance. Dans la documentation de votre modèle d'application spécifique, vous trouverez un aperçu des dates d'échéance disponibles. La page Modèles d'applications ( App Templates ) contient des liens vers la documentation pour tous les modèles d'application disponibles.

Si aucune donnée n'est disponible dans le tableau de bord des dates d'échéance, vous devez configurer vos propres dates d'échéance dans le fichier models\5_business_logic\Due_dates_base.sql à l'aide de transformations de données. Ici, vous pouvez également configurer toutes les dates d'échéance par défaut en fonction des besoins de votre entreprise.
Pour le processus personnalisé, vous pouvez également télécharger des dates d'échéance à l'aide du fichier Due_dates_raw.csv . Consultez Champs d'entrée de processus personnalisés.

Ajout d'une logique métier dans les transformations

Dans la dernière étape de la transformation, une logique métier est ajoutée au besoin pour l'analyse des données.

Chaque enregistrement de la table du journal des échéances représente une échéance pour un certain objet. Exemples de dates d'échéance :

  • une échéance de paiement pour un objet de paiement.
  • un délai d’approbation pour la demande d’achat.
Les champs obligatoires de cette table sont les champs Case_ID, Due_date, Actual_date et Expected_date.


Tous les événements n'auront pas tous une date d'échéance, et certains événements pourront avoir plusieurs dates d'échéance.

Reportez-vous à l'éditeur de transformations de données pour plus d'informations.

Fourniture d'une entrée de configuration de date d'échéance dans les transformations de données

Vous pouvez fournir des données d'entrée supplémentaires à utiliser pour les calculs dans le tableau de bord Dates d'échéance à l'aide d'instructions SQL dans Transformations de données (Data Transformations). Pour toutes les dates d'échéance, vous pouvez configurer les champs suivants.

Nom

Saisie de texte

Description

Due_dateTexte

Le nom de la date d'échéance.

Due_date_typeTexte

Le type Date d'échéance.

Fixed_costs

Booléen

Une indication si les coûts sont fixes ou basés sur le temps.

Cost

Mode flottant

Coûts fixes : le montant des coûts.
Coûts variables : le montant des coûts par Heure et Type_type.

Time

Entier

Un nombre indiquant la durée en cas de coûts basés sur le temps.

Time_typeTexteType de période pour les calculs de coûts. Il peut s'agir de l'une des valeurs suivantes : day, hour, minute, second, millisecond.

Case_ID

Texte/Entier

L'ID de l'incident auquel la date d'échéance est liée.

Consultez Transformations.

Providing due date configuration input using dbt seeds

Pour les applications de processus qui contiennent toujours le fichier de référence Due_dates_configuration_raw.csv dans le dossier insights\ des transformations de données, vous pouvez utiliser ce fichier pour fournir des données d'entrée supplémentaires à utiliser pour les calculs du tableau de bord Dates d'échéance .

L'illustration suivante montre un exemple de fichier de référence.
Exemple de fichier de référence
Consultez Transformations.

Exemples SQL pour la configuration des dates d'échéance

Cette page contient quelques exemples SQL que vous pouvez utiliser pour configurer les dates d'échéance à l'aide de transformations.
Attention :
Les exemples SQL sont basés sur le journal des événements et les modèles d'application de processus personnalisé , et utilisent des cas qui ont une Case_ID. Si vous souhaitez utiliser les exemples SQL pour définir les dates d'échéance des modèles d'application Purchase-to-Pay ou des modèles d'application Order-to-Cash , assurez-vous d'utiliser l'objet approprié et l'object_ID interne associé. Pour Purchase-to-Pay, vous pouvez utiliser le journal des événements Purchase_order_item_end_to_end_events , l'objet Purchase_order_items et le Purchase_order_item_ID_internal en tant que Case_ID. Pour Order-to-Cash, vous pouvez utiliser le journal des événements Sales_order_item_end_to_end_events , l'objet Sales_order_items et le Sales_order_item_ID_internal en tant que Case_ID.

Le bloc de code suivant montre un exemple de requête SQL pour définir une date d'échéance.

 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"

Le bloc de code suivant montre un exemple de requête SQL pour configurer les dates d'échéance.

 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

Activité X effectuée avant la date Y

Ce code SQL identifie les cas où la dernière occurrence de l'activité 'X' a été effectuée avant la date 'Y'.

 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

Activité X effectuée dans les 5 jours après l’activité Y

Ce code SQL identifie les cas pour lesquels la dernière occurrence de l'activité « X » s'est produite dans les 5 jours suivant la dernière occurrence de l'activité « Y ».

 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

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

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Uipath Logo White