6.4.1 Подготовка конфигурационного файла
Для фоновой задачи с пользовательским типом конфигурации USER_CONFIG, в проекте необходимо создать конфигурационный файл для настройки.
Конфигурационный файл для настройки ФЗ представляет собой файл с расширением “.json”, расположенный в папке «Setup» проекта. Имя такого файла формируется как имя класса, наследующего BaseDispatcher/BaseEventDispatcher/BaseDaemon + “.json”. Например, если класс ФЗ – “TestDispatcher”, тогда имя конфигурационного файла «TestDispatcher.json».
В свойствах файла необходимо указать значение свойства «Действие при сборке» - «Внедренный ресурс» («Build Action» - «Embedded resource») и «Копировать в выходной каталог» - «Не копировать» («Copy to Output Directory» - «Do not copy»).
При добавлении конфигурационного файла, в файле проекта появится запись:
|
<ItemGroup>
<EmbeddedResource Include="Setup\TestDispatcher.json">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
</ItemGroup>
|
Конфигурационный файл имеет следующий шаблон:
|
{ "title": "Название фоновой задачи",
"commonContext": {
"fields": [],
"rows": [],
"defaultValues": {}
},
"jobContext": {
"fields": [],
"rows": [],
"defaultValues": {}
}
}
|
Объекты:
- "title" – Название ФЗ, отображается на странице конфигурирования (строка)
- "commonContext" – содержит описание полей настроек, значения параметров которых общие для всех экземпляров ФЗ
- "jobContext" – содержит описание полей настроек, значения параметров которых различны для экземпляров ФЗ
Объекты "commonContext" и "jobContext" оба могут содержать описания полей настройки, либо только один (как в шаблоне выше), в зависимости от конфигурации ФЗ. Данные объекты представляют контекст описания полей настройки с помощью объектов "fields" и "rows", также может быть описан или отсутствовать "defaultValues".
- "fields" – список полей настроек с их описанием
- "rows" – размещение полей на строках
- "defaultValues" – значения полей по умолчанию
Типы полей:
- FieldAutoComplete – поле выбора из справочников
- FieldCheckbox – флаг (чекбокс)
- FieldEnum – выбор из списка заданных значений
- FieldDateTime – выбор даты из календаря
- FieldInteger – числовое поле
- FieldText – текстовое поле
- FieldTimePicker – поле выбора времени
- FieldPassword – текстовое поле для пароля
- FieldProfile – выбор профиля настроек
- FieldStorage – выбор хранилища
- FieldButton – кнопка
Базовые настройки полей:
Обязательные:
- "name" - имя поля в форме (строка)
- "type" – тип поля (строка)
Необязательные:
- "label" - отображаемое наименование поля (строка)
- "required" - обязательность поля (true / false)
- "requiredMessage" - сообщение об обязательности поля (строка)
- "disabled" – недоступность поля (true / false)
- "placeholder" - html атрибут placeholder (строка)
- "hidden" – скрытость поля (true / false)
Примеры полей по типам:
