Руководство Melbis Shop: оглавление
Окно «Диспетчер» открывается автоматически при старте программы. Закладка «Пользователи» показывает «Группы и пользователи» (кто сейчас в магазине), «Блокировки пользователя» (его текущие блокировки), чат «Отправить сообщение», сведения о лицензии и обновлениях программы. Здесь же Диспетчер напоминает о необходимости «Перезагрузки» локальной базы, когда она устаревает. В сети — пользователь, чья программа обращалась к серверу последние 2 минуты, по часам сервера.
Закладка «Уведомления» — на какие события магазина Диспетчер отзывается и как: «Активация уведомлений», «Звуковое оповещение» и «Команда».
Диспетчер держит у сервера один запрос: сервер отвечает сразу, как только пришло сообщение или событие, а в тишине — через 25 секунд, заодно обновляя список пользователей и блокировок. Свои сохранения программа показывает в списке блокировок сразу. Запрос идёт и при закрытом окне Диспетчера.
Лицензия на рабочий день обновляется сама, раз в сутки по Гринвичу, даже при закрытом окне Диспетчера. Если сервер лицензий не ответил, программа повторяет попытку каждую минуту, а если ответил, но лицензии на сегодня нет, — через час.
Событие — запись в журнале событий магазина о том, что что-то
случилось: пришёл заказ, сохранены цены, загружен прайс-лист. Журнал
ведёт сервер магазина, поэтому событие видят все рабочие места сразу. У
события есть ключ — короткий код вида kNewOrder, по
которому его узнают, — номер и время.
Откуда берутся события.
kNewOrder) демо-магазина: модуль заказа пишет его для
каждого нового заказа — оформленного на витрине и в окне «Заказы». Свои события модулей заводит разработчик
— см. «Отслеживание
событий».Событие бывает адресовано всем, отдельным пользователям или группам. События операций — для всех.
Как событие доходит до программы. Его приносит тот же запрос Диспетчера, что и сообщения чата: программа узнаёт о событии через секунду-две, даже при закрытом окне Диспетчера. Диспетчер получает события, адресованные всем, вам или вашей группе. Отзывается он на события с момента запуска программы: то, что случилось, пока она была закрыта, уведомлений не вызывает.
Уведомления. В «Активации уведомлений» на закладке «Уведомления» перечислены события, на которые Диспетчер умеет отзываться. Список задаётся в «Реестре настроек»: закладка «Базовые настройки», раздел «Диспетчер» → «Список событий»; «Ключ» — ключ события, «Значение» — его название в списке. С самого начала там есть «Новый заказ». Новое событие появляется в списке, когда окно Диспетчера открывают снова.
На отмеченное событие Диспетчер отзывается так: показывает
всплывающее сообщение с названием события, подаёт «Звуковое
оповещение», если выбран звук, и выполняет
«Команду», если она задана. Команда запускается
свёрнутой, в папке магазина; ключ события, его номер и время она
получает в переменных окружения MELBIS_EVENT,
MELBIS_ID и MELBIS_TIME. Кнопка
«Тест» запоминает команду и запускает её сразу, с
номером 0. Каждый запуск команды отмечается в «Журнале работы».
Отметки, звук и команда — настройки этого компьютера для этого магазина: на другом рабочем месте их задают заново. Чаще всего команда запускает AI-диспетчера — агента, который сам разбирает событие и ставит задачи людям.
Как завести своё событие — на примере сохранения цен:
kPricesSaved.kPricesSaved со значением «Сохранены цены».Для сохранения целостности данных некоторые таблицы на время редактирования кратковременно блокируются. Окно «Блокировки» показывает «Перечень блокировок»: время начала, пользователь, вид блокировки и заблокированные таблицы. Функции: «Обновить список блокировок», «Снять свои блокировки» и «Снять свои и чужие блокировки» — для внештатных ситуаций (несохранённые данные при снятии блокировки теряются).