Применимость: Data Center. Названия пунктов и доступность функций зависят от версии, плана и типа проекта. Проверяйте изменения на тестовом окружении. Описанные рабочие процедуры — предлагаемый подход, а не гарантии поставщика.
Сначала определите способ использования показателя
Руководителю нужен признак готовности изменения: заполнены ли план возврата, ответственный и сведения о проверке. Script field может вычислять показатель из существующих полей и показывать его в задаче. До реализации выясните, где результат используется: только на экране, в JQL, в гаджете или как основание для workflow. Эти потребности влияют на тип результата и требования к актуальности. Красивое значение на экране не означает, что индекс поиска уже содержит ожидаемые данные.
Для нашего примера показатель принимает ограниченный набор значений: готово, не готово, недостаточно данных. Не кодируйте все сведения в длинной строке с уникальными комбинациями. Отдельно решите, какие поля входят в расчёт и кто владеет определением готовности. Если в процессе есть экспертное согласование, наличие текста не должно автоматически заменять это решение. Вычисляемое поле показывает объективный признак, а не утверждает качество плана.
Сделайте расчёт простым и без побочных действий
Вычисление должно читать данные и возвращать результат, а не отправлять письма, менять задачи или создавать внешние записи. Значение поля может вычисляться при отображении или обновлении; побочные действия тогда возникают в неожиданных местах. Начните с локальных полей текущей задачи. Если требуется связанная задача, ограничьте набор и определите, как обрабатываются отсутствие связи и неоднозначность нескольких объектов.
Избегайте обращения во внешнюю систему при каждом просмотре. Недоступность внешнего сервиса иначе ухудшит открытие задач, а массовый отчёт может умножить нагрузку. Для дорогих данных разумнее отдельная фоновая синхронизация в обычное поле с отметкой актуальности, после которой script field выполняет дешёвую локальную операцию. Это архитектурный выбор: пользователь должен понимать, когда обновлён показатель и насколько свежие сведения он отражает.
Тип значения и searcher
Выберите тип результата до настройки поиска. Число должно оставаться числом, дата — датой, а текстовый статус — ограниченным набором строк. Если нужен JQL, настройте соответствующий searcher по документации ScriptRunner и планируйте требуемую индексацию. Несовместимая смена шаблона поиска может потребовать полной переиндексации. Не меняйте тип рабочего поля без проверки зависимых фильтров и согласованного окна обслуживания.
Проверяйте экран задачи, поиск и отчёт отдельно. Для расчёта на основе других задач или внешних данных особенно важно понять, когда обновляется индекс исходного объекта. Не обещайте мгновенную синхронность только потому, что экран при повторном открытии показывает новое значение. Если показатель участвует в критичной проверке перехода, используйте механизм, который проверяет необходимые исходные данные в нужный момент, а не случайно устаревший индекс.
Тесты актуальности и нагрузки
Подготовьте задачи со всеми данными, каждым отсутствующим полем, несколькими связями и доступом ограниченного пользователя. Проверьте результат после изменения исходного значения и после открытия поиска. Отдельно измерьте массовую выдачу, а не только одну задачу. Если включено кеширование, учитывайте его поведение при повторном просмотре. Отключение кеша не является универсальным лечением: оно может существенно увеличить стоимость расчёта.
Используйте доступные показатели performance и execution history для пользовательских script fields и наблюдайте реальные медленные случаи. Задачи с максимальным числом связей часто важнее среднего примера. При ошибке возвращайте согласованное состояние недостатка данных, если это соответствует модели, и отдельно фиксируйте техническую причину. Не подменяйте сбой внешнего сервиса нулевым бизнес-показателем: ноль и неизвестность означают разные решения.
Внедрение и удаление зависимости
Сначала добавьте поле в ограниченный контекст и проверьте, где пользователи его действительно видят. Не обещайте одинаковое отображение во всех представлениях Jira: у ScriptRunner есть документированные ограничения, которые нужно сверить для установленной версии. Соберите обратную связь о понятности значения. Если пользователю приходится открывать отдельную инструкцию для каждого статуса, упростите названия и подсказку.
Для отката удалите поле с нужных экранов или отключите конкретный расчёт поддерживаемым способом, сохранив конфигурацию. Перед удалением проверьте фильтры, гаджеты и другие скрипты, которые используют его идентификатор. Возврат прежнего типа и searcher может потребовать индексации, поэтому включите это в план заранее. Успешное поле даёт понятную и достаточно свежую информацию с ограниченной стоимостью вычисления, а его использование в поиске подтверждено отдельно.
Как объяснить актуальность пользователю
В описании поля укажите исходные данные, смысл каждого результата и ограничение свежести. Если показатель зависит от фоновой синхронизации, рядом полезно показывать время последнего успешного обновления в отдельном обычном поле. Пользователь сможет отличить отрицательный результат от устаревших сведений. Для отчёта зафиксируйте, какой срез данных он представляет и как проверяется актуальность перед принятием решения. Не называйте показатель готовностью к релизу, если он проверяет только заполненность нескольких полей. Точное название снижает риск неверного использования без добавления сложных пояснений в каждый рабочий сценарий.
Официальная документация
Применить это к вашей системе
Обсудим контекст, ограничения и безопасный порядок изменений.
Обсудить задачу