Средство работы с конфигурацией на DCL5.
Эта утилита создана с целью, организовать работу с конфигурацией через средство контроля версий (git, svn). И поэтому конфигурация представляется структурой человеко-читаемых и редактируемых текстовых файлов.
Так же утилита позволяет создавать пакеты, которые потом могут быть загружены и\или запущены в платформе. При пересечении имён скриптов со скриптами конфигурации, главнее считаются скрипты из пакета. Это позволяет модифицировать сузествуюзие конфигурации.
С помощью пакетов, так же доступно, создание меню. Пересечение номеров идентификаторов в меню, так же вызовет замену элементом из пакета.
Подробно
Конфигурация представляется набором файлов со скриптами и папкой metadata, с дополнительной информацией, такой как идентификаторы меню, идентификаторы записей (скриптов), поля с командами, меню и т.д. Удаление какого либо объекта из папки не означает что утилита работы с конфигурацией удали его из базы. Как раз особенностью является, работа с неполной конфигурацией. Для удаляемых объектов существует специальная папка. Такая как, папка Delete для скриптов, в корне конфигурации. Исключение составляют элементы меню в ролях, там актуальным считается состояние всей папки.
Описание типов файлов, представляющих объекты и их данные, конфигурации.
.id - Файлы содержащие сведения о первичных ключах объектов. Необязательны. При создании новых объектов могут остутствовать. Изменять запрещено.
.md - Файлы с информацией об идентификаторах объектов конфигурации. Обязательны. При создании новых объектов должны указываться в соответствии с правилами создаваемых объектов. Разрешено ограниченно менять. Допустима произвольное именование только в ограниченом наборе объектов.
.show - Файл показывающий что объект разрешено показывать. Необязателен. Пустой, не содержит никакой информации. Работают только у ограниченного типа объеков. Допустима произвольное именование только в ограниченом наборе объектов.
.text - Содержит текст объекта. Необязателен. Разрешено менять для достижения необъодимых целей. Работают только у ограниченного типа объеков.
.title - Содержит текст в одну строку
.command - Содержит имя вызывающего скрипта. Фиксированное наименование. Необязателен. Доступен только у элементов меню.
.width - Содержит число с шириной элемента в пикселях экрана.
.user - Содержит идентификатор пользователя. Не обязателен.
.splt - Файл объекта разделителя меню (визуальный компонент). Может присутствовать только в меню со второго и выше уровней. Содержит параметризированные параметры размещения. Необязателен. Допустимо изменение.
.compress - Признак того, что данные хранящиеся в конфигурации хранятся сжатыми. Присутствует в разделе Templates (Шаблоны). Удаление этого файла и пересохранение данных приведёт к записи не сжатых данных и наоборот. Необязателен. Пустой, не содержит никакой информации. Работают только у ограниченного типа объеков. Допустимо произвольное именование.
Configuration.options - Файл с настройками конфигурации. Не обязательный. Фиксированное имя.
.dsp - Подписаные пакеты.
Во всех случаях, “переименование”, это только изменение имени файла, без расширения.
Структура конфигурации (дерево фалов):
- [Корневой каталог]
- [metadata]
- [Menu]
- [Элемент меню 1]
- [Подменю 1]
- [Меню третьего уровня 1]
- Metadata.id
- Metadata.md
- Command.command
- [Меню третьего уровня 2]
- 14.splt
- [Меню третьего уровня 1]
- Metadata.id
- Metadata.md
- [Подменю 1]
- [Элемент меню 2]
- [Элемент меню 3]
- [Элемент меню 1]
- [Roles]
- [Роль 1]
- [MenuItems]
- 44.md
- 45.md
- Role.id
- Role.md
- Role.show
- [MenuItems]
- [Роль N]
- [Роль 1]
- [Users]
- [Пользователь 1]
- [Roles]
- 1.id
- 99.id
- User.id
- User.md
- User.show
- [Roles]
- [Пользователь N]
- [Пользователь 1]
- [ApplicationTitle]
- Metadata.id
- App.title
- [Inits]
- InitScript.id
- InitScript.md
- [Ends]
- ByeScript.id
- ByeScript.md
- [Panels]
- 23.id
- 23.title
- 23.text
- 23.width
- [Captions]
- 1.id
- 1.title
- [GlobalParams]
- [BaseUID]
- BaseUID.id
- BaseUID.title
- BaseUID.user
- BaseUID.text
- [Param_N]
- Param_N.id
- Param_N.title
- Param_N.text
- Param_N.show
- [BaseUID]
- [Scripts]
- Script_1.id
- Script_2.id
- Script_N.id
- [Templates]
- [TemplateN]
- TemplateN.id
- TemplateN.md
- BinFile.bin
- TemplateN.compress
- [TemplateN]
- [Menu]
- [Delete]
- [Id]
- DeleteScrId.id
- DeletedScriptN.text
- [Id]
- [Packages]
- [PackageName]
- Script_1.text
- Script_N.text
- [MyPackage]
- [Menu]
- [Элемент меню N]
- [Подменю N]
- Metadata.md
- Command.command
- [Подменю N]
- Metadata.md
- [Элемент меню N]
- Script_1.text
- Script_N.text
- SQLScript_1.sql
- [Menu]
- Configuration.options
- [PackageName]
- Script_1.text
- Script_2.text
- Script_N.text
- InitScript.text
- ByeScript.text
- [metadata]
Сводная таблица по типам файлов и их свойствам.
.id | .md | .show | .text | .title | .command | .width | .user | .splt | |
---|---|---|---|---|---|---|---|---|---|
Обязателен | нет | да | нет | да | да | да (в конечных пунктах) | нет | если нужен | если нужен |
Можно редактировать | нет | да | пуст | да | да | пуст | да | да | да |
Пустой | нет | нет | да | нет | нет | да | нет | нет | нет |
Параметрический | нет | да | - | нет | нет | - | нет | нет | да |
Сырые данные | да | - | - | да | да | - | да | да | да |
Произвольное именование | п.1 | п.1 | да | п.1 | п.1 | команда | нет | да | нет |
п.1 - Если в дереве файлов выше, файл назван только цифрами, то его переименование запрещено.
Настройка параметров в DCL.ini
Параметры указываемые в файле конфигурации DCL.ini.
DisableLoad=
- При значении 1
запрещает сохранение конфигурации в базу.
DisableUnLoad=
- При значении 1
запрещает сохранение конфигурации на диск.
ScriptDir=
- Папка с конфигурацией.
EasyIdentMode=
- Простой режим работы с полем ‘Ident’ в файлах конфигурации, когда в поле ‘Ident’ пишется относительный номер начиная с 1, вместо абсолютного из диапазона для этого типа элемента.
Применять изменения конфигурации может только пользователь с правам Администратор.
Окно инструмента управления пакетами, с загруженным пакетом. И зависимым пакетом для обновления.
Сборка
Сборка осуществляется в среде Lazarus последних версий. Под ту\той ОС в которой нужно. Никаких зависимостей. Возможно придётся настроить параметры в проектном файле.
Зависимости только базовые из Lazarus.
Примечание
Этот проект является частью большой системы проектов о CRM DCL5.