Практикум. Методика оценки нефинансовых компаний. Объектная модель
Реализация любого приложения начинается с создания предметной области, типов объектов, их атрибутов и настройки связи между элементами объектной модели.
Перед тем как приступить к настройке приложения необходимо выделить основные используемые понятия:
-
Атрибут – значимая характеристика бизнес-сущности, используется для идентификации, классификации, выражения количественной характеристики или состояния объекта;
-
https://docs.greendata.ru/platform/ru/architecture-of-system-objects.html#%D1%82%D0%B8%D0%BF%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0[Тип объектов] – набор характеристик (атрибутов) для описания бизнес-сущности;
-
https://docs.greendata.ru/platform/ru/architecture-of-system-objects.html#%D1%8D%D0%BA%D0%B7%D0%B5%D0%BC%D0%BF%D0%BB%D1%8F%D1%80%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0[Экземпляр] – набор сведений о конкретном объекте, создается Системой при заполнении данными;
-
https://docs.greendata.ru/platform/ru/architecture-of-system-objects.html#%D1%80%D0%B5%D0%B5%D1%81%D1%82%D1%80%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2[Реестр объектов] – накопитель сведений одного типа;
-
Связь – индикатор взаимоотношений между объектами. Существует 3 типа связей: наследования, агрегации и ассоциации.
При проектировании объектной модели существует возможность использовать готовые и создавать новые типы объектов. После описания типов объектов и определения их характеристик платформа автоматически создаст оптимальные таблицы, ключи, индексы, связи и структуры. Работа с объектной моделью включает в себя несколько этапов: Создание предметной области, на которой будет происходить создание объектной модели; Создание типов объектов. Перед созданием типа объектов необходима проверка отсутствия в Системе, что позволит обойти дублирование данных; Определение атрибутивного состава нового типа объектов и других настроек; Настройка связей ассоциации и агрегации между типами объектов; Наполнение типа объектов данными – экземплярами объектов – и последующее использование созданного типа в реализации бизнес-приложения.
Для решения рассматриваемой бизнес-задачи необходимо построить объектную модель, содержащую следующие типы объектов: Карточка оценки риска нефинансовой компании – ключевой тип объектов, с которым взаимодействуют пользователи для расчета оценки риска Клиента; Нефинансовая компания – системный тип объектов, используемый для хранения записей о Клиентах; Справочник – основной тип-родитель для создаваемых в Системе справочников: Адрес регистрации Клиента – справочник, который будет хранить варианты адреса регистрации Клиента; Сроки деятельности Клиента – справочник, который будет хранить варианты количества времени деятельности Клиента; Уровень поддержки собственников – справочник, который будет хранить уровни поддержки собственников в поддержке бизнеса; Рыночная позиция бизнеса – справочник, который будет хранить уровни конкуренции на рынке; Рейтинг – справочник, который будет хранить значения вариантах рейтинга; Финансовое положение Клиента – справочник, который будет хранить варианты финансового положения Клиента.
Целевая объектная модель должна выглядеть следующим образом:
Создание предметной области
Для удобства работы на платформе предусмотрена работа с моделью данных в виде ER-диаграммы (диаграммы предметной области), которая наглядно отображает состав и связи между элементами настраиваемой объектной модели.
Для создания новой ER-диаграммы есть два способа:
-
На стартовой странице в виджете «Предметные области» нажмите на кнопку «Создать».
В модальном окне воспользуйтесь кнопкой «Создать с нуля» чтобы создать пустую предметную область.
-
Через главное меню перейти в пункт «Администрирование» – «Управление объектами» – «Предметные области». После перехода в реестре предметных областей создать новый экземпляр типа с помощью кнопки «Создать».
Создайте новую предметную область. Задайте для предметной области Наименование «Оценка нефинансовых компаний». Сохраните экземпляр с помощью кнопки на верхней панели.
Определение типов объектов
Для реализации объектной модели используются типы объектов для описания сущностей.
В редакторе предметной области предусмотрено добавление уже имеющихся типов объектов и создание новых.
Создание типа объектов «Справочник»
Создайте новый тип объектов «Справочник» – тип объектов, который будет хранить экземпляры дочерних справочников. Он используется для стандартизации атрибутивного состава для типов-справочников, а также реализации их связи для обращения к значениям каждого при необходимости.
Создайте тип объектов «Справочник» [DICTIONARY], в качестве родителя укажите тип объектов «Объект» — это абстрактный объект, содержащий минимально необходимый набор атрибутов.
Необходимо корректно заполнить поля «Наименование таблицы» и «Родитель», так как после сохранения данного типа, изменить их будет нельзя. |
Сохраните настройки типа объекта с помощью кнопки «Ок» и вернитесь к предметной области – созданный тип объектов будет расположен на ней в виде прямоугольника с наименованием. При необходимости добавить новый справочник, в качестве родителя можно будет использовать тип объектов «Справочник».
Создание и наполнение дочерних справочников
Создайте новый тип объектов «Сроки деятельности Клиента» [CLI_ACT_DUR], в качестве родителя выберите тип объектов «Объект» и сохраните настройки типа объектов. Тип будет использоваться для хранения вариантов сроков деятельности клиента.
В окне настроек типа объектов «Сроки деятельности Клиента» перейдите в реестр экземпляров с помощью кнопки «Открыть реестр» на панели управления.
Реестр нового типа объектов по умолчанию пустой и не имеет экземпляров объектов. На панели инструментов расположены кнопки взаимодействия с реестром и экземплярами типа объектов.
Создайте новый объект (экземпляр) с помощью кнопки на панели управления. Заполните поле «Наименование» значением «Более 3 лет» и сохраните объект.
Вернитесь к реестру и создайте остальные объекты:
-
От 1.5 года до 3 лет;
-
От 6 до 1.5 года;
-
От 3 до 6 месяцев;
-
Менее 6 месяцев.
После этого реестр будет выглядеть следующим образом:
Вернитесь к предметной области и сохраните ее.
Аналогично создайте справочники и заполните их реестры в соответствии с таблицей ниже (см. Таблица 1).
Таблица 1. Справочники и объекты в реестрах
Наименование | Идентификатор | Объекты в реестре |
---|---|---|
Адрес регистрации Клиента |
CLI_REGIS_ADR |
Совпадают юридический и фактический адреса |
Юридический адрес в списке ФНС массовых регистраций |
||
Не совпадают юридический и фактический адреса, но компания не в списке ФНС массовых регистраций |
||
Кредитная история Клиента |
CLI_CRED_HISTORY |
Положительная кредитная история |
Информация в БКИ отсутствует |
||
Получена негативная информация по запросу в БКИ |
||
Уровень поддержки собственников |
OWNER_SUP_LVL |
Высокая степень заинтересованности в поддержке бизнеса собственником, в т.ч. участие собственника в управлении бизнесом и пр. |
Низкая степень заинтересованности в поддержке бизнеса собственником, в т.ч. отсутствие участия или слабое участие собственника в управлении бизнесом и пр. |
||
Рыночная позиция бизнеса |
MARKET_POS_BUSINESS |
Приемлемый уровень конкуренции в бизнесе, наличие налаженных рынков сбыта |
Ограниченный список рынков (потребителей), высокая конкуренция |
||
Высокий уровень конкуренции в данном бизнесе, отсутствие налаженных рынков сбыта продукции |
||
Рейтинг |
RATING |
A1 |
A2 |
||
B1 |
||
B2 |
||
C1 |
||
C2 |
||
D |
||
Финансовое положение Клиента |
CLIENT_FIN_STAT |
Хорошее |
Среднее |
||
Плохое |
Определение типа объектов «Карточка оценки риска нефинансовой компании»
Необходимо создать карточку для работы с методикой по оценке Клиента. Методика предназначена для получения аналитических данных, рассчитанных на основании совокупности подобранных вычислимых показателей, которые вычисляются посредством алгоритмов. Для взаимодействия с методикой используется тип объектов «РМ. Карточка расчета».
Тип объектов «РМ. Карточка расчета» – это системный тип объектов, настройки которого нельзя изменить. Но его можно использовать в качестве родителя для типов объектов для расчета методики по заданным параметрам, так как он имеет необходимые для этого атрибуты «Дата отчетности», «Дата актуальности» и «Методика».
Создайте новый тип объектов «Карточка оценки риска нефинансовой компании» [RISK_NON_FIN_CALC] – впоследствии все расчеты по методике будут проводиться в экземплярах данного типа. В качестве родителя выберите тип объектов «РМ. Карточка расчета» и сохраните настройки типа объектов.
На вкладке «Атрибуты» настройте атрибутивный состав типа объектов. В списке атрибутов указываются родительские и собственные атрибуты.
Для того чтобы отобразить список родительских атрибутов, необходимо активировать переключатель «Показать атрибуты родительского типа».
В системе есть возможность добавлять существующие атрибуты и создавать новые.
Добавьте существующий атрибут, для этого на вкладке «Атрибуты» необходимо нажать на кнопку «Добавить существующий» и в появившемся модальном окне выбрать интересующий из перечня атрибутов. Использование существующих атрибутов позволит избежать дублирования структур и расширения базы данных.
Добавьте атрибут, который будет хранить информацию о статусе выполнения оценки клиента. Добавьте существующий атрибут, для этого нажмите на кнопку «Добавить существующий». В модальном окне активируйте переключатель «Выбор атрибута из полного списка атрибутов» и в поле «Атрибут» с помощь поиска найдите и выберите атрибут «Статус события» [STATE_ID], затем подтвердите выбор с помощью кнопки «Добавить».
Перейдите к настройке добавленного атрибута «Статус события» для этого в списке выберите его и воспользуйтесь кнопкой или дважды щелкните по нему списке.
В модальном окне настройки атрибута его параметры расположены на следующих вкладках:
-
Основное – ввод основной информации об атрибуте;
-
Визуал – выбор визуального отображения атрибута;
-
Версионность значений – определение зависимости значения атрибута от времени;
-
События – настройка дополнительных действий при изменении значения атрибута в объекте;
-
Дополнительное – ввод иных (некритичных) характеристик атрибута.
Измените настройки добавленного атрибута: на вкладке «Основное» замените наименование атрибута на «Состояние объекта». В поле «Значение по умолчанию» укажите «Новый».
Также перейдите на вкладку «Дополнительное» и активирует опцию «Доступен только для чтения». Сохраните настройки атрибута с помощью кнопки «Ок».
Создайте новый атрибут для хранения дат отчетности, для этого нажмите на кнопку «Создать».
На вкладке «Основное» заполните поля:
-
Наименование – «Атрибут для хранения дат отчетности»;
-
Идентификатор – «ATTR_DATE_KEEPING»;
-
Тип – «Строка»;
-
Размер – «2000»;
-
Обязательность – «Нет».
Сохраните настройки типа объектов.
Настройка связей между типами объекта
Настройте связи между типами объектов на предметной области. На платформе реализован функционал установки связей для сопоставления данных между двумя типами объектов.
Связь между типами объектов устанавливает отношения между совпадающими значениями в ключевых полях, что позволяет обращаться к записям одного типа из другого.
Существует 3 вида взаимосвязи между объектами:
-
Наследования – ссылка на родительский объект;
-
Ассоциации – создание объектного атрибута – атрибута с ссылкой на тип объектов;
-
Агрегации – создание дочернего атрибута – атрибут, хранящий в себе набор записей другой таблицы (типа объекта, указанного при настройках атрибута), которая в свою очередь имеет объектную ссылку на текущую таблицу.
Один родительский объект может иметь несколько дочерних, однако у всякого дочернего объекта может быть только один родитель. Кроме того, один и тот же объект может быть родительским для одних объектов и в то же время дочерним для других.
Создайте ассоциативную связь от типа объектов «Карточка оценки риска нефинансовой компании» к типу объектов «Сроки деятельности Клиента», для того чтобы отображать данные об адресе Клиента. Для этого выберите тип объектов «Карточка оценки риска нефинансовой компании» и откройте выпадающий список действий, выберите команду «Создать ассоциативную связь» и щелкните по типу объектов «Сроки деятельности Клиента».
После этого откроется модальное окно создания атрибута. При необходимости в текущем окне можно изменить настройки атрибута до сохранения, но после часть настроек будет недоступна для редактирования. Сохраните без изменений, нажав на кнопку «Ок».
Аналогичную настройку можно произвести с помощью создания нового атрибута на типе объектов: таким образом можно добавить связь с типом, которого нет на предметной области, но есть в Системе.
Таким образом, в типе объектов «Карточка оценки риска нефинансовой компании» будет создан объектный атрибут, ссылающийся на Тип объектов «Сроки деятельности Клиента».
Сохраните предметную область.
Добавьте остальные объектные атрибуты, согласно таблице ниже (см. Таблица 2). Для того, чтобы добавить тип объектов «Нефинансовая компания» необходимо на предметной области с помощью кнопки «Добавить Тип объектов на Предметную область» с помощью поиска найти и выбрать тип «Нефинансовая компания», а затем перенести его в правую часть окна с помощью кнопки в виде стрелки. После того как тип объектов появится в поле справа воспользуйтесь кнопкой «Добавить». После этого тип будет отображаться на предметной области.
Таблица 2. Объектные атрибуты типа объектов «Карточка оценки риска нефинансовой компании»
Наименование | Идентификатор | Ссылка на тип |
---|---|---|
Адрес регистрации Клиента |
CLI_REGIS_ADR_ID |
Адрес регистрации Клиента |
Уровень поддержки собственников |
OWNER_SUP_LVL_ID |
Уровень поддержки собственников |
Рыночная позиция бизнеса |
MARKET_POS_BUSINESS_ID |
Рыночная позиция бизнеса |
Рейтинг |
RATING_ID |
Рейтинг |
Финансовое положение Клиента |
CLIENT_FIN_STATE_ID |
Финансовое положение Клиента |
Клиент |
RISK_CLIENT_ID |
Нефинансовая компания |
Также необходимо настроить атрибутивный состав типа «Нефинансовая компания».
Для типа объектов «Нефинансовая компания» добавьте объектные атрибуты как существующие, согласно таблице ниже (см. Таблица 3).
Таблица 3. Объектные атрибуты типа объектов «Нефинансовая компания»
Наименование | Идентификатор | Ссылка на тип |
---|---|---|
Рейтинг |
RATING_ID |
Рейтинг |
Финансовое положение Клиента |
CLIENT_FIN_STATE_ID |
Финансовое положение Клиента |
Определение выражений для типа объекта
На платформе GreenData предусмотрена работа с алгоритмами. Алгоритм – это некая последовательность вычислительных шагов, используемая для выполнения определенной задачи или преобразования данных.
Система поддерживает работу со всеми типами алгоритмов: линейными, разветвляющимися, циклическими и вспомогательными. Они задаются на языке Groovy – объектно-ориентированном языке программирования, который является дополнением к языку Java.
Бэковые алгоритмы объектов выполняются на серверной части приложения. Они используются для:
-
заполнения значений атрибутов типа объектов;
-
расчета вычислимых показателей;
-
запуска этапа процесса интеграции;
-
создания условий и действий на бизнес-процессе;
-
трансформации аналитических форм.
Откладка бэковых алгоритмов возможна на этапе создания формулы. Каждый алгоритм может использоваться в Системе один или несколько раз.
Выражения – это алгоритмы на типе объекта, выполняющие автоматическое заполнение привязанных к ним атрибутов. С помощью выражений можно реализовать автонаименование объектов, их нумерацию, расчет вычислимых показателей, а также заполнение атрибутов данными.
Создание и настройка выражений происходит в настройках типа объекта на вкладке «Выражения\Автокалькуляции». Все системные и созданные пользователями алгоритмы выражений хранятся в реестре алгоритмов объектов в папке «Карточки объектов», в который можно перейти с помощью главного меню: «Администрирование» - «Управление объектами» - «Алгоритмы объектов».
Также можно создать собственную папку для хранения созданных алгоритмов с помощью кнопки на верхней панели.
Если выражения наследуются от родительского типа объектов, их невозможно отредактировать и удалить на уровне дочернего типа. Например, все типы объектов по умолчанию содержат выражение для автоматического заполнения наименования объекта. Указанное выражение наследуется от типа «Объект». Для задания нового алгоритма следует использовать кнопку «Переопределить настройки».
Для создания нового выражения воспользуйтесь кнопкой «Добавить новое выражение».
Редактор алгоритмов содержит в себе поле для формулы и панель «Инструменты», на которой располагаются доступные функции: набор функций определяется типом алгоритма.
На предметной области откройте настройки типа объектов «Карточка оценки риска нефинансовой компании» и перейдите на вкладку «Выражения/Автокалькуляции». Переопределите настройки выражения для атрибута «Наименование».
Создайте алгоритм «Наименование карточки оценки клиента», в качестве базового типа объектов оставьте «Карточка оценки риска нефинансовой компании». Данный алгоритм будет автоматически генерировать наименование на основе данных карточки и сохранять его в атрибуте «Наименование».
Заполните поле формулой алгоритма.
Воспользуйтесь функциями:
-
attr;
-
text.
Выполните следующие шаги чтобы повторить формулу алгоритма:
-
На панели инструментов в разделе «Источники» вызовите функцию attr: в списке выберите атрибут «Дата отчетности». После этого наименование атрибута отобразится в поле формулы алгоритма;
-
С помощью клавиатуры укажите знак сложения для конкатенации строки;
-
С помощью функции text или с помощью клавиатуры вставьте кавычки, в которых необходимо указать «: »;
-
Вставьте атрибут «Методика» - «Наименование» с помощью функции attr: чтобы добавить цепочечный атрибут раскройте список атрибутов у атрибута «Методика»;
-
Повторите шаги 2-3 и вставьте в строку открывающую скобку;
-
Укажите атрибут «Клиент» с помощью функции attr аналогично шагу 1;
-
Аналогично шагу 5 укажите закрывающую скобку.
Сохраните изменения и вернитесь к настройке выражения типа, дважды нажав по нему в списке.
В окне настройки выражения оставьте переключатель «Рассчитать в момент создания новых объектов», чтобы алгоритм выполнялся после сохранения объекта и измените значение поля «Автоматический пересчет выражения», выбрав в списке «При изменении атрибутов, используемых в алгоритме».
Сохраните настройки выражения с помощью кнопки «Сохранить». Также сохраните настройки типа объектов.