Обработки при изменении полей формы

Пишите ваши предложения здесь.
Ответить
Paganini
Сообщения: 111
Зарегистрирован: 06 фев 2018, 12:05
Имя: Марат Капранов
Откуда: Россия, Санкт-Петербург

Обработки при изменении полей формы

Сообщение Paganini »

Приветствую!

Давно назрело предложение - создать сценарии обработки (или даже, как вариант, сделать интерфейс для создания таких сценариев самими администраторами) при изменении полей сущности.

1. Задача: нужно добавить новое поле в сущность, которая уже в продакшене.

Проблема: если после этого на основе свежедобавленного поля будет создан какой-то процесс или даже просто фильтр, он не будет отрабатывать корректно, ведь в базе записи не заполнены никакими данными. Это не всегда очевидно для Администратора, если он указал какое-либо значение "Раскрывающегося списка" по умолчанию, и никогда не очевидно для пользователей приложения - как так, поле вроде есть (и столбец есть), а фильтр по нему не работает, и автостатусы не работают и т.п.

Решение:
если в сущности уже есть данные, то изменение формы (добавление или редактирование полей, их типов) приводит к срабатыванию сценариев, если таковые назначены. При добавлении упомянутого "Раскрывающегося списка" с заданным параметром "Значение по умолчанию" может всплыть модальное окно с предложением обновить все имеющиеся записи сущности либо согласно тому самому "Значению по умолчанию", либо произвольно, либо отказаться от любезного предложения. Там же можно указать, что пока данные не будут каким-либо образом заполнены, это может вызывать некоторые непонятки.

2. Задача: в процессе эксплуатации сущности Администратору посыпались просьбы поменять поле "Дата" на "Текстовое поле", так как выяснилось, что иногда нужно писать не только дату, а, скажем, какой-то свободный комментарий (типа "дату не можем поставить, ибо клиент оказался мразью"). Администратор меняет поле "Дата" на поле "Текстовый ввод".

Проблема: Администратор не знает, как именно приложение проведет преобразование типов данных, и произведет ли.

Решение:
вариант а) приложение само предложит ему перенести текстовое представление даты в новое поле типа Текст
вариант б) Администратор прежде чем заниматься редактированием формы, создаст сценарий переопределения типа данных, и тогда сможет перевести дату во что угодно - хоть в Timestamp, хоть в любой формат текстового представления, или вообще данные похерить.

Резюме
Предоставить возможность Администратору самому навешивать сценарии конвертации данных при редактировании фрмы (или при создании новых полей - заполнять данными или нет, какими именно и на основе каких правил) даст грандиозную возможность более гибко редактировать уже используемые в продакшене сущности без страха потерять кучу данных в таблице.
Можно и не заморачиваться с этими пользовательскими сценариями, определив прозрачно максимальное количество правил преобразования данных, расписав их в Справке и добавив в подсказки в самой консоли. Можно ограничится лишь предложением заполнять базу или нет, и чем заполнять, при создании нового поля в Сущности, которая уже содержит данные.
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Обработки при изменении полей формы

Сообщение support »

Предложение отклоняется. Вы там как наставите сценариев, а потом мне будете писать, ой, что то у меня данные пропали или все поломалось и т.д.

Для подобный манипуляций, ставьте тестовую версию программы и на ней проверяйте как себя поведет программа, если дату поменять на текст. Сразу скажу что так не выйдет. Нужно иметь доп. поле для комментария потому что дата - это timestamp (число).

При добавлении нового поля и если при этом нужно обновить уже существующие данные, есть для этого массовое обновление и лучше это делать в ручную. Так надежнее.
Ответить