Concept : langage d'expression Prism
Prism Analytics inclut son propre langage d'expression 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 de constantes, des opérateurs et des fonctions. Une expression génère une valeur d'un type de champ particulier, tel que des valeurs Numériques ou Texte. Les expressions simples peuvent être une valeur de constante unique, les valeurs d'un champ donné ou simplement une fonction. Vous pouvez utiliser des opérateurs pour joindre deux ou plusieurs expressions simples dans une expression complexe.
Vous pouvez utiliser des expressions dans les jeux de données :
- Champs calculés.Utilisez des expressions pour définir des champs calculés qui fonctionnent sur des données source. 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 ligne d'entrée. Les expressions de champ calculé peuvent contenir des valeurs provenant d'autres champs, de constantes, d'opérateurs mathématiques, d'opérateurs de comparaison ou de fonctions de ligne intégrées.
- Filtrer les phases.Utilisez une expression dans une phase Filtre pour limiter le périmètre des données source d'un jeu de données.
Le générateur d'expressions vous permet de créer des expressions de champ calculé dans un jeu de données. Elle affiche les champs disponibles dans le jeu de données, ainsi que la liste des fonctions Prism. Elle permet de valider la syntaxe, les types de champ d'entrée, etc. dans les expressions.
Entrées et sorties de fonction
Les fonctions utilisent 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 Entier. Exemple : la fonction CONCAT() combine des entrées et des sorties Texte.
Cet exemple montre comment utiliser la fonction CONCAT() pour concaténer les valeurs des champs
mois
, jour
et année
, séparées par la barre oblique littérale :CONCAT([month],"/",[day],"/",[year])
Une valeur de retour de fonction peut être identique à 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 en entrée, mais génère une valeur de date. Si une fonction attend un texte, mais qu'elle est passée d'un autre type de champ à l'autre, la fonction renvoie une erreur.
En général, les fonctions sont classées en fonction du type de champ utilisé et de l'objet auquel elles servent. 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 utiliser 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 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, étant donné que TO_DATE() attend une saisie de texte et que CONCAT() renvoie un texte, l'imbrication réussit.
Faire référence aux champs du jeu de données actuel
Workday recommande de placer tous les noms de champ entre crochets ()
[]
). Exemple :TO_INT([sales])
TO_INT([Sale Amount])
TO_INT([2013_data])
TO_INT([count])
Si le nom d'un champ contient un ] (parenthèse fermante), vous devez échappement le crochet fermant en doublant ]]. Supposons que le nom de votre champ soit :
[Total Sales]
Vous placez le nom complet du champ entre crochets et échappement le crochet de fermeture qui fait partie du nom de champ réel :
[[Total Sales]]]
Valeurs de texte littéral
Pour indiquer une valeur 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 Masculin
, Féminin
ou inconnu
:
CASE WHEN [gender]="M"THEN"male"WHEN [gender]="F"THEN"female"ELSE"unknown"END
Pour échappement une apostrophe littérale dans une valeur littérale elle-même, doublez le caractère de la apostrophe littérale. Exemple :
CASE WHEN [height]="60""" THEN "5 feet" WHEN [height]="72""" THEN "6 feet" ELSE "other" END
La fonction REGEX() est un cas spécial. Dans la fonction REGEX(), les expressions Texte sont également placées entre guillemets. Lorsqu'une expression Texte contient des guillemets littéraux, doublez le caractère des guillemets littéraux. Exemple :
REGEX([height], "\d\'(\d)+""")
Valeurs de date littérales
Pour faire référence à une valeur Date dans une expression de phase Filtre, vous devez utiliser le format suivant (ou toute version abrégée du format) sans guillemets ou autres ponctuations :
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 Filtrer est une version abrégée du format complet, Prism attribue une valeur de zéro (0) à toutes les valeurs qui ne sont pas incluses. Par exemple, cette expression :
[Order Date] >= 2017-01-01
Équivaut à :
[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 spécifier le format des composantes de date et d'heure à l'aide de TO_DATE, qui utilise un argument littéral 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 simplement indiquer le nombre lui-même sans échappement ou format spécial. Exemple :
CASE WHEN [is married]=1THEN "married" WHEN [is married]=0THEN "not_married" ELSE NULL END