Добавление свойств в объекты Галактика EAM

  1. Описание задачи

    Предположим, возникла ситуация что в системе Галактика EAM в каком-то объекте нет необходимого свойства (поля) и необходимо это поле добавить. Такую задачу можно решить без программирования. Для этого можно использовать редактор модели. После того как свойства добавлены – их можно использовать для отображения на формах, в отчетах, в критериях фильтрации данных.

  2. Описание решения

  3. Общая схема решения задачи

    Новые свойства в объекты можно добавлять только в модели приложения (про уровни моделей см. Настройка модели приложения для Ролей пользователей .pdf)

    Редактирование модели приложения выполняется в программе Редактор модели. Изменения модели приложения сохраняются в файле Model.xafml. Этот файл должен находиться в той же папке что и программа Галактика EAM.

    Для решения задачи добавления новых свойств в объекты нужно выполнить следующие шаги:

    1. Запустить редактор модели приложения Галактика EAM
    2. Для нужного типа (объекта) добавить новые свойства (поля)
    3. В нужных формах (списковых, карточных) вывести новые (добавленные в п.2) поля
    4. Сохранить модель и закрыть редактор модели
    5. Запустить приложение в режиме изменения структуры БД

     

  4. Запуск редактора модели Галактика EAM

    Редактор модели – это приложение платформы DevExpress. Он поставляется вместе с приложением Галактика EAM и находится в той же папке на диске, в которой установлено приложение Галактика EAM. Имя файла DevExpress.ExpressApp.ModelEditor.v12.1.exe.

     

    Запускаем приложение DevExpress.ExpressApp.ModelEditor.v12.1.exe.

    В окне параметров в поле Application configuration or Module assembly file надо указать путь и имя конфигурационного файла приложения Галактика EAM из той папки где установлено приложение (Galaktika.EAM.Win.exe.config)

    После этого откроется редактор модели приложения

     

  5. Добавление свойств в объект

    Добавление свойств в объекты, и вообще корректировка свойств, выполняются в разделе BOModel.

    В данном разделе нужной найти нужный объект (справочник, документ) и перейти на него. Все объекты сгруппированы по пространствам имен классов.

    Предположим мы хотим добавить свойства ИНН, Телефон в справочник подразделений (класс Galaktika.Core.CD.Module.RES.ПроизводственнаяЕдиница).

    В разделе BOModel находим этот класс.

    Раскрываем узел класса и переходим в элемент OwnMembers. В этом разделе показаны все свойства класса.

    В разделе OwnMembers добавляем новые свойства.

    Для этого на элементе OwnMembers нажимаем правую клавишу мыши и в выпадающем меню выбираем Add-Member.

    Появится новый элемент в разделе OwnMembers.

    Теперь необходимо заполнить свойства для нового элемента.

    Основными, наиболее важными являются свойства:

    Id – идентификатор элемента, лучше делать, чтобы значение Id совпадало с Name.

    Name – имя нового свойства, по этому имени свойство будет идентифицироваться на формах, в отчетах.

    Type – тип свойства, тип может быть как стандартным .NET, так и ссылка на любой объект системы Галактика EAM

    Size – для строкового типа задает максимальное количество символов которое будет храниться в БД

    Добавляем еще одно свойство Телефон.

    После добавления новых свойств, модель можно сохранить.

    На данный момент свойства есть в модели, но в БД приложения этих свойств еще нет. Чтобы они появились в БД мы, на более поздних шагах, сделаем определенные действия.

    А пока мы можем начинать настраивать формы, добавляя на нах новые поля.

     

  6. Настройка форм

    Настройка форм с использованием свойств, добавленных в модели, ничем не отличается от обычной настройки форм. Более подробно о настройке форм см. Руководство функционального администратора.pdf

    Переходим в раздел Views, в этом разделе ищем нужную нам форму. Мы будем изменять списковую и карточную форму для класса ПроизводственнаяЕдиница

    Вначале в списковой форме ПроизвидственнаяЕдиница_Список добавим колонки ИНН, Телефон.

    В карточной форме ПроизвидственнаяЕдиница_Карточка добавляем новые свойства в раздел Items и добавляем расположение в разделе Layout.

    Сохраняем модель и выходим из редактора модели.

     

  7. Корректировка структуры БД с учетом добавленных полей

    После того как мы добавили новые поля в редакторе модели, этих полей еще нет в БД. Перед запуском приложения нужно скорректировать структуру БД. Для корректировки структуры БД надо выполнить следующие шаги.

    1. Обнулить версии модулей в БД (используя специальный скрипт к БД)
    2. Запустить приложение в режиме обновления структуры БД
  8. Обнуление версий модулей в БД

    Для обнуления версий модулей в БД необходимо выполнить SQL скрипт в той БД, на которой будет запускаться приложение. Скрипт (для MS SqlServer) находится в файле REsetModuleVersion.sql. Так же текст запроса приводится ниже

    UPDATE dbo.ModuleInfo SET Version = '0.0.0.0'

    Запрос можно выполнить из SQL Server Manager Studio.

    После того как запрос выполнен, надо запустить Галактика EAM в режиме обновления структуры БД (командная строка Galaktika.EAM.Win.exe –update или запустить bat файл UpdateDatabase.bat)

    В процессе запуска приложения будет скорректирована структура БД с учетом новых свойств, добавленных в модели.

     

  9. Запуск приложения и просмотр результата

    Запускаем приложение, открываем форму Подразделения.

    В списковой форме видим новые колонки Телефон, ИНН.

    Открываем карточку подразделения, видим поля ИНН, Телефон. Их можно редактировать

     

  10. Публикация изменений модели

    Скорее всего, настройка модели производится не на работающем экземпляре приложения, а на отдельном тестовом.

    Чтобы сделанные и протестированные настройки перенести на основное рабочее приложение надо:

    1. Скопировать файлы Model.xafml, Model_ru.xafml (содержащие все новые настройки модели) из тестового приложения в рабочее.
    2. Для рабочей БД выполнить корректировку структуры БД (выполнить пункт 2.5)
  11. Отличия между добавлением свойств в объекты в модели и дополнительными атрибутами (в моделях, Объектах ремонта)

    В системе Галактика EAM есть 2 варианта расширения состава свойств объектов:

    1. Добавление новых свойств в редакторе модели (описано выше)
    2. Добавлять дополнительные атрибуты (в карточке Модели, Объекты ремонта)

    Далее кратко рассмотрим основные отличия и ситуации, в которых лучше использовать тот или иной вариант.

  12. Свойства, добавленные в редакторе модели

    Если свойство добавлено в редакторе модели, то:

    1. Для этого свойства в таблице БД (для соответствующего типа) создается новое поле (колонка). По этому полю в БД можно например создавать индекс и т.д.
    2. Новое поле есть у всех объектов данного типа
    3. Поля можно размещать в списковых и карточных формах в любом месте (как любое свойство)
    4. Поле можно добавлять для любого типа (справочника, документа), который есть в системе Галактика EAM
  13. Дополнительные атрибуты

    1. Дополнительные атрибуты можно добавить только для объектов Модель ОР, Объект ремонта, Техническое место, Комплектующая.
    2. У каждого экземпляра класса может быть свой состав дополнительных атрибутов. Например у нас есть два объекта ремонта: Бак, Реактор. Мы можем для ОР Бак добавить атрибут Объем, а для ОР Реактор – атрибут Мощность. Т.е. у этих объектов разный состав атрибутов.
    3. Дополнительные атрибуты можно просматривать и редактировать только на специальных формах Атрибуты, которые есть в карточных формах Модели ОР, Объекта ремонта и т.д.
    4. Дополнительные атрибуты не видны в редакторе модели и их нельзя вытаскивать на списковую или карточную форму
    5. Для дополнительного атрибута в БД не создается отдельное поле, соответственно по нему нельзя сделать индекс.

    Принимать решение о том, что использовать надо исходя из потребности, что надо сделать и из тех свойств, которыми обладает каждый вариант.