process-mining
latest
false
Importante :
A tradução automática foi aplicada parcialmente neste conteúdo. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.
UiPath logo, featuring letters U and I in white

Process Mining

Última atualização 2 de abr de 2025

Configuração de datas de vencimento

Se você quiser usar o painel de Datas de conclusão para analisar datas de conclusão, é necessário definir essas datas para seu modelo de aplicativo.

Se houver datas de conclusão prontas para uso disponíveis para seu modelo de aplicativo, essas datas de conclusão serão exibidas no painel Datas de conclusão. Na documentação do seu modelo de aplicativo específico, você encontrará uma visão geral das datas de vencimento disponíveis. A página Modelos de aplicativos contém links para a documentação de todos os modelos de aplicativos disponíveis.

Se não houver dados disponíveis no painel de datas de conclusão, você precisará configurar suas próprias datas de conclusão no arquivo models\5_business_logic\Due_dates_base.sql usando transformações de dados. Aqui você também pode configurar quaisquer datas de vencimento padrão para suas necessidades de negócios.
Para Processo personalizado, você também pode carregar datas de vencimento usando o arquivo Due_dates_raw.csv . Confira Campos de entrada de Processo personalizado.

Adição de lógica de negócios nas transformações

Na última etapa de transformação, a lógica de negócios é adicionada conforme necessário para a análise de dados.

Cada registro na tabela de datas de conclusão representa uma data de conclusão para um determinado objeto. Alguns exemplos de datas de conclusão são:

  • um prazo de pagamento para um objeto de pagamento.
  • um prazo de aprovação para a requisição de compra.
Os campos obrigatórios para esta tabela são Case_ID, Due_date, Actual_datee Expected_date.


Nem todos os eventos terão uma data de vencimento e alguns eventos podem ter várias datas de vencimento.

Consulte Editor de transformações de dados para obter mais informações.

Fornecimento de entrada de configuração de data de vencimento em Transformações de dados

Você pode fornecer dados de entrada adicionais a serem usados para cálculos no painel Datas de vencimento usando instruções SQL em Transformações de dados. Para todas as datas de vencimento, você pode configurar os seguintes campos.

Name

Tipo

Description

Due_dateTexto

O nome da data de conclusão.

Due_date_typeTexto

O tipo de data de vencimento.

Fixed_costs

Booleano

Uma indicação se os custos são fixos ou baseados no tempo.

Cost

Flutuar

Custos fixos: A quantidade de custos.
Custos variáveis: A quantidade de custos por Time e Type_type.

Time

Número inteiro

Um número que indica a quantidade de tempo no caso de custos baseados em tempo.

Time_typeTextoTipo de período de tempo para cálculos de custos. Pode ser qualquer um dos seguintes valores: day, hour, minute, second, milisecond.

Case_ID

Texto/Integer

O ID do Caso para o qual a data de vencimento está relacionada.

Confira Transformações.

Providing due date configuration input using dbt seeds

Para aplicativos de processo que ainda contêm o arquivo Due_dates_configuration_raw.csv sementes na pasta sementes\ das transformações de dados, você pode usar esse arquivo para fornecer dados de entrada adicionais a serem usados para os cálculos no painel Datas de vencimento .

A ilustração a seguir mostra um exemplo de um arquivo de sementes.
Exemplo de arquivo de semente
Confira Transformações.

Exemplos de SQL para configurar datas de vencimento

Esta página contém alguns exemplos de SQL que você pode usar para configurar datas de vencimento usando transformações.
Atenção:
Os exemplos de SQL são baseados em modelos de log de eventos e aplicativos de processos personalizados e usam Casos que têm um Case_ID. Se você quiser usar os exemplos de SQL para definir Datas de vencimento para modelos de aplicativos Purchase-to-Pay ou modelos de aplicativos Order-to-Cash , certifique-se de usar o objeto apropriado e o object_ID interno relacionado. Para Purchase-to-Pay, você pode usar o log de eventos Purchase_order_item_end_to_end_events , o objeto Purchase_order_items e Purchase_order_item_ID_internal como Case_ID. Para Order-to-Cash, você pode usar o log de eventos Sales_order_item_end_to_end_events , o objeto Sales_order_items e Sales_order_item_ID_internal como Case_ID.

O bloco de código a seguir mostra um exemplo de consulta SQL para definir uma data de vencimento.

 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"

O bloco de código a seguir mostra um exemplo de consulta SQL para configurar datas de vencimento.

 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

Atividade X realizada antes da data Y

Esse código SQL identifica casos em que a última ocorrência da atividade 'X' foi realizada antes da data '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

Atividade X realizada dentro de 5 dias após a atividade Y

Esse código SQL identifica casos para os quais a última ocorrência da atividade 'X' aconteceu dentro de 5 dias após a última ocorrência da atividade '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

Esta página foi útil?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Uipath Logo White