UiPath Documentation
process-mining
2023.10
false
Importante :
Este contenido se ha localizado parcialmente a partir de un sistema de traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Guía del usuario de Process Mining

Fechas límite

Introducción

El panel Fechas de vencimiento muestra información sobre los objetos que cumplen o no los plazos y los costes relacionados. Las fechas límite pueden predefinirse para establecer una etapa significativa o una fecha límite de actividad en los procesos. El panel Fechas de vencimiento puede utilizarse para analizar varios aspectos de las fechas de vencimiento en los procesos. Con este panel, se pueden examinar las fechas de vencimiento predefinidas en el proceso, como un plazo de pago o un SLA que debe cumplirse a tiempo.

Las fechas límite pueden tener costes asociados a las fechas límite vencidas.

Consulta Etiquetas listas para usar y Fechas de vencimiento para obtener más información sobre las fechas de vencimiento listas para usar para las plantillas de aplicación Purchase-to-Pay y las plantillas de aplicación Order-to-Cash.

Consulta Configurar fechas de vencimiento para obtener más información sobre cómo configurar las fechas de vencimiento en las transformaciones de datos.

Configurar fechas de vencimiento

Si deseas utilizar el panel Fechas de vencimiento para analizar las fechas de vencimiento, las fechas de vencimiento deben definirse para tu plantilla de aplicación.

Si hay fechas de vencimiento listas para usar disponibles para tu plantilla de aplicación, estas fechas de vencimiento se mostrarán en el panel Fechas de vencimiento . En la documentación de tu plantilla de aplicación específica encontrarás un resumen de las fechas de vencimiento disponibles. La página Plantillas de aplicación contiene enlaces a la documentación de todas las plantillas de aplicación disponibles.

Si no hay datos disponibles en el panel de fechas límite, deberá configurar sus propias fechas límite en el archivo models\5_business_logic\Due_dates_base.sql mediante transformaciones de datos. Aquí también puede configurar cualquier fecha límite predeterminada según las necesidades de su negocio.

Para el proceso personalizado, también puedes cargar las fechas de vencimiento utilizando el archivo Due_dates_raw.csv . Consulta Campos de entrada de proceso personalizados.

Agregar lógica empresarial en transformaciones

En el último paso de transformación, se agrega lógica empresarial según sea necesario para el análisis de datos.

Cada registro de la tabla de fechas de vencimiento representa una fecha de vencimiento para un objeto determinado. Ejemplos de fechas de vencimiento son:

  • un plazo de pago para un objeto de pago.
  • una fecha límite de aprobación para la solicitud de compra.

Los campos obligatorios para esta tabla son Event_ID, Due_date, Actual_datey Expected_date.

No todos los eventos tendrán una fecha límite y algunos eventos pueden tener varias fechas límite.

Consulta Transformaciones de datos para obtener más información.

Proporcionar entrada de configuración de fecha de vencimiento utilizando semillas de dbt

Puedes proporcionar datos de entrada adicionales que se utilizarán para los cálculos en el panel Fechas de vencimiento utilizando un archivo de inicialización dbt . La carpeta de semillas de las transformaciones de la aplicación para la plantilla de aplicación contiene un archivo Due_dates_configuration_raw.csv. Para todas las fechas de vencimiento, puedes proporcionar los siguientes campos.

NombreTipoDescripción
Fecha_vencimientoTextoEl nombre de la fecha de vencimiento.
Due_date_typeTextoEl tipo de Fecha límite.
Fixed_costsBooleanoUna indicación de si los costes son fijos o se basan en el tiempo.
CostePresentarCostes fijos: el importe de los costes. Costes variables: el importe de los costes por Tiempo y Tipo_tipo.
HoraEnteroUn número que indica la cantidad de tiempo en caso de costes basados en tiempo.
Time_typeTextoTipo de período de tiempo para los cálculos de costes. Puede ser cualquiera de los siguientes valores: día, hora, minuto, segundo, milisegundo.

La siguiente ilustración muestra un archivo de semillas de ejemplo.

Ejemplos de SQL para configurar fechas de vencimiento

Esta página contiene algunos ejemplos de SQL que puedes utilizar para configurar las fechas de vencimiento utilizando transformaciones.

Nota:

Los ejemplos de SQL se basan en las plantillas de aplicación Registro de eventos y Proceso personalizado , y utilizan Casos que tienen un Case_ID. Si deseas utilizar los ejemplos de SQL para definir las fechas de vencimiento para las plantillas de aplicación Purchase-to-Pay o las plantillas de aplicación Order-to-Cash , asegúrate de utilizar el objeto adecuado y el object_ID interno relacionado. Para Purchase-to-Pay, puedes utilizar el registro de eventos Purchase_order_item_end_to_end_events , el objeto Purchase_order_items y Purchase_order_item_ID_internal como Case_ID. Para Order-to-Cash, puedes utilizar el registro de eventos Sales_order_item_end_to_end_events , el objeto Sales_order_items y Sales_order_item_ID_internal como Case_ID.

El siguiente bloque de código muestra un ejemplo de consulta SQL para definir una fecha de vencimiento.

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"

El siguiente bloque de código muestra un ejemplo de consulta SQL para configurar las fechas de vencimiento.

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_base
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_base
Actividad X realizada antes de la fecha Y

Este código SQL identifica los casos en los que la última aparición de la actividad 'X' se realizó antes de la fecha '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_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_Y
Actividad X realizada en un plazo de 5 días después de la actividad Y

Este código SQL identifica los casos en los que la última ocurrencia de la actividad 'X' se produjo en un plazo de 5 días después de la última ocurrencia de la actividad '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_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_Y

Analizar fechas de vencimiento

Panel de fechas límite

El panel Fechas de vencimiento te permite analizar las fechas de vencimiento que se producen en el proceso.

Sigue estos pasos para mostrar el panel Fechas de vencimiento .

  1. Selecciona Fechas de vencimiento en el menú de la izquierda del panel.

Se muestra el panel de Fechas de vencimiento.

La siguiente tabla describe los gráficos disponibles en el panel Fechas de vencimiento .

ChartDescripciónMétricas disponibles
Detalles de fechas límiteGráfico de barras que muestra los detalles relacionados con las fechas límite en función de la métrica seleccionada.Número de objetos Tiempo total de retraso Tiempo medio de retraso Porcentaje de tiempo Coste total* Coste medio*
Historia avanzadaUn gráfico de historial que muestra la información de la fecha límite para el período seleccionado según la métrica seleccionada.Tiempo total de retraso Tiempo medio de retraso Porcentaje de tiempo Coste total* Coste medio*
Distribución de diferenciaUn gráfico de distribución que muestra el número de fechas de vencimiento relacionadas con la cantidad de días de retraso.
  • Coste total atrasado y Coste medio atrasado solo están disponibles si Coste_fijo y Coste están configurados para las fechas de vencimiento.
Overview tab

Los gráficos de la pestaña Resumen resaltan las fechas de vencimiento que se definen para tu proceso. Para cada fecha de vencimiento, se muestra el número de casos (casos tardíos) y el tiempo total de retraso del período seleccionado.

Details tab

La pestaña Detalles contiene varios gráficos que te permiten analizar las actividades atrasadas con más detalle. Consulta la siguiente ilustración.

A continuación se muestra un resumen de los gráficos disponibles en el panel Fechas de vencimiento .

ChartDescripciónMétricas disponibles
Ahorros potencialesUn gráfico circular que muestra el posible ahorro de tiempo para las fechas límite definidas en tu conjunto de datos.Tiempo total de retraso Tiempo medio de retraso Coste total* Coste medio*
Historia avanzadaUn gráfico de historial que muestra la información de la fecha límite para el período seleccionado según la métrica seleccionada.Tiempo total de retraso Tiempo medio de retraso Porcentaje de tiempo Coste total* Coste medio*
Detalles de fechas límiteGráfico de barras que muestra los detalles relacionados con las fechas límite en función de la métrica seleccionada.Número de casos Tiempo total de retraso Tiempo medio de retraso Porcentaje de tiempo Coste total* Coste medio*
Distribución de diferenciaUn gráfico de distribución que muestra el número de fechas de vencimiento relacionadas con la cantidad de días de retraso.
  • Coste total atrasado y Coste medio atrasado solo están disponibles si Coste_fijo y Coste se proporcionan mediante el archivo de semillas Due_dates_configuration_raw.csv.
Detalles de fechas límite

El gráfico Detalles de fechas de vencimiento te permite ver información detallada de las fechas de vencimiento en función de diferentes métricas y campos. Puedes seleccionar los siguientes campos.

Campo

Descripción

Fecha límite El nombre de la fecha de vencimiento.
Tipo de fecha límite * El tipo de fecha límite.
Coste * Los costes relacionados con la fecha límite.
Fecha esperada La fecha prevista para la ejecución de la actividad.
Fecha real La fecha en que realmente se ejecuta la actividad.
On time Actividades Puntuales o Retrasadas .

Nota: Las actividades tardías son actividades para las que la Fecha real es posterior a la Fecha prevista .

Diferencia La cantidad de tiempo entre la fecha prevista y la fecha real .
  • Tipo de fecha de vencimiento y Coste solo están disponibles si estos campos están configurados para Fechas de vencimiento.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado