Детали задачи
-
История
-
Решение: Готово
-
High
-
Не заполнено
-
Не заполнено
-
Не заполнено
-
ECOS 28.02-10.03
-
Не требуется
Описание
Сейчас если в процессе случайно или специально в переменные задачи записывается значение, которое нельзя десериализовать мы получаем:
- Теряется всякая возможность работать с задачей через интерфейс и через код. Единственный вариант - лезть в БД и удалять оттуда ломающие переменные.
- Если где-то идет работа с пачкой задач (журнал задач например), то весь запрос падает из-за одной сломанной задачи. Т.о. без правок в БД мы теряем возможность работать не только с проблемной задачей, но и со всеми другими, данные по которым запрашиваются в том же самом запросе.
Для воспроизведения достаточно такого скрипта:
execution.setVariable("testArr", ["abc"]);
Нужно реализовать один из двух вариантов:
- Переменные, которые мы не поддерживаем не должны записываться в БД (можно null вместо них писать или кидать ошибку еще до завершения транзакции).
- При запросе переменных задачи в случае проблем с десериализацией не должен падать весь запрос. Вместо значения проблемных переменных можно вернуть null.