Vue d’ensemble des expressions de données calculées
Vous pouvez utiliser des expressions de données pour définir des champs personnalisés calculés dans Adobe Workfront. Les expressions calculées connectent des champs Workfront existants dans des instructions qui génèrent un nouveau champ.
Vous pouvez utiliser des expressions de données calculées dans :
-
Un champ personnalisé calculé sur un formulaire personnalisé
Pour plus d’informations sur la création de champs personnalisés calculés sur des formulaires personnalisés dans Workfront, voir Ajout de champs calculés à un formulaire.
-
Une colonne personnalisée calculée dans un rapport ou une liste lorsque vous utilisez le mode texte
Pour plus d’informations sur l’utilisation du mode texte dans les rapports et les vues, voir Présentation du mode texte.
Syntaxe des champs personnalisés calculés par rapport aux colonnes personnalisées calculées
Bien que les fonctions que vous utilisez soient les mêmes, la syntaxe pour créer une expression dans un champ personnalisé calculé peut être différente de celle utilisée pour créer une colonne personnalisée calculée.
Les différences entre les deux syntaxes sont les suivantes :
Par exemple :
-
Dans un champ personnalisé, sur un formulaire personnalisé pour les tâches, vous utiliserez les éléments suivants pour générer le nom du projet parent de la tâche à laquelle le formulaire personnalisé est joint :
{project}.{name}
-
Dans une colonne personnalisée d’un rapport, vous pouvez utiliser les éléments suivants pour ajouter une colonne personnalisée Nom du projet à un rapport de tâche :
valuefield=project:name
Ou
valueexpression={project}.{name}
note tip TIP La même syntaxe s’applique à tous les éléments de rapport en mode texte dans lesquels des expressions calculées sont utilisées : vues, filtres, regroupements, invites.
Pour plus d’informations sur la syntaxe que vous devez utiliser dans une colonne personnalisée calculée, voir Présentation du mode texte.
Expressions de données utilisables
Les listes ci-dessous définissent les expressions disponibles que vous pouvez utiliser lorsque vous créez l’un des trois types différents de champs personnalisés calculés dans Workfront :
Vous pouvez utiliser les expressions répertoriées ci-dessous pour créer des colonnes calculées personnalisées. Cependant, vous devez utiliser la syntaxe correcte pour une colonne personnalisée calculée, comme décrit dans la section Syntaxe des champs personnalisés calculés par rapport aux colonnes personnalisées calculées de cet article.
Champs personnalisés calculés par date et heure date-time-calculated-custom-fields
Vous pouvez créer un champ personnalisé calculé par date ou heure à l’aide des expressions suivantes :
Ajoute le nombre de jours à la date. La valeur number peut inclure des jours partiels. Par exemple, la version 1.5 ajoute un jour et demi à la date.
L’expression est mise en forme comme suit :
ADDDAYS(date, number)
Ajoute le nombre de jours de la semaine à la date. Cette expression ajoute uniquement des entiers entiers à la date, en arrondissant à la base.
L’expression est mise en forme comme suit :
ADDWEEKDAYS(date, number)
Ajoute le nombre de mois à la date et est formaté comme suit :
ADDMONTHS(date, number)
Ajoute le nombre d’années à la date et est formaté comme suit :
ADDYEARS(date, number)
Efface la partie heure d’une date et est formatée comme suit. Dans cet exemple, la date est la date d’entrée d’un objet de travail.
CLEARTIME({entryDate})
Convertit une chaîne en date et est formatée comme suit :
DATE(string)
Renvoie le nombre de jours entre deux dates, en tenant compte des jours de début et de fin de la période sélectionnée ainsi que des horodatages de ces jours. Par exemple, si l’heure de début de la date est 15 heures, le jour de début n’est pas compté comme une journée complète.
L’expression est mise en forme comme suit :
DATEDIFF(date1, date2)
Renvoie le jour du mois pour la date sous forme de nombre, entre 1 et 31.
L’expression est formatée comme suit. Dans cet exemple, la date est la date d’entrée d’un objet de travail.
DAYOFMONTH({entryDate})
Renvoie le jour de la semaine pour la date sous forme de nombre, entre 1 (dimanche) et 7 (samedi).
L’expression est formatée comme suit. Dans cet exemple, la date est la date d’entrée d’un objet de travail.
DAYOFWEEK({entryDate})
Renvoie le nombre total de jours dans le mois de la date sous forme de nombre et est formaté comme suit. Dans cet exemple, la date est la date d’entrée d’un objet de travail.
DAYSINMONTH({entryDate})
Renvoie le nombre total de jours de la semaine entre la date et la fin de la semaine, ou la fin du mois, selon ce qui survient en premier. Dans cet exemple, la date est la date d’entrée d’un objet de travail.
L’expression est mise en forme comme suit :
DAYSINSPLITWEEK({entryDate})
Renvoie le nombre total de jours dans l'année de la date sous la forme d'un nombre et est formaté comme suit. Dans cet exemple, la date est la date d’entrée d’un objet de travail.
DAYSINYEAR({entryDate})
Renvoie la date la plus récente de la liste et est formatée comme suit :
DMAX(date1, date2, ...)
Renvoie la date la plus ancienne de la liste et est formatée comme suit :
DMIN(date1, date2, ...)
Renvoie l’heure de la date sous forme numérique entre 0 et 23.
L’expression est formatée comme suit. Dans cet exemple, la date est la date d’entrée d’un objet de travail.
HOUR({entryDate})
Renvoie la minute de la date sous la forme d'un nombre compris entre 0 et 60, au format suivant. Dans cet exemple, la date est la date d’entrée d’un objet de travail.
MINUTE({entryDate})
Renvoie le mois de la date sous la forme d'un nombre compris entre 1 et 12, au format suivant. Dans cet exemple, la date est la date d’entrée d’un objet de travail.
MONTH({entryDate})
Renvoie la seconde de la date sous la forme d'un nombre compris entre 0 et 60, au format suivant. Dans cet exemple, la date est la date d’entrée d’un objet de travail.
SECOND({entryDate})
Renvoie le nombre de jours de la semaine entre deux dates, en tenant compte des jours de début et de fin de la période sélectionnée, ainsi que des horodatages de ces jours. Par exemple, si l’heure de début de la date est 15 heures, le jour de début n’est pas compté comme une journée complète.
L’expression est mise en forme comme suit :
WEEKDAYDIFF(date2, date1)
Renvoie le nombre de minutes planifiées entre les dates selon le planning par défaut.
L’expression est mise en forme comme suit :
WORKMINUTESDIFF(date1, date2)
Renvoie l'année de la date sous la forme d'un nombre à 4 chiffres, au format suivant. Dans cet exemple, la date est la date d’entrée d’un objet de travail.
YEAR({entryDate})
Champs personnalisés calculés mathématiques mathematical-calculated-custom-fields
Vous pouvez créer un champ personnalisé calculé qui utilise certaines des expressions mathématiques suivantes :
Renvoie la valeur absolue du nombre et est formatée comme suit. Cet exemple utilise le nombre d’objets situés sous l’objet auquel le formulaire personnalisé est associé.
ABS({numberOfChildren})
Renvoie la moyenne des nombres et est formaté comme suit :
AVERAGE(number1, number2, ...)
Arrondit un nombre à l’entier le plus proche et est formaté comme suit. Cet exemple utilise le nombre d’objets situés sous l’objet auquel le formulaire personnalisé est associé.
CEIL({numberOfChildren})
Répartit tous les nombres dans l’ordre indiqué et est formaté comme suit :
DIV(number1, number2, ...)
Arrondit un nombre à l’entier le plus proche et est formaté comme suit. Cet exemple utilise le nombre d’objets situés sous l’objet auquel le formulaire personnalisé est associé.
FLOOR({numberOfChildren})
Renvoie la valeur logarithme népérienne du nombre et est formatée comme suit :
LN({numberOfChildren})
Renvoie la valeur logarithme de number2 à la base number1 et est formatée comme suit :
LOG(number1, number2)
Renvoie l’élément le plus grand de la liste et est formaté comme suit :
MAX(item1, item2, ...)
Renvoie le plus petit élément de la liste et est formaté comme suit :
MIN(item1, item2, ...)
Convertit une chaîne en nombre et se présente comme suit :
NUMBER(string)
Renvoie un nombre élevé à une puissance et est formaté comme suit :
POWER(number, power)
Multiplie tous les nombres et est formaté comme suit :
PROD(number1, number2, ....)
NOTE
Lorsque vous multipliez des champs qui contiennent des heures, veillez à comprendre si la base de données enregistre les heures dans les champs sélectionnés en minutes, heures ou secondes. Si les heures sont enregistrées en minutes ou en secondes mais s’affichent en heures dans l’interface de Workfront, vous devrez peut-être tenir compte de la conversion de minutes ou de secondes en heures lors de l’écriture d’une expression à l’aide de ce calcul.
Arrondit le nombre à des décimales de précision spécifiées et est formaté comme suit :
ROUND(number, precision)
Commande les nombres par ordre croissant et est formaté comme suit :
SORTASCNUM(number1,number2, ...)
Commande les nombres dans l'ordre décroissant et est formaté comme suit :
SORTDESCNUM(number1, number2, ...)
Renvoie la racine carrée d’un nombre et est formatée comme suit. Cet exemple utilise le nombre d’objets situés sous l’objet auquel le formulaire personnalisé est associé.
SQRT({numberOfChildren})
Enlève tous les nombres dans l’ordre indiqué et est formaté comme suit :
SUB(number1, number2, ...)
Ajoute tous les nombres et est formaté comme suit :
SUM(number1, number2, ...)
Champs personnalisés calculés par le texte text-calculated-custom-fields
Vous pouvez créer un champ personnalisé calculé qui affiche une valeur au format texte à l’aide des expressions suivantes :
Utilisé avec d’autres expressions pour choisir une valeur dans une liste, en fonction d’un numéro d’index.
Un numéro d’index est un champ ou une fonction qui renvoie une valeur numérique (généralement comprise dans une plage connue).
L’expression est mise en forme comme suit :
CASE(indexNumber, value1, value2, ...)
Par exemple, l’expression suivante renvoie le nom du jour de la semaine, où 1=dimanche, 2=lundi, etc., dans une colonne calculée :
CASE(DAYOFWEEK({entryDate}),"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
Fonctionne mieux avec d’autres expressions qui renvoient un nombre, telles que DAYOFWEEK, DAYOFMONTH et MONTH.
Concatène la chaîne et est formatée comme suit :
CONCAT(string1,"separator", string2)
Vous trouverez ci-dessous des exemples de séparateurs que vous pouvez inclure :
- un espace : " "
- un tiret : "-"
- une barre oblique : "/"
- une virgule : ","
- un mot : "ou", "et"
Renvoie "true" si la chaîne findText se trouve dans la chaîne insideText et est formatée comme suit :
CONTAINS(findText, withinText)
Échappe tous les caractères spéciaux de la chaîne afin qu’ils puissent être inclus dans un argument URL.
L’expression est mise en forme comme suit :
ENCODEURL(string)
Evalue une condition que vous spécifiez et renvoie la valeur de trueExpression si elle est vraie, ou la valeur de falseExpression si elle est fausse.
L’expression est mise en forme comme suit :
IF(condition, trueExpression, falseExpression)
Par exemple, vous pouvez comparer deux champs de date différents suivis d’un résultat True/False sous la forme d’une chaîne de données :
IF({projectedCompletionDate}>{plannedCompletionDate},"Off Track","On Track")
Dans les discours de tous les jours, cette instruction signifie : "Si la date d’achèvement prévue de mon objet est "Supérieur à" la date d’achèvement planifiée du même objet, affichez les mots "Suivi désactivé" dans ce champ ; dans le cas contraire, affichez les mots "Sur la piste".
Si vous ne souhaitez pas libeller les expressions true ou false, vous devez insérer un libellé vide dans votre instruction, tel que :
IF({projectedCompletionDate}>{plannedCompletionDate},"","On Track")
Ou
IF({projectedCompletionDate}>{plannedCompletionDate},"Off Track","")
Pour plus d’informations sur la création d’instructions "IF", voir "IF" statement overview.
Permet de rechercher une valeur spécifique dans une chaîne de valeurs possibles. Si la valeur que vous recherchez est égale à l’une des valeurs fournies, l’expression renvoie trueExpression ; dans le cas contraire, elle renvoie falseExpression.
L’expression est mise en forme comme suit :
IFIN(value, value1, value2,..., trueExpression, falseExpression)
Par exemple, vous pouvez trouver un propriétaire de projet spécifique et marquer ces projets avec une balise spécifique dans la vue de projet :
IFIN({owner}.{name},"Jennifer Campbell","Rick Kuvec","Marketing Team","Other Teams")
Dans le discours de tous les jours, cette déclaration signifie : "Si le propriétaire du projet est Jennifer Campbell ou Rick Kuvec, marquez ce projet avec "Équipe marketing" ; sinon, marquez-le avec "Autres équipes"."
Si vous ne souhaitez pas libeller les expressions true ou false, vous devez insérer un libellé vide dans votre instruction, tel que :
IFIN({owner}.{name},"Jennifer Campbell","Rick Kuvec","","Other Teams")
Ou
IFIN({owner}.{name},"Jennifer Campbell","Rick Kuvec","Marketing Team","")
Renvoie true si la valeur est égale à l’une des valeurs fournies ; dans le cas contraire, l’expression renvoie false.
L’expression est mise en forme comme suit :
IN(value, value1[, value2...])
Renvoie true si la valeur est nulle ou vide ; dans le cas contraire, l’expression renvoie false.
L’expression est mise en forme comme suit :
ISBLANK(value)
Renvoie un nombre spécifié de caractères à partir du côté gauche d’une chaîne et est formaté comme suit :
LEFT(string, length)
Renvoie la longueur d'une chaîne au format suivant :
LEN(string)
Renvoie la chaîne en minuscules et est formatée comme suit :
LOWER(string)
Remplace toutes les occurrences de string2 par string3 dans string1.
L’expression est mise en forme comme suit :
REPLACE(string1, string2, string3)
Renvoie un nombre spécifié de caractères à partir du côté droit d’une chaîne et est formaté comme suit :
RIGHT(string, length)
Renvoie l’index de la première occurrence de findText dans la chaîne insideText, en commençant à la position de départ donnée, ou -1 si le texte est introuvable.
L’expression est mise en forme comme suit :
SEARCH(findText, withinText, start)
Convertit un nombre en chaîne et est formaté comme suit :
STRING(number)
Trie une liste de chaînes par ordre croissant, au format suivant :
SORTASCSTRING(string1, string2, ...)
Trie une liste de chaînes dans l’ordre décroissant, au format suivant :
SORTDESCSTRING(string1, string2, ...)
Renvoie les caractères d’une chaîne selon l’index de début et de fin spécifié et est formaté comme suit :
SUBSTR({string}, number of start position, number of end position)
Supprime les espaces au début et à la fin d’une chaîne et est formaté comme suit :
TRIM(string)
Renvoie une chaîne en majuscules et est formatée comme suit :
UPPER(string)