UiPath Documentation
process-mining
2021.10
true
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.

Guia do usuário do Process Mining

Agregar expressões

Introdução

As expressões de registro levam apenas o valor do próprio registro como entrada. Em comparação, as expressões de agregação podem ser usadas para fazer cálculos sobre um conjunto específico de registros. Por exemplo, para calcular a Quantidade total de todos os registros ou o número total de registros no conjunto de dados. Uma expressão agregada pode ser comparada à função GROUP BY no SQL.

Agregar no nível raiz

Uma expressão de agregação calcula um valor para cada valor exclusivo no nível de agregação. Por padrão, isso está no nível Raiz , ou seja, um valor para toda a tabela.

Abaixo está um exemplo de uma expressão agregada para calcular a soma de todos os valores no conjunto de dados de faturas.

A expressão agregada sum(records.amount) é avaliada conforme descrito abaixo:

  1. Obtenha todos os registros em Faturas.
  2. Para cada registro, escolha o valor do atributo Datasource de quantidade .
  3. Retorne a soma de todos esses valores.

A expressão calcula um único valor exclusivo, mas esse valor é adicionado a cada registro no conjunto de dados. Abaixo está um exemplo de um conjunto de dados contendo 4 linhas.

Agregar em subnível

Em vez de calcular um agregado em todo o conjunto de dados, você também pode calcular um valor em grupos de registros.

Abaixo está um exemplo de uma expressão agregada para calcular o valor total por fornecedor.

Um nível de agregação é incluído e o escopo da expressão é definido para esse novo nível. Abaixo está um conjunto de dados de exemplo.

A expressão agregada é calculada uma vez para cada valor individual dentro do nível do escopo. Esse valor é adicionado a cada registro dentro desse escopo. Portanto, o valor total é calculado uma vez e copiado quatro vezes para cada registro. O valor total por fornecedor é calculado três vezes. Como há 2 registros com "Fornecedor A", seu valor é definido para ambos os registros. Como há apenas um registro para "Fornecedor B" e "Fornecedor C", o valor é atribuído ao registro correspondente.

Definindo um subnível

Siga estas etapas para definir uma expressão agregada no subnível.

EtapaAção
1Clique com o botão direito do mouse em Raiz no painel Configurações na caixa de diálogo Editar Atributo de Expressão .
2Selecione Adicionar nível.
3Clique no nível ... e selecione o atributo Datasource no qual você deseja agrupar valores. Neste caso, Fornecedor.
4Clique com o botão direito do mouse no nível do atributo selecionado e selecione Definir como nível de expressão.
Observação:

O nível selecionado é indicado por uma seta.

Estrutura da árvore

Em uma expressão de agregação, também é possível acessar outros níveis além do nível de agregação selecionado. Podemos usar p (para pai) e c (para filho) para percorrer a estrutura da árvore para cima e para baixo.

Observação:

Um nó tem um pai, então p retorna um único nó, mas pode ter vários filhos, então c retorna uma lista de nós.

Nível de agregação pai

Abaixo encontra=se um exemplo de uma expressão agregada baseada em um nível pai.

A expressão percentage(sum(records.Amount) / sum(p.records.Amount) * 100) calcula uma porcentagem para cada fornecedor:

  1. a soma dos valores associados a um fornecedor é dividida pela soma de todos os valores.
  2. o escopo é deslocado para o nível pai, ou seja, raiz.
  3. o resultado é multiplicado por 100 para transformá-lo em uma porcentagem.

Nível de agregação filho

Abaixo encontra-se um exemplo de uma expressão agregada baseada em um nível filho.

A expressão count(c) retorna uma lista de todos os fornecedores por tipo de fornecedor. Como cada filho é um fornecedor, o número de filhos c pode ser contado.

Criação de verificações condicionais

Para expressões de registro, a função if() pode ser usada para verificações condicionais. No entanto, esta função só pode ser aplicada por registro. Não é possível verificar uma condição dentro de um grupo de registros usando uma instrução if. A estrutura de árvore pode ser usada para percorrer (partes específicas de) seus dados, por exemplo, para expressar propriedades.

As funções a seguir podem ser usadas para esse tipo de cálculo.

FunçãoDescription
exists(Scope, Condition)Retorna true se pelo menos uma Condição no escopo for avaliada como true.
forall(Scope, Condition)Retorna true se Todas as condições no escopo avaliar como true.

Veja a ilustração abaixo para um exemplo.

Por exemplo a expressão

exists(records, find(lower(Supplier), 'consulting')

verifica para cada tipo de fornecedor se há faturas de um fornecedor com 'consultoria' como parte do nome.

Observação:

lower é usado para converter os nomes dos fornecedores em letras minúsculas e tornar a verificação insensível.

Filtragem

Ao agregar dados, os cálculos às vezes são feitos dependendo de uma parte específica de seus dados. Nesse caso, a função filter() pode ser usada.

Abaixo está um exemplo de uma expressão agregada com base em um filtro.

count(
    unique(
        filter(
            records,
            supplier_type = "Machinery"
        ).Supplier
    )
)
count(
    unique(
        filter(
            records,
            supplier_type = "Machinery"
        ).Supplier
    )
)

De dentro para fora, a expressão é construída da seguinte maneira:

  1. Recupere todos os registros dentro do escopo atual.

  2. Filtrar esses registros para que apenas os que tenham um tipo de Fornecedor de Máquina permaneçam.

  3. Para cada registro filtrado, retorne o valor do atributo Datasource do fornecedor .

  4. Remova todos os valores duplicados da lista, para que tenhamos apenas um item por valor exclusivo.

  5. Conte o número de itens restantes na lista.

No exemplo, o nível do proprietário do caso é definido como o nível da expressão. Isso significa que o escopo da expressão é calcular um valor para todos os valores exclusivos do Proprietário do caso. Para cada valor de Proprietário de caso , records é a lista de registros pertencentes a esse Proprietário de caso.

A expressão retorna um valor para cada Proprietário de caso, que significa o número de Fornecedores exclusivos com o tipo Máquina.

Outras opções de filtro

O menu no painel Configurações contém opções para adicionar filtros para agregados.

Abaixo encontra-se uma descrição das opções do menu Configurações.

OpçãoDescription
Ativar expressão de filtroPermite inserir uma expressão como um filtro.
Ativar controles de filtroAbre a caixa de diálogo Editar controles de filtro, onde você pode selecionar um controle de filtro disponível na lista.
Ativar período de comparaçãoPermite adicionar um período de comparação ou uma expressão para definir um número de períodos anteriores a serem filtrados.
Aplicar filtros de usuário finalPermite aplicar filtros de usuário final disponíveis.
Observação:

Quando você usa as opções de filtro do menu Configurações , o resultado do filtro é exibido no painel Valor . Veja a ilustração abaixo para um exemplo.

Ordenação

A classificação pode ser usada para determinar o valor mais alto ou mais baixo ou para processar registros em uma determinada ordem.

Quando precisar do primeiro ou último registro para sua expressão, você pode classificar em um nível das seguintes maneiras:

  • A..Z e Z..A classificarão por valor.
    • Em strings, isso classificará em ordem alfabética.
    • Em formatos numéricos (duplo, inteiro), isso classificará um valor numérico.
    • Em formatos relacionados a hora (datahora, data), ela será classificada em ordem cronológica.
  • 0..9 e 9..0 classificarão de acordo com o número de registros no grupo.
  • Expressão permite que você preencha uma expressão, que será classificada por valor conforme descrito acima.

Para cada uma dessas opções de classificação, é possível definir a ordem como crescente ou decrescente.

Veja a ilustração abaixo para um exemplo de classificação onde o primeiro usuário trabalhando em cada caso é determinado.

A expressão agregada first(records.User) determina o primeiro User de cada Case ID. Event end é classificado em ordem crescente.

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades