- Notas de versão
- Antes de começar
- Introdução
- Integrações
- Como trabalhar com aplicativos de processo
- Como trabalhar com painéis e gráficos
- Como trabalhar com gráficos de processo
- Trabalhando com Descubra modelos de processo e Importar modelos BPMN
- Showing or hiding the menu
- Informações de contexto
- Exportar
- Filtros
- Envio de ideias de automação ao UiPath® Automation Hub
- Tags
- Datas de conclusão
- Comparar
- Verificação de conformidade
- Análise de causa raiz
- Simulação de Potencial de Automação
- Iniciar um projeto do Task Mining a partir do Process Mining
- Triggering an automation from a process app
- Exibição de dados do processo
- Criação de aplicativos
- Carregamento de dados
- Transforming data
- Structure of transformations
- Tips for writing SQL
- Exportando e importando transformações
- Visualização dos logs de execução de dados
- Mesclando logs de evento
- Configuração de tags
- Configuração de datas de vencimento
- Configuração de campos para Potencial de automação
- Disponibilização das transformações em painéis
- Modelos de dados
- Personalização de aplicativos de processo
- Publicação de aplicativos de processos
- Modelos de apps
- Notificações
- Recursos adicionais

Process Mining
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.
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.
Due_dates_raw.csv
. Confira Campos de entrada de Processo personalizado.
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.
Case_ID
, Due_date
, Actual_date
e 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.
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_date | Texto |
O nome da data de conclusão. |
Due_date_type | Texto |
O tipo de data de vencimento. |
Fixed_costs |
Booleano |
Uma indicação se os custos são fixos ou baseados no tempo. |
|
Flutuar |
Custos fixos: A quantidade de custos.
Custos variáveis: A quantidade de custos por Time e Type_type.
|
|
Número inteiro |
Um número que indica a quantidade de tempo no caso de custos baseados em tempo. |
Time_type | Texto | Tipo de período de tempo para cálculos de custos. Pode ser qualquer um dos seguintes valores: day, hour, minute, second, milisecond. |
|
Texto/Integer |
O ID do Caso para o qual a data de vencimento está relacionada. |
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 .
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_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
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_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
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_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
- Adição de lógica de negócios nas transformações
- Fornecimento de entrada de configuração de data de vencimento em Transformações de dados
- Providing due date configuration input using dbt seeds
- Exemplos de SQL para configurar datas de vencimento
- Atividade X realizada antes da data Y
- Atividade X realizada dentro de 5 dias após a atividade Y