Этот вид выглядит как комбинация вопросника и списка задач. Я думаю, что использование списка вопросников могло бы обеспечить эту функциональность, по крайней мере, да нет -> перейти к следующему биту задачи, в примечаниях, в которых я не так уверен. А в анкете хранится информация о пользователе, который ее заполнил.
Другая опция работает с рабочими процессами, которые запускаются каждый раз, когда пользователь вводит да / нет, чтобы ответить на следующий вопрос, а затем переходят в спящий режим, пока пользователь не выполнит эту задачу. Это на основе конструктора SharePoint, хотя. (Или на основе кода, если вы собираетесь создать собственный рабочий процесс в Visual Studio.)
Проблема со списками вопросников заключается в том, что они должны быть заполнены полностью за один раз, в списке вопросников нет функции «сохранить и продолжить позже».
Еще одна большая проблема здесь - это безопасность. Вы не хотите, чтобы сотрудники клиента A видели, что делают сотрудники клиента B. (В списке вопросников есть возможность запретить просмотр любых ответов, кроме ваших собственных, я считаю).
Вывод:
Проблема безопасности в сочетании с тем фактом, что вопросник поможет вам продвинуться далеко вперед (особенно тот факт, что его необходимо заполнить за один раз), подводит меня к выводу, что для этого потребуется специальная разработка. i.e.:
- пользовательская страница, на которой пользователь может заполнить контрольный список
- список для хранения различных контрольных списков
- список, содержащий вопросы с поиском в списке определений контрольного списка
- список ответов, в котором хранятся ответ и примечания, с поиском в списке вопросов
список ответов должен быть в состоянии установить безопасность на уровне элемента при создании элемента (то есть itemeventreceiver), давая человеку, который ничего не ответил, кроме разрешения на чтение только для его / ее собственных элементов,
новые ответы необходимо будет добавить в список ответов с помощью пользовательского кода, использующего привилегии RunWithElevated, поскольку сам список будет полностью доступен только для администраторов.
На странице ввода контрольного списка необходимо проверить, насколько далеко пользователь заполнил контрольный список. Контрольный список может быть определен по:
- раскрывающийся список, показывающий все контрольные списки,
- ссылка на главной странице (поддержки), включающая уникальный идентификатор элемента контрольного списка в строку запроса. Поскольку я предложил хранить контрольные списки в списке, вы можете использовать uniqueid контрольного списка listitem, который представляет собой guid, поэтому любое вмешательство в строку запроса вряд ли приведет к тому, что они попадут в другой контрольный список.