Saltar al contenido principal
Workday User Guide
Última actualización: 2023-06-23
Concepto: lenguaje de expresión Prism

Concepto: lenguaje de expresión Prism

Prism Analytics incluye su propio lenguaje de expresión compuesto por funciones y operadores. Utilice el lenguaje de expresión Prism para crear una
expresión
, que puede usar para crear nuevos valores o filtrar valores existentes.
Una expresión calcula o genera un valor combinando campos, valores constantes, operadores y funciones. Una expresión genera un valor de un tipo de campo concreto, como valores numéricos o de texto. Las expresiones simples pueden ser un solo valor constante, los valores de un campo determinado o simplemente una función. Puede usar operadores para unir dos o más expresiones simples en una expresión compleja.
Puede usar expresiones en conjuntos de datos:
  • Campos calculados
    Utilice expresiones para definir campos calculados que operen en los datos de origen. Una expresión de campo calculado genera sus valores en función de un cálculo o una condición, y devuelve un valor para cada fila de entrada. Las expresiones de campo calculado pueden contener valores de otros campos, constantes, operadores matemáticos, operadores de comparación o funciones de fila integradas.
  • Filtrar fases
    Utilice una expresión en una fase de filtro para limitar el ámbito de los datos de origen de un conjunto de datos.
El generador de expresiones le ayuda a crear expresiones de campo calculado en un conjunto de datos. Muestra los campos disponibles en el conjunto de datos, además de la lista de las funciones de Prism. Valida las expresiones para comprobar la sintaxis correcta, los tipos de campo de entrada, etc.

Entradas y salidas de función

Las funciones toman uno o varios valores de entrada y devuelven un valor de salida. Los valores de entrada pueden ser un valor literal o el nombre de un campo que contenga un valor. En ambos casos, la función espera que el valor de entrada sea un tipo de campo concreto, como Texto o Número entero. Ejemplo: la función CONCAT() combina entradas de texto y genera un nuevo texto.
Este ejemplo muestra cómo utilizar la función CONCAT() para concatenar los valores de los campos de
mes
,
día
y
año
separados por el carácter de barra diagonal literal:
CONCAT([month],"/",[day],"/",[year])
El valor devuelto por una función puede ser el mismo que su tipo de entrada o puede ser un tipo de campo completamente nuevo. Ejemplo: la función TO_DATE() toma un texto como entrada, pero genera un valor de fecha. Si una función espera un texto, pero se le pasa otro tipo de campo como entrada, la función devuelve un error.
Por lo general, las funciones se clasifican por el tipo de campo que aceptan o el propósito al que sirven. Ejemplo: CONCAT() es una función de texto y TO_DATE() es una función de conversión de tipo de campo.

Funciones de anidamiento

Las funciones pueden aceptar otras funciones como argumentos. Ejemplo: puede utilizar la función CONCAT como argumento de la función TO_DATE(). El resultado final es un valor de Fecha con el formato 31/10/2014.
TO_DATE(CONCAT([month],"/",[day],"/",[year]),"MM/dd/yyyy")
La función anidada debe devolver el tipo de campo correcto. Por lo tanto, dado que TO_DATE() espera la entrada de texto y CONCAT() devuelve un texto, el anidamiento se realiza correctamente.

Referencia a campos en el conjunto de datos actual

Workday recomienda encerrar todos los nombres de campo entre corchetes (
[]
). Ejemplo:
TO_INT([sales])
TO_INT([Sale Amount])
TO_INT([2013_data])
TO_INT([count])
Si un nombre de campo contiene un ] (corchete de cierre), debe evitar el corchete de cierre duplicándolo ]]. Supongamos que tiene este nombre de campo:
[Total Sales]
Encierre todo el nombre del campo entre corchetes y evite el corchete de cierre que forma parte del nombre real del campo:
[[Total Sales]]]

Valores de texto literal

Para especificar un valor de texto literal o real, escriba el valor entre comillas dobles (
"
). Ejemplo: esta expresión convierte los valores de un campo
de género
en los valores literales de
hombre
,
mujer
o
desconocido
:
CASE WHEN [gender]=
"
M
"
THEN
"
male
"
WHEN [gender]=
"
F
"
THEN
"
female
"
ELSE
"
unknown
"
END
Para aplicar escape a una comilla literal dentro de un valor literal, duplique el carácter de comilla literal. Ejemplo:
CASE WHEN [height]="60
""
" THEN "5 feet" WHEN [height]="72
""
" THEN "6 feet" ELSE "other" END
La función REGEX() es un caso especial. En la función REGEX(), las expresiones de texto también se escriben entre comillas. Cuando una expresión de texto contiene comillas literales, duplique el carácter de comilla literal. Ejemplo:
REGEX([height], "\d\'(\d)+
""
")

Valores de fecha literal

Para hacer referencia a un valor de fecha en una expresión de fase de filtro, debe utilizar este formato (o cualquier versión abreviada) sin comillas ni otros signos de puntuación:
yyyy-MM-dd
T
HH:mm:ss:SSS
Z
Ejemplo:
[Order Date] BETWEEN 2016-06-01T00:00:00.000Z AND 2016-07-31T00:00:00.000Z
Si la expresión de filtro es una versión abreviada del formato completo, Prism asigna un valor cero (0) a cualquier valor que no esté incluido. Ejemplo: esta expresión:
[Order Date] >= 2017-01-01
Es equivalente a:
[Order Date] >= 2017-01-01T00:00:00.000Z
Para hacer referencia a un valor de fecha literal en una expresión de campo calculada, debe especificar el formato de los componentes de fecha y hora mediante TO_DATE, que acepta un argumento de literal de texto y una cadena de formato. Ejemplo:
CASE WHEN [Order Date]=TO_DATE("2013-01-01 00:00:59 PST","yyyy-MM-dd HH:mm:ss z") THEN "free shipping" ELSE "standard shipping" DONE

Valores numéricos literales

En el caso de los valores numéricos literales, puede especificar el propio número sin ningún formato o escape especial. Ejemplo:
CASE WHEN [is married]=
1
THEN "married" WHEN [is married]=
0
THEN "not_married" ELSE NULL END