Работа Shopdesk с основной и резервной базами данных

Автор:   Мукан Андрей, mukan@andriy.co

Начиная с версии 4.0, Shopdesk приобрел важную особенность. Теперь он может работать автономно, не требуя постоянного подключения к базе данных. И действительно, почему бы не использовать полюбившийся пользователям старый добрый Shopdesk на тех рабочих местах, которые не имеют постоянного подключения к основной базе данных своей учетной системы? И даже более того - на рабочих местах, которые вообще не имеют никакого подключения ни к локальной сети, будучи территориально удаленными от сервера с базой данных, ни к Интернету, который, как известно, стирает границы и сокращает расстояния? Ведь даже, несмотря на ничтожно малый трафик, потребляемый Shopdesk-ом и практически полное безразличие с его стороны к пропускной способности Интернет-соединения, оно (соединение) всё равно было нужно для работы Shopdesk. Что ж, в наше время организовать удаленное подключение с помощью всемирной паутины не представляет особой проблемы. Можно организовать связь даже "в поле", используя доступные GPRS, EDGE либо другие технологии связи. Казалось бы - подключайся и работай. Однако, эту радостную картину всегда омрачало одно "но". И этому "но" под силу перечеркнуть все ваши планы по организации работы удаленных рабочих мест с основной базой данных учетной системы. "Но" всегда случается, рано или поздно. Соединение может оборваться. Не будем сейчас вникать в причины, почему это может случиться. Причины могут самыми разными - от банального обрыва проводов телефонной линии на стороне абонента (что бывает достаточно часто) до проблем на стороне Интернет-провайдера (что бывает значительно реже, но бывает). Мало того, от проблем с соединением с базой данных не застрахована даже локальная сеть. Наконец, проблемы могут случится с самим сервером базы данных - оборудование может дать сбой в самый неподходящий момент. Прекращение соединения с базой данных пусть даже на небольшое время может поставить под угрозу работоспособность магазина. Более длительное отсутствие соединения превращается в стихийное бедствие и становится причиной полного паралича в обслуживании клиентов. Про час пик даже упоминать страшно. Поэтому решение, при котором подключение удаленных магазинов осуществлялось именно с помощью Интернет-соединений, нельзя было признавать удачным из-за самой большой и главной проблемы - ненадежности физического соединения между клиентом (рабочим местом кассира) и сервером (сервер СУБД MSSQL).

Специалисты ANDRIY.CO всегда обращали внимание клиентов на эту проблему при организации подключения удаленных рабочих мест кассира. Как правило, в таких случаях ими предлагался другой наш продукт - "Shopdesk Remote". Это приложение, являющееся аналогом Shopdesk, но обладающее возможностью работы в офлайне (только). Однако, с некоторых пор оно уступает в функциональности и удобстве использования основному продукту, обеспечивающему полноценную организацию работу рабочего места кассира - Shopdesk. Что ж, время пришло. Мы взяли лучшее из обеих проектов и теперь представляем вашему вниманию обновленный Shopdesk, обладающий возможностью работы с базой данных как в режиме онлайн (при наличии прямого подключения к базе данных основной учетной системы), так и в офлайн (при отсутствии соединения с основной базой данных, либо при перебоях подключения). Особо подчеркиваем - данное решение повышает "живучесть" системы в целом. Используя его даже в локальных сетях, где вы уверены в надежности соединений рабочих мест с сервером, вы все равно обеспечиваете более надежную работу ваших фронтофисных систем, исключая влияние неполадок связи и даже неполадок самого сервера на работоспособность рабочих мест кассиров. При появлении проблем со связью рабочие места кассиров могут работать автономно до устранения неполадок. Кроме этого, теперь у администраторов появляется возможность отключить сервер базы данных для проведения профилактических регламентных работ по обслуживанию ПО либо замене оборудования, при этом, не нарушая работоспособности магазина. Ранее такие работы могли проводиться исключительно в ночное время.

Расскажем подробней о том, как это работает. Shopdesk имеет 3 самых главных режима работы с базой данных:

  • Режим работы с основной базой данных (ONLINE mode). В этом режиме Shopdesk работает исключительно с основной базой данных (требуется прямое подключение к основной БД). При отсутствии соединения с основной базой данных либо при невозможности его восстановления после обрыва Shopdesk прекращает свою работу. Этот режим работы полностью аналогичен режиму работы Shopdesk до версии 4.0
  • Режим работы с резервной базой данных (OFFLINE mode). В этом режиме Shopdesk работает исключительно с резервной базой данных (резервная БД должна быть предварительно создана одним из способов, описанными далее). При отсутствии резервной базы данных Shopdesk предлагает переключиться в режим работы с основной базой данных.
  • Автоматический режим (Automatic mode). При запуске Shopdesk осуществляет попытку подключиться к основной базе данных. В случае успешного подключения Shopdesk продолжает работу с основной базой данных на все время сеанса (ONLINE mode), до возможного обрыва подключения к основной базе данных. В случае невозможности установки подключения к основной БД, Shopdesk переходит к подключению к резервной базе данных (OFFLINE mode). В этот же режим Shopdesk переходит в случае обрыва подключения к основной базе данных. В случае режима работы с резервной базой данных этот режим сохраняется до конца сеанса работы Shopdesk.

Алгоритмы выбора базы данных для подключения

Алгоритм выбора подключения к базам данных в зависимости от выбранного режима работы Shopdesk при запуске изображен на рис. 1.

Алгоритм выбора базы данных при открытии Shopdesk согласно режиму работы

Рис. 1. Алгоритм выбора базы данных при открытии Shopdesk согласно режиму работы.

Алгоритм работы с подключениями к базам данных в зависимости от выбранного режима работы Shopdesk при обрыве соединения с основной базой данных изображен на рис. 2.

Алгоритм выбора базы данных при обрыве соединения с основной базой данных

Рис. 2. Алгоритм выбора базы данных при обрыве соединения с основной базой данных.

Как видите, алгоритмы выбора базы данных достаточно просты и, как ещё говорят, интуитивно понятны. Остается добавить, что резервная база данных - это файл в формате MS Access с именем offlineDB.mdb, находящийся в локальной папке с программой Shopdesk, в подпапке offline (например, C:\Program Files\ANDRIY.CO\Shopdesk\offline).

Еще одна важная особенность - во время работы в режиме OFFLINE приложение также использует локальную папку Shopdesk\offline\GRR\ для сохранения файлов-чеков. Подразумевается, что в случае, когда отсутствует связь с основной базой данных, также отсутствует сетевая папка для экспорта файлов-чеков с расширением grr (подробнее об этих файлах и организации обмена ими с торговым сервером ТЦУ можно узнать в справке к программе Shopdesk). Эти файлы можно передать штатными средствами Shopdesk в обработку торговому серверу ТЦУ либо любым другим способом, удобным администратору учетной системы, вплоть до передачи их электронной почтой либо с помощью перемещения на магнитных и электронных носителях.

Переключение режимов работы Shopdesk

Откройте в меню Shopdesk "Настройки" - "Управление подключениями к БД" и задайте требуемый режим работы Shopdesk. Выбор будет влиять на алгоритм определения подключения к базам данных.

Форма управления подключениями к БД

Рис. 3. Форма управления подключениями к БД.

Создание резервной базы данных

Остановимся подробней на вариантах создания резервной базы данных. Разумеется, в случае отсутствия подключения к основной базе данных для работы приложения необходима резервная база данных. Называется она "резервной" именно потому, что используется она в случаях, когда отсутствует основная база. По большому счету, в идеале, Shopdesk всегда должен работать с основной базой учетной системы, так как в ней в реальном времени отражаются все изменения, происходящие в результате действий кассиров, операторов, кладовщиков по расходу и приходу товаров, изменению их цен и количества. А использование резервной базы сразу возвращает нас к "замороженному" состоянию учетных данных. Эти данные соответствуют тому моменту времени, когда создавалась эта резервная БД. При интенсивной работе с базой данных любая резервная копия устаревает сразу после изменения каких-либо данных в основной. Это как покупка нового автомобиля - он новый, пока не выехал за ворота автосалона. Поэтому администратор учетной системы обязан поддерживать на должном уровне актуальность резервной базы данных. Выбор частоты её обновления целиком и полностью ложится на администратора и определяется, в конечном итоге, таким фактором, как частота переоценки товара. Совпадение розничных цен по любому товару в резервной и в основной базах данных всегда должно быть полным, на все 100%. Использование резервной базы данных - это всегда компромисс между актуальностью учетных данных и работоспособностью, как таковой, рабочего места кассира. Или РМК работает, но, при отсутствии должного внимания к частоте обновления резервной БД, отпускает товар по цене, отличной от актуальной на текущий момент времени, или же РМК не работает вообще и вы теряете своих клиентов.

Создать (а также обновить) резервную базу данных можно несколькими способами:

  1. Из подключенной основной базы данных любого типа - либо MS Access, либо MS SQL.
  2. Из резервной (архивной) копии базы данных ТЦУ (файлы *.tcubk). Только для базы данных ТЦУ в формате MS Access.
  3. Физическое (на уровне файловой системы) копирование базы данных ТЦУ формата MS Access tcu_be.mdb из каталога ТЦУ в каталог Shopdesk, в offline\offlineDB.mdb.

Третий способ предоставляет возможность администратору творчески подойти к вопросу обновления резервной базы данных. Например, если работа ведется в локальной сети, можно осуществлять запланированные регулярные обновления в автоматическом режиме. Либо осуществлять рассылку основной базы данных по электронной почте, а на стороне клиента в автоматическом режиме извлекать её из письма и сохранять в офлайн каталог. Первые же два способа осуществляются штатными средствами приложения и будут описаны далее.

Откройте в меню Shopdesk "Настройки" - "Управление подключениями к БД"

Форма управления подключениями к БД

Рис. 4. Форма управления подключениями к БД.

Кнопка №1 "Создать базу данных для резервного подключения" создает резервную базу данных из подключения к основной. На локальном диске, в офлайн папке каталога Shopdesk, на основе эталона создается пустая база данных, в которую копируются все необходимые для работы Shopdesk данные. Выборка данных осуществляется с учетом того, какие торговые точки обслуживает Shopdesk. Поэтому будьте внимательны - после редактирования списка доступных торговых точек в настройках Shopdesk следует обязательно обновить резервную базу данных. Что касается копируемых данных - операция проходит достаточно быстро даже на медленных интернет соединениях. Например, при пропускной способности канала 256 кбит/с резервная база данных с реестровыми остатками по 3000 наименований товаров создается примерно в течение 1 минуты (основная база данных находится на удаленном MSSQL сервере). Объем передаваемых данных в данном случае составляет примерно 500-600 Кб.

Кнопка №2 "Создать резервную базу данных из архива БД ТЦУ" создает резервную базу данных из файла-архива с расширением "tcubk". Этот файл предварительно создаётся в ТЦУ, с помощью меню "Архивировать базу данных". Файл представляет собой базу данных в формате MS Access с измененным расширением имени файла.

Архивирование базы данных в ТЦУ

Рис. 5. Архивирование базы данных в ТЦУ-3.

Полученный архив базы данных можно отправить электронной почтой или, при полном отсутствии доступа к Интернету, перенести на рабочее место кассира на электронном носителе. При создании резервной базы из архива БД происходит копирование файла-архива в офлайн папку Shopdesk с одновременным переименованием файла - offline\offlineDB.mdb. После этого Shopdesk при выборе режима Offline или Automatic может работать с резервной БД.

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

Текущий режим работы Shopdesk с базой данных

Рис. 6. Текущий режим работы Shopdesk с базой данных.

В заключение остаётся добавить - не забывайте поддерживать актуальность резервной базы данных на приемлемом для вас уровне!

Статья включена в следующие темы:

Вверх