Формулировка проблемы: во многих вариантах использования форм, в частности, в качестве дополнительной карточки в документообороте требуется реализовать версионность форм.
Решение: Необходимо реализовать обязательное версионирование
самих форм;
файлов по формам;
Необходимо реализовать следующие стандартные действия с файлами по формам:
просмотр произвольной версии файла по форме (из числа имеющихся);
откат на произвольную версию файла по форме;
Логика этих действий должна повторять аналогичную логику для
произвольных файлов в хранилище Synergy
.
Содержимое файла по форме (в виде JSON) должно сохраняться в
соответствующую файлу по форме JCR-ноду. Кроме этого, файл по форме
должен хранить как собственный номер версии, так и номер версии
формы. При этом в комментарии к версии соответствующего файла в
хранилище должен попадать следующий текст:
Версия данных: 6, версия формы: 2 (пример)
.
Номер версии формы в редакторе форм должен увеличиваться при каждом открытии формы на редактирование, а также должна быть возможность указать его вручную: если необходимо изменить форму (набор, тип полей и т.д.) и при этом преобразовать имеющиеся данные по этой форме к новому формату, то при изменении формы необходимо оставить ей старый номер версии (сам процесс преобразования, в данном случае, осуществляется при первом после изменения открытии файла по форме).