Доработка модели приложения, изменения и удаление атрибутов и связей

После генерации прототипа приложения и внесения в него каких-либо изменений, зачастую возникает необходимость внести ряд изменений в модель приложения. Добавление новых классов или внесение изменений в существующие довольно кропотливая работа, если делать все вручную. Если внести изменения в диаграмму Flexberry и собрать прототип заново, то что же будет с уже внесенными в приложение изменениями?

Технология Flexberry позволяет внести изменения в модель приложения и перенести изменения в сгенерированный проект приложения, затратив минимум усилий и не потеряв уже внесенные в проект изменения.

Скобки программиста

Что такое скобки программиста и зачем они нужны можно посмотреть в статье Скобки программиста

Влияние изменения модели на приложение

Любые изменения модели, будь то добавление\удаление\переименование классов, добавление или удаление связей между ними или добавление\удаление полей из классов затронут все аспекты генерируемого приложения:

Добавление классов

Если класс НЕ является детейлом какого-либо другого класса, то изменения затронут:

  • Формы: для нового класса необходимо создать L- и E- формы.
  • База данных: добавится новая таблица
  • Представления: для нового класса необходимо создать представления, для всех связанных с ним классов - добавить новый класс в представление (там, где это нужно).
  • Полномочия: создать правило доступа для нового класса
  • Отчеты (если есть)
  • Настройки фильтров для нового класса
  • Настройки аудита для нового класса

Если класс является детейлом какого-либо другого класса, то изменения затронут:

  • Формы: для класса-агрегатора необходимо внести изменение в E-форму (добавить GroupEdit с новым классом)
  • База данных: добавится новая таблица и связь с классом-агрегатором
  • Представления: для нового класса необходимо создать представления, для класса-агрегатора - добавить детейл в представление.
  • Отчеты (если есть)
  • Настройки фильтров для нового класса-агрегатора
  • Настройки аудита для класса-агрегатора

Удаление класса

  • Формы: L- и E- формы необходимо удалить.
  • База данных: удалится таблица, хранящая класс и все связи с этой таблицей
  • Представления: удалятся вместе с классом.
  • Отчеты (если есть)
  • Настройки фильтров для удаляемого класса и связанных с ним классов
  • Настройки аудита для удаляемого класса

Добавление связей между классами

  • Формы: для класса, не являющегося мастеровым, на форму редактирования надо добавить соответствующие LookUp-Overview
  • База данных: добавятся поля для ключей в таблицы, хранящие не-мастеровые классы
  • Представления: необходимо внести изменения в представления всех не-мастеровых классов, затронутых новыми связями, а также во все представления других классов, в которых они фигурируют.
  • Отчеты (если есть)

Удаление связей между классами

  • Формы: для класса, не являющегося мастеровым, с формы редактирования надо убрать соответствующие LookUp-Overview
  • База данных: удалятся поля для ключей в таблицах, хранящих не-мастеровые классы
  • Представления: необходимо внести изменения в представления всех не-мастеровых классов, затронутых удаляемыми связями, а также во все представления других классов, в которых они фигурируют.
  • Отчеты (если есть)

Добавление поля в существующий класс

  • Формы: необходимо поправить L- и E-форму для изменяемого класса
  • База данных: добавится столбец в таблицу, хранящую изменяемый класс
  • Представления: изменить представления класса, добавив в них новое поле, а также во все представления, где фигурирует данный класс.
  • Отчеты (если есть)

Удаление поля из существующего класса

  • Формы: необходимо поправить E- и L- формы для изменяемого класса
  • База данных: удалится столбец из таблицы, хранящей изменяемый класс
  • Представления: изменить представления класса, удалив из них поле, а также из всех представлений, где фигурирует данный класс.
  • Отчеты (если есть)

Алгоритм внесения изменений

  1. Внести изменения в модель классов через Flexberry
    • Изменить классы.
    • Изменить связи.
    • Изменить представления.
  2. Привести в соответствие базу данных приложения через Flexberry.
  3. Перегенерировать объекты через Flexberry.
  4. Скомпилировать объекты через Flexberry.
  5. Перегенерировать формы через Flexberry.
  6. Настроить полномочия через Security Console (для Windows-приложений).
  7. Настроить фильтры через AdmConsole (опционально).
  8. Настроить аудит(опционально).