Concept : langue d’expression Prism
Prism Analytics inclut son propre langage d’expression qui est composé de fonctions et d’opérateurs. Vous utilisez le langage d'expression Prism pour créer une
expression
, que vous pouvez utiliser pour créer de nouvelles valeurs ou filtrer des valeurs existantes.Une expression calcule ou produit une valeur en combinant des champs, des valeurs constantes, des opérateurs et des fonctions. Une expression génère une valeur d’un type de champ particulier, telle que des valeurs numériques ou de texte. Les expressions simples peuvent être une valeur constante unique, les valeurs d’un champ donné ou juste une fonction. Vous pouvez utiliser des opérateurs pour joindre deux expressions simples ou plus dans une expression complexe.
Vous pouvez utiliser des expressions dans des jeux de données :
- Champs calculés.Utilisez des expressions pour définir les champs calculés qui s’appliquent aux données sources. Une expression de champ calculé génère ses valeurs en fonction d’un calcul ou d’une condition et renvoie une valeur pour chaque rangée d’entrée. Les expressions de champs calculés peuvent contenir des valeurs provenant d’autres champs, des constantes, des opérateurs mathématiques, des opérateurs de comparaison ou des fonctions de rangée intégrées.
- Filtrer les stades.Utilisez une expression dans un stade Filtre pour limiter le champ d'application des données sources d'un jeu de données.
Le créateur d'expressions vous aide à créer des expressions de champs calculés dans un jeu de données. Il affiche les champs disponibles dans le jeu de données ainsi que la liste des fonctions Prism. Il valide vos expressions pour avoir une syntaxe correcte, des types de champs d’entrée corrects, etc.
Entrées et sorties de la fonction
Les fonctions prennent une ou plusieurs valeurs d’entrée et renvoient une valeur de sortie. Les valeurs d'entrée peuvent être une valeur littérale ou le nom d'un champ qui contient une valeur. Dans les deux cas, la fonction s’attend à ce que la valeur d’entrée soit un type de champ particulier tel que Texte ou Nombre entier. Exemple : la fonction CONCAT() combine des entrées de texte et génère un nouveau texte.
Cet exemple montre comment utiliser la fonction CONCAT() pour concaténer les valeurs des champs de
mois
, de jour
et d’année
séparées par la barre oblique littérale :CONCAT([month],"/",[day],"/",[year])
La valeur de retour d'une fonction peut être la même que son type d'entrée ou il peut s'agir d'un type de champ entièrement nouveau. Exemple : la fonction TO_DATE() prend un texte comme entrée, mais génère une valeur Date. Si un texte est attendu pour une fonction, mais qu’un autre type de champ est passé en entrée, la fonction renvoie une erreur.
En règle générale, les fonctions sont classées en fonction du type de champ qu’elles utilisent ou de leur objet. Exemple : CONCAT() est une fonction de texte et TO_DATE() est une fonction de conversion de type de champ.
Fonctions d'imbrication
Les fonctions peuvent prendre d’autres fonctions comme arguments. Exemple : vous pouvez utiliser la fonction CONCAT comme argument de la fonction TO_DATE(). Le résultat final est une valeur de date au format 31/10/2014.
TO_DATE(CONCAT([month],"/",[day],"/",[year]),"MM/dd/yyyy")
La fonction imbriquée doit renvoyer le bon type de champ. Ainsi, puisque TO_DATE() nécessite une entrée de texte et que CONCAT() renvoie un texte, l’imbrication réussit.
Se rapportant aux champs du jeu de données actuel
Workday recommande d'entrer entre crochets tous les noms de champs (
[]
). Exemple :TO_INT([sales])
TO_INT([Sale Amount])
TO_INT([2013_data])
TO_INT([count])
Si un nom de champ contient un crochet ] (carré fermant), vous devez doubler le crochet fermant en le doublant ]]. Supposons que vous ayez ce nom de champ :
[Total Sales]
Vous placez le nom complet du champ entre crochets et effacez le crochet fermant qui fait partie du nom réel du champ :
[[Total Sales]]]
Valeurs de texte littérales
Pour préciser une valeur de texte littérale ou réelle, placez la valeur entre guillemets doubles (
"
). Exemple : Cette expression convertit les valeurs d'un champ Sexe
en valeurs littérales de type Masculin
, Féminin
ou inconnu
:
CASE WHEN [gender]="M"THEN"male"WHEN [gender]="F"THEN"female"ELSE"unknown"END
Pour échappement un guillemet littéral dans une valeur littérale elle-même, doublez le guillemet anglais. Exemple :
CASE WHEN [height]="60""" THEN "5 feet" WHEN [height]="72""" THEN "6 feet" ELSE "other" END
La fonction REGEX() est un cas particulier. Dans la fonction REGEX(), les expressions de texte sont également entre guillemets. Lorsqu’une expression de texte contient des guillemets littéraux, doublez le guillemet anglais. Exemple :
REGEX([height], "\d\'(\d)+""")
Valeurs de date littérales
Pour faire référence à une valeur de date dans une expression du stade Filtre, vous devez utiliser ce format (ou toute version abrégée de celui-ci) sans guillemets fermants ou autre ponctuation :
yyyy-MM-ddTHH:mm:ss:SSSZ
Exemple :
[Order Date] BETWEEN 2016-06-01T00:00:00.000Z AND 2016-07-31T00:00:00.000Z
Si l’expression de filtre est une version abrégée du format complet, Prism affecte une valeur de zéro (0) aux valeurs qui ne sont pas incluses. Par exemple, cette expression :
[Order Date] >= 2017-01-01
Équivalent à :
[Order Date] >= 2017-01-01T00:00:00.000Z
Pour faire référence à une valeur de date littérale dans une expression de champ calculé, vous devez préciser le format des composantes de date et d’heure à l’aide de TO_DATE, qui prend un argument littéral de texte et une chaîne de format. Exemple :
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
Valeurs numériques littérales
Pour les valeurs numériques littérales, vous pouvez uniquement préciser le nombre lui-même sans échappement ni mise en forme particuliers. Exemple :
CASE WHEN [is married]=1THEN "married" WHEN [is married]=0THEN "not_married" ELSE NULL END