Краткая инструкция по конфигурации проекта и созданию сборки
- 1 1. Краткая инструкция по конфигурации проекта
- 2 2. Краткая инструкция по созданию сборки
- 3 3. Дополнительная конфигурация
- 4 4. Приложение
- 4.1 Стандартный файл опций
- 4.2 Настройки подключения к БД
- 4.2.1 MySql
- 4.2.2 MSSql
- 4.2.3 Azure Sql
- 4.2.4 Oracle
- 4.2.5 PostgreSql
- 4.3 Форма записи SQL запроса
- 4.4 Переменные в SQL запросе
- 5 5. Начальные файлы конфигурации
1. Краткая инструкция по конфигурации проекта
Настройка файла опций
С корневой папки MySales необходимо перейти в папку config и создать файл
options_[name].json5 , где [name] - название проекта;Копируем стандартную заготовку файла опций (с м. Приложение) в созданный
файл с заменой [name] на название проекта;В поле db_interface вписываем используемый драйвер БД:
a. './DbMysql' - драйвер для MySql;
b. './DbMssqlNew' - драйвер для MSSql;
c. './DbOracle' - драйвер для БД Oracle;
d. './DbPostgresql' - драйвер для PostgreSql.В поле connection заполняем необходимые параметры для подключения к БД
исходя из образцов ( см. Приложение );В поле weather.location удаляеме коды городов, которые не используются
клиентом;В поле end_week устанавливаем максимально доступную неделю если
пилотный проект или 0 если продуктив;В поле start_week устанавливаем минимальную (самую ранюю) историческую
неделю;Если Клиент имеет больше одного региона, то необходимо параметру
use_all_region присвоить значение true иначе false .Сохраняем файл.
Настройка файла SQL запросов
1. С корневой папки MySales необходимо перейти в папку config и создать файл
sql_[name].ini , где [name] - название проекта;
2. Записываем в файл основные SQL запросы следующего предназначения
(форма записи SQL запроса см. Приложение ):
Название запроса | Описание запроса |
---|---|
all_stores | Возвращает следующие поля:
Отсортированные в порядке Пример запроса: SELECT STORE_ID NUM, STORE_NAME NAME,REGION_ID REGION,
WEATHER_CODE WEATHERFROM STORES
ORDER BY REGION_ID, STORE_ID |
all_regions | Возвращает следующие поля:
Пример запроса: SELECT '0' NUM, 'All' NAME,
null WEATHERUNION ALLSELECT REGION_ID NUM,
NAME NAME, WEATHER_CODE WEATHERFROM REGIONS |
all_groups | Возвращает следующие поля:
Отсортированные в порядке Пример запроса: SELECT GROUP_ID GRP, NAME NAME
FROM GROUPS
ORDER BY GROUP_ID |
sku_group | Возвращает следующие поля:
Отсортированные в порядке |
all_suppliers | Возвращает следующие поля:
Пример запроса: |
3. Записываем в файл предопределение переменных “price_disc” и
“price_disc_sum” в следующем виде:
{price_disc}
case when [ sales volume] = 0 then null else ( [ sales value] +
[discount value] ) / [sales volume] end PRICE,
case when [ sales volume] = 0 then 0 else [ discount value] / [ sales
volume] end DISC{price_disc_sum}
case when sum([ sales volume]) = 0 then null else sum ( [ sales
value] + [discount value] ) / sum( [sales volume] ) end PRICE,
case when sum([ sales volume]) = 0 then 0 else sum([ discount
value] ) / sum( [sales volume] ) end DISC
Квадратные скобки необходимо заменить на соответствующие им поля в БД.
4. Записываем в файл основные SQL запросы по загрузке продаж(форма записи
SQL запроса см. Приложение ):
Название запроса | Описание запроса |
---|---|
sales_by_group_store | Возвращает следующие поля:
С возможностью передачи
Пример запроса: |
sales_sum_stores_sum_groups | Возвращает следующие поля:
С возможностью передачи
Группирование по полю Недели. Пример запроса: |
sales_by_stores_sum_groups | Возвращает следующие поля:
С возможностью передачи
Группирование по полям: Номер |
sales_by_group_sum_stores | Возвращает следующие поля:
С возможностью передачи
Группирование по полям: Номер |
sales_by_sku_store | Возвращает следующие поля:
С возможностью передачи
Пример запроса: |
sales_by_sku_sum_stores | Возвращает следующие поля:
С возможностью передачи
Пример запроса: |
5. Сохраняем файл.
Настройка директории
Открываем корневую папку MySales в командной строке (терминале) и
прописываем следующую команду для создания директории проекта:
mkdir data/data_ [name]
где [name] - название проекта;Далее прописываем команду для создания лицензионного файла:
node util/generate_keys.js options_ [name] .json5
где [name] - название проекта;В созданную директорию mysales/data/data_ [name] копируем файлы с историей
курса доллара (currency_rate.json) и погоды (weather.json).
Настройка сборщика
С корневой папки MySales необходимо перейти в папку dist и создать файл
update_[name].sh , где [name] - название проекта;Заполнить файл по примеру:
где [name] - название проекта; "С корневой папки MySales необходимо перейти в папку util и открыть файл
make.sh ;Перед записью echo Completed необходимо вставить запись для сборки
проекта:
где [name] - название проекта, [db_interface] - драйвер БД:
a. ./DbMysql - драйвер для MySql;
b. ./DbMssqlNew - драйвер для MSSql;
c. ./DbOracle - драйвер для БД Oracle;
d. ./DbPostgresql - драйвер для PostgreSql.
5. Сохраняем файл.
2. Краткая инструкция по созданию сборки
При создании сборки проекта можно выделить следующие этапы:
Создание сборки;
Обновление конфигурационных файлов (необходим только после создания
первой сборки по проекту);Установка сборки.
Создание сборки
Открываем корневую папку MySales в командной строке (терминале) и
прописываем следующую команду для создания директории проекта:
util/make.shОжидаем окончания создания сборок по всем проектам;
Сборки хранятся в хранилище на Dropbox в папке MySalesDist .
Обновление конфигурационных файлов
Открываем папку MySalesDist на Dropbox;
Предоставляем доступ по ссылке файлу mysales_ [name] .zip , где [ name] -
название проекта.Копируем ссылку доступа и вставляем её в:
a. файл опций options_ [name] .json5 в поле updater.optArchUrl;
b. файл обновления update_ [name] .sh в поле wget "[ link]" -O
mysales_ [name] .zip
где [name] - название проекта,
[link] - ссылка.
Примечание: если ссылка заканчивается на “0”, в файлах опций и обновления “0”
необходимо заменить на “1”.
Установка сборки
Открываем папку MySalesDist на Dropbox;
Скачиваем файлы:
a. mysales.zip;
b. mysales_ [name] .zip, где [name] - название проекта.Разархивируем скачанные файлы, после удаляем файлы.
Перемещаем файлы с папки mysales и mysales_ [name] (где [ name] - название
проекта) в одну папку и открываем ее в командной строке (терминале);Выполняем команду: npm i ;
Установка сборки завершена, для запуска MySales необходимо открыть папку с
файлами MySales в командной строке (терминале) и выполнить команду: node
app .
3. Дополнительная конфигурация
Добавление ассортиментной матрицы
Открываем файл конфигурации проекта;
В поле loader добавляем свойство load_range_days со значением N (кол-во
последних дней, за которые загружаются цены, по умолчанию 365);В поле default_predictors добавляем новый предиктор 'assrt' ;
Сохраняем файл конфигураций;
Открываем файл Sql запросов;
Добавляем следующий Sql запрос:
Название запроса | Описание запроса |
---|---|
ranges_by_sku_store | Возвращает следующие поля:
С возможностью передачи следующих параметров:
Пример запроса: |
7. Сохраняем файл Sql запросов.
Добавление цен
Открываем файл конфигурации проекта;
В поле loader добавляем свойство load_price_days со значением N (кол-во
последних дней, за которые загружаются цены, по умолчанию 365);Сохраняем файл конфигураций;
Открываем файл Sql запросов;
Добавляем следующий Sql запрос:
Название запроса | Описание запроса |
---|---|
price_by_sku_store | Возвращает следующие поля:
С возможностью передачи
Пример запроса: |
6. В Sql запрос all_stores необходимо добавить поле вывода ценового региона
PRL.
Пример запроса:
7. Сохраняем файл Sql запросов.
4. Приложение
Стандартный файл опций
Стандартный файл опций находится в директории MySales по пути
config/docs/options_[name].json5 .
Настройки подключения к БД
MySql
MSSql
Azure Sql
Oracle
PostgreSql
Форма записи SQL запроса
Переменные в SQL запросе
MySales поддерживает передачу переменных двух видов:
содержащая одно значение;
содержащая список значений.
Первый вид используется следующим способом:
WHERE COLUMN_NAME = :variable_name
Если тип значения переменной string, то запись переменной имеет следующий вид:
WHERE COLUMN_NAME = “:variable_name”
При использовании второго вида переменной запись выглядит:
WHERE COLUMN_NAME [variable_name]
Если тип значения переменной string, то запись переменной имеет следующий вид:
WHERE COLUMN_NAME “[variable_name]”
5. Начальные файлы конфигурации
Доступ пользователей к страницам регулируется только в режиме локальной секьюрити в настройках пользователей под ключом accessByPage
allow
{Array} определяет список видимых в меню и доступных страниц, будут видны только они.forbid
{Array} определяет список исключенных из видимых страниц. Остальные будут видны.
Чтобы внести страницу в список, необходимо записать её в массив в виде строки ‘/path_to_page’ , причем путь должен быть односложным, т.е. не /path1/path2 и т.п.
Что надо помнить: доступ через accessByPage
регулирует только доступ к рендеру страниц, но не к api.
Неоторые группы страниц имеют составной путь. Например, /promo/match.
Не все возможные страницы видны в меню. Например, тот же /promo/match не виден.
Для разрешения/запрещения доступа к группе страниц под одним корневым роутом, достаточно указать корневой путь. Например, /promo .
Видимость в меню регулируется в файле views/header.inc.jade через isDisplay
(), и надо следить, чтобы пути там совпадали с вызываемыми.
Также надо помнить, что в текущей архитектуре роутер передает на isLoggedInRoute
ссылку с уже отрезанной базой. Это усложняет логику обработки корневой '/',
В дальнейшем надо решить, как регулировать доступ к группам страниц, типа replenishment. Поскольку перечислять все для контроля доступа неэффективно, + если мы добавляем новые страницы это ведет за собой необходимость делать апдейт политик пользователей.
Related content
(c) MySales Labs Ltd
Единственным и исключительным владельцем программного обеспечения MySales, данной документации и других связанных с MySales сопроводительных материалов, является MySales Labs Ltd