Это старая версия документа.


Содержание

Консольная утилита Forecast NOW!

FSystemConsole.exe

Находится в директории вместе с программой и позволяет

В консольную утилиту выводятся сведения о начале и завершении операции, а также о времени выполнения. Такой же вывод есть для подопераций. Консольная утилита по завершению предоставляет код возврата, при отсутствии ошибок он равен нулю, в противном случае - код ошибки. Описание ошибок представлено в таблице ниже.

Пример работы консольной утилиты Forecast NOW!

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

rem переходим в папку с утилитой
cd C:\Program Files\ForecastNOW


rem загружаем параметры в режиме замены, выводим логи загрузки в отдельный файл
FSystemConsole.exe import --properties -r D:\FNOW\SUPPLIERS\Suppliers.csv base >> C:\fcn_logs\log-swod-%date%.txt

rem загружаем поля для товаров в режиме обновления, выводим логи загрузки в отдельный файл
FSystemConsole.exe import --items-fields -a D:\FNOW\SUPPLIERS\Itemfields.csv base >> C:\fcn_logs\log-swod-%date%.txt

rem загружаем акции, выводим логи загрузки в отдельный файл
FSystemConsole.exe import --marketing-campaigns D:\FNOW\CAMPAIGNS\Campaigns.csv base >> C:\fcn_logs\log-swod-%date%.txt

rem загружаем аналоги, выводим логи загрузки в отдельный файл
FSystemConsole.exe import --analogs D:\FNOW\ANALOG\Analog.csv base >> C:\fcn_logs\log-swod-%date%.txt

rem загружаем историю продаж в режиме замены из директории,формируя временный файл из нескольких файлов истории продаж, выводим логи загрузки в отдельный файл
FSystemConsole.exe import -sh -r "C:\Users\user\Desktop\format.format"  "D:\FNOW\SALES"  base --dir "--temp-file=D:\FNOW\temp.csv" >> C:\fcn_logs\log-swod-%date%.txt

rem загружаем классификации в режиме замены, выводим логи загрузки в отдельный файл
FSystemConsole.exe import -o -r D:\FNOW\ASSORTMENT\Assortment.csv base >> C:\fcn_logs\log-swod-%date%.txt

rem рассчитываем прошедшие акции (ранее не рассчитанные, спрогнозированные или рассчитанные по неполным данным), выводим логи расчета в отдельный файл
FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --status calc_by_incomplete_data;notset;forecast; --periodstatus past base >>C:\fcn_logs\log-past-%date%.txt

rem рассчитываем текущие акции, прошедшие больше чем на 50% (ранее не рассчитанные, спрогнозированные или рассчитанные по неполным данным), выводим логи расчета в отдельный файл
FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --status calc_by_incomplete_data;notset;forecast; --degree-completion 50 100 --periodstatus going base >> C:\fcn_logs\log-going-%date%.txt

rem прогнозируем будущие акции, выводим логи расчета в отдельный файл
FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --coef 1 1 --periodstatus future --forecast base >> C:\fcn_logs\log-going-%date%.txt

rem для высвобождение ресурсов сервера даем небольшой таймаут
timeout 300 > NULL

rem проводим балансировку по фильтру "balance1" с использованием настроек пользователя user
FSystemConsole.exe balancing base "D:\fnow_balancing\settings1.csv" "D:\FNOW!\OUT\ORDERS\TRANSFER\BALANS" --user "user" --filter "balance1"  >> C:\fcn_logs\log-swod-%date%.txt

timeout 300 > NULL

rem формируем заказы по фильтру 1 с учетом ранее проведенной балансировки, возможные ошибки консоли выводим в отдельный файл
FSystemConsole.exe make-orders --user "user" --consider-balancing "1" "base" "D:\FNOW\OUT\ORDERS" >> C:\fcn_logs\log-swod-%date%.txt
echo %ERRORLEVEL% >> E:\log\log-swod-%date%.txt

Логирование неудачных запусков утилиты

Неудачные запуски консоли логируются.

После запуска графического интерфейса показываются предупреждения со всеми новыми логами с возникшими ошибками при запуске консольной утилиты для всех пользователей (только один раз при первом запуске). В сообщение о критической ошибке импорта указывается путь к файлу с логом ошибок.
Если при старте работы с консольной утилитой возникает ошибка ключа защиты, то происходит 5 переподключений. При этом в консоль выводится сообщение:

protection key error. try to reconect...

По умолчанию отображаются только критические ошибки. Чтобы отображать все ошибки, нужно отключить соответствующую глобальную настройку

Если консольная утилита завершилась из-за возникновения ошибки, то создаётся дамп памяти.
Путь к созданному файлу дампа, отображается в командной строке. По умолчанию файл дампа памяти создаётся в папке C:\ProgramData\Ingenious Team\ForecastNOW\CrashDumps в формате dmp.
Данный файл можно передать в службу технической поддержки, для анализа и выявления причины завершения работы консольной утилиты.

Коды ошибок при работе консольной утилиты

0 Нормальное завершение работы
1 Запуск без параметров
2 Падение программы
3 Ключ защиты недоступен
4 Ошибка запроса к базе данных
5 Указано недостаточно аргументов для операции
6 Указано слишком много аргументов для операции
7 База данных не существует
8 Не указано имя базы данных
9 Файл не существует
10 Не удалось открыть файл
11 Не удалось создать бэкап
12 Введена неизвестная команда
13 Указан неизвестный режим импорта
14 Указан неизвестный тип данных
15 Некорректная версия базы
16 Некорректные аргументы
17 Некорректная строка аргументов
18 Некорректный формат истории продаж
19 Пользователь не найден
20 По указанным параметрам не требуется размещать заказы при автоматическом формировании списка заказов
21 Критическая ошибка импорта
22 Сервер базы данных не доступен
23 Не удалось активировать файл лицензии
24 Не указан или указан некорректный файл лицензии
25 Срок лицензии истек
26 В команде экспорта информационной базе (ключи -ib или –information-base команды export) указан существующий файл для сохранения
27 При удалении данных(команда remove) не указан ключ -f и нет прав на запись в каталог бэкапа
28 При импорте сегментов клиентов (ключ –complex-client) в файле указан несуществующий клиент
29 У товара нет ближайшей доступной даты формирования заказа
31 Ошибка аутентификации при отправке заказа по электронной почте
34 В базе данных нет правил автоустановки с указанным типом
35 Ни одно из введенных названий правил с указанным типом не соответствует тем, что находятся в базе данных

Остановка работы консольной утилиты при возникновение ошибок

Если во время работы консольной утилиты выявлены ошибки, то можно отменить дальнейшее выполнение команд. Для этого нужно в файл для консольной утилиты вставить дополнительную команду:

echo %ERRORLEVEL%
IF %ERRORLEVEL% EQU 0 goto okay
:erorrs 
echo some errors
exit
:okay 
echo okay

Данное поле нужно вставить после команды, при выполнение которой если будут выявлены ошибка утилита прекратит свою работу.
Например:
Если при загрузке истории продаж возникнут ошибки, то консольная утилита прекратит свою работу и файл классификации не будет загружен.

FSystemConsole.exe" import -sh -a "C:\file\format.format" "C:\file\history.csv" demo.db
echo %ERRORLEVEL%
IF %ERRORLEVEL% EQU 0 goto okay
:erorrs 
echo some errors
exit
:okay 
echo okay
FSystemConsole.exe" import -o -r "C:\file\classification.csv" demo.db 

Справка по команде

FSystemConsole.exe help

Указание пути к конфигурационным файлам

Вы можете указать путь к конфигурационным файлам при работе консольной утилиты

- путь к файлу gnclient.ini, команда –gnclient-file

- путь к файлу dbserver-config.ini, команда –db-config-file

- папки с настройками, если она указана то файлы gnclient.ini и dbserver-config.ini ищутся там (если не указаны конкретные пути через команды описанные выше), команда –config-path

Импорт данных

Общий синтаксис

FSystemConsole.exe import тип [режим формат | режим] путь_к_загружаемому_файлу база_данных [опции]

режим - замена, обновление или частичное обновление
формат - формат истории продаж, актуально только для истории продаж
база_данных - название базы данных Forecast NOW!

Тип

 -sh, --sales-history   импорт истории продаж 
 -o, -c, --ontology, --classification  импорт классификации
 -p, --properties  импорт параметров
 -a, --analogs    импорт аналогов
 -mс, --marketing-campaigns       импорт акций
 -of, ----orderFrequency    импорт сроков доставки от поставщиков
 -sp, --suppliers   импорт данных поставщиков
 --all    импорт файла формата xml, содержащего историю продаж, параметры, классификацию и даты поступления заказов
 --storage-aliases  импорт файла, содержащего названия складов
 --customer-purchases   импорт файла, содержащего закупки для клиентов
 --composite  импорт файла, содержащего комплекты
 --items-fields  импорт файла, содержащего произвольные поля для таблицы Заказа
 --arrivals    импорт файла, содержащего заказы и даты их поступления        
 --balancing-destinations  импорт файла, содержащего направления балансировки
 --settings-balancing импорт файла, содержащего настройки балансировки
 --storage-graphs   импорт файла, содержащего структуры подчиненности складов
 --storage-area  импорт файла, содержащего зоны хранения
 --order-schedule  импорт файла, содержащего расписания заказов
 --storage-graphs   импорт файла, содержащего иерархии складов
 --balancing-destinations  импорт файла, содержащего направления балансировки
-- parameters-rule импорт файла, содержащего правила автоматической установки параметров
-- complex-client импорт файла, содержащего сегменты клиентов
--parameters-rule импорт файла, содержащего правила автоустановки параметров
--prepare-report-settings импорт файла, содержащего фильтры подготовки заказа
--recipients-limits импорт файла, содержащего ограничения для внутренних перемещений
--clients импорт файла содержащего данные по клиентам

Форматы загружаемых файлов

История продаж

Формат истории продаж задается отдельно

Другие типы загружаемых файлов должны быть определенного формата

Классификация
Параметры
Аналоги
Акции
Загрузка xml файла
Загрузка названий складов
Загрузка данных поставщиков
Загрузка сроков доставки поставщиков
Загрузка закупок для клиентов
Загрузка комплектов
Загрузка произвольных полей товара для таблицы Заказа
Загрузка расписаний заказов
Загрузка дат поступления заказов

Формат: csv или xml

Направления балансировки
Настройки балансировки
Структуры подчиненности складов
Зоны хранения
Правила автоустановки параметров
Фильтры подготовки заказов
Ограничения на внутренние перемещения
Данные по клиентам

Режим(только для истории продаж, классификации, произвольных полей товаров, параметров)

Синтаксис

 -r, --remove                           режим замены и удаления старой информации
 -a, --append                           режим добавления и обновления информации
 -s                                     сохранение старых свойств в классификации. Может использоваться только при загрузке комплексного xml файла. Указывается в конце команды 

Синтаксис для комплексного файла

Для комплексного файла можно указывать режим загрузки для каждого типа данных отдельно при помощи флагов:

--removesales и --updatesales - замена и обновление продаж соответственно
--removeparameters и --updateparameters - параметров
--removeontology и --updateontology - классификации

Пример:

import --all source target  --removesales --updateparameters --removeontology - продажи и классификация будут загружены с заменой, а параметры в режиме обновления
import --all source target -r - всё загрузится в режиме замены
import --all source target -r --updateontology - всё загрузится в режиме замены, а классификация в режиме обновления

Формат(для загрузки истории продаж)

Указывается местоположение файла с форматом загрузки

как получить файл формата

Файл формата можно получить следующим образом:

  1. Запустить программу,
  2. Выбрать режим пользователя
  3. Выбрать файл истории продаж для загрузки
  4. Нажать «Указать Формат истории продаж»

5.Заполнить формат

  • выбрать формат даты,
  • выбрать разделитель полей
  • выбрать разделитель целой и дробной части
  • есть ли заголовок в загружаемом файле
  • соотнести столбцы файла столбцам, доступным в программе

6. Нажать «Сохранить в файл» - получите искомый файл для загрузки формата расширением .format

Пример файла формата

Склад;Артикул;Клиент;Дата;Кол-во;Цена реализации;Выручка;Цена закупки;Себестоимость;Учетная цена;Прибыль;Остаток;Товар в пути, ед.;Размещенный заказ, ед.;В резерве, ед.;Невыполненный заказ;Упущенный спрос
column-separator:;
decimal-separator:.
date-format:yyyy-MM-dd
header-flag:true

Исходник

исходный файл с данными для импорта (в зависимости от того, что вы импортируете)

Цель

целевая база данных для импорта (для SQlite указывается путь, для MYSQL - название базы)

Опции

--no-verification

Не будет производиться проверка истории продаж на корректность. Это позволит ускорить импорт, но возможны некорректные данные после импорта. Используйте только в том случае, если полностью уверены в корректности исходных данных. По умолчанию проверка корректности выполняется.

--ignore-syntax-errors 
При использовании опции загрузка будет проведена даже при наличии синтаксических ошибок в файле продаж и классификации.

Строки с синтаксическими ошибками будут проигнорированы, остальные - загружены

Для классификации игнорируется одна критическая ошибка - неверное кол-во аргументов (например если вместо Товар1;Название;Товар написать Товар1;Название)

Для истории продаж игнорируются неверное количество аргументов, неверный формат даты, неверный формат числа

--partial
Будут обновлены только данные только по тем столбцам, которые присутствуют в файле загрузки. Аналогичен режиму загрузки «Обновить частично» Этот флаг используется только для режима загрузки "обновить"

--dir

Будет произведена загрузка всех csv файлов из директории Исходник как файлов истории продаж. Исходник обязательно должен быть директорией в этом случае.

--temp-file=<путь к временному файлу>

Программа автоматически объединит содержимое csv файлов из директории, в указанный временный файл и загрузит историю продаж из этого файла.
Если утилите не удастся создать новый временный файл, то об этом будет сообщено, программа завершится.
Если файл с таким именем уже существует, то программа попытается его удалить и создать новый.
Если утилите не удастся открыть для чтения какой-либо csv файл с историей продаж, то об этом будет сообщено, программа завершится.

После загрузки истории продаж из временного файла он удаляется.

--save-properties

В режиме замены классификации будут сохранены созданные в программе свойства и их значения

--no-warnings
Отключение логирования некритических ошибок. Флаг должен быть указан сразу после типа импортируемого файла

--user <пользователь>
Используется при загрузке настроек балансировки. Указывается пользователь для которого производится загрузка настроек балансировки.

Работа с резервными копиями базы данных

для сохранения

FSystemConsole.exe save-dump база файл
для загрузки
FSystemConsole.exe load-dump база файл

Сжатие и обновление базы данных

update <целевая база данных> [-u]

Флаг -u позволяет перед обновлением базы проводить проверку актуальности версии базы и, если версии базы актуальна, то обновление не производится. Флаг не обязателен

Пример

FSystemConsole.exe update base

Сжатие базы данных

compress database, где database - имя/путь к базе данных

Пример

FSystemConsole.exe compress base 

Формирование заказов без участия пользователя

Позволяет формировать заказы без участия пользователя (автопилот)

Минимально необходимый синтаксис

 make-orders [--user user_name]  [--xml] [--xls] [--xlsx] [--csv] filter source target 

Позволит сформировать заказы по указанному фильтру и сохранить их в нужном формате

 --user или -u имя пользователя

Использование Пользователя из программы и его настроек. Если в автопилоте указан пользователь (через –user), то при сохранении заказов используется набор и порядок колонок из формата «Пользовательский» этого пользователя

filter
Имя фильтра, созданного в программе для выбора товаров, попадающих в автоподготовку

В связи с особенностями работы командной строки Windows фильтры должны задаваться цифрами или латиницей

Source
Имя базы для MySQL или путь к базе для SQLite, в которой нужно формировать заказы

Target
Место сохранения сформированных автопилотом заказов

--xml --xls --xlsx --csv
Флаги для дополнительного сохранения заказов в заданных расширениях

Структура заказа в xml

Для файла, сохраненного в xml используется следующая структура:

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть

<fnow-order >
<order-date>31.12.2016</order-date>
<from-date>24.01.2017</from-date>
<to-date>02.10.2017</to-date>
<rc-supplier-id>Поставщик (Код)</rc-supplier-id>
<rc-supplier-name> Поставщик (Название)</rc-supplier-name>
<customer>Заказчик</customer>
<row>
<row-id>1</row-id>
<rc-storage-id>Склад №1</rc-storage-id>
<rc-product-id>Артикул123</rc-product-id>
<rc-to-buy>9991</rc-to-buy>
…
</row>
…
<total>
<rc-to-buy>9991000</rc-to-buy>
…

</total>
</fnow-order>
<order-date> - тэг для даты Размещения заказа
<from-date> - тэг для даты От
<to-date> - тэг для даты До
<fnow-order> - тэг для всего заказа
<rc-supplier-id> тэг для кода поставщика, которому адресован заказ
<rc-supplier-name> тэг для названия поставщика, которому адресован заказ

<customer> - тэг для заказчика
<row> - тэг для строки в заказе
<row-id> - тэг для номера строки
<rc-storage-id> - тэг для ячейки в строке с кодом склада
<rc-product-id> - тэг для ячейки в строке с кодом товара
<rc-to-buy> - тэг для ячейки с Заказать
<total> - тэг для строки с Итого. дочерние тэги только для числовых значений.

Назначение дочерних тэгов в row и total

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть

Пишется в начало каждого xml документа. 
В тэгах статистик предыдущих продаж используется атрибут date для указания даты статистики. 
В тэгах свойств и параметров используется атрибут name для указания имени свойства или параметра. 
<!---rc-name - Продукт---->
<!---rc-product-id - Код---->
<!---rc-article-ext - Артикул (доп)---->
<!---rc-storage-id - Склад(Код)---->
<!---rc-storage-alias - Склад(Название)---->
<!---rc-avaible - Прогнозируемый остаток---->
<!---rc-reserve-rest - В резерве---->
<!---rc-storage-rest - Фактический остаток---->
<!---rc-transit-rest - В пути---->
<!---rc-order-rest - Заказано---->
<!---rc-backorder - Невыполненный заказ---->
<!---rc-needed - Прогноз спроса---->
<!---rc-reliable - Оптимальный запас---->
<!---rc-reliable-new-products - Оптимальный запас (с учётом новых товаров)---->
<!---rc-to-buy - Заказать---->
<!---rc-to-buy-immutable - Заказать без корректировок---->
<!---rc-to-buy-untreated - Заказать без обработок---->
<!---rc-manual-edit - Ручное редактирование---->
<!---rc-purchase-price - Цена закупа---->
<!---rc-purchase-cost - Сумма---->
<!---rc-purchase-price-deviation - Изменение закупочной цены---->
<!---rc-purchase-price-deviation-date - Дата изменения закупочной цены---->
<!---rc-previous-purchase-price - Предыдущая закупочная цена---->
<!---rc-placement-date - Дата размещения---->
<!---rc-from-date - Дата От---->
<!---rc-days-count - Число дней заказа---->
<!---rc-to-date - Дата До---->
<!---rc-shipment-date - Дата отгрузки---->
<!---rc-status - Достоверность---->
<!---rc-commentary - Комментарий---->
<!---rc-group - Группа---->
<!---rc-discount-price - Цена учёта---->
<!---rc-sell-price - Цена реализации---->
<!---rc-margin-price - Наценка---->
<!---rc-profitability - Рентабельность позиции---->
<!---rc-profitability-sell - Рентабельность заказа (выручка/себестоимость)---->
<!---rc-profitability-margin - Рентабельность заказа (прибыль/себестоимость)---->
<!---rc-product-volume - Объем---->
<!---rc-product-weight - Вес---->
<!---rc-product-gross-weight - Вес брутто---->
<!---rc-poduct-net-weight - Вес нетто---->
<!---rc-minimum-stock-amount - Точка заказа, запас ед.---->
<!---rc-avaible-to-order-amount - Доступный для заказа остаток---->
<!---rc-reserve-stock-amount - Страховой запас---->
<!---rc-expected-consumsion - Расход до поступления---->
<!---rc-deficit-to-delivery - Дефицит до поставки---->
<!---rc-lost-demand - Упущенный спрос---->
<!---rc-increased-order - Заказать увеличено на---->
<!---rc-mean-sales-amount-interval - Средний интервал между продажами---->
<!---rc-coef-variation-of-sales-amount-interval - Коэффициент вариации интервалов между продажами---->
<!---rc-coef-variation-of-sales-amount - Коэффициент вариации продаж---->
<!---rc-last-days-sum-amount - Суммарные продажи за 0 дней---->
<!---rc-total-campaigns-contribution - Влияние акций---->
<!---rc-coef-campaigns-contribution - Влияние акций Коэффициент---->
<!---rc-amount-campaigns-contribution - Влияние акций Объём---->
<!---rc-loss-of-expired-goods-amount - Потери по просроченному товару, нат. ед.---->
<!---rc-loss-of-expired-goods-cost - Потери по просроченному товару, ден. ед.---->
<!---rc-losses-deficit-amount - Потери по дефициту, нат. ед.---->
<!---rc-losses-deficit-cost - Потери по дефициту, ден. ед.---->
<!---rc-date-of-expiry-date - Дата окончания срока годности---->
<!---rc-number-of-packages - Заказать(упаковок)---->
<!---rc-packaging-first-level - Заказать (уп. 1 уровня)---->
<!---rc-packaging-second-level - Заказать (уп. 2 уровня)---->
<!---rc-packaging-third-level - Заказать (уп. 3 уровня)---->
<!---rc-average-amount - Наивный прогноз спроса (среднее 0 дней)---->
<!---rc-previous-year-amount - Наивный прогноз спроса (прошлый год)---->
<!---rc-to-buy-edit-cause - Причина редактирования---->
<!---rc-optimal-service-level - Оптимальный УС---->
<!---rc-product-properties - Значения свойств товара---->
<!---rc-product-parameters - Значение параметров товара---->
<!---rc-product-analysis - Результаты анализов---->
<!---rc-previous-sold-amounts - Продажи за предыдущие месяцы---->
<!---rc-previous-sold-amounts-weeks - Продажи за предыдущие недели---->
<!--rc-supplier-id - Поставщик (Код)-->"
<!--rc-supplier-name - Поставщик (Название)-->

Автоформирование по нескольким фильтрам и расписаниям

Часто возникает потребность формировать заказы по нескольким созданным фильтрам подготовки и расписаниям за один запуск консольной утилиты.

Формат такой команды:

FSystemConsole.exe make-orders --args-file "путь к файлу" "base" "target"

Путь к файлу - путь к файлу с указанными фильтрами и расписаниями. Файл состоит из строк вида «имя_расписания;имя_фильтра», заказы будут подготовлены для всех таких пар расписание-фильтр.

Расписание в файле можно оставлять пустым - тогда автопилот отработает по имеющимся в файле фильтрам и расписанию заказов из параметров в программе

Полный синтаксис формирования заказов

make-orders [--order-schedule schedule] [(--user | -u) user_name] [--group-by-suppliers | --group-by-storages]  [--dates date1 date2] [--union-by-supplier | --union-by-supplier-ordergroup | --union-by-supplier-ordergroup-customer | --merge-orders] [--group-order-by-product | --group-order-roundbystorage storage] [--save-union-only] [--remove-null-tobuy-records] [ --consider-balancing] [-md5][--xml] [--xls] [--xlsx] [--csv] [--sync] [--no-order-file] [--email] filter source target 

 --order-schedule название расписания

Расписание заказов, согласно которому проводится формирование заказов. Если не задано - для каждого товара берется из параметров

 --user или -u имя пользователя
Использование Пользователя из программы и его настроек. Если в автопилоте указан пользователь (через –user), то при сохранении заказов используется набор и порядок колонок из формата «Пользовательский» этого пользователя.

group-by-
Позволяет группировать товары при подготовке и расчете заказов

–group-by-suppliers - товары группируются по поставщикам (по умолчанию)

–group-by-storages - товары группируются по складам с учетом иерархии

 --dates date1 date2 
Выбор дат размещения заказов, которые попадут в работу утилиты.

Даты можно задавать в формате дд.мм.гггг или гггг-мм-дд

--union-by-supplier | --union-by-supplier-ordergroup | --union-by-supplier-ordergroup-customer 
Объединение сформированных заказов по поставщикам, поставщику и группе заказа или по поставщику, группе заказа и складу. Выбрать можно только одно объединение

--merge-orders
Объединит заказы, объединенные по одному из принципов, указанных в утилите

--group-order-by-product
Создаст общий заказ на склады по объединенным при помощи ключа –merge-orders заказы

При этом будут изменены объединения заказов, и объединённые заказы(по поставщику, группе заказа, складу), из которых этот заказ получен в соответствии с кратностью указанного склада

 --group-order-roundbystorage storage
storage - код склада

Создаст общий заказа на склады с учетом кратности указанного склада по объединенным при помощи ключа —-merge-orders заказы

| –group-order-roundbystorage storage

--save-union-only
Сохранение только объединенных заказов

--consider-balancing
При формировании заказов учтутся изменения остатков после проведения последней консольной балансировки

--remove-null-tobuy-records
Удаление из заказов, строк с нулевым значением Заказать. В реестре сохраняются полные заказы.

--xml --xls --xlsx --csv
Флаги для дополнительного сохранения заказов в заданных расширениях

--md5
Сохранение заказов с цифровой подписью

--sync 
Флаг для автоматического согласования прогнозируемых остатков и заказать во всех подготовленных и сформированных заказах.

--no-order-file
Не будут сохраняться файлы заказов, используемые для последующей загрузки в программу при ее открытии (.order).

Флаг можно использовать, если вы не хотите просматривать заказы, сформированные консольной утилитой, в интерфейсе программы

--email
Флаг для автоматической отправки сохранённых заказов на email, указанный в карточке поставщика. Заказы отправляются только при указание флага с форматом, в указанном формате.

Пустые заказы и нулевые заказы (где у всех позиций заказать =0) отправлены не будут

filter

Имя фильтра, созданного в программе для выбора товаров, попадающих в автоподготовку

Source

Имя базы для MySQL или путь к базе для SQLite, в которой нужно формировать заказы

Target

Место сохранения сформированных автопилотом заказов

При сохранении в имени заказа все экранируемые символы заменяются на пробелы.

Текущий список экранируемых символов:

  • «\\»
  • «/»
  • «:»
  • «*»
  • «?»
  • «\»
  • «|»
  • «<»
  • «>»
  • «.»

Пример. Кросс-докинг в консольной утилите

Ваша задача - рассчитать изначальные потребности филиалов и сформировать из них общий заказ поставщику, который при этом сразу по приходу на распределительный центр поедет на филиалы

make-orders --user user_name --union-by-supplier  --merge-orders  --group-order-roundbystorage storageRC [--xml]  [--xlsx]  filter source target 

  1. сформированные заказы будут сгруппированы по поставщику (–union-by-supplier)
  2. заказы, сгруппированные по поставщику, будут объединены –merge-orders
  3. из этих объединенных заказов будут создан сводный заказ на распределительный центр с учетом его кратности (–group-order-roundbystorage storageRC)

Отображение заказов после работы консольной утилиты

Сформированные при помощи консольной утилиты заказы при открытии программы автоматически загрузятся по следующей логике.

К каждому фильтру подготовки заказов можно приписать набор пользователей, которые «заинтересованы» в заказах из этого фильтра. По умолчанию в фильтре стоит значение «Все пользователи».

Пусть существует фильтр Ф и к нему приписан набор пользователей П. После отработки автопилота по фильтру Ф на диск будет сохранён набор заказов З, в базу для каждого пользователя будет занесено, что ему надо автоматически загрузить в программу при открытии заказы З. Заказы будут грузится до тех пор, пока пользователь:

1) не сохранит заказы в файл, и тогда они перестанут автоматически грузится только у него.

2) не удалит заказы с диска. тогда заказы перестанут грузится у всего набора пользователей П. об этом будет сообщено в явном виде в программе.

Если при формирование заказов, должны быть учтены ограничения поставщиков, но по каким то причинам, ограничения не были соблюдены, то при запуске программы будет выведено соответствующее сообщение, со списком заказов. Товарам к которым не применилось ограничение, будет записан соответствующий комментарий.

Вывод всех доступных фильтров подготовки заказов

Отобразить все доступные фильтры подготовки заказов можно при помощи команды filters

Синтаксис

filters source
source - имя базы

Проведение балансировки

Минимальный синтаксис команды

FSystemConsole balancing database [source] target [--user] --filter [--xml] [--csv] [--xlsx]
database 
название базы

source
файл с настройками балансировки

Во время выполнения команды, файл настроек проходит проверку на наличие ошибок. Если в файле есть ошибки, то балансировка не сформируется и будет выведено соответствующее сообщение, с указанием пути где хранится лог файл. Если указан флаг который игнорирует ошибки файла настроек, то балансировка сформируется и ошибочные настройки будут заменены на настройки по умолчанию.

user
- пользователь, чьи настройки будут использованы при балансировке

Обязательно указание или файла настроек или пользователя

 target
место сохранения файла с проведенной балансировкой можно указать полный путь к файлу. При этом если указать расширение xml - результат проведенной балансировки будет сохранен в xml формате

--filter 

Указание фильтра, по которому будет проходить балансировка.

Если указан несуществующий фильтр, то консоль выдаст сообщение non-existent auto-preparation filters

Фильтр можно указать только один. Если в команде указан фильтр и файл настроек, то балансироваться будут товары указанные в фильтре

Формат файла с настройками балансировки

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

Также поддерживается, формат, позволяющий задавать товары, участвующие в балансировке и прочие параметры ее проведения:

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть

В файле с настройками балансировки задаются:

1. Список товаров, участвующих в балансировке:

<товар|группа|срез>;<наименование><;значение (для среза)>

Пример:

товар;2016
группа;старые товары
срез;Поставщик;supplier1

2. Порядок складов:

склады;<склад1;склад2;…>

Пример:

склады;Ф4-2;Ф4-3

3. Таблица настроек

3.1. Сроки и стоимость доставки

доставка;от(<склад1>);до(<склад2>);срок(<срок доставки>);стоимость<(стоимость доставки>);кг(<стоимость доставки за кг>);%(<стоимость доставки в % от стоимости груза>)

Пример:

доставка;от(РЦ1);до(РЦ2);срок(1);стоимость(2000);кг(3);%(4)

Если не задано, сроки и стоимость доставки будут нулевыми и будет выдано предупреждение «warning! storages relationships table is empty»

3.2. Прочие настройки:

Отображать все нулевые перемещения;<значение> //какие нулевые перемещения отображать
доход на высвобожденные средства;<значение> //доход на высвобожденные средства, % в месяц
не перемещать товар;<значение> //если последнее поступление было раньше чем ...
особенности поставки;<не учитывать|основные|балансировка>
иерархия складов;<основная|балансировка>
расписание заказов;<основное|балансировка>
алгоритм балансировки;<по рентабельности|пропорциональное распределение остатка с рц>
направление балансировки;<значение направления из настроек "Направления балансировки">
метод разворота аналогов;<сначала старые запасы, потом новые|сначала дешевые, потом дорогие|по приоритету|обратно приоритету> 

3.3. Дополнительные настройки (если строчка присутствует в файле настроек, то эта настройка будет учтена при проведении балансировки)

учитывать аналоги
не учитывать разницу цен
норма складского запаса равна сроку поставки + периодичность
добавлять к остатку склада-донора остаток заказано
добавлять к остатку склада-донора остаток в пути
добавлять к остатку склада-реципиента остаток заказано
добавлять к остатку склада-реципиента остаток в пути

4. Имена полей, которые должны быть в сформированных балансировках, берутся либо из настроек балансировки пользователя(задается через вид → поля товаров), либо задаются в файле настроек балансировки в формате:

Поля товаров:ИмяПоля1;ИмяПоля2;ИмяПоля3

Пример файла настроек для проведения балансировки

группа;старые товары
склады;Ф1;Ф4;Ф3
доставка;от(РЦ1);до(РЦ2);срок(1);стоимость(2000);кг(3);%(4)
доставка;от(РЦ1);до(Ф2);срок(455);стоимость(21);кг(1);%(20)
Отображать все нулевые перемещения;Есть дефицит
доход на высвобожденные средства;10
не перемещать товар;14
особенности поставки;основная
иерархия складов;балансировка
расписание заказов;балансировка
учитывать аналоги
метод разворота аналогов;сначала старые запасы, потом новые
не учитывать разницу цен
норма складского запаса равна сроку поставки + периодичность
добавлять к остатку склада-донора остаток заказано
добавлять к остатку склада-донора остаток в пути
алгоритм балансировки;пропорциональное распределение остатка с рц
направление балансировки;Распределение остатков рц

для того, чтобы после проведения балансировки сохранились перемещения по определенным направлениям, в файле настроек (полученном из программы или заданным по вышеописанному формату нужно добавить
итоговые направления;из(s1,s2,...,sn);в(s1,s2,...,sn)
s1...sn - коды складов
Направления из файла настроек считаются приоритетнее направлений пользователя, заданным по ключу -user

Минимальный синтаксис команды для нескольких балансировок

Если вам надо провести несколько балансировок (например, по разным направлениям), то нужно последовательно запускать балансировки с разными файлами настроек или разными пользователями:

FSystemConsole balancing database  target --user user1 --filter balance [--xml] 
FSystemConsole balancing database  target --user user2 --filter balance2 [--xml]

Полный синтаксис команды

FSystemConsole balancing database [source] target [--user] [--filter] [--xml] [--csv] [--xlsx][--consider-balancing] [--no-split-by-destinations] [--no-verification]

  • database – название базы
  • source – путь к файлу с настройками балансировки. Во время выполнения команды, файл настроек проходит проверку на наличие ошибок. Если в файле есть ошибки, то балансировка не сформируется и будет выведено соответствующее сообщение, с указанием пути где хранится лог файл. Если указан флаг который игнорирует ошибки файла настроек, то балансировка сформируется и ошибочные настройки будут заменены на настройки по умолчанию.
  • target – место сохранения файла с проведенной балансировкой

можно указать полный путь к файлу. При этом если указать расширение xml - результат проведенной балансировки будет сохранен в xml формате

  • --user Имя пользователя 
    - указывается имя пользователя, настройки балансировки и отображения которого будут использованы для сохранения балансировки (показанные параметры/свойства/анализы, единицы измерения и направления балансировки).

Если указывается пользователь то файл настроек указывать не обязательно. Если в команде указан и файл настроек и пользователь, то настройки балансировки будут использоваться от указанного пользователя, а файл настроек будет проигнорирован. При входе в программу, после формирования балансировок, будет выведено сообщение, что файл настроек использоваться не будет.

  • --filter 
    - указание фильтра, по которому будет проходить балансировка.

Фильтр можно указать только один.
Если в команде указан фильтр и файл настроек, то балансироваться будут товары указанные в фильтре.
При этом фильтр не учтет итоги анализов и фильтрацию по параметрам

  •  --consider-balancing 

При формировании заказов учтутся изменения остатков после проведения последней консольной балансировки

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

  • [--xml] [--csv] [--xlsx] 

При указании этих флагов (одного или нескольких) балансировка также будет сохраняться в указанном формате. По умолчанию балансировка сохраняется в excel csv, для флага «–csv» просто в csv (в имя файла дописывается –csv так как расширение файлов у них одинаковое). Если файл цели указан с расширением xml, то флаг «–xml» можно не указывать. В excel csv формате балансировка сохраняется всегда.

  • --no-split-by-destinations

При формирование балансировок с указанием фильтра подготовки, сформированные балансировки не будут разбиваться по направлениям. Если указан этот флаг, то в качестве результата необходимо указывать не папку, а имя файла. Если балансировка была проведена через фильтр автоподготовки с флагом –no-split-destinations (не разбивать по направлениям), то в программе будет отображаться единственная балансировка с названием соответствующем шаблону:
<Наименование фильтра> <Текущая дата в момент проведения балансировки>

  • --no-verification

При формирование балансировки с указанием файла настроек, если настройка указана с ошибкой, то будет использовать настройка по умолчанию.

Во время работы консольной утилиты, выводится сообщение о количестве сформированных балансировок.
X balancing reports where created - где X число сформированных балансировок
none balancing reports where created - если количество сформированных балансировок равно нулю.

Отображение балансировки в интерфейсе программы

При выполнении консольной балансировки её результат сохраняется в базу. При первом открытии вкладки балансировка в программе будет задан вопрос «Загрузить результат консольной балансировки?». Если ответить «Да», то загрузится результат последней консольной балансировки.

При формирование балансировок по фильтру, названия сформированных балансировок будут иметь вид:
<Наименование фильтра> <Идентификатор склада донора> <Идентификатор склада реципиента> <Текущая дата> <Дата поставки ИЗ-В>
Если балансировка формируется без указания фильтра, то название будет соответствовать имени файла, указанного в команде для консольной утилиты.

Результаты проведённых балансировок удаляются при сохранении загруженной балансировки в файл или удаление.

Расчет коэффициентов маркетинговых акций

При помощи консольной утилиты можно автоматически рассчитать коэффициенты акций, отфильтрованных по заданным параметрам.

Вид команды:

FSystemConsole calc-coeff-mcampaigns --coef min_coef max_coef --period min_date max_date --ctype type --periodstatus periodstatus --status status --category categories target 

Обязательным является указание target - имя (для MySQL) или путь к базе (для SQLite), на которой нужно запустить расчёт коэффициентов.

Другие аргументы являются опциональными и задают фильтры для автоматического расчета коэффициента

Аргументы утилиты для фильтрации

Фильтрация по коэффициенту

Задается при помощи

--coef
Далее нужно задать минимальный и максимальные коэффициенты для фильтрации:

min_coef - минимальный коэффициент для фильтрации акций по коэффициенту(включительно сам min_coef).

Тип - десятичное число с разделителем точкой, например: 1, 2.0, 34.99

max_coef - максимальный коэффициент для фильтрации акций по коэффициенту(включительно сам max_coef).

тип - десятичное число с разделителем точкой, например: 1, 2.0, 34.99

По умолчанию фильтруются акции с любыми коэффициентами

Фильтрация по дате

Задается при помощи

--period
Далее нужно задать минимальные и максимальные даты для фильтрации:

min_date - минимальная дата для фильтрации акций по периоду.

Тип - дата в формате dd.MM.yyyy. например: 01.01.2001, 31.05.2016

max_date - максимальная дата для фильтрации акций по периоду.

Тип - дата в формате dd.MM.yyyy. например: 01.01.2001, 31.05.2016

фильтруемые акции входят целиком включительно в период между min_date и max_date.

По умолчанию фильтруются акции с любыми периодами

Фильтрация по типу

Задается при помощи

--ctype
Далее указывается тип акций для фильтрации

Виды значений:

  • coef - Коэффициент
  • amount - Объем

По умолчанию фильтруется тип Коэффициент

Фильтрация по статусу

Задается при помощи

--status
Далее указываются статусы для фильтрации. Для указания нескольких статусов их нужно перечислить через ;

Виды значений:

  • notset - не установлен
  • notcalc - невозможно рассчитать (в прошлом периоде по акции нельзя было провести расчет)
  • manual - установлен вручную
  • forecast - спрогнозированный для акций в будущем
  • calc - рассчитанный для акций в прошлом периоде
  • calc_by_incomplete_data - рассчитан по не полностью прошедшей акции
  • auto - автоматически сгенерированный в прошлых версиях программы
  • no_campaign_sales - Нет продаж во время акции
  • no_sales_before_campaign - Нет продаж до акции
  • zero_campaing_forecasted_demand - нулевой прогноз спроса
  • exceeded_period_treshold - период акции больше, чем указан в глобальной настройке

Если используются потоварные коэффициенты акций, то расчёт и прогнозирование коэффициентов, будет производиться только по товарам удовлетворяющим условиям фильтра.

Фильтрация по времени проведения акций

Акции можно отфильтровать по времени их проведения - прошедшие, текущие, будущие

Задается при помощи

--periodstatus
Далее указываются выбранные акции для фильтрации текущие, прошедшие, будущие. Для указания нескольких статусов их нужно перечислить через ;

Виды значений:

  • past - прошедшие акции
  • going - текущие акции
  • future - будущие акции
Фильтрация по складу, клиенту, артикулу

Задается при помощи

--storage storage_name

--client client_name

--product product_name 

Акция попадает в выборку, только если в неё входят клиент и склад и артикул одновременно.

Фильтрация по проценту завершенности

Задается при помощи

--degree-completion min_degree max_degree
min_degree max_degree - значения % завершенности акций, по которым будут отфильтрованы акции для расчета. Задается числом с точностью до 2 знаков после запятой (разделитель - точка или запятая)

Фильтрация по категориям

Задается при помощи

--сategory cat1;cat2

Категории перечисляются через ;

Если допущена ошибка в названии категории, то не будет рассчитана ни одна акция

Принудительное прогнозирование коэффициентов акций

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

Это делается при помощи ключа

--forecast

Пример команды

FSystemConsole calc-coeff-mcampaigns --period 01.01.2016 06.06.2016 --ctype coef --period status past --status notset;notcalc demo  --storage Склад1
Для акций базы demo будет рассчитан коэффициент по полностью завершенным акциям типа коэффициент в период с 01.01.2016 до 06.06.2016 с неустановленными и нерассчитанными коэффицентами, проходившими на Складе 1
FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --status calc_by_incomplete_data;notset;notcalc;forecast --periodstatus past test >>C:\fcn_logs\log-past-%date%.txt
FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --status calc_by_incomplete_data;notset;notcalc;forecast --degree-completion 30 100 --periodstatus going test >> C:\fcn_logs\log-going-%date%.txt
FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --coef 1 1 --degree-completion 0 30 --forecast --periodstatus going test >> C:\fcn_logs\log-going-%date%.txt
FSystemConsole.exe calc-coeff-mcampaigns --ctype coef --coef 1 1 --periodstatus future --forecast test >> C:\fcn_logs\log-going-%date%.txt
Для акций базы test рассчитываем:
1. коэффициент для завершенных акций, по которым еще не был выполнен расчет
2. коэффициент для акций завершенных более, чем на 30 процентов
3. прогнозируем акции, которые завершены на 30 процентов или меньше
4. прогнозируем все будущие акции
Процесс расчёта акций записываем в лог, в папку C:\fcn_logs

Прогресс - бар

В командной строке будет отражен прогресс-бар степени завершенности расчета акций и число рассчитанных и расчитываемых акций

Проведение анализа-эффективности без участия пользователя

Синтаксис

FSystemConsole.exe kpianalysis database source target

database

путь или имя базы для расчетов

source

Файл с параметрами расчетов.

target

Файл, куда сохранятся результаты анализа

Для сохранения результатов в формате xlsx нужно дописать флаг –xlsx после директории сохранения файла с результатами

Расчет прогноза - обеспечение продаж без участия пользователя

Синтаксис

FSystemConsole.exe stockanalysis database source target

database

путь или имя базы для расчетов

source

Файл с параметрами расчетов.

target

Файл, куда сохранятся результаты анализа

Проведение ABC анализа

Вы можете проводить ABC- XYZ и кросс ABC-анализ автоматически при помощи консольной утилиты. Результаты анализа запишутся в базу, а также в Excel файл с разбиением товаров по группам.

Синтаксис команды

 FSystemConsole.exe abcxyzanalysis database source target [--user username] [--save name] [--public] 
database – название базы

source – путь к файлу с настройками анализа

target – место сохранения файла с результатами анализа

--user username 
флаг с указанием пользователя для которого будет сохранён анализ, если пользователь не указан, анализ в базе сохранён не будет, а только в файл
--save name 
флаг для сохранения итогов анализа в базу программы, где name - это имя, под которым анализ появится в базе
--public 
флаг что бы сделать доступным итоги анализа всем пользователям

Формат файла для проведения анализа

1.Основные параметры проведения анализа

дата от;дата до
склад;тип;название
дополнительные столбцы;список через ';' свойств и параметров для вывода

склад - имя склада или пусто (тогда расчет будет произведен по всем складам)

тип - группа или срез

название - название группы или среза

2. Настройки анализа

Нужно задать тип анализа и границы отнесения к группам. Формат:

Ось;название оси (X,Y,Z (не обязательно));тип анализа (ABC/XYZ);Параметр;граница отнесения к группе С/группе X; граница отнесения к группе B/группе Y;
Пример:
ось;X;ABC;Кол-во дней продаж;5;20
ось;Y; ABC;Прибыль / Ед.; 5;20

Перечень параметров проведения анализа:

Продажи, ед., Выручка,Себестоимость,Прибыль, Кол-во дней продаж(или Факт продаж) ,Прибыль / Ед.,Объем запасов, н.е, Объем запасов, д.е, Рентабельность (Прибыль/Выручка), Рентабельность (Прибыль/Себестоимость)

3. Дополнительные настройки

свойства;список через ';' свойств для вывода
параметры;список через ';' параметров для вывода

выбор фактического или прогнозного анализа

анализ;факт
или
анализ;прогноз

если нужно очищать историю продаж от акций:

очищать историю продаж от акций

если не нужно анализировать новые товары:

не анализировать новые товары

Примеры файлов для проведения анализа

15.04.2017;20.04.2017
Склад;срез;Поставщик;Алефонсина
не анализировать новые товары
ось;X;ABC;Продажи, ед.;5;35
ось;Y;XYZ;Факт продаж;55;75
параметры;Поставщик
свойства;Поставщик
анализ;прогноз

15.04.2017;20.04.2017
Склад1;группа;старые товары
ось;X;ABC;Продажи, ед.;5;15
ось;Y;XYZ;Продажи, ед.;20;55
дополнительные столбцы;Вес;Объём

Автоматическое изменение дат в файле с настройками анализа

С помощью командной строки windows можно настроить автоматическую генерацию дат для анализа. Если нужно каждый раз проводить АВС-XYZ анализ за прошедший год, то можно воспользоваться командой:

del E:\Forecast NOW!\settings_abc.csv
SET /A T=%DATE:~-4%
SET /A T=%T%-1
echo %DATE:~0,2%.%DATE:~3,2%.%T%;%date%>> E:\Forecast NOW!\settings_abc.csv
echo Склад №1;группа;Все товары>> E:\Forecast NOW!\settings_abc.csv
echo параметры;Поставщик>> E:\Forecast NOW!\settings_abc.csv
echo свойства;Поставщик>> E:\Forecast NOW!\settings_abc.csv
echo Ось;x;ABC;Продажи, ед.;5;15>> E:\Forecast NOW!\settings_abc.csv
echo Ось;y;XYZ;Кол-во дней продаж;55;75>> E:\Forecast NOW!\settings_abc.csv
echo не анализировать новые товары>> E:\Forecast NOW!\settings_abc.csv
echo очищать историю продаж от акций>> E:\Forecast NOW!\settings_abc.csv

E:\Forecast NOW!\settings_abc.csv - указывается путь и название сформированного файла настроек. Этот же путь нужно указать в команде для проведения АВС-XYZ анализа
echo - указывается строка с настройками для анализа. В той последовательности, в которой они должны идти в файле настроек.

Будет сформирован файл, с указанными настройками для анализа.

Проведение анализа-ассортимента

Вы можете проводить анализ-ассортимент при помощи консольной утилиты

Синтаксис

assortiment database source target [--user username] [--public]

target - xls файл, в который будут записаны итоги анализа

флаг - -public - сделать доступным итоги анализа всем пользователям

флаг - -user username - под каким пользователем проводится анализ

source - файл с настройками для проведение анализа

Формат файла для проведения анализа

формат файла source состоит из простого перечисления товаров/групп/срезов для анализа

склад;тип;название

где тип - товар, группа или срез

название - артикул товара, название группы или среза

результаты анализа также записываются в базу программы.

Расчет статистик базы данных

Вы можете при помощи консольной утилиты рассчитывать статистики базы данных.

Синтаксис команды

FSystemConsole.exe statistics database source target [--dates [dateFrom dateTo] ] [--csv --xlsx] 

database - путь (имя для mysql) к базе

source - файл настроек (может не существовать, если задан ключ –dates)

target - файл для сохранения результата - если указаны форматы сохранения при помощи флагов, то расширение файла можно не прописывать, если не указаны - то расширение xlsx

–dates dateFrom dateTo - даты от и до для расчёта. Если не указан ключ –dates и даты, то даты берутся из файла настроек. Если указан ключ, но не даты, то берутся минимальная и максимальная даты из базы. Если указан ключ и даты, то берутся даты из аргументов

–csv –xlsx - флаги для выбора формата сохранения файла. Без указания флага файл статистик сохранится в формате xlsx

Формат файла настроек

дата_от;дата_до
группировка;товар или склад или клиент или их комбинация через ';'
статистики;статистика1;...;статистика2

Если статистики не указаны, то считаются все статистики.

имена статистик следует писать точно так же как в диалоге выбора статистик:

Количество дней продаж
Остатки
Цена последних продаж
Закупочная цена
Цена реализации последних продаж
Цена реализации
Сумма прибыли
Сумма выручки
Сумма продаж
Сумма остатков
Количество уникальных складов, клиентов, продуктов
Акции типа коэффициент
Акции типа объём
Действующие акции
Завершившиеся акции

Удаление информации из базы

Синтаксис

FSystemConsole.exe remove data_type [products_file] target [опции] 

Data type - тип данных для удаления. Доступны

analogs                  очистка аналогов
products                 удаление товаров из базы
customer-purchases       удаление закупок для клиентов
composite                очистка данных о комплектах
items-fields             очистка полей для товаров
arrivals                 очистка дат поступления заказов
orders                   очистка реестра заказов
order-schedule           очистка расписаний заказов
storage-graphs           иерархия складов
balancing-destinations   направления балансировки
clients                  справочник клиентов

При удалении товаров из базы необходимо после products указать путь к файлу с артикулами для удаления

target - путь к базе (SQLite) или название базы (MySQL), в которых нужно удалить информацию

опции

-c если этот флаг указан, то при очистке данных не будет создаваться их резервная копия

-f или –force - если не удаётся создать бэкап, то данные все равно будут удалены

–not-drop-parameters

если указан флаг –not-drop-parameters то при очистке расписаний заказов очистка привязки товаров к расписаниям(параметр товара) выполняться не будет

Пример команды для очистки аналогов

FSystemConsole remove analogs <target_database>

<target_database> - имя базы, в которой нужно удалить все аналоги - для sqlite базы - полный путь к ней, для MYSql - название базы

Пример команды для удаления товаров

 FSystemConsole remove products <путь к файлу с артикулами> <имя или путь к базе>

<путь к файлу с артикулами> - путь к файлу с форматом строки: артикул.

Например:

400000015
weqwe-ewqee-wwew-1111

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

Экспорт информационной базы

Позволяет экспортировать информационную базу, в том числе, в обезличенном режиме

Синтаксис команды

FSystemConsole.exe export type source target [options]

  • type: -ib или - -information-base (экспорт информационной базы)
  • source: имя базы
  • target: путь к экспортированному файлу

Обезличивание информации

Для обезличивания нужно добавить опцию

--impersonal

Пример

FSystemConsole.exe export -ib test.db D:\FN\test.ib --impersonal

Данные которые обезличиваются:

  • история продаж с обезличенными кодами товаров, складов, клиентов
  • параметры с обезличенными кодами товаров, складов
  • календарь выходных/рабочих дней
  • формат загрузки истории продаж
  • пользователи и группы и пароли
  • иерархия складов с обезличенными кодами складов и названиями иерархий
  • стоимости доставки и т п для балансировки с обезличенными кодами складов
  • направления балансировки с обезличенными кодами складов
  • настройки пользователя с обезличенными именами пользователя (соответствуют обезличенным именам пользователя выше)
  • закупки для клиентов с обезличенными кодами товаров, складов, клиентов
  • комплекты с обезличенными кодами товаров, складов
  • поступления с обезличенными кодами товаров

Рядом c информационной базы после сохранения будут находится еще файл с логом импорта информационной базы с именем <имя файла обезличенной иб>_log.сvs, и файл с соответствиями на каждый вид данных

  • коды товаров <имя файла обезличенной иб>_products.сvs
  • коды клиентов <имя файла обезличенной иб>_clients.сvs
  • коды складов <имя файла обезличенной иб>_storages.сvs
  • имена пользователей <имя файла обезличенной иб>_users.сvs
  • названия иерархий складов <имя файла обезличенной иб>_storage_graphs.сvs

В лог импорта заносится информация если имеются данные, которые пока не поддерживают выгрузку в обезличенном режиме

На текущий момент не поддерживаются:

  • Аналоги
  • Транспортные средства
  • Фильтры подготовки заказов
  • Пользовательские приоритеты товаров для ограничений
  • Зоны складов
  • Цветовые схемы для заказа
  • Последние цветовые схемы пользователей для заказа
  • Дополнительные артикулы для товаров
  • Поставщики
  • Прайс-листы поставщиков
  • Таблицы сроков доставки поставщиков
  • Результаты анализов
  • Группы поставщиков
  • Группы наследования параметров
  • Наборы для быстрого выбора складов
  • Псевдонимы упаковок
  • Наборы быстрого выбора клиентов
  • Правила наследования параметров
  • Наборы быстрого выбора групп
  • Поля товаров
  • Комплексные форматы заказов

Проверка цифровой подписи заказа

Позволяет сверить сумму заказа, рекомендованную программой и сумму заказа в файле, сохраненным и возможно отредактированным пользователем

Синтаксис

 FSystemConsole checksum <проверяемый файл> <файл, подписанный цифровой подписью (.md5)

Активация лицензии

Позволяет активировать файл лицензии через консольную утилиту

Синтаксис

FSystemConsole activate-license <путь к файлу лицензии>

При успешной активации консольная утилита отобразит сообщение «License file 'полный путь к файлу лицензий' successfully activated»

При неудачной попытки активации программы, консольная утилита отобразит сообщение:

1) Если некорректный файл лицензии:
«License file 'полный путь к файлу лицензий' was not activated. Invalid license file.»
Сообщение об ошибке работы консольной утилиты в интерфейсе: «Не удалось активировать файл лицензии 'полный путь к файлу лицензий' Некорректный файл лицензии.»

2) Если недостаточно прав к папке:
«License file 'полный путь к файлу лицензий' was not activated. Insufficient directory access rights to 'путь где хранится файл лицензии'»
Сообщение об ошибке работы консольной утилиты в интерфейсе: «Не удалось активировать файл лицензии 'полный путь к файлу лицензий'. Недостаточно прав доступа к папке 'путь где хранится файл лицензии'»

Изменение кода склада

Позволяет изменить записанные в программе коды складов. Для изменения кода склада нужно сохранить информационную база(Данные-Сохранить информационную базу) потом через консольную утилиту поменять коды складов в файле информационной базы и потом загрузить информационную базу в программу(Данные-Загрузить информационную базу).

Синтаксис

FSystemConsole rename --storages dictionary_file old_ib_file new_ib_file

dictionary_file - путь к файлу с кодами складов, csv файл вида «старый кода склада;новый код склада».

Старые коды будут заменятся на соответствующие им новые.

old_ib_file - путь к файлу с информационной базой, в которой надо переименовать коды склады

new_ib_file - путь к файлу с информационной базой, в который запишется информационная база с переименованными кодами складов

Если во время работы команды что-то пойдёт не так, то об этом будут сообщено в журнале через ненулевой код возврата.

Очистка журнала действий пользователей

FSystemConsole clearlog database

database - имя базы

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

Применение правил автоматической установки

FSystemConsole apply-parameters-rules [--general/--seasonal] database [--names/--tags] 

general — применить все правила кроме сезонности
seasonal — расчет и применение правил сезонности

Совместное использование в одной команде флагов general и seasonal, не допускается

database — название базы

names — после флага, в кавычках, через запятую, указываются названия правил («правило1,правило2,правило3»), которые нужно применить.
tags — после флага, в кавычках, через пробел, указывается список тэгов в соответствие с которыми применяются автоправила

Совместное использование в одной команде флагов names и tags, не допускается

Если список названий правил и тип правил, не указаны, то операция будет произведена над всеми правилами в базе(если такие есть).