Process Mining
2021.10
False
Imagen de fondo del banner
Process Mining
Última actualización 2 de abr. de 2024

Expresiones agregadas

Introducción

Las expresiones de registro toman solo el valor del propio registro como entrada. En comparación, las expresiones agregadas se pueden usar para hacer cálculos sobre un conjunto específico de registros. Por ejemplo, para calcular la Cantidad total de todos los registros o el número total de registros del conjunto de datos. Una expresión agregada se puede comparar con la función GROUP BY en SQL.

Agregado en el nivel raíz

Una expresión agregada calcula un valor para cada valor único a nivel agregado. Por defecto, se encuentra en el nivel Raíz , es decir, un valor para toda la tabla.



A continuación se muestra un ejemplo de una expresión agregada para calcular la suma de todos los importes en el conjunto de datos de Facturas.



La expresión agregada sum(records.amount) se evalúa como se describe a continuación:
  1. Llevar todos los registros de Facturas.
  2. Para cada registro, elige el valor del atributo de origen de datos Amount .
  3. Devuelve la suma de todas estas cantidades.

La expresión calcula un valor único, pero este valor se agrega a cada registro del conjunto de datos. A continuación se muestra un ejemplo de un conjunto de datos que contiene 4 filas.



Agregado en subnivel

En lugar de calcular un agregado sobre todo el conjunto de datos, también puede calcular un valor sobre grupos de registros.



A continuación se muestra un ejemplo de expresión agregada para calcular el importe total por proveedor.



Se agrega un nivel de agregación y el ámbito de la expresión se establece en este nuevo nivel. A continuación se muestra un conjunto de datos de ejemplo.



La expresión agregada se calcula una vez para cada valor individual dentro del nivel de ámbito. Este valor se añade a cada registro dentro de este ámbito. Por lo tanto, la cantidad total se calcula una vez y luego se copia 4 veces en cada registro. La cantidad total por proveedor se calcula 3 veces. Dado que hay 2 registros con el "Proveedor A", su valor se establece en ambos registros. Como solo hay un registro para "Proveedor B" y "Proveedor C", el valor se asigna al registro correspondiente.

Definir un subnivel

Siga estos pasos para definir una expresión agregada en el subnivel.

Paso

Acción

1

Haz clic con el botón derecho del ratón en Raíz en el panel Configuración del cuadro de diálogo Editar atributo de expresión .

2

Selecciona Añadir nivel.

3

Haga clic en nivel y seleccione el atributo de la fuente de datos en el que desea agrupar los valores. En este caso Proveedor.

4

Haz clic con el botón derecho en el nivel de atributo seleccionado y selecciona Establecer como nivel de expresión.

Nota: el nivel seleccionado se indica con una flecha.

Estructura de árbol

En una expresión agregada, también es posible acceder a otros niveles además del nivel de agregación seleccionado. Podemos usar p (para el elemento principal) y c (para el elemento secundario) para recorrer la estructura de árbol.
Nota: un nodo tiene un elemento principal, por lo que p devuelve un solo nodo, pero puede tener varios elementos secundarios, por lo que c devuelve una lista de nodos.

Nivel de agregación principal



A continuación, se muestra un ejemplo de expresión agregada basada en un nivel principal.



La expresión percentage(sum(records.Amount) / sum(p.records.Amount) * 100) calcula un porcentaje para cada proveedor:
  1. la suma de los importes asociados con un proveedor se divide por la suma de todos los importes.
  2. el ámbito se desplaza al nivel principal, es decir, raíz.
  3. el resultado se multiplica por 100 para convertirlo en porcentaje.

Nivel de agregación secundario



A continuación, se muestra un ejemplo de una expresión agregada basada en un nivel secundario.



La expresión count(c) devuelve una lista de todos los proveedores por tipode proveedor. Dado que cada elemento secundario es un proveedor, se puede contar el número de elementos secundarios c .

Crear comprobaciones condicionales

Para expresiones de registro, la función if() se puede utilizar para comprobaciones condicionales. Sin embargo, esta función solo se puede aplicar por registro. No es posible verificar una condición dentro de un grupo de registros usando una instrucción "Si". La estructura de árbol se puede usar para recorrer (partes específicas de) tus datos, por ejemplo, para expresar propiedades.


Las siguientes funciones se pueden utilizar para este tipo de cálculos.

Función

Descripción

exists(Scope, Condition)

Devuelve true si al menos una condición del ámbito se evalúa como true.

forall(Scope, Condition)

Devuelve true si todas las Condiciones del ámbito de aplicación evalúan a true.

Consulta la siguiente ilustración para ver un ejemplo.



Por ejemplo, la expresión

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

comprueba para cada tipo de proveedor si hay facturas de un proveedor con "consultoría" como parte del nombre.

Nota: lower se utiliza para convertir los nombres de los proveedores a minúsculas y hacer que la comprobación no distinga entre mayúsculas y minúsculas.

Filtrar

Al agregar datos, a veces se realizan cálculos en función de una parte específica de los datos. En este caso, se puede utilizar la función filter() .


A continuación se muestra un ejemplo de expresión agregada basada en un filtro.

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

De dentro hacia fuera, la expresión se construye de la siguiente manera:

  1. Recuperar todos los registros dentro del ámbito actual.
  2. Filtre estos registros para que solo permanezcan los que tienen un tipo de proveedor de maquinaria .
  3. Para cada registro filtrado, devuelve el valor del atributo de origen de datos del proveedor .
  4. Elimine todos los valores duplicados de la lista, para que solo tengamos un elemento por valor único.
  5. Cuenta el número de elementos que quedan en la lista.



En el ejemplo, el nivel de propietario del caso se establece como el nivel de expresión. Esto significa que el ámbito de la expresión es calcular un valor para todos los valores únicos del propietario del caso. Para cada valor de propietario del caso , records es la lista de registros que pertenecen a este propietario del caso.

La expresión devuelve un valor para cada propietario de caso, que indica el número de proveedores únicos con el tipo Máquinas.

Otras opciones de filtro

El menú del panel Configuración contiene opciones para agregar filtrado para agregados.



A continuación, se describen las opciones del menú Ajustes.

Opción

Descripción

Habilitar expresión de filtro

Le permite introducir una expresión como filtro.

Habilitar controles de filtro

Abre el cuadro de diálogo Editar controles de filtro donde puedes seleccionar un control de filtro disponible de la lista.

Habilitar período de comparación

Le permite añadir un período de comparación o una expresión para definir un número de períodos anteriores para filtrar.

Aplicar filtros de usuario final

Le permite aplicar los filtros disponibles para el usuario final.

Nota: cuando usas las opciones de filtro del menú Configuración , el resultado del filtro se muestra en el panel Valor . Consulta la siguiente ilustración para ver un ejemplo.


Clasificación

La clasificación se puede utilizar para determinar el valor más alto o más bajo o para procesar registros en un orden determinado.

Cuando necesite el primer o el último registro para su expresión, puede ordenar por nivel de las siguientes maneras:

  • A .. Z y Z .. A se ordenarán por valor.

    • En las cadenas, se ordenará alfabéticamente.
    • En formatos numéricos (doble, entero), se ordenará según un valor numérico.
    • En formatos relacionados con la hora (fecha y hora, fecha) se ordenará por orden cronológico.
  • 0.. 9 y 9 .. 0 se ordenarán por el número de registros del grupo.
  • Expresión le permite rellenar una expresión, que se ordenará por valor como se describe anteriormente.

Para cada una de estas opciones de clasificación, es posible establecer el orden ascendente o descendente.

Consulte la siguiente ilustración para ver un ejemplo de clasificación en la que se determina el primer usuario que trabaja en cada caso.



La expresión agregada first(records.User) determina el primero User de cada Case ID. Event end está ordenado.

Was this page helpful?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Logotipo blanco de UiPath
Confianza y seguridad
© 2005-2024 UiPath. All rights reserved.