1. General


1.1. StoreHouse5 (SH5 in short) – is new version of UCS Store House system.

1.2. Store House is made for stock management automation, control production in restaurants, calculate self-cost of food, purchase near-end items.

1.3. There is integration with accounting 1C. 

1.4. There is integration with UCS R_Keeper_7.


2. Files and folders


2.1. SH5 system consist of server part and client part, also includes several engineer applications.

2.1.1. Server part:

  • Main SH5 server (SdbSrv64.exe) - this application must be installed as service in Windows x64, it manages database and client connections
  • Assist server (Sdba64.exe) - service module for main server monitoring

2.1.2. Client part:

  • User application (Sh.exe) - main GUI for stock management: edit references, create work documents, get reports.
  • Server for import (QushSvc.exe) - for data exchnage with r_keeper_7 execution
  • Manager for import (QushMan.exe) - application for set up data exchange with r_keeper_7

2.1.3. Additional tools

2.1.3.1. Licensing application (Sh5Licen.exe) - for web-based licenses in SH5

2.1.3.2. Database creation tool (Shdbinst.exe) - for manual creation of SH5 database with any language.

2.2. Server configuration is stored in Windows registry, that is why no configuration tool (like SdbsConf.exe from SH4) necessary for SH5.


3. Environment requirements


3.1. Server side

  • only 64-bit OS (Windows 7 and newer)
  • CPU (x64) with 1 GHz and higher
  • 4 GB RAM , DDR2-533 and faster
  • 2 GB of ROM space

3.2. Client side

  • OS Windows XP Professional SP3 +
  • 32-bit (x86) or 64-bit (x64) CPU from 1GHz
  • 1GB RAM +
  • 100 MB of storage space+

4. StoreHouse 5 installation procedures


4.1. Set up StoreHouse_5  with installer (master) plus additional steps.

4.1.1. There is only one installer for server and client.

4.1.2. After finalization of StoreHouse_5 installer, you have to create database in your language.

4.2. Running installer

4.2.1. Start installer .exe file

4.2.2. Choose english language

4.2.3. Accept license agreement

4.2.4. Specify path for SH5 files and folders

4.2.5. Choose components to install in this instance

4.2.6. Specify folder for database (with log) and server name, protocol and TCP port, enable DB backup

4.2.7. Speify DB file name and backup path, size

4.2.8. Confirm client connection string or edit

4.2.9. Specify shortcuts to be created

4.2.10. Confirm settings

4.2.11. After installation finished, press any key and complete installer

4.3. Apply your language files as in p.9.

4.4. Create DB with Shdbinst.exe application using .bat script (see p.6).


5. Licensing


5.1. General licensing principles in StoreHouse5

  • There are virtual keys used for SH5 licensing, which will be linked to  l.ucs.ru checks.
  • You do create in web cabinet only master license; local sub-licenses you nake with Sh5Licen.exe application.
  • There can be only one main license type inside one corporation, other licenses for the same company code must be of "additional" type.
  • License check restricts only some functions of SH5, like: active document creation. Other functions may be used without license.
  • There is no restriction for connections of clients to server.
  • You do not need USB protection key.
  • Only server side do need licensing
  • License quantity restricts stocks in SH5 database
  • You have to set one corporation as default
  • with R-Keeper 7 import of restaurants - there is no restriction in quantity

5.2. Licensing steps

5.2.1. Get master license for chosen SH5 product  in l.ucs.ru system as usually , see http://support.ucs.ru/en/node/7186

 

5.2.2. License types:

  • R-Keeper module StoreHouse V5 software - main license for one restaurant with up to 10 stocks
  • R-Keeper module StoreHouse V5 professional - main license for one restaurant without limit of stocks (not for showroom)
  • R-Keeper module StoreHouse V5 lite  - main license for one restaurant with up to 10 stocks without production document types (like shop)
  • R-Keeper module StoreHouse V5 additional restaurant - additional license for restaurant in SH5

Request all licenses in one restaurant code

5.2.2. set up file \SH5lic\Sh5Licen.ini

5.2.2.1. format

SH5Server = 127.0.0.1 - StoreHouse server IP address
SH5Port = 7771        - StoreHouse server TCP port
LogLevel = 1          - level for log details 0..1

5.2.2.2.  In case no ini file exist there \SH5lic\Sh5Licen.ini , default (IP address 127.0.0.1, TCP port 7771) will be used.

5.2.3. start application  \SH5lic\Sh5Licen.exe

5.2.4. enter SH5 user name and password - connect to SH5 main server

5.2.4.1. in new DB default user is:

  • login - Admin
  • password - [empty]

After successful connection you do:

  • menu [Licenses] ⇒ [create new]
  • input UCS dealer ID and password

  • choose restaurant from the list or input restaurant code to the field "Filter" and choose

  • choose wanted license type (as restricted by master licenses), press OK

 

  • and expiration date for new sub-license will be created, press "Create" button

  • wait for the status window to come

in case this SH5 server does not have access to l.ucs.ru:60606 - error will be shown

in case sub-license created successfully and connection exists, green "License is valid" will be on screen

5.2.5. repeat those actions above for creation of additional sub-liceses for other restaurants.

5.2.6. Create enterprises and departments in SH5 database.

5.2.7. Start Sdbman.exe and navigate to menu [Storehouse] ⇒ [Licensing objects] and link restaurants to licenses in there.

 

5.3. Extension of license

Для продления существующей лицензии по дате необходимо:

  • На сервере лицензий l.ucs.ru выбирать объект
  • В списке активных лицензий найти строку с лицензией для SH5 и скопировать кода запроса
  • Создать новую лицензию, используя ранее скопированный код запроса и сгенерировать лицензию с новой датой

Примечание: Данные действия необходимо выполнить для всех типов существующих лицензий (основной и дополнительных)

5.4. Update license (other)

При замене базы, вы мсожете увидеть следующую ошибку лицензирования.

Для того, чтобы исправить ошибку, вам необходимо открыть утилиту Sdbman.exe. Нажмите на кнопку «Исполнить процедуру».

В появившемся окне необходимо ввести:

Процедура: LimN

Библиотека: Shsrv64.dll   

и нажать кнопку «Исполнить»

После этого лицензия должна работать.


6. Database manipulations (Shdbinst.exe)


6.0. What is

6.0.1. For SH5 database manipulation there is command line tool Shdbinst.exe, which can do: create new DB, restore from backup, update DB structure to new version.

6.0.2. Parameters in command line:

# cmd description
1 /s<Имя_Сервера> - имя сервера SH5 для подключения
2 /f<Имя_Файла_БД> - имя файла БД (может включать полный путь к файлу)
3 /i<Размер_БД> - размер создаваемой БД (Мб)
4 /t<Имя_Журнала_Транзакций> - имя файла журнала транзакций (может включать полный путь к файлу)
5 /z<Размер_Журнала_Транзакций> - размер создаваемого журнала транзакций (Мб, по умолчаниб 10Мб)
6 /a<Имя_Администратора> - имя администратора БД
7 /p<Пароль_Администратора> - пароль администратора БД (по-умолчанию пусто)
8 /d<Описание_БД> - описание БД (по-умолчанию пусто)
9 /b<Имя_файла_резервной_копии> - имя файла резервной копии при восстановления/обновлении БД (может включать полный путь к файлу)
10 /l<Путь_к_управляющей_библиотеке> - путь к библиотеке shcrtdb64.dll (используется для создания/обновления БД)
11 /u<Имя_пользователя> - имя пользоваля (при загруженной БД)
12 /v<Пароль_пользователя> - пароль пользоваля (при загруженной БД)

6.1. Create new DB with Shdbinst.exe

6.1.1. For example, you execute .but file like

Shdbinst.exe /sSH52 /fC:\UCS\SH52\Database\SDB52\db_10 /i22 /tC:\UCS\SH52\Database\SDB52\lg_10 /aAdmin /d"db_10" /uAdmin /lC:\UCS\SH52\Server\shcrtdb64.dll

6.1.2. Close command line window as offered.

6.2. Use examples

Дял получения списка поддерживаемых параметров необходимо запустить из командной строки (cmd.exe) утилиту Shdbinst.exe без указания параметров

вызов утилиты - cd C:\UCS\StoreHouse_5\Shdbinst

Создание новой БД:

Shdbinst.exe /sSDBSERV /fC:\UCS\StoreHouse_5\Database\SH5DB  /i22 /tC:\UCS\StoreHouse_5\Database\SH5DBLog /aAdmin /d"New db" /uAdmin /lC:\UCS\StoreHouse_5\Server\shcrtdb64.dll 
Восстановление БД:
Shdbinst.exe /sSDBSERV /fC:\UCS\StoreHouse_5\Database\SH5DB /i22 /tC:\UCS\StoreHouse_5\Database\SH5DBLog /aAdmin /d"Restore db" /uAdmin /bC:\UCS\StoreHouse_5\Backup\backup.bkp
Обновление БД:
Shdbinst.exe /sSDBSERV /fC:\UCS\StoreHouse_5\Database\SH5DB /i22 /tC:\UCS\StoreHouse_5\Database\SH5DBLog /aAdmin /d"Update db" /uAdmin /bC:\UCS\StoreHouse_5\Backup\backup.bkp /lc:\UCS\StoreHouse_5\Server\shcrtdb64.dll 
или
Shdbinst.exe /s127.0.0.1 /fC:\UCS\StoreHouse_5\Database\SH5DB /i1024 /tC:\UCS\StoreHouse_5\Database\SH5DBLog /aAdmin /d"Update db" /uAdmin /lc:\UCS\StoreHouse_5\Server\shcrtdb64.dll 

6.3. Errors

code description
0 OK
1 parameter is set wrong
2 parameter is not found
3 error in domm.dll initialization
4 error in sdbcli.dll initialization
5 error in domm.dll procedure execution
6 error in sdbcli.dll procedure execution
7 unknown error
8 user aborted operation

7. Start and use


Для запуска сервера необходимо запустить  Sdba и Sdbserv через командную строку.

7.1. As service Sdba

  • Имя сервиса (ServiceName): "Sdba" или "Sdba64"
  • Отображаемое имя (DisplayName) : "Sdbserv assistent" или "Sdbsrv64 assistent"
  • Командная строка: <полный_путь> + параметр " /s".

Пример команды: C:\UCS\StoreHouse_5\Shdbinst>C:\UCS\StoreHouse_5\Server\Sdba64.exe /s

7.2. as service Sdbserv

  • Имя сервиса (ServiceName) и отображаемое имя (DisplayName): "Sdbserv: " + <название_экземпляра_сервера> или "Sdbsrv64: " + <название_экземпляра_сервера>
  • Командная строка: полный_путь + параметр " /s"  + параметр " /n" + <название_экземпляра_сервера>
Пример: C:\UCS\StoreHouse_5\Shdbinst>c:\UCS\StoreHouse_5\Server\SdbSrv64.exe /s /nSDBSERV
 
Проверить запустились сервисы или нет можно в процессах (в диспетчере задач)

7.3. New instance of server

Новый сервер создается в том случае, если вам нужно больше одного экземпляра.

В этом случае нужно создать ветку в корневом разделе HKLM\SOFTWARE\UCS\Sdbserv.2 с названием, соотв. названию экземпляра сервера и создать в этой ветке требуемые параметры сервера
 
Пример раздела реестра с параметрами для экземпляра сервера SDBSERV:
[HKEY_LOCAL_MACHINE\SOFTWARE\UCS\Sdbserv.2\SDBSERV]
"bkppath"="C:\\UCS\\StoreHouse_5\\Backup"
"bkpprms"=dword:00000001
"dbfile"="C:\\UCS\\StoreHouse_5\\Database\\SH5DB"
"dblog"="C:\\UCS\\StoreHouse_5\\Database\\SH5DBLog"
"lgprms"=dword:00000003
"libpath"="C:\\UCS\\StoreHouse_5\\Server"
"logfile"="C:\\UCS\\StoreHouse_5\\Server\\SrvLog.log"
"nplist"=dword:00000003
"params"=dword:00000000
"threads"=dword:00000001

Важно:  l.ucs.ru:60606

Ключ "SOFTWARE\\UCS\\Sh.5" должен содержать строковый параметр "dmalib", в кот. должен быть прописан полный путь к shadm.bpl

7.4. Registry parameters setup

Параметры сервера

Общие серверные параметры

Серверные параметры хранятся в ветке HKLM\SOFTWARE\UCS\Sdbserv.2 (корневая ветка)
 
 
Примечание: Если при запуске сервера не указано имя экземпляра (параметр /n), используется ветка HKLM\SOFTWARE\UCS\Sdbserv.2\SDBSERV
 
 
Параметры, доступные в корневой ветке HKLM\SOFTWARE\UCS\Sdbserv.2:
  • Autorun (строковый) - список экземпляров серверов через ";" для автоматического запуска при загрузке Windows (но не сервисами):
  • RootDir (строковый) -  каталог, из которого запускается сервер и его утилиты

Параметры экземпляра сервера

Параметры конкретного экземпляра сервера хранятся в ветке HKLM\SOFTWARE\UCS\Sdbserv.2\<Имя_экземпляра_сервера>
 
Параметры, доступные в ветке экземпляра сервера:
 
Общие параметры сервера
  • params (DWORD) - битовая маска нижеперечисленных параметров:
  • AutoRepair=1 -  автоматически восстанавливать БД по журналу транзакций
  • DisableAutoValidation= 2 - запретить проверку файла данных при загрузке при обрыве записи в журнал транзакций 
  • OpenDbReadOnly=4  - файл БД открывается только на чтение (read only)
  • PriorityHigh=8  - запускать с высоким приоритетом
  • PriorityIdle=16  - запускать с низким приоритетом
  • ShowInitErrors=64  - ошибки инициализации будут выведены на экран (для сервиса игнорируется)
  • SafeMode=128  - будет загружен только файл БД без прикладных библиотек

Если не выставлен флаг AutoRepair  и обнаружена незавершенная транзакция, то

  • сервис будет остановлен
  • не сервис будет остановлен, если не выставлен флаг ShowInitErrors
  • в противном случае на экране будет отображено окно диалога
 Параметры протоколирования
  • lgprms (DWORD) -  битовая маска нижеперечисленных параметров (необязательный параметр):
  • Logins=1
  • ChannelEvts=2
 
Прочие параметры
  • descr (строковый) - описание назначения сервера, для информации (необязательный параметр)
  • dbfile (строковый) - полный путь к файлу БД
  • dblog (строковый) - полный путь к журналу транзакций БД
  • minwss (DWORD) - размер минимального рабочего набора (min working set) процесса сервера (см. документацию Microsoft) в килобайтах, (необязательный параметр, настоятельно рекомендеутся не устанавливать параметр без необходимости)
  • maxwss (DWORD) - размер максимального рабочего набора (min working set) процесса сервера (см. документацию Microsoft) в килобайтах, (необязательный параметр, настоятельно рекомендеутся не устанавливать параметр без необходимости)
  • maxch (DWORD)  -  максимльный размер резервируемого кэша в байтах (необязательный параметр, рекомендуется использовать значение по-умолчанию)
  • incch (DWORD)  - минимальный размер памяти в байтах для увеличения размера кэша в случае исчерпания ранее выделенной памяти (необязательный параметр, рекомендуется использовать значение по-умолчанию)
  • logfile (строковый) - полный путь к лог-файлу сервера (может быть пустым)
  • libpath (строковый) - путь к каталогу с библиотеками пользователя
  • bkppath (строковый) - путь к каталогу хранения резервных копий БД
  • bkpprms (DWORD) - опции автоматического резервного копирования; содержат структуру 
struct {
BYTE  Type;   // Тип копирования (0-отключить автоматическое резервное копирование; 1-включить)
BYTE  Period; // Периодичность в днях минус 1 [1, 256]
WORD  Time;   // Время в минутах [00:00, 23:59]
}
  • monitor (строковый) - полный путь к библиотеке монитора
  • threads (DWORD) - максимальное кол-во потоков для обработки данных (необязательный параметр, на текущий момент если параметр определен, его значение строго должно равняться единице)
  • stack (DWORD) - размер стека, используемый при создании потока (необязательный параметр; по-умолчанию 1 MB)
  • tam (строковый)  -  префикс ThreadAffinityMask (tam0, tam1, ...) (необязательный параметр)
  • tip (строковый)  - префикс ThreadIdealProcessor (tip0, tip1, ...) (необязательный параметр)
  • nplist  (DWORD) -  битовая маска протоколов (необязательный параметр; 1-локальный, 2-tcp/ip; по умолчанию оба)
  • np1p  (строковый)  -  порт tcp/ip
  • np1to  (строковый)  - таймаут tcp/ip

Параметры клиента

Параметры клиента хранятся в корневой ветке HKLM\SOFTWARE\WOW6432Node\UCS\Sh.5 (x64) или HKLM\SOFTWARE\WOW6432Node\UCS\Sh.5 (x86):
 
  • dmalib (строковый) - полный путь к shadm.bpl (обязательный параметр)
  • dmlgnt (DWORD)  - тип логина (необязательный параметр, по умолчанию 0)

Может принимать значения:

  • 0 - отображать диалог логина с выбором типа аутентификации
  • 1 - отображать диалог логина только с типом аутентификации через сервер
  • 2 - отображать диалог логина только с типом аутентификации через Windows
  • 3 - в случае, если в списке серверов прописан только один сервер, производится аутентификация через Windows, при ошибке выдается сообщение об ошибке; если кол-во серверов не равно 1, диалог как при типе логина 0
  • 4 - в случае, если в списке серверов прописан только один сервер, производится аутентификация через Windows, при ошибке показывается диалог логина с выбором типа аутентификации; если кол-во серверов не равно 1, диалог как при типе логина 0
  • dmsrvs (строковый) - список серверов
  • dmsrva (строковый)  - список псевдонимов серверов
  • dmusrm (DWORD) - макс. хранимое кол-во пользователей (необязательный параметр, по-умолчанию 5)
  • dmsrvm (DWORD) - макс. хранимое кол-во доп. серверов, введенных вручную (необязательный параметр, по-умолчанию 5)
  • dmopts (DWORD) - битовая маска нижеперечисленных параметров (необязательный параметр, по умолчанию 0):
  • dmRegOptionsEnableExServers=1  - разрешить ручной ввод серверов

8. Upgrade StoreHouse_5


Для обновления StoreHouse_5 вам необходимо запустить инсталятор. В окне выбора действия выберите обновление.

Выберите нужный вам экземпляр сервера и нажмите далее.

Затем вы увидите окно выбора файла бэкапа. 

Если вам необходимо создать файл бэкапа, то зайдите в утилиту Sdbman.exe в каталоге Storehouse_5\Client\. Затем выберите пункт «Обслуживание», подпункт «Резервное копирование». И выполните бэкап.

Теперь когда вы выбрали нужный бэкап и перешли на следующую страницу, система предложит вам список компонентов для обновления.

Выбираем компоненты и нажимаем «Далее».

На следующем экране вы увидите параметры сервера, который вы собираетесь обновлять.

Нажимаем «Далее» и переходим на экран настроек базы данных. 

Нажимаем «Далее» и перходим к экрану «Подготовка к установке».  Так сервер StoreHouse_5 работает как служба, то необходимо будет остановить приложения. Для этого выберите пункт «Автоматически закрыть эти приложения». Нажмите «Далее».  

После этого начнется процедура обновления.


9. Localization


9.1. Translation of SH5 user interface to some language goes in several steps.

9.1.1. Use localize.ucs.ru web site for translation of each file in project SH5 and get XLF files from there (download).

9.1.1.1. The list of subfolders (they also must have .xlf files inside each subfolder):

# path folder description (filename)
1 \Client\ dmctl.xlf en.xlf
2 \Client\ domm.xlf en.xlf
3 \Client\ dset.xlf en.xlf
4 \Client\ sdbcli.xlf en.xlf
5 \Client\ Sdbman.xlf en.xlf
6 \Client\ Sh.xlf en.xlf
7 \Client\ Shadm.xlf en.xlf
8 \Client\QUSH\MAN\ QushMan.XLF en.xlf
9 \SH5lic\ Sh5Licen.XLF en.xlf

9.1.1.2. In each folder you must have same quantity of .xlf files, as many languages you need (usually, only one file in each folder).

9.1.1.3. File names for one language must be the same in each folder (for example: en.xlf).

9.1.1.4. File name must be unique language name and .xlf extension.

9.1.2. Translate file shcrtdb.ini from \Server\ folder in advance (before creation of database).

9.1.3. Translate other XLF files in folders for additional modules.

9.1.4. Create DB as in 6.1. above.

9.1.5. Change language for application with one of the following ways.

9.1.5.1. Open Sh.ini file and set parameters LNGF= the same filenames as you had put to folders above.

[dmctl]
LNGF=en.xlf

9.1.5.2. Start application sh.exe and login, go to menu "Service"->"Language choice" and specify language file option. Restart application and check.

9.1.6. Do same as above for other applications, like Sdbman.exe, with other files.

9.1.7. Translate Sh.rpt file in \Client\ folder for reports.

9.1.7.1. Put this file to folder \Client\Sh.rpts\ + subfolder of the same language name as chosen above (for example, \en\ )

9.1.7.2. In case you will make several languages, there will be several subfolders in \Sh.rpts\

9.1.8. Translate all .fr3 files (report layouts) in \Client\rpt\ folder.

9.1.8.1 Put all translated .fr3 files to the same folder with sh.rpt of this language (in example case: \Client\Sh.rpts\en\ subfolder).


10. Import from RK7


10.1. This application (for import settings) QushMan.exe and its server QushSvc.exe (install as service) used for RK7 and Subscription UCS systems.

10.2. Server QushSvc.exe

10.2.1. Server default location in subfolder \Client\QUSH\SVC\

10.2.2. Server settings are stored in OS registry, they are of string type (REG_SZ) in path "HKEY_LOCAL_MACHINE\Software\Ucs\Qush\[service_name]" (or extra 64-bit "Software" + "\Wow6432Node").

# name description value
1 DataPath folder with server files default is: [service_name].dat subfolder
2 LogLevel detail level for log 0 - 2 ; default: 1
3 TimeoutSQL waiting for SQL server response, in seconds default: 120
4 AbonementProvider DB provider for Subscription system data IBProvider is default
5 AbonementConnect Subscription system DB connection string Location=%0:s:%1:s;User ID=%2:s;Password=%3:s;Integrated Security=NONE
6 RkeeperProvider RK7 database provider SQLOLEDB is default; may change to SQLNCLI11

10.2.3. Server may take parameters from command line

# parameter description
1 /Install install as OS service
2 /Uninstall delete service from OS
3 /Desktop start as application with tray icon
4 /Silent   do not show cmd on install or uninstall
5 /Name:Qush service_name
6 /Port:8087 TCP port for this server

10.3. Client for import settings QushMan.exe

10.3.1. Default location in folder  \Client\QUSH\MAN\

10.3.2. Set up QushMan.ini file

Server = 127.0.0.1
Port = 8087    
Egais = 0
Mercury = 0

10.3.2.1. Leave "Egais" and "Mercury" =0 (those for Russia).

10.3.3. Start QushMan.exe and manage settings inside.