Process Mining
2021.10
falso
Imagem de fundo do banner
Process Mining
Última atualização 2 de abr de 2024

Agregar expressões

Introdução

As expressões de registro aceitam apenas o valor do próprio registro como entrada. Em comparação, as expressões agregadas podem ser usadas para fazer cálculos sobre um conjunto específico de registros. Por exemplo, para calcular o valor 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 em SQL.

Agregar no nível raiz

Uma expressão agregada calcula um valor para cada valor exclusivo no nível agregado. 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. Faça todos os registros em Notas Fiscais.
  2. Para cada registro, escolha o valor do atributo da fonte de dados Valor .
  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 de escopo. Este valor é adicionado a cada registro dentro deste escopo. Portanto, o valor total é calculado uma vez e copiado 4 vezes para cada registro. O valor total por fornecedor é calculado 3 vezes. Como existem 2 registros com “Fornecedor A”, seu valor é definido para ambos os registros. Como existe 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.

Etapa

Ação

1

Clique com o botão direito do mouse em Root no painel Settings na caixa de diálogo Edit Expression Attribute .

2

Selecione Adicionar nível.

3

Clique em nível e selecione o atributo de fonte de dados no qual você deseja agrupar valores. Neste caso Fornecedor.

4

Clique com o botão direito do mouse no nível de atributo selecionado e selecione Definir como nível de expressão.

Nota: 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, portanto, p retorna um único nó, mas pode ter vários filhos, portanto, 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ção

Description

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. Filtre esses registros para que permaneçam apenas aqueles que possuem um tipo de Fornecedor de Maquinário .
  3. Para cada registro filtrado, retorne o valor do atributo fonte de dados 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 é configurado como o nível da expressão. Isso significa que o escopo da expressão é calcular um valor para todos os valores exclusivos de Case owner. Para cada valor do proprietário do caso , records é a lista de registros pertencentes a esse proprietário do caso.

A expressão retorna um valor para cada Proprietário de Caso, que significa o número de Fornecedores únicos com o tipo Maquinário.

Outras opções de filtro

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



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

Opção

Description

Ativar expressão de filtro

Permite inserir uma expressão como um filtro.

Ativar controles de filtro

Abre 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ção

Permite 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 final

Permite 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 serão classificados 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 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.

Was this page helpful?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Logotipo branco da Uipath
Confiança e segurança
© 2005-2024 UiPath. All rights reserved.