La vista avanzada permite crear reglas más elaboradas para Grupos Inteligentes o Ubicaciones Inteligentes, con operadores lógicos o/y operaciones agrupadas y funciones adicionales de formato de fechas.
La vista avanzada utiliza un editor de texto para crear consultas similares al código.
Sintaxis general
Una regla simple tiene el siguiente aspecto
usuario.nombre.es(«Juan») donde:
- usuario es un objeto al que se hace referencia
- nombre es su propiedad (un marcador de posición para los campos del perfil de usuario)
- «es» es el operador que desea aplicar a la propiedad
- («Juan») es una lista de valores con los que desea comprobar la propiedad del objeto
Así pues, la regla general de sintaxis es objeto.propiedad.operador(valores).
Para los campos de perfil de fecha también admitimos el formato. La sintaxis será object.property.format(format).operator(values). A continuación se describen los detalles del formato de fecha.
Sintaxis de los campos de perfil desplegables
Los grupos inteligentes y las ubicaciones también admiten campos de perfil desplegables. En el ejemplo siguiente, utilizamos el «Editor visual» para seleccionar uno de los valores posibles para el campo de perfil desplegable «Género».
Cuando cambiamos a la vista Avanzada, se ve que la opción de selección fue traducida a un número. En este ejemplo «8».
Los números asignados a las opciones de los campos desplegables del perfil representan el número de línea en el que se crearon. Este número no cambia si se modifica el orden de las opciones. Puedes revisar el orden actual de los campos de perfil desplegables navegando a Configuración/Campos de perfil y editando el campo deseado.
Ten en cuenta que los números de opción deben proporcionarse como texto entre comillas dobles.
Sintaxis de los campos de perfil de fecha
La vista avanzada también admite distintas operaciones para campos de perfil de fecha como «el o antes», «el o después», «entre» y formato de fecha.
Para mostrar la diferencia entre las distintas operaciones, consideraremos ejemplos con el uso del campo de perfil hire_date (fecha de contratación). Supongamos que este campo contiene información sobre la fecha de contratación de un empleado.
Ten en cuenta que cuando se utiliza la vista avanzada, las fechas se muestran en el formato AAAA-MM-DD. En este formato, AAAA representa el año, MM representa el mes y DD representa el día. Tanto MM como DD incluirán un 0 a la izquierda cuando sea necesario. Por ejemplo, el 7 de enero de 2025 se escribiría como «2025-01-07».
Es/No es
La función es/no es comprueba si el valor de un campo de perfil de fecha coincide con los argumentos proporcionados. Por ejemplo, user.hire_date.is(«2025-03-31», «2024-12-01») incluirá a los usuarios cuya fecha de contratación sea precisamente el 31 de marzo de 2025 o el 1 de diciembre de 2024. Por el contrario, isNot excluirá a los usuarios contratados en esas fechas concretas.
En o antes de
La sintaxis user.hire_date.onOrBefore(«2025-03-31») se puede utilizar para capturar todos los usuarios cuya fecha de contratación sea anterior o durante una fecha específica. En este ejemplo, «hire_date» se refiere al campo de perfil de fecha, «onOrBefore» es la operación y «2025-03-31» es el argumento de fecha. Esta función específica capturará todos los usuarios contratados el 31 de marzo de 2025 o antes.
En o después de
La sintaxis user.hire_date.onOrAfter(«2025-03-31») se puede utilizar para capturar todos los usuarios cuya fecha de contratación sea posterior o durante una fecha específica. En este ejemplo, «hire_date» se refiere al campo de perfil de fecha, «onOrAfter» es la operación y «2025-03-31» es el argumento de fecha. Esta función específica capturará todos los usuarios contratados el 31 de marzo de 2025 o después.
Entre
La sintaxis «user.hire_date.between(«2025-03-01», «2025-03-31»)» se puede utilizar para buscar todos los usuarios cuyo valor de campo de perfil de fecha se encuentre dentro de un intervalo de fechas especificado. En este ejemplo, capturará todos los usuarios cuya fecha de contratación sea el 1 de marzo de 2025 o posterior y el 31 de marzo de 2025 o anterior. Esta función encontrará todos los usuarios contratados en marzo de 2025.
Formato de fechas
La vista avanzada permite un formato de fecha flexible, que resulta especialmente útil cuando sólo es necesario utilizar uno de los componentes del campo de fecha. Por ejemplo, la sintaxis user.hire_date.format("yyyy-MM").between("2025-01", "2025-03")
- format(«aaaa-MM») especifica el formato del campo de perfil hire_date
- between(«2025-01», «2025-03») es una función que toma 2 argumentos que deben proporcionarse en el mismo formato que en formato(«aaaa-MM»)
Esta regla obtendrá todos los usuarios que hayan sido contratados entre enero y marzo de 2025, independientemente del día concreto de contratación.
Los siguientes formatos están disponibles para cada campo de perfil de fecha:
- yyyy-MM-dd: La fecha completa incluyendo año, mes y día, con ceros a la izquierda.
- yyyy: El año.
- yyyy-MM: El año y mes..
- yyyy-ww: El año y el número de semana.
- ww: El número de la semana para una fecha dada, con un 0 a la izquierda.
- MM: El número del mes, con un 0 a la izquierda.
- MM-dd: El mes y el día, con un 0 a la izquierda.
- dd: El componente de día de un campo de perfil de fecha, con un 0 a la izquierda.
El formato de fecha puede utilizarse junto con todas las operaciones específicas de fecha como is, isNot, onOrBefore, onOrAfter y between.
El patrón ww representa el número de semana ISO, que sigue la norma ISO-8601. Según esta norma
- Una semana comienza el lunes
- La primera semana del año (semana 01) es la semana que contiene el primer jueves del año
- Si el 1 de enero cae en lunes, martes, miércoles o jueves, pertenece a la semana 1 del nuevo año
- Si el 1 de enero cae en viernes, sábado o domingo, pertenece a la última semana del año anterior.
Operadores admitidos y agrupación
Cuando quieras combinar reglas, añade && (para y) o || (para o) entre las reglas. Por ejemplo:
- user.firstname.in(«John») && user.lastname.in(«Doe») se aplica a todos los usuarios que se llamen John Doe
- user.firstname.in(«John») || user.lastname.in(«Doe») se aplica a todos los Johns y a todos los Does
En la vista avanzada también puede agrupar reglas para crear reglas más avanzadas. Por ejemplo:
- user.firstname.in(«John») || user.lastname.in(«Doe») ) && user.department.in(«Ventas») se aplica a todos los Johns y todos los Does que pertenezcan al departamento de Ventas.
Nota: Si tus reglas avanzadas utilizan una sintaxis no soportada por el editor visual, no podrás volver al editor visual.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.