- Notas relacionadas
- Antes de empezar
- Primeros pasos
- Integraciones
- Trabajar con apps de proceso
- Trabajar con paneles y diagramas
- Trabajar con diagramas de proceso
- Trabajar con modelos de proceso Descubrir e Importar modelos BPMN
- Showing or hiding the menu
- Información del contexto
- Exportar
- Filtros
- Envío de ideas de automatización a UiPath® Automation Hub
- Etiquetas
- Fechas límite
- Comparar
- Comprobación de conformidad
- Análisis de causa raíz
- Simular el potencial de automatización
- Iniciar un proyecto de Task Mining desde Process Mining
- Triggering an automation from a process app
- Ver datos del proceso
- Creación de aplicaciones
- Cargar datos
- Transforming data
- Structure of transformations
- Tips for writing SQL
- Exportar e importar transformaciones
- Ver los registros de ejecución de datos
- Combinar registros de eventos
- Configuración de etiquetas
- Configurar fechas de vencimiento
- Configurar campos para el potencial de automatización
- Hacer que las transformaciones estén disponibles en los paneles
- Modelos de datos
- Personalizar apps de proceso
- Publicar aplicaciones de proceso
- Plantillas de la aplicación
- Notificaciones
- Recursos adicionales

Process Mining
Configurar fechas de vencimiento
Si quieres utilizar el panel Fechas límite para analizar las fechas límite, debes definir las fechas límite para la plantilla de tu 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.
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.
Due_dates_raw.csv
. Consulta Campos de entrada de proceso personalizados.
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.
Case_ID
, Due_date
, Actual_date
y Expected_date
.
No todos los eventos tendrán una fecha límite y algunos eventos pueden tener varias fechas límite.
Consulta Editor de transformaciones de datos para obtener más información.
Puedes proporcionar datos de entrada adicionales que se utilizarán para los cálculos en el panel Fechas de vencimiento utilizando declaraciones SQL en Transformaciones de datos. Para todas las fechas de vencimiento, puedes configurar los siguientes campos.
Nombre |
Tipo |
Descripción |
Due_date | Texto |
El nombre de la fecha de vencimiento. |
Due_date_type | Texto |
El tipo de Fecha límite. |
Fixed_costs |
Booleano |
Una indicación de si los costes son fijos o se basan en el tiempo. |
|
Presentar |
Costes fijos: la cantidad de los costes.
Costes variables: la cantidad de costes por Tiempo y Type_type.
|
|
Entero |
Un número que indica la cantidad de tiempo en caso de costes basados en tiempo. |
Time_type | Texto | Tipo de período de tiempo para los cálculos de costes. Este puede ser cualquiera de los siguientes valores: día, hora, minutos, segundos, milisegundos. |
|
Texto/Entero |
El ID del caso con el que está relacionada la fecha de vencimiento. |
Para las aplicaciones de proceso que aún contienen el archivo de semillas Due_dates_configuration_raw.csv en la carpeta Seeds\ de las transformaciones de datos, puedes utilizar este archivo para proporcionar datos de entrada adicionales que se utilizarán para los cálculos en el panel Fechas de vencimiento .
Case_ID
. Si quieres 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 el 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
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
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
- Agregar lógica empresarial en transformaciones
- Proporcionar entrada de configuración de fecha de vencimiento en Transformaciones de datos
- Providing due date configuration input using dbt seeds
- Ejemplos de SQL para configurar fechas de vencimiento
- Actividad X realizada antes de la fecha Y
- Actividad X realizada en un plazo de 5 días después de la actividad Y