Импорт данных через DataCollector

Введение

Скачать дистрибутив можно на FTP-сервере по адресу: ftp://ftp.ucs.ru/rk7/shcr/
Для синхронизации баз данных R-Keeper 7 и StoreHouse реализована утилита DataCollector. При проведении действий (продаж) при помощи RK7 информация о  перечне и количестве проданных блюд и услуг, местах реализации и т. д. поступает в SQL -  таблицы. В свою очередь информация об изменениях на складе (в StoreHouse) также поступает в таблицы SQL, при помощи SHCR.
 
 
Рис. 1 - Схема связи SH и RK7
 
Т.е. в отличии от утилиты ImportRK, данные запрашиваются не у сервера справочников, а непосредственно из SQL базы.
 
Состав комплекта:
 
1. DataCollector.exe - непосредственно утилита, которая производит импорт справочников и продаж из RK7 в SH4. Может запускаться в режиме Desktop (обычный запуск exe-файла без параметров), либо в режиме службы-windows, для этого достаточно 1 раз запустить файл с ключом /install 
2. Settings.exe - утилита настройки импорта. Именно в ней настриваются параметры подключения к базе SH4, а также все параметры импорта. Важно!!!! Все произведенные настройки сохраняются непосредственно в базе SQL, поэтому не важно с какого рабочего места вы запускаете утилиту, считаются именно те настройки, которые вы производили последний раз. Т.е. для изменения настроек достаточно иметь утилиту, корректный udl-файл и доступ к базе SQL.
2. Scheduler.exe - планировщик задач. С помощью данной утилиты можно настроить расписание и периодичность импорта, а также посмотреть журнал выполнения задач.

1 Настройки SHCR

1.1 Настройка связи с БД RK7 под управлением SQL Server 

Для  работы утилиты SHCR необходимо настроить  файл подключения "test.udl" (при отсутствии файла необходимо создать новый). Файл содержит строку подключения к БД SQL, которая используется сервером справочников/отчетов в РК7 (рис.1а) для хранения накопительных данных смен..
 
Рис. 1а
 
Настроить значения в файле можно как простым редактированием в блокноте, так и стандартной утилитой "Средство канала передачи данных".
 
В Меню «Поставщик данных»  выбираем поставщика "Microsoft OLE DB Provider for SQL Server" (см. рис. 2)
 
 
Рис.2 – Выбор поставщика данных.
 
Во вкладке «Соединение» вносим имя SQL-сервера (вводим адрес сервера, на котором расположена необходимая база данных), имя пользователя, пароль, базу данных (вводим имя БД, которое будет использоваться для присоединенного файла БД SQL), проверяем соединение кнопкой "Проверить соединение" (см. рис. 3).
 

Рис. 3 – Настройка параметров соединения
Примечание. Если не выбрать базу данных в настройках, то вы увидите такую ошибку:

1.2 Settings.exe  - основные параметры

После создания файла test.udl запускаем файл "Settings.exe". При первичном запуске создаются таблицы в БД (назначение таблиц  см. в приложении 1).

В открывшемся окне проверяем, верно ли указан путь к udl, указываем дату старта и частоту происходящих синхронизаций R-Keeper v7 и StoreHouse 4 (см. рис. 4 - вкладка "Основные параметры"). Нажимаем кнопку «Тест соединения». В том случае, если все настройки введены верно, появится подтверждающее окно (см. рис. 5). 
 
 
 
Рис. 4 – Вкладка «Основные параметры»
soedinenie_ustanovleno.png

Рис. 5 – Подтверждение того, что соединение с сервером БД установлено

Описание настроек:

1. Путь к UDL-файлу - полный путь до файла настройки связи с SQL-базой

2. Пароль к БД - пароль для пользователя sa к базе SQL

3. Автовыгрузка с - дата с которой будут выгружены данные при первом запуске DataCollector, если параметр отключен и выгрузка данных не производилась - будут выгружены все данные имеющиеся в базе. 

4. Частота обновления - периодичность с которой будет запускаться DataCollector - не рекомендуем выставлять слишком маленькие значения.

5. Сортировка списков - настройка сортировки серверов SH4(если их несколько)

6. Таймаут выполнения запроса - время ожидания выполнения запросов к SQL-серверу

1.3 Параметры StoreHouse и r keeper 7

Первым делом обязательно пропишите путь к библиотеке сервера ShServ.dll  в файле shserver.ini. Если сервер расположен на удаленной машине, то прописываем полный путь к файлу shserv.dll на удаленной машине без IP-адреса. Если не указать путь к DLL, то продажи в SH не импортируются. 

Рис. 7 - Путь к библиотеке ShServ.dll
Для настроек импорта переходим во вкладку «Параметры SH и RK». Выбираем в окне выбора/создания сервера необходимый нам сервер (см. рис. 6) (для создания нового сервера щелкаем по окну правой кнопкой мыши, нажимаем «Добавить»,  вводим все необходимые параметры – имя, адрес, порт, имя пользователя, пароль).
Важно: у вас не должно быть запущенных экземпляров Sh.exe или Sdbman.exe. Клиентские приложения требуют лицензию и если она будет занята, DataCollector не сможет подключиться к серверу и будет выдавать ошибку подключения.
Обращайте внимание на логин и пароль — в них важен регистр!
 

Рис. 6 – Настройки импорта

Флаг «Активен» - определяет использование выделенного сервера для импорта/экспорта.

Флаг «Импорт в SH» - при наличии данного флага для данного сервера возможен импорт данных из R-Keeper V7 в StoreHouse V4.

Область «Основные параметры»

В области «Основные параметры» отображается информация выбранного сервера: имя сервера (то, что будет отображено слева в "Списке серверов StoreHouse"), ip-адрес, порт для подключения, имя пользователя (StoreHouse), пароль (к БД StoreHouse).

Область «Параметры импорта»

Вид закладки «Параметры импорта» зависит от выбранного принципа выгрузки документов в StoreHouse: по ресторанам или по концепциям.

Если используется выгрузка по концепциям, то в менеджерской РК7 должны быть заведены соответствующие концепции и связаны с ресторанами (рис.6а).

В версии SHCR  ver. 7.5.23.0 добавлен новый фильтр меню по расписанию (список доступности).

Работает только для выбранного конкретного ресторана.
При выборе всех ресторанов или концепции, данный фильтр не работает.

Особенность:
Блюдо не выгружается, если у выбранного ресторана задан период, в котором нет детализаций.
В Остальных случаях, если период не выбран или у периода есть хоть 1 детализация, блюдо выгружается.

 

Рис.6а

Вид области «Параметры импорта» при выгрузке по ресторанам представлен на Рис. 6 – Настройки импорта.

  • Ресторан – ресторан, продажи которого будут выгружаться в выбранную базу данных StoreHouse. При выборе конкретного ресторана, обязательно в свойствах ресторана в RK7 указывать цену SH4.
  • Категория заказа – реализация только с указанной категории заказа будет импортирована в StoreHouse.
  • Тип группировки – тип группировки документов расхода.
  • Товарная группа – корневая вершина из словаря «Список товаров», в которую будет выгружаться меню из R-Keeper V7.
  • Флаг «Импортировать меню» - выставляется только в том случае, если не используется StoreHouse Head Office.
  • Торговая группа – в словари StoreHouse выгрузятся блюда только указанной торговой группы.
  • Флаг «Создавать пустые группы» - при наличии флага в данном поле в словаре StoreHouse будут созданы пустые группы, для тех групп меню блюда из которых не выгружены из-за ограничения по торговым группам. Если флаг не установлен, нужно внимательно относиться к фильтрам выбора импортируемой информации, чтобы не потерять необходимые данные.
  • Флаг «Добавлять элементы с незаданной ценой» - при выставленном флаге в данном поле в StoreHouse выгружаются блюда, у которых в поле цена указано «не задано».
  • Расчет НДС – в данном поле необходимо выбрать правило расчета НДС: по R-Keeper (будет взята из RK7) или по StoreHouse (в этом случае ставка налога берется из карточки товара SH4). Рекомендовано использовать правило "По StoreHouse".

Флаг «Категории заказа по использованию» - при наличии данного флага в БД StoreHouse будут выгружаться документы расхода с категориями заказа (местами реализации), котрые определены в использовании (см. руководство по R-Keeper V7)

Для сопоставления типов валют R-Keeper V7 и Типов оплат StoreHouse необходимо нажать клавишу «Маппинг способов оплаты» (см. рис. 8). Если напротив способов оплат R-Keeper V7 не будет установлен соответствующий тип оплат StoreHouse, в базе StoreHouse создадутся новые типы оплат (в соответствии с типами оплат R-Keeper).

3.png
Рис. 8 – Меню «Маппинг способов оплаты»

Настройка «Доп. Фильтры» позволяет выбирать, по какой валюте/типу оплат выгружать расходы в StoreHouse. Из-за этой настройки сумма расхода за день в R-keeper может не соответствовать сумме расхода в StoreHouse. При группировке по причинам удаления кнопка «Доп. фильтры» неактивна. 
В этом разделе можно поставить флаг  «По нулевой цене» , который позволяет выгружать товары из R-keeper с нулевой ценой. Это полезно, например, для корректного учёта продаж за бонусы Plazius в StoreHouse.

 

В StoreHouse в документе расхода назначается Категория расхода, соответствующая способу группировки при загрузке данных. В пункте «Разбивка по складам» определяются настройки позволяющие разделять документы расхода по выбранному типу группировки и одновременно по складам списания.

Пример окна «Разбивка по складам» представлен на Рис. 9.

Рис. 9

Для добавления новой строки необходимо выбрать пункт «Добавить» из контекстного меню, затем в открывшемся окне (см. Рис. 10) необходимо заполнить поля.

Рис. 10

Склад - склад списания товара;

Заменяемая Категория - категория расхода, определяемая «по умолчанию» при импорте данных их R-Keeper.

Заменяющая Категория - категория расхода, которая будет присвоена документу расхода в StoreHouse в зависимости от склада списания товаров.

  • Список Замещающих категорий необходимо сформировать в словаре Категории расхода (см. Руководство пользователя по StoreHouse)
  • Для товаров с установленным типом Услуга необходимо сделать отдельное назначение
  • Если для какой-либо пары: Склад и Категория расхода не сделать назначение, то при импорте Расхода блюд с такими параметрами, будет создан документ расхода с категорией Реализация (по умолчанию)
  • Если у разных пар (Склад – Категория расхода) была выбрана одна и та же замещающая категория, то в StoreHouse будет сформирован один документ расхода с указанной замещающей категорией.

Для экспорта информации в SQL-базу (то есть выгрузка данных из StoreHouse (накладные и товары) в таблицы SQL), необходимо установить флаг «Экспорт в SQL».

Для выгрузки в таблицы SQL фудкоста, рассчитанного в StoreHouse, необходимо установить флаг «Обрабатывать фудкост».

Для расчета фудкоста обязательно выбрать группы для внутренних корреспондентов и группы корреспондентов для списания боя/порчи (перечень зависит от настроек StoreHouse). Более подробно ознакомиться с расчетом фудкоста можно в руководстве по StoreHouse.

Если требуется передавать информацию о прейскурантах в таблицы SQL, необходимо установить флаг «Обрабатывать прейскуранты».

 Если требуется передавать информацию о свойствах товаров в таблицы SQL, необходимо установить флаг «Обрабатывать свойства товаров».

Примечание: для того чтобы не выгружать из RK7 в SH4 наценку, которая определена для механизма импорта предоплаченных заказов из EDI в RK7, в настройках появился параметр "Не учитывать предоплаты". Поддержано в  SHCR ver. 7.5.19.1+.

К таким наценкам могут относиться например наценки, которые используется в случае оплаты заказа баллами из какой-либо внешней системы лояльности.

Если в r_keeper_7 заведено более двух налогов, то необходимо правильно передавать суммы в документы расхода.
Для назначения ставки налогов в карточку товара StoreHouse_4

  • НДС - считать первый в списке налог без флага "Добавить к цене". Если данный налог не используется на блюде r_keeper_7 (пустое значение или 0), то в StoreHouse назначать ставку 0%
  • НСП - считать первый в списке налог с флагом "Добавить к цене". Если данный налог не используется на блюде r_keeper_7 (пустое значение или 0), то в StoreHouse назначать ставку 0%
  • Если в списке нет налога с флагом "Добавить к цене", то в НСП карточки товара StoreHouse_4 назначать ставку 0%

Если используется более 2х налогов в r_keeper_7, то импорт налоговых сумм в расход StoreHouse_4 проводить только по r_keeper_7 (по StoreHouse нецелесообразно, т.к. нет возможности определить все ставки, для правильных расчетов сумм)

  • Суммы всех налогов БЕЗ ФЛАГА "Добавить к цене" - выгружать в поле НДС StoreHouse_4
  • Суммы всех налогов С ФЛАГОМ "Добавить к цене" - выгружать в поле НСП StoreHouse_4
  • Сумма б/н StoreHouse_4 = сумме без ВСЕХ налогов r_keeper_7
  • Сумма в/н StoreHouse_4 = сумме с учетом ВСЕХ налогов r_keeper_7

1.4 DataCollector.exe

Для экспорта/импорта запускаем файл "DataCollector.exe", жмем «Старт» (см. рис. 11)
 
Рис. 11 – Импорт/экспорт
При запуске DataCollector проверяет - есть ли не обработанные смены до текущей даты:
а) если есть - то производится импорт справочников и продаж до текущей даты.
б) если не обработанных смен - нет, то будет выполнен повторный импорт последней обработанной смены. Сделано специально для больших объектов, когда данные о продажах могут приходить в течение суток и необходима корректировка по продажам. 
 
При повторном импорте - пересоздание документов расхода в SH4 осуществляется только если документы расхода за эти даты не проведены.

2 Scheduler (Планировщик)

Пользовательский интерфейс планировщика представлен на рис. 12.
 
planirovshchik.png
Рис. 12 – Планировщик задач

2.1 Просмотр задач

Для просмотра существующих задач нажимаем кнопку «Просмотр задач» (см.  рис. 13).

6.png

Рис. 13 – Просмотр задач для выбранного сервера

Для просмотра сведений о задачах, например, выполненных с ошибкой, необходимо щелкнуть правой кнопкой мыши по интересующей задаче, нажать «Сведения» (см. рис. 14).

5.png

Рис. 14– Сведения о задаче

2.2 Мастер создания задачи

В стартовом окне мастера создания задачи необходимо выбрать сервер StoreHouse (см. Рис. 15) и нажать «Далее».

vybor_servera_0.png

Рис. 15 – Выбор сервера SH4

В открывшемся окне выбираем категорию нового задания, нажимаем «Далее» (см. рис. 16)

vybor_zadaniya_0.png

Рис. 16 – Выбор задания

В следующем окне выбираем начальную и конечную даты периода, за который хотим получить отчет (см. рис. 17), нажимаем «Далее».

period_1.png

Рис. 17 – Выбор периода желаемого отчета

В следующем окне назначаем время запуска задания (задачу можно выполнить немедленно, либо в заданное время и дату (см. рис. 18). Т.е. запуск "немедленно" используется для одноразовых задач "прямо сейчас", запуск по времени уточняет время запуска задачи, галочка "повторять каждый день" позволяет сделать задачу "ежедневной", при этом будут импорироваться все необработанные смены, т.е. если служба не запускалась неделю(а продажи за это время были) то при запуске импортируются данные о продажах за весь этот период.. Нажимаем «Далее». После этого появится окно со сведениями о созданном. Просматриваем, все ли верно, нажимаем «Сохранить».

Рис. 18 – Выбор времени запуска задания

Затем в открывшемся окне будут отображены данные о сформированном расписании. Пример представлен на Рис. 19Для сохранения настроек необходимо нажать клавишу «Сохранить».

Рис.19

3 Особенности

  • Если документы были импортированы за определенный интервал дат, при повторной выгрузке данных из R-Keeper в StoreHouse документы за текущую дату будут обновлены(если эти документы не проведены). Т.е. если данные в БД R-Keeper по закрытым сменам изменились, данные в документах расхода также изменятся.
  • При выгрузке данных с разбивкой по складам списания, если у какого-то из товаров (группы товаров) не определен склад списания, то такой товар (группа товаров) будут помещены в отдельный документ расхода с категорией расхода Реализация (по умолчанию).
  • Если на кассе R-Keeper продано блюдо с модификаторами, а в StoreHouse для данного товара определен тип «услуга», то в документ расхода такой товар будет выгружен без модификаторов. Если необходимо прогрузить модификаторы, то необходимо удалить документы расхода с данным товаром, изменить тип на «товар» и импортировать данные еще раз.

Приложение 1 

Таблица 1 - Назначение SQL - таблиц

Наименование таблицы
Содержимое таблиц

data_shcr_CatFoodCost 

 Фудкост

data_shcr_cmprotocol 

 Протокол комплектов

data_shcr_cm 

 Шапка комплектов

data_shcr_cm_atributes 

 Атрибуты комплектов

data_shcr_cm_detail 

Компоненты комплектов

data_shcr_cm_tech 

Технология сборки комплкетов

data_shcr_cm_version 

 Версии комплектов

data_shcr_CorrTree 

 Дерево корреспондентов

data_shcr_CorrFullList 

 Корреспонденты

data_shcr_docprotocol 

 Протокол накладных

data_shcr_doc 

 Шапка накладных

data_shcr_doc_attrs 

 Атрибуты накладных

data_shcr_doc_lines 

 Товары накладных

data_shcr_expdocprotocol 

 Протокол документов расхода

data_shcr_expdoc 

Шапка документов расхода

data_shcr_expdoc_lines 

 Товары документов расхода

data_shcr_expdoc_lines_details 

 детализация товаров (модификаторы)

data_shcr_GoodsTree 

 Дерево товаров

data_shcr_Goods 

 Товары

data_shcr_GoodsBaseAttrs 

 Атрибуты из карточки товаров

data_shcr_GoodsBaseCompl 

 Комплекты из карточки товаров

data_shcr_GoodsBaseMain 

 Заголовок из карточки товаров

data_shcr_GoodsBaseMeasures

Единицы измерения из карточки товаров

data_shcr_GoodsBaseStore 

 Запас из карточки товаров

data_shcr_GoodsBaseWrite_Off 

 Списание из карточки товаров

data_shcr_GoodsCtg 

 Осн.категории товаров

data_shcr_GoodsCtg2 

 Бух.категории товаров

data_shcr_idocprotocol 

 Протокол счет-фактур

data_shcr_idoc 

 Шапка счет-фактур

data_shcr_idoc_lines 

 Товары в счет-фактур

data_shcr_MGroups 

 Группы единиц измерения

data_shcr_MUnits 

 Единицы измерения

data_shcr_OwnAttrs

Собственные реквизиты

data_shcr_TDoc 

 Шапка шаблона накладных

data_shcr_TDoc_details

Товары шаблона накладных

data_shcr_PLDoc 

 Шапка прейскурантов

data_shcr_PLDoc_details 

Товары