Пользовательское поле «Формула»

Это пользовательское поле используется для любых расчетов в карточке.

Вы можете прописать в нем нужную формулу и подставить в нее данные из пользовательских полей карточки или другую формулу. И получить автоматический расчет на основе этих данных.

Пример формулы:

12 + (prop("number field 1") - prop("number field 2"))* prop("goals_done")

где:

  • prop("number field 1"), prop("number field 2") и prop("goals_done")— ссылки на поля;

  • number field 1 , number field 2 — это названия пользовательских полей;

  • goals_done — собранные данные из этой карточки — дополнительное поле.

Когда в карточке появятся необходимые данные, они автоматически подтянутся в формулу, и она покажет высчитанное значение в формате числа или строки, которую можно преобразовать в число.

В нашем случае, формула будет посчитана, когда в карточке будут заполнены поля number field 1, number field 2.

Если значение полей в карточке поменяются, то значение формулы тоже будет автоматически пересчитано.

Итак, чтобы воспользоваться полем «Формула»:

  • Создайте нужные пользовательские поля для сбора данных;

  • Создайте новое пользовательское поле с типом «Формула»;

  • Задайте формулу с использованием нужных пользовательских полей и, при необходимости, дополнительных переменных.

Какие поля можно использовать в формуле

Пользовательские поля с типами:

  • число;

  • формула;

  • строка;

  • коллективная оценка;

  • голосование с вариантом оценки: рейтинг.

Дополнительно поддерживаемые поля:

  • size — размер

  • goals_total — количество пунктов в чеклистах

  • goals_done — количество выполненных пунктов в чеклистах

  • children_count — количество дочерних карточек

  • children_done — количество завершенных дочерних карточек

  • parents_count — количество родительских карточек

  • time_spent_sum — количество минут затраченное на выполнение карточки

  • time_blocked_sum — количество минут, которые карточка была заблокирована

  • children_number_properties_sum.size — суммарный размер дочерних карточек

  • children_number_properties_sum.time_spent_sum — суммарное количество минут, затраченное на выполнение дочерних карточек

  • estimate_workload — трудозатраты

Все возможные поля будут указаны при создании и редактировании поля.

Операторы

Формулы поддерживают операторы для всех распространенных арифметических операций, таких как сложение и умножение.

Формулы использует обычную инфиксную нотацию для операторов: оператор помещается между его аргументами. Круглые скобки можно использовать для переопределения приоритета операторов по умолчанию.

Пример:

2 + 3 * 4 //12
(2 + 3) * 4 // 20

Переменные

Имена переменных должны начинаться с:

  • Латинских букв (заглавная или строчная): Ascii: a-z, A-Z

  • Подчеркивание: _

  • Знак доллара: $

  • Латинских буква с ударением. Юникод: \u00C0 - \u02AF

  • Греческих букв. Юникод: \u0370 - \u03FF

  • Символ, похожий на букву. Юникод: \u2100 - \u214F

  • Математический буквенно-цифровой символ. Юникод: \u{1D400} - \u{1D7FF}, исключая недопустимые кодовые точки.

Переменные содержат только буквенные символы (см. выше) и цифры 0–9.

Переменные не должны быть ни одним из следующих: mod, to, in, and, xor, or, not, end. (Некоторым из них можно назначить, но это не рекомендуется).

Константы

В формулах можно использовать следующие константы:

Констана

Описание

Значение

e, E

Число Эйлера, основание натурального логарифма.

2.718281828459045

Infinity

Бесконечность, число, которое больше, чем максимальное число, которое может быть обработано числом с плавающей запятой.

Infinity

LN2

Возвращает натуральный логарифм 2

0.6931471805599453

LN10

Возвращает натуральный логарифм 10.

2.302585092994046

LOG2E

возвращает логарифм E по основанию 2.

1.4426950408889634

LOG10E

возвращает логарифм E по основанию 10.

0.4342944819032518

NaN

Не число.

NaN

null

Value null.

null

phi

Фи – это золотое сечение. Две величины находятся в золотом сечении, если их отношение равно отношению их суммы к большей из двух величин. Phi определяется как (1 + sqrt (5)) / 2

1.618033988749895

pi, PI

Число Пи — это математическая константа, представляющая собой отношение длины окружности к ее диаметру.

3.141592653589793

SQRT1_2

Возвращает квадратный корень из 1/2.

0.7071067811865476

SQRT2

Возвращает квадратный корень из 2.

1.4142135623730951

tau

Тау — константа отношения длины окружности к радиусу, равная 2 * пи.

6.283185307179586

undefined

Неопределенное значение. Предпочтительно использовать null для указания неопределенных значений.

undefined

Например:

(prop("number field 1") * phi) - 3

Где вместе phi - подставится соответствующее значение — 1.618033988749895

Неявное умножение

Формулы поддерживают неявное умножение. Неявное умножение означает умножение двух символов, чисел или сгруппированного выражения в круглых скобках без использования оператора *. Этот тип синтаксиса обеспечивает более естественный способ ввода выражений.

Пример:

2 pi         // 6.283185307179586
(1+2)(3+4)   // 21

Функции

Функции вызываются путем ввода их имени, за которым следует ноль или более аргументов, заключенных в круглые скобки.

Все доступные функции перечислены на странице.

Пример:

sqrt(25)          // 5
log(10000, 3 + 7)  // 4
sin(pi / 4)       // 0.7071067811865475
sqrt(prop("number field 1"))

Выражения

Формулы могут содержать несколько инструкций.

Рассмотрим
res = 3 * prop("Bug.Severity") + 2 * (prop("Bug.Frequency") ? prop("Bug.Frequency") : 1) + (prop("Bug.Reproducable") ? prop("Bug.Reproducable") : 3); res < 9 ? 1 : 3

где

res = 3 * prop("Bug.Severity") + 2 * (prop("Bug.Frequency") ? prop("Bug.Frequency") : 1) + (prop("Bug.Reproducable") ? prop("Bug.Reproducable") : 3); — это 1 инструкция

результат 3 * prop("Bug.Severity") + 2 * (prop("Bug.Frequency") ? prop("Bug.Frequency") : 1) + (prop("Bug.Reproducable") ? prop("Bug.Reproducable") : 3) — записывается в переменную res
= — оператор присваивания
; —оператор разделения инструкций

res < 9 ? 1 : 3 — это 2 инструкция , когда данные переменной res сравниваются и его результат определяет конечный результат формулы
? — оператор условного выражения


Отображение прогресса в карточке на основе формулы

В карточках Kaiten есть индикатор прогресса, который показывает на сколько процентов выполнена задача. Стандартно он рассчитывается на основе выполнения чек-листов и дочерних задач. Но также в качестве индикатора прогресса можно установить поле с типом «формула» и задавать собственные критерии подсчета прогресса.

Как настроить?

Зайдите в административный раздел «Пользовательские поля» и создайте поле с типом «формула» далее задайте формулу, по которой хотите рассчитывать прогресс карточек.

Затем выберите это поле в качестве поля для отображения прогресса в карточках.

Обратите внимание: тип отображения прогресса в карточках распространяется на все пространства аккаунта. Если вы выбрали поле с типом «формула» для отображения прогресса, то предыдущий показатель прогресса на основе чек-листов и дочерних задач не будет показываться ни в каких карточках.

Теперь в карточках, где подсчитано выбранное поле с типом «формула», будет соответствующим образом отображаться индикатор прогресса: на фасаде карточек, в режиме timeline, в табличном представлении в виде процентов.

Если формула, выбранная для отображения прогресса, не посчитана в карточке, то у задачи будет показан нулевой прогресс. (Например, если одно из полей нужных для формулы в карточке отсутствует или не заполнено).

Если вы хотите, чтобы по вашим карточкам всегда отображался актуальный индикатор прогресса на основе формулы, то вы можете добавить все поля, необходимые для подсчета формулы, в качестве обязательных для заполнения полей для нужных досок или типов карточек.