Практикум. Система анкетирования и исследования клиентов. Объектная модель
Для решения рассматриваемой бизнес-задачи необходимо построить объектную модель, содержащую следующие типы объектов:
-
Анкета клиента – ключевой тип объектов, с которым взаимодействуют пользователи. В нем хранится информация об ответах клиента в анкете;
-
Данные клиента – таблица для хранения данных о клиентах, а именно их персональных данных;
-
Справочник – основной тип-родитель для создаваемых в Системе справочников:
-
Семейное положение – справочник для хранения данных статусе семейного положения клиента;
-
Тип деятельности – справочник для хранения данных о роде занятий клиента;
-
Категория должности – справочник для хранения информации о должности клиента;
-
Уровень образования – справочник для хранения информации об образовании клиента;
-
Уровень дохода в месяц – справочник для хранения информация о доходе клиента;
-
Категория прав – справочник для хранения данных об имеющихся категориях прав клиента;
-
Тип кузова автомобиля – справочник для хранения данных о предпочитаемых типах кузова автомобиля;
-
Цель клиента – справочник для хранения данных о намерениях клиента купить или заменить свой автомобиль;
-
Критерии выбора автомобиля – справочник для хранения данных о факторах, которыми руководствуется клиент при выборе автомобиля;
-
Марка автомобиля – справочник для хранения данных о текущих марках автомобилей клиента;
-
Стоимость автомобиля – справочник для хранения данных о стоимости автомобиля.
-
Целевая объектная модель выглядит следующим образом:
Создание предметной области
Для удобства работы на платформе предусмотрена работа с объектной моделью данных в виде ER-диаграммы (диаграммы предметной области), которая наглядно отображает состав и связи между элементами настраиваемой объектной модели.
Для создания новой ER-диаграммы следует на стартовой странице в виджете «Предметные области» нажать на кнопку «Создать».
Создайте новую предметную область. Задайте для предметной области Наименование «Исследование клиентов автосалона». Сохраните предметную область с помощью кнопки на верхней панели.
Определение типов объектов
Для реализации объектной модели используются типы объектов для описания сущностей.
В редакторе предметной области предусмотрено добавление уже имеющихся типов объектов и создание новых.
Определение справочников
Определение справочника-родителя
Необходимо создать «Справочник» - тип объектов, хранящий экземпляры дочерних справочников. Он используется для стандартизации атрибутивного состава для типов-справочников, а также реализации их связи для обращения к значениям каждого при необходимости.
Создайте новый тип объектов, для этого на предметной области необходимо нажать на кнопку «Создать новый тип объекта».
В появившемся модальном окне в блоке «Основное» расположены поля, отвечающие за наименование объекта, его отражения в БД в качестве реляционной таблицы, а также указывается объект-родитель, от которого будут унаследованы базовые атрибуты и свойства. Родитель «Объект» - является абстрактным объектом, содержащим минимально необходимый набор атрибутов.
Корректно заполнить поля «Наименование таблицы» и «Родитель», так как после сохранения типа, изменить их будет нельзя. |
В появившемся окне заполните поле Наименование – «Справочник» и идентификатор – [DICTIONARY]. В качестве родителя выберите тип объектов «Объект» и сохраните тип объектов.
Вернитесь к предметной области с помощью кнопки «Ок». Вы можете перемещать тип объектов на предметной области, используя принцип перетаскивания drag&drop.
Сохраните настройки предметной области с помощью кнопки на панели управления.
Определение дочерних справочников
Создайте справочник «Семейное положение» [FAMILY_STATUS], в качестве объекта-родителя выберите созданный тип объектов «Справочник». Сохраните тип объектов и вернитесь к предметной области с помощью кнопки «Ок».
Аналогично создайте следующие типы объектов, выбрав в качество объекта-родителя «Справочник»:
-
«Тип деятельности» [OCCUPATION];
-
«Категория должности» [JOB_POSITION];
-
«Категория прав» [LICENSE_CATEGORY];
-
«Тип кузова автомобиля» [TYPE_BODY_AUTO];
-
«Цель клиента» [CUSTOMER_AIM];
-
«Критерии выбора автомобиля» [SELECTION_CRITERIA];
-
«Марка автомобиля» [AUTO_BRAND].
Сохраните предметную область.
Создайте справочник «Уровень образования» [EDUCATION_LEVEL], в качестве объекта-родителя выберите тип объектов «Справочник». Сохраните тип объектов.
В модальном окне настройки типа объектов в нижней части окна на первой вкладке расположены атрибуты объекта. На вкладке «Атрибуты» отображается список всех атрибутов данного типа в таблице. В списке атрибутов указываются унаследованные (родительские), существующие и созданные пользователем атрибуты.
Чтобы добавить существующие в системе атрибуты, необходимо нажать на кнопку «Добавить существующий» и в появившемся модальном окне выбрать интересующий из перечня атрибутов. Использование существующих атрибутов позволит избежать дублирования данных и расширения базы данных.
Добавьте атрибут, который будет хранить информацию о порядке расположения экземпляров. Добавьте существующий атрибут, для этого нажмите на кнопку «Добавить существующий». В модальном окне активируйте переключатель «Выбор атрибута из полного списка атрибутов» и в поле «Атрибут» с помощь поиска найдите и выберите атрибут «Порядок» [ORD], затем подтвердите с помощью кнопки «Добавить».
После этого в списке атрибутов отобразится добавленный атрибут. Сохраните настройки типа объектов и вернитесь к предметной области с помощью кнопки «Ок».
Аналогично создайте типы объектов «Уровень дохода в месяц» [INCOME_LEVEL] и «Стоимость автомобиля» [AUTO_COST], в качестве объекта-родителя выберите тип объектов «Справочник». В оба типа объектов аналогично добавьте существующий атрибут «Порядок» [ORD].
Сохраните предметную область.
Определение типа объектов «Данные клиента»
Создайте новый тип объектов «Данные клиента» [CUSTOMER_DATA] — тип объектов, экземпляры которого будут содержать персональные данные клиентов. В качестве объекта родителя выберите тип «Сотрудник» – системный тип объектов с определенным набором минимальных атрибутов, необходимых для хранения персональных данных. Сохраните настройки типа объектов.
На вкладке «Атрибуты» настройте атрибутивный состав типа объектов «Данные клиента». В списке атрибутов указываются унаследованные (родительские), существующие и созданные пользователем атрибуты. Для того чтобы отобразить список родительских атрибутов, необходимо активировать переключатель «Показать атрибуты родительского типа».
В списке родительских атрибутов уже содержатся атрибуты для описания ФИО, даты рождения, пола, телефона и электронной почты, поэтому создавать их дополнительно нет необходимости.
Создайте новый атрибут для хранения информации о возрасте клиента, для этого нажмите на кнопку «Создать».
В модальном окне настройки атрибута его параметры расположены на следующих вкладках:
-
Основное – ввод основной информации об атрибуте;
-
Визуал – выбор визуального представления атрибута;
-
Версионность значений – определение зависимости значения атрибута от времени;
-
События – настройка дополнительных действий при изменении значения атрибута в объекте;
-
Дополнительное – ввод иных (некритичных) характеристик атрибута.
На вкладке «Основное» заполните поля:
-
Наименование – «Возраст»;
-
Идентификатор – «CLIENT_AGE»;
-
Тип – «Целое число»;
-
Минимум – «18».
Минимальное значение возраста «18», так как именно в этом возрасте человек может иметь водительские права.
Сохраните настройки атрибута с помощью кнопки «Ок». После этого атрибут появится в списке.
Сохраните настройки типа объектов и вернитесь к предметной области с помощью кнопки «Ок». После этого сохраните изменения на предметной области.
Определение типа объектов «Анкета клиента»
Создайте новый тип объектов «Анкета клиента» [QUESTIONNAIRE] — тип объектов, экземпляры которого будут содержать результаты анкеты клиента. В качестве объекта родителя выберите «Объект» – системный базовый тип объектов, который является родителем для каждого типа объектов в Системе. Сохраните настройки типа объектов.
Добавьте атрибуты для типа объектов (см. Таблица 1).
Таблица 1. Атрибуты типа объектов «Анкета клиента»
Тип атрибута |
Наименование |
Наименование поля таблицы |
Тип атрибута |
Обязательность |
Значение по умолчанию |
Дополнительные настройки |
Визуал |
Существующий |
Ответственный сотрудник |
EMP_RESP |
Объект |
Да |
- |
Тип объекта - Сотрудник |
- |
Существующий |
Возраст |
AGE |
Целое число |
Да |
- |
минимум – 18 |
- |
Новый |
Наличие прав |
IS_LICENSE_AVAILABLE |
Логический |
Да |
Нет |
- |
Логический атрибут в виде checkbox’а |
Новый |
Наличие авто |
IS_CAR_AVAILABLE |
Логический |
Да |
Нет |
- |
Логический атрибут в виде checkbox’а |
Новый |
Номер анкеты |
PROFILE_NUMBER |
Целое число |
Да |
- |
- |
- |
Новый |
Количество автомобилей |
CAR_COUNT |
Целое число |
Нет |
0 |
минимум – 0 |
- |
Новый |
Комментарий клиента |
CLIENT_COMMENT |
Текст |
Нет |
- |
Размер – 2000 |
Многострочный ввод |
Сохраните настройки типа объектов. Вернитесь на предметную область.
Настройка связей между типами объектов
Настройте связи между типами объектов на предметной области. Связь между типами объектов устанавливает отношения между совпадающими значениями в ключевых полях, что позволяет обращаться к записям одного типа из другого.
Существует 3 вида взаимосвязи между объектами:
-
Наследование – ссылка на родительский объект;
-
Ассоциация – создание объектного атрибута – атрибута со ссылкой на тип объектов;
-
Агрегация – создание дочернего атрибута – атрибута, хранящего в себе набор записей другой таблицы (типа объекта, указанного при настройках атрибута), которая в свою очередь имеет объектную ссылку на текущую таблицу.
Перед настройкой связей скроем лишние связи от справочников к родительскому типу объектов «Справочник». Для этого необходимо открыть контекстное меню и выбрать действие «Убрать Тип объекта из Предметной области».
Связи с типом объектов «Данные клиента»
Создайте ассоциативную связь от типа объектов «Данные клиента» к типу объектов «Семейное положение». Для этого для типа объекта «Данные клиента» вызовите контекстное меню. Выберите действие «Создать ассоциативную связь» и протяните связь к типу объектов «Семейное положение», нажав на соответствующий тип объектов.
Появится предзаполненное модальное окно создания объектного атрибута. Измените значение поля «Обязательность» на «Да». Сохраните атрибут с помощью кнопки «Ок», тем самым создав ассоциативную связь.
После создания связи между таблицами типов объектов появится стрелка, указывающая, что на один объект типа «Семейное положение» приходится несколько объектов типа «Данные клиента» (связь один ко многим).
Аналогично, создайте ассоциативную связь от типа объектов «Данные клиента» к следующим типам объектов:
-
Категория должности (обязательность «Да»);
-
Тип деятельности (обязательность «Да»);
-
Уровень дохода в месяц (обязательность «Да»);
-
Уровень образования (обязательность «Да»).
Создать ассоциативную связь можно с типом объектов, который не расположен на предметной области. Для этого перейдите к настройке типа объектов «Данные клиента», дважды нажав на него на предметной области. Создайте новый атрибут и в модальном окне заполните следующие поля:
-
Наименование – Город;
-
Наименование поля таблицы – CITY_ID;
-
Тип – Объект;
-
Обязательность – Да.
В поле «Тип объекта» создайте новый тип, для этого раскройте панель дополнительных действий и выберите команду «Добавить».
Появится модальное окно создания типа объектов. Создайте тип объектов «Город» [BLANK_CITY], объект-родитель «Справочник» - экземпляры этого типа объектов будут хранить данные о городах.
Сохраните настройки типа объектов с помощью кнопки «Ок». В окне настройки атрибута поле «Тип объекта» автоматически заполнится наименованием созданного типа объектов.
Сохраните атрибут, настройки типа объектов и вернитесь к предметной области с помощью кнопки «Ок».
Для того чтобы отобразить скрытый тип объектов, нажмите на индикатор рядом с объектным атрибутом. После этого на предметной области появится таблица типа объектов.
Связи с типом объектов «Анкета клиента»
Аналогично настройте связи для типа объектов «Анкета клиента». Создайте обязательные объектные атрибуты, то есть связи ассоциации к следующим справочникам:
-
Категория прав – активируйте переключатель «Множественный выбор»;
-
Марка автомобиля – активируйте переключатель «Множественный выбор»;
-
Критерии выбора автомобиля – активируйте переключатель «Множественный выбор»;
-
Цель клиента;
-
Тип кузова автомобиля;
-
Стоимость автомобиля;
-
Данные клиента.
Таким образом предметная область будет выглядеть следующим образом:
Настройка алгоритмов на типах объектов
Настройка выражений
Выражения – это алгоритмы на типе объекта, выполняющие автоматическое заполнение привязанных к ним атрибутов по заранее описанным правилам. С помощью выражений можно реализовать автонаименование объектов, их нумерацию, расчет вычислимых показателей, а также заполнение атрибутов данными.
Создание и настройка выражений происходит в настройках типа объекта на вкладке «Выражения\Автокалькуляции». Если выражения наследуются от родительского типа объектов, их невозможно отредактировать и удалить на уровне дочернего типа. Например, все типы объектов по умолчанию содержат выражение для автоматического заполнения наименования объекта. Указанное выражение наследуется от типа «Объект». Для задания нового алгоритма следует использовать кнопку «Переопределить настройки».
Для создания нового выражения воспользуйтесь кнопкой «Добавить новое выражение».
Тип объектов «Данные клиента»
Перейдите к настройкам типа объектов «Данные клиента» и перейдите на вкладку «Выражения/Автокалькуляция».
Добавьте выражение для подсчета возраста клиента на основе указанной даты рождения. Создайте новое выражение и в модальном окне добавьте новый алгоритм: раскройте панель дополнительных действий и выберите команду «Добавить».
В появившемся модальном окне настройки алгоритма необходимо выбрать папку хранения: все системные и созданные пользователями алгоритмы выражений хранятся в реестре алгоритмов объектов в папке «Карточки объектов», для удобства лучше создать отдельную папку. Для этого на панели управления для поля с указанием папки раскройте панель дополнительных действий и выберите команду «Добавить».
Заполните поле Наименование – «Система анкетирования». Сохраните папку с помощью кнопки «Ок». После этого наименование отобразится в соответствующем поле.
В окне настройки алгоритма заполните поля в группе «Общая информация»: создайте алгоритм «Рассчитать возраст клиента» [COUNT_CLIENT_AGE_ALG]. Базовый тип объектов будет заполнен автоматически системой. Сохраните алгоритм с помощью кнопки сохранения на панели управления.
Данный алгоритм будет рассчитывать возраст относительно текущей даты.
В группе «Формула/алгоритм» заполните формулу алгоритма:
Для этого воспользуйтесь следующими функциями:
Для определения формулы алгоритма, выполните следующие шаги:
1. В группе «Алгоритмы» выберите функцию var: в модальном окне заполните поле c названием переменной значением «curr_date» и создайте ее;
2. В группе «Даты» выберите функцию «currentDate», чтобы переменной присваивалась текущая дата;
3. В новой строке в поле формулы алгоритма создайте переменную «birthday». В качестве значения переменной определите значение атрибута. Для этого в группе «Источники» выберите функцию «attr»: в модальном окне в списке атрибутов базового типа объекта (указанного в группе «Общая информация»), выберите и добавьте атрибут «День рождения» с помощью кнопки «Ок»;
4. Создайте переменную «curr_month», которая будет хранить значение текущего месяца. В качестве присваемого значения в группе «Даты» вызовите функцию «getMonth»: в скобках укажите переменную «curr_date», выбрав ее в списке после вызова функции «var»;
5. Аналогично создайте переменную «b_month», которая будет хранить месяц дня рождения;
6. Аналогично создайте переменную «curr_day» и «b_day», которые будут хранить значение дня текущей даты и дня рождения соответственно. Для этого в группе «Даты» воспользуйтесь функцией «getDay»;
7. Создайте переменную «age» и с помощью клавиатуры присвойте ей значение 1;
8. В группе «Логико-арифметические» вызовите функцию «if»: в скобках заполните условие, вставив значения переменных с помощью функции «var». Воспользуйтесь клавиатурой, чтобы ввести знак «не меньше»;
9. В качестве операторов к выполнению снова вызовите функцию «if» и также заполните условие;
10. В качестве операторов к выполнению присвойте переменной «age». Для этого в группе «Дата» и вызовите функцию «reportDatesBetween»: в модальном окне выберите единицу вычисления «Год» для расчета разницы в годах. В поле формулы алгоритма удалите второй аргумент и укажите переменную «birthday», а вместо последнего аргумента – «curr_date». Затем после функции с помощью клавиатуры введите «-1»;
11. После блока операторов внутренней функции «if» в группе «Логико-арифметические» вызовите функцию «else», в блоке операторов присвойте переменной «age» значение, вызвав функцию «reportDatesBetween» и, аналогично шагу 10, изменив аргументы;
12. После блока операторов внешней функции «if» вызовите функцию «else» и заполните блок аналогично шагу 11;
13. После блока операторов функции «else» в группе «Алгоритмы» вызовите функцию «return», а затем вставьте переменную «age».
Сохраните алгоритм с помощью кнопки «Ок».
Для того чтобы значение, полученное в результате работы алгоритма, автоматически сохранялось в атрибуте, в модальном окне активируйте переключатель «Установить результат в атрибут», в поле «Атрибут» выберите атрибут «Возраст», а в поле «Автоматический пересчет выражения» – «При изменении атрибутов, используемых в алгоритме».
Сохраните настройки выражения с помощью кнопки «Сохранить».
Сохраните изменения на типе объектов и вернитесь к предметной области с помощью кнопки «Ок».
Тип объектов «Анкета клиента»
Необходимо добавить выражение, которое будет присваивать номер для каждой новой анкеты. Для этого используется тип объектов «Автонумерация», который присваивает порядковый номер созданным объектам в момент их сохранения.
Для создания объекта автонумерации в новой вкладке откройте пункт меню «Справочники» - «Автонумерация».
В реестре автонумераций создайте новый объект, нажав на кнопку создания на панели управления.
Создайте новый объект «Нумерация анкет» [BLANK_COUNTER] и сохраните с помощью кнопки на панели управления.
Вернитесь на вкладку с предметной областью, откройте настройки типа объектов «Анкета клиента» и перейдите на вкладку «Выражения/Автокалькуляция».
Создайте новое выражение. Добавьте новый алгоритм «Алгоритм нумерации анкет» [BLANK_COUNT_ALG], базовый тип объектов – «Анкета клиента». Укажите папку хранения алгоритма «Система анкетирования». Сохраните настройки алгоритма. Алгоритм будет возвращать следующее порядковое значение объектам типа.
В группе «Формула/алгоритм» заполните формулу алгоритма:
Чтобы повторить алгоритм воспользуйтесь функцией «SequenceNextVal» в группе «Дополнительные»: в модальном окне выберите созданную ранее последовательность «Нумерация анкет» и вставьте в формулу алгоритма с помощью кнопки «Готово».
Сохраните алгоритм с помощью кнопки «Ок». В модальном окне настройки выражения активируйте переключатель «Установить результат в атрибут», в поле «Атрибут» выберите атрибут «Номер анкеты», а в поле «Автоматический пересчет выражения» – «При первом сохранении». Сохраните настройки выражения и типа объектов.
Создайте новое выражение для автозаполнения атрибута «Ответственный сотрудник» значением текущего пользователя системы. Добавьте новый алгоритм «Алгоритм заполнения ответственного сотрудника» [RESP_EMP_RESP_ALG], базовый тип объектов – «Анкета клиента». Укажите папку хранения алгоритма «Система анкетирования». Сохраните настройки алгоритма. Алгоритм будет возвращать наименование текущего сотрудника.
В группе «Формула/алгоритм» заполните формулу алгоритма:
Чтобы повторить алгоритм воспользуйтесь функцией возвращения атрибутов текущего пользователя в группе «Пользователи и группы»: в модальном окне выберите атрибут «Сотрудник» и вставьте в формулу алгоритма с помощью кнопки «Ок».
Сохраните алгоритм с помощью кнопки «Ок». В модальном окне настройки выражения активируйте переключатель «Установить результат в атрибут», в поле «Атрибут» выберите атрибут «Ответственный атрибут», а в поле «Автоматический пересчет выражения» – «При первом сохранении». Сохраните настройки выражения и типа объектов.
В случае, если выражения наследуются от родительского типа объектов, их невозможно отредактировать на уровне дочернего типа. В этом случае следует выделить выражение и воспользоваться кнопкой «Переопределить настройки». Переопределите настройки выражения, заполняющего атрибут «Наименование».
Создайте алгоритм «Алгоритм наименования анкеты» [NAME_BLANK_ALG], базовый тип объектов – «Анкета клиента». Укажите папку хранения алгоритма «Система анкетирования». Сохраните настройки алгоритма. Алгоритм будет возвращать сборное наименование для объектов типа.
В группе «Формула/алгоритм» заполните формулу алгоритма:
Для этого воспользуйтесь следующими функциями:
Выполните следующую последовательность шагов, чтобы повторить алгоритм:
-
В группе «Текст» вызовите функцию «text», в формуле алгоритма в кавычках введите «Анкета №», затем для склеивания фрагментов строки введите с помощью клавиатуры «+»;
-
Вставьте значение атрибута «Номер анкеты» с помощью функции «attr»;
-
Аналогично шагу 1 введите текст и знак сложения;
-
В группе «Дата» вызовите функцию «dateFormat»: в качестве первого аргумента укажите атрибут «Дата создания», второй аргумент, указывающий формат даты, измените на «dd.MM.yyyy»;
Сохраните алгоритм с помощью кнопки «Ок».
Создайте новое выражение для автозаполнения атрибута «Возраст» значением возраста клиента в момент создания анкеты.
Добавьте новый алгоритм «Возраст клиента анкеты» [AGE_CLIENT_BLANK_ALG], базовый тип объектов – «Анкета клиента». Укажите папку хранения алгоритма «Система анкетирования». Сохраните настройки алгоритма. Алгоритм будет возвращать наименование текущего сотрудника.
В группе «Формула/алгоритм» заполните формулу алгоритма:
Чтобы повторить алгоритм воспользуйтесь функцией attr в разделе «Источники»: в модальном окне выберите цепочечный атрибут «Данные клиента» - «Возраст» и вставьте в формулу алгоритма с помощью кнопки «Ок».
Сохраните алгоритм с помощью кнопки «Ок». В модальном окне настройки выражения активируйте переключатель «Установить результат в атрибут», в поле «Атрибут» выберите атрибут «Возраст», а в поле «Автоматический пересчет выражения» – «При первом сохранении». Сохраните настройки выражения и типа объектов.
Сохраните изменения на типе объектов с помощью кнопки сохранения на панели управления.
Настройка проверок
Проверки представляют собой разновидность алгоритмических выражений, предназначенных для принятия решений том, удовлетворяет ли добавляемый экземпляр определенным условиям и его сохранения. В основе проверки лежит алгоритм, возвращающий значение «Истина» или «Ложь» в зависимости от значения атрибута для экземпляра типа объектов.
Если список проверок типа объекта не пуст, то при сохранении данных карточки объекта автоматически выполняются все проверки. Если какая-либо проверка не пройдена, то Система блокирует сохранение данных и извещает пользователя об ошибке валидации входных данных.
В настройках типа объектов «Анкета клиента» перейдите на вкладку «Проверка».
До сохранения анкеты необходимо производить проверку на наличие значения в атрибуте «Категория прав», если у атрибута «Наличие прав» указано значение «Да».
Создайте новую проверку и заполните следующие поля:
-
Наименование – «Проверка наличия категорий прав»;
-
Обязательность выполнения – «Да»;
-
Возможность прекращения необязательных проверок – «Да»;
-
Тип проверки – «Алгоритмическая»;
-
Жизненный цикл – «Перед сохранением»;
-
Описание – «Укажите категорию(-ии) прав, если у респондента есть права».
В поле «Алгоритм проверки» создайте новый: раскройте панель дополнительных действий и выберите команду «Добавить».
Создайте алгоритм «Алгоритм проверка наличия прав» [CHECK_LICENSE_ALG], базовый тип объектов – «Анкета клиента». Укажите папку хранения алгоритма «Система анкетирования». Алгоритм будет проверять логическое значение поля атрибута «Наличие прав» и наличие значения в поле атрибута «Категория прав», если условие возвращает значение «true», то сохранение объекта становится невозможным.
В группе «Формула/алгоритм» заполните формулу алгоритма:
Для этого воспользуйтесь следующими функциями:
Выполните следующую последовательность действий, чтобы повторить алгоритм
-
Для того чтобы в алгоритме указать условие, в группе «Логико-арифметические» вызовите функцию «iif». В поле формулы алгоритма в скобках заполните условие. Для этого в группе «Источники» с помощью функции «attr» вставьте атрибут «Наличие прав». С помощью клавиатуры введите «= true»;
-
Для того чтобы указать еще одно условие, которое должно обязательно выполняться (логическое «И»), в группе «Логико-арифметические» вызовите функцию «and» (или введите ее с помощью клавиатуры). Также в группе «Логико-арифметические» вызовите функцию «isNull», которая будет проверять наличие значения в указанном атрибуте. В скобках в качестве параметра вставьте атрибут «Категория прав»;
-
Заполните второй и третий аргумент функции «iif» с помощью клавиатуры: второй аргумент указывает на то, что возвращает функция при значении «Истина» для логического выражения (непустое значение атрибута), третий – если результат логического выражения – «Ложь» (пустое значение атрибута).
Сохраните алгоритм и настройки проверки с помощью кнопки «Ок».
До сохранения анкеты необходимо производить проверку на наличие значения в атрибутах «Количество автомобилей» и «Марка автомобиля», если у атрибута «Наличие авто» указано значение «Да».
Создайте новую проверку и заполните следующие поля:
-
Наименование – «Проверка данных о текущем автомобиле»;
-
Обязательность выполнения – «Да»;
-
Возможность прекращения необязательных проверок – «Да»;
-
Тип проверки – «Алгоритмическая»;
-
Жизненный цикл – «Перед сохранением»;
-
Описание – «Если у респондента есть автомобиль(-и), укажите количество и марку(-и)».
В поле «Алгоритм проверки» создайте новый: раскройте панель дополнительных действий и выберите команду «Добавить».
Создайте алгоритм «Проверка данных о текущем автомобиле» [CHECK_CUSTOMER_AUTO_ALG], базовый тип объектов – «Анкета клиента». Укажите папку хранения алгоритма «Система анкетирования». Алгоритм будет проверять значение логического атрибута «Наличие авто» и значения атрибутов «Текущее количество машин» и «Марка автомобиля», если условие возвращает значение «true», то сохранение объекта становится невозможным.
В группе «Формула/алгоритм» заполните формулу алгоритма:
Для этого воспользуйтесь следующими функциями:
Выполните следующую последовательность действий, чтобы повторить алгоритм:
-
Для того чтобы в алгоритме указать условие, в группе «Логико-арифметические» вызовите функцию «iif», в скобках заполните условие. Для этого в группе «Источники» с помощью функции «attr» вставьте атрибут «Наличие авто». С помощью клавиатуры введите «= true»;
-
Для того чтобы указать еще одно условие, которое должно обязательно выполняться (логическое «И»), в группе «Логико-арифметические» вызовите функцию «and» (или введите ее с помощью клавиатуры). Чтобы проверить значение атрибута «Количество автомобилей» на выполнение условия, что его значение равняется «0», вставьте атрибут «Количество автомобилей» и с помощью клавиатуры введите «= 0»;
-
В группе «Логико-арифметические» вызовите служебное слово «or» (или введите его с помощью клавиатуры). Вставьте в формулу проверку наличия значения атрибута «Марка автомобиля», для этого в группе «Логико-арифметические» воспользуйтесь функцией «isNull», а в скобках в качестве аргумента вставьте атрибут «Марка автомобиля»;
-
Заполните второй и третий аргумент функции «iif» с помощью клавиатуры: второй аргумент указывает на то, что возвращает функция при соблюдении условий, третий – если условия не соблюдены.
Сохраните алгоритм и настройки проверки с помощью кнопки «Ок».
До сохранения анкеты необходимо производить проверку на наличие значения в атрибутах «Стоимость автомобиля», «Критерии выбора автомобиля» и «Тип кузова автомобиля», если у атрибута «Цель клиента» указано значение отличное от «Не собираюсь покупать/менять автомобиль».
Создайте новую проверку и заполните следующие поля:
-
Наименование – «Проверка цели клиента»;
-
Обязательность выполнения – «Да»;
-
Возможность прекращения необязательных проверок – «Да»;
-
Тип проверки – «Алгоритмическая»;
-
Жизненный цикл – «Перед сохранением»;
-
Описание – «Если респондент хочет заменить/купить автомобиль, заполните желаемую стоимость автомобиля, тип кузова автомобиля и чем он руководствуется при выборе автомобиля».
В поле «Алгоритм проверки» создайте новый: раскройте панель дополнительных действий и выберите команду «Добавить».
Создайте алгоритм «Алгоритм проверки цели клиента» [CHECK_CUSTOMER_AIM_ALG], базовый тип объектов – «Анкета клиента». Укажите папку хранения алгоритма «Система анкетирования». Алгоритм будет проверять выбранное значение в атрибуте «Цель клиента» и наличие значений в полях атрибутов «Критерии выбора автомобиля», «Тип кузова автомобиля» и «Стоимость автомобиля». Если цель клиента – купить или заменить автомобиль, то он должен заполнить все остальные поля, связанные с выбором автомобиля.
Сохраните настройки алгоритма с помощью кнопки на панели управления.
В группе «Формула/алгоритм» заполните формулу алгоритма:
Для этого воспользуйтесь следующими функциями:
Выполните следующую последовательность действий, чтобы повторить алгоритм:
1. В группе «Логико-арифметические» вызовите функцию «iif», в скобках заполните условие. Для этого в группе «Источники» с помощью функции «attr» вставьте атрибут «Цель клиента». С помощью клавиатуры введите «!=»;
2. Чтобы добавить элемент типа объектов, в группе «Источники» воспользуйтесь функцией «dict»: в модальном окне выберите тип объектов, элементы которого необходимо отобразить – «Цель клиента»;
3. Так как в этом типе объектов еще нет экземпляров, необходимо создать их, то есть заполнить реестр типа объектов. Для этого раскройте панель действий для кнопки создания экземпляра и выберите «В модальном окне»;
4. В появившемся окне заполните поле значением «Не собираюсь покупать/менять автомобиль» и сохраните с помощью кнопки «Ок». Чтобы вставить объект в алгоритм, выберите его в реестре и нажмите «Ок»;
-
В группе «Логико-арифметические» воспользуйтесь служебным словом «and» (или введите его с помощью клавиатуры в поле с формулой алгоритма). С помощью клавиатуры вставьте скобки.
-
В группе «Логико-арифметические» в скобках вызовите функцию «isNull», которая будет проверять наличие значения в поле атрибута. В скобках в качестве параметра вставьте атрибут «Критерии выбора автомобиля»;
-
В группе «Логико-арифметические» вызовите функцию «or» (или введите ее с помощью клавиатуры в поле с формулой алгоритма);
-
Аналогично шагу 6, вызовите функцию «isNull», в скобках в качестве параметра вставьте атрибут «Тип кузова автомобиля»;
-
В группе «Логико-арифметические» воспользуйтесь служебным словом «or» (или введите его с помощью клавиатуры в поле с формулой алгоритма);
-
Аналогично шагу 6, вызовите функцию «isNull», в скобках в качестве параметра вставьте атрибут «Стоимость автомобиля»;
-
Заполните второй и третий аргумент функции «iif» с помощью клавиатуры.
Сохраните алгоритм и настройки проверки с помощью кнопки «Ок».
Сохраните изменения на типе объектов.
Настройка событий
События – это алгоритмы, срабатывающие до и/или после сохранения экземпляра типа объектов или перед его удалением.
В настройках типа объектов «Анкета клиента» перейдите на вкладку «События». Создайте новое событие до сохранения, которое будет очищать значение некоторых полей при определённых условиях, чтобы избежать некорректных данных: это необходимо в случае, например, если была указана категория прав, а затем для атрибута «Наличие прав» было установлено значение «Нет». В поле «Событие до сохранения» раскройте панель дополнительных действий и выберите команду «Добавить».
Создайте алгоритм «Алгоритм очистки полей до сохранения» [CLEAR_FIELD_ALG], базовый тип объектов – «Анкета клиента». Укажите папку хранения алгоритма «Система анкетирования». Алгоритм будет очищать заполненное поле атрибута «Марка автомобиля» и устанавливать значение «0» для атрибута «Количество автомобилей».
В группе «Формула/алгоритм» заполните формулу алгоритма:
Для этого воспользуйтесь следующими функциями:
Выполните следующую последовательность действий, чтобы повторить алгоритм:
1. В группе «Логико-арифметические» вызовите функцию «if», в скобках заполните условие. Для этого в группе «Источники» с помощью функции «attr» вставьте атрибут «Наличие авто». С помощью клавиатуры введите «= false»;
2. Для того чтобы реализовать очистку значения атрибута, в блоке операторов вызовите функцию «attr»: в модальном окне активируйте переключатель «Установить значение», выберите атрибут «Количество автомобилей» и добавьте в формулу алгоритма с помощью кнопки «Ок». После этого в поле формулы алгоритма появится функция, которое присваивает атрибуту, указанному в качестве первого аргумента, значение, указанное в качестве второго аргумента. Для того чтобы атрибуту присваивалось значение «0», вместо «null» введите необходимое число с клавиатуры;
3. Для очистки атрибута с возможностью множественного выбора, в следующей строке операторов к выполнению с помощью клавиатуры введите функцию «clearMultiSelectValue». Для того чтобы значение менялось в текущем объекта, в скобках в качестве первого аргумента вставьте функцию «currentObject» из группы «Объекты», в качестве второго аргумента в кавычках укажите идентификатор атрибута, который необходимо очистить от значений: «Марка автомобиля» – «AUTO_BRAND_ID».
Сохраните алгоритм и настройки проверки с помощью кнопки «Ок».
Сохраните изменения на типе объектов и вернитесь к предметной области с помощью кнопки «Ок».
Наполнение справочников
Заполните справочник типа объектов «Стоимость автомобиля». Для этого на предметной области откройте настройки типа объектов «Стоимость автомобиля» и на панели управления с помощью кнопки «Открыть реестр» перейдите к реестру.
Реестр нового типа объектов по умолчанию пустой и не имеет экземпляров объектов. На панели инструментов расположены кнопки взаимодействия с реестром и объектами типа.
Создайте новый объект с помощью кнопки на панели управления. Заполните поля: Наименование – «до 1 млн. руб.», Порядок – «1». Сохраните объект с помощью кнопки сохранения, а затем вернитесь к реестру.
Создайте остальные объекты с помощью кнопки на панели управления. Заполните поля в соответствии с таблицей ниже (см. Таблица 2).
Таблица 2. Объекты типа объектов «Стоимость автомобиля»
Тип атрибута |
Наименование |
1 – 2 млн. руб. |
2 |
2 – 5 млн. руб. |
3 |
Более 5 млн. руб. |
4 |
После этого реестр будет выглядеть следующим образом:
Для того чтобы заполнить сразу несколько справочников и не переходить к каждому реестру по отдельности, можно создавать объекты в типе объектов «Справочник», который является родительским созданных ранее типов-справочников.
Для этого вернитесь на стартовую страницу, нажав на логотип в главном меню.
На виджете «Типы объектов» с помощью поиска найдите тип «Справочник» и нажмите на него, чтобы перейти к его настройкам.
Если тип объектов «Справочник» не отображается в виджете, есть несколько вариантов перехода к настройкам типа объектов:
-
Перейти к реестру типа объектов:
-
На стартовой странице на виджете «Типы объектов» с помощью кнопки «Показать все»;
-
С помощью пункта меню: «Администрирование» - «Управление объектами» - «Типы объектов»;
-
-
Перейти к предметной области, в которой точно расположен необходимый тип объектов:
-
На стартовой странице на виджете «Предметные области»;
-
С помощью пункта меню: «Администрирование» - «Управление объектами» - «Предметные области»;
-
Перейдите в реестр с помощью кнопки на панели управления «Открыть реестр». В реестре находятся экземпляры всех дочерних типов объектов. Создайте новый объект с помощью кнопки на панели управления. В модальном окне выберите тип объектов, экземпляр которого необходимо добавить.
Заполните реестры согласно таблице (см. Таблица 3).
Таблица 3. Наполнение справочников
Семейное положение |
Цель клиента |
Уровень дохода в месяц |
Уровень образования |
Город |
||
Наименование |
Наименование |
Наименование |
Порядок |
Наименование |
Порядок |
Наименование |
Женат/замужем |
Собираюсь купить новый автомобиль |
до 25 тыс. руб. |
1 |
Начальное |
1 |
Пермь |
Холост/не жената |
Собираюсь заменить автомобиль |
25-50 тыс. руб. |
2 |
Среднее |
2 |
Москва |
50-100 тыс. руб. |
3 |
Высшее |
3 |
Анапа |
||
100-200 тыс. руб. |
4 |
Ученая степень |
4 |
|||
200 тыс. руб. и более |
5 |
Заполнение остальных справочников будет рассмотрено позже (см. Настройка интеграций).
Настройка расписания запуска действий
Необходимо настроить автоматическое выполнение алгоритма по расчету возраста клиентов, для того чтобы хранить актуальную информацию в атрибуте «Возраст» для объектов типа «Данные клиента».
Автоматическое выполнение действий предполагает настройку запуска действий по расписанию. Для этого перейдите в реестр типа объектов «Расписание запуска действий» с помощью пункта меню «Администрирование» - «Настройки» - «Расписание запуска действий».
Создайте в реестре новый объект и заполните поля в разделе «Общие настройки» следующим образом:
-
Наименование: «Пересчитать возраст клиентов»;
-
Системное действие: «Запуск алгоритма»;
-
Расписание работы действия: «Ежедневно (7.00 утра)».
После выбора системного действия ниже появится раздел, в котором необходимо указать алгоритм и тип объектов для запуска. В поле «Алгоритм для выполнения» автоматически появится алгоритм, который заполняет параметры для запуска алгоритма. В это поле добавьте алгоритм «Рассчитать возраст клиента». В поле «Тип объекта для определения объектов для запуска» выберите из списка тип «Данные клиента».
Сохраните настройки планировщика с помощью кнопки .
Для того чтобы активировать автоматический запуск, необходимо в поле «Расписание действует» выбрать значение «Да».