Дублирование
Last updated
Last updated
Паттерн дублирования обязывает переносить часть полей между каталогами со смежными процессами. Дублирование полей между каталогами позволяет более гибко настраивать отчетность и фильтрацию в системе: добавляет новые поля в качестве фильтров, по которым можно настраивать разложение графиков.
Паттерн дублирования неразрывно связан с паттерном актуализации: зачастую продублированные значения должны быть актуализированы в соответствии со значениями-родителями.
Рассмотрим необходимость использования паттерна дублирования на примере учета заявок на активности, поступающих со стороны их участников.
В Бипиуме реализован функционал учета заявок на активности. В рамках этого функционала настроены каталоги с базой участников, активностями и заявками на участие в активностях. Каждый участник имеет определенный статус и может принимать участие сразу в нескольких активностях.
Так выглядит запись участника активности:
А так выглядит заявка на участие в активности:
Перед сотрудниками системы стоит задача в просмотре количества участников определенной активности в разрезе их текущих статусов в системе. Для решения этой задачи в записи заявки на активность должно быть дополнительное поле со статусом участника, указанного в этой заявке.
В реализации, описанной выше, графически оценить количество участников активности в разрезе их статусов — невозможно. Для того, чтобы это сделать нужно продублировать поле “Статус” из записи участника в заявку.
Следствием несоблюдения паттерна дублирования могут быть следующие проблемы:
Ограниченная возможность фильтрации записей
Ограниченная возможность построения графиков
Из-за отсутствия в каталоге вспомогательных полей для фильтрации решение некоторых задач связанных с анализом данных в системе становится затруднительным. Такие задачи всё ещё решаемы, но для этого сотрудникам необходимо анализировать данные сразу из нескольких каталогов в системе.
Такой подход увеличивает затрачиваемое сотрудниками время и может привести к переводу части их деятельности в другое ПО (например в Excel).
Так как в каталоге отсутствует часть полезных полей из других каталогов, в нем не будет возможности построить необходимые для анализа графические отчеты. Таким образом сотрудники не смогут наглядно анализировать текущее состояние процесса в системе.
Описанные выше проблемы могут быть решены использованием паттерна дублирования: для этого в целевом каталоге нужно продублировать нужные поля из связанных каталогов. В такой реализации сотрудники смогут использовать новые поля для фильтрации записей и построения графических отчетов.
В реализацию выше добавим поле “Статус участника” и наполним его теми же значениями, что есть в поле “Статус” в каталоге “Участники”:
Далее необходимо написать сценарий автоматизации, который будет автоматически заполнять поле “Статус участника” аналогичным значением из выбранной записи участника.
После добавления нового поля и написания сценария автоматизации необходимо проставить действующие значения всех статусов из “Участников” во все “Заявки на активности”, согласно паттерну актуальности.
Теперь в каталоге “Заявки на активности” возможно настроить дополнительную фильтрацию по статусам участников, а также создать графические отчеты с разложением по ним: