Sintaxis de fórmulas personalizadas
Las fórmulas personalizadas utilizadas en métricas de fórmulas personalizadas y campos personalizados calculados obtienen datos de una o varias fuentes, realizan opcionalmente alguna acción sobre ellos y, a continuación, presentan el resultado calculado como un valor de un campo personalizado.
Valores y propiedades
[User Story]
Effort
EntityState.Name
Feature.Priority.Importance
Cálculos básicos
[User Story]
TimeSpent + TimeRemain
Effort * Math.Pi
[Feature]
InitialEstimate * 2
[Request]
StartDate - CreateDate
CreateDate.Value.AddHours(48)Utilice paréntesis para determinar el orden de cálculo.Sentencias condicionales
Utilice el operador IIF para crear una instrucción condicional If-Then-Else. Requiere 3 parámetros. El primer parámetro es la condición. Si coincide (el resultado booleano es True), entonces el resultado se proporciona desde el segundo parámetro; de lo contrario, desde el tercero.[User Story]
IIF(EntityState.IsFinal, Effort, 0)
IIF(TimeSpent > 0, TimeSpent, Effort)Se admiten IIF anidados. Utilice operadores IIF internos para crear condiciones anidadas.[User Story]
IIF(EntityState.Name == 'In Process', 10, IIF(EntityState.Name == 'Ready for Testing', 60, IIF(EntityState.Name == 'QA Test', 85, IIF(EntityState.Name == 'QA Complete', 90, IIF(EntityState.Name == 'Ready for Deployment' or EntityState.IsFinal == True, 100, 0)))))Operadores compatibles| Operador | Significado |
|---|---|
| = == | igual a |
| != | no es igual a |
| < | menor que |
| > | mayor que |
| >= | mayor o igual que |
| <= | menor o igual que |
| && y | y |
| || o | o |
Utilice paréntesis para determinar el orden de cálculo en expresiones lógicas complejas.
Comparación de datos| Valor 1 | Valor 2 | Fórmula |
|---|---|---|
| Texto / Cadena | Texto / Cadena | Nombre = «ABC» |
| Número | Número | Tasks.Count = 0 |
| Booleano | Booleano | IsPrivate = Verdadero |
| Fecha [sin hora exacta] | Fecha [sin hora exacta] | EndDate.Fecha = PlannedEndDate.Fecha |
| Fecha con hora exacta | Fecha con hora exacta | ModifyDate = LastStateChangeDate |
| Cualquiera | Vacío | PlannedEndDate = nulo |
Cálculos agregados
Recuento[Feature]
UserStories.CountRecuento condicional[Feature]
UserStories.Where(EntityState.IsFinal == False).CountAgregaciones[Feature]
UserStories.Sum(Effort)Agregaciones condicionales[Feature]
UserStories.Where(EntityState.IsFinal == False).Sum(Effort)
Conversiones
A los números[Feature]
Convert.ToInt32(CustomValues.Text('CustomFieldName'))
Convert.ToDecimal(CustomValues.Text('CustomFieldName'))
Convert.ToDouble(CustomValues.Text('CustomFieldName'))A booleano[Feature]
Convert.ToBoolean(CustomValues.Text('CustomFieldName'))Para enviar un mensaje de texto[Feature]
Convert.ToString(12345)
CreateDate.ToString()