Запуск програм
Під час запуску Склад, Каса і Сервіс мають з'ясувати три речі: до якої
бази підключатися, під яким профілем робочого місця працювати і скільки
подробиць писати в журнал. Відповіді беруться з трьох джерел - файлу
settings.yaml, змінних середовища і параметрів командного рядка.
| Налаштування | Командний рядок | Змінна середовища | settings.yaml |
Типово |
|---|---|---|---|---|
| Сервер бази | dbserver= |
- | database.servers |
localhost |
| Аліас бази | dbname= |
- | database.name |
abacus |
| Користувач бази | - | ABACUS_DBUSER |
database.username |
sysdba |
| Пароль бази | - | ABACUS_DBPASS |
database.password |
masterkey |
| Профіль | profile= |
ABACUS_PROFILE |
profile |
default |
| Рівень журналу | loglevel= |
- | log.level |
3 |
Джерела перелічені в порядку спадання переваги: параметр командного рядка перекриває змінну середовища, змінна перекриває файл.
Файл settings.yaml
Файл лежить поруч з виконуваним файлом програми і створюється інсталятором з відповідей, які ви дали під час встановлення. Це єдиний файл конфігурації, який програми читають з диска: усе інше - меню, гріди, права, обладнання, робочі місця - зберігається в базі даних.
database:
name: abacus
servers:
- 192.168.123.1
- 172.27.20.100
username: AtFrRwlWl7xf
password: HyArGd5FS8go
log:
level: 3
maxsizekb: 10240
keepfiles: 10
profile: kasa1
Ключ |
Типово | Опис |
|---|---|---|
database.name |
abacus |
Аліас бази на сервері або повний шлях до її файлу |
database.servers |
localhost |
Перелік серверів. Програма пробує їх згори вниз і працює з першим, що відповів. Так налаштовується безшовна робота через VPN і в локальній мережі. |
database.username |
sysdba |
Ім'я користувача Firebird, у закодованому вигляді |
database.password |
masterkey |
Пароль користувача Firebird, у закодованому вигляді |
profile |
default |
Ім'я профілю робочого місця, за яким програма читає з бази налаштування складу, каси, монітора й обладнання |
log.level |
3 |
Скільки подробиць потрапляє в журнал |
log.maxsizekb |
10240 |
Розмір, після якого журнал відкладається в архів |
log.keepfiles |
10 |
Скільки файлів журналу лишати в каталозі |
Блок log детально описано в розділі Журнали.
Ім'я користувача й пароль зберігаються закодованими, тому вписати їх сюди звичайним текстом не вийде - програма такого значення не зрозуміє і не підключиться. Готове закодоване значення пишуть інсталятор і Лаунчер (коли ви вводите з'єднання в дереві вузлів). Щоб запустити програму під іншим користувачем бази разово, скористайтеся змінними середовища - вони приймають звичайний текст.
Якщо файлу немає взагалі, програма підключається до localhost:abacus під
sysdba і шукає налаштування робочого місця не за профілем, а за ІР-адресою
комп'ютера - так працювали версії до 3.3. Якщо файл є, але в ньому немає ключа
profile, використовується профіль default.
Профіль default службових токенів не має і отримати їх не може - ні редактор
конфігурації, ні лаунчер його не пропонують. Тому на робочому місці, яке працює
з абхардом, abasyn чи abrest, ключ profile треба заповнити іменем справжнього
профілю, інакше програма не знайде жодного токена.
Конфігурацію попередніх версій, що лежала у файлі settings.ini, програма при
першому запуску переписує в settings.yaml і видаляє старий файл. Так само
автоматично переписується settings.yaml старого зразка, де сервер і аліас були
одним рядком у ключі name. Переносити щось вручну не потрібно.
Параметри командного рядка
Параметри пишуться у вигляді ключ=значення через пробіл, без дефісів і без
скісних рисок:
Регістр має значення: Profile= не спрацює. Значення з пробілами беруться в
лапки - profile="Каса 1". Незрозумілі параметри програма мовчки пропускає,
тому помилку в імені параметра ви побачите не як повідомлення, а як програму,
що запустилася зі старими налаштуваннями.
Параметр |
Що робить |
|---|---|
dbserver=<сервер> |
Задає сервер для доступу до бази даних. При такому запуску резервні сервери не використовуються |
dbname=<аліас> |
Замінює аліас бази. Приймає і старий запис сервер:аліас; якщо в командному рядку є ще й dbserver=, він має перевагу над сервером усередині dbname= |
profile=<ім'я> |
Профіль робочого місця, за яким програма читає налаштування з бази |
showdbinfo=true |
Дописує в заголовок вікна ім'я, версію та білд бази, до якої програма підключилася. Зручно, коли на комп'ютері є і робоча, і тестова база |
genconfig=true |
Наново створює в базі стандартну конфігурацію програми і завершує роботу. Потрібне, коли програма не запускається через пошкоджений конфіг - див. Налаштування |
loglevel=<0-3> |
Рівень деталізації журналу на цей запуск. Зручно, коли підтримка просить loglevel=3 разово, без правки файла |
showdbinfo і genconfig можна писати і без значення - самого імені параметра
досить, щоб увімкнути його.
Змінні середовища
Змінні читаються один раз під час запуску, тому задавати їх треба до старту
програми - у властивостях системи або у файлі .bat, з якого програму
запускають. Одразу після читання програма стирає їх у себе, щоб вони не
потрапили ні в дочірні процеси, ні в журнал.
Змінна |
Що робить |
|---|---|
ABACUS_DBUSER |
Ім'я користувача Firebird звичайним текстом. Перекриває database.username |
ABACUS_DBPASS |
Пароль користувача Firebird звичайним текстом. Перекриває database.password |
ABACUS_PROFILE |
Профіль робочого місця. Перекриває profile з файла, але поступається параметру profile= |
ABACUS_TOKEN |
Токен працівника для входу в Склад без вікна реєстрації |
ABACUS_TOKEN розуміє тільки Склад. Якщо токен дійсний, програма одразу
відкривається під відповідним працівником і пише в рядку стану "Зареєстровано по
токену"; якщо ні - показує звичайне вікно реєстрації. Токен береться з поля
AbacusToken того з'єднання в launcher.yaml, з якого запускають програму.
Служби (abhard, abasyn, abrest) власних змінних не мають. Вони
користуються системними - %PROGRAMDATA%, %LOCALAPPDATA%, %APPDATA% у
Windows та $XDG_CONFIG_HOME і $HOME у Linux - щоб знайти свою конфігурацію;
перелік каталогів наведено в розділі Службові програми.
Командний рядок службових програм
Служби запускаються не користувачем, а системою, тому їхні параметри потрібні переважно під час діагностики.
| Параметр | Що робить |
|---|---|
--config <шлях> або -c <шлях> |
Вказати каталог конфігурації (лише в Linux) |
--version або -v |
Вивести версію і завершити роботу |
--run або -r |
Працювати у звичайному режимі, а не як служба (лише Linux) |
--install або -i |
Зареєструвати службу в системі |
--uninstall або -u |
Прибрати службу з системи |
--help або -h |
Короткий перелік параметрів |
Реєстрацію та вилучення служби роблять інсталятор і пакети, тому --install і
--uninstall потрібні хіба що при ручному встановленні.
--config вказує каталог з конфігурацією. Якщо він порожній, програма виводить
в консоль повідомлення й завершує роботу. Ані створення типової конфігурації,
ані перенесення старого .ini при цьому не відбувається.
У Windows служби запускаються тільки як служби Windows: --run там не працює, а
встановлені служби стартують без --config. Щоб служба в Windows узяла іншу
конфігурацію, файл треба покласти замість штатного у
C:\ProgramData\Abacus\Conf\ і перезапустити службу.