Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
консоль [13.06.2019 02:57]
Evgeny Viktorov [Синтаксис]
консоль [10.09.2019 06:16] (текущий)
Timur Osmanov [Пересчёт и применение правил автоматической установки сезонности]
Строка 16: Строка 16:
  
 В консольную утилиту выводятся сведения о начале и завершении операции,​ а также о времени выполнения. Такой же вывод есть для подопераций. Консольная утилита по завершению предоставляет код возврата,​ при отсутствии ошибок он равен нулю, в противном случае - код ошибки. Описание ошибок представлено в таблице ниже. В консольную утилиту выводятся сведения о начале и завершении операции,​ а также о времени выполнения. Такой же вывод есть для подопераций. Консольная утилита по завершению предоставляет код возврата,​ при отсутствии ошибок он равен нулю, в противном случае - код ошибки. Описание ошибок представлено в таблице ниже.
 +
 +=====Пример работы консольной утилиты Forecast NOW!=====
 +Приведен пример последовательного выполнения операций,​ которые часто выполняются консольной утилитой. Подробный синтаксис каждой операции описан далее
 +
 +<​code>​
 +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
 +</​code>​
 =====Логирование неудачных запусков утилиты===== =====Логирование неудачных запусков утилиты=====
  
Строка 65: Строка 113:
 |29| У товара нет ближайшей доступной даты формирования заказа| |29| У товара нет ближайшей доступной даты формирования заказа|
 |31| Ошибка аутентификации при отправке заказа по электронной почте| |31| Ошибка аутентификации при отправке заказа по электронной почте|
 +|34| В базе данных нет правил автоустановки сезонности|
 +|35| Ни одно из указанных названий правил сезонности не соответствует тем, что находятся в базе данных|
 ====Остановка работы консольной утилиты при возникновение ошибок==== ====Остановка работы консольной утилиты при возникновение ошибок====
 Если во время работы консольной утилиты выявлены ошибки,​ то можно отменить дальнейшее выполнение команд. Для этого нужно в файл для консольной утилиты вставить дополнительную команду:​ Если во время работы консольной утилиты выявлены ошибки,​ то можно отменить дальнейшее выполнение команд. Для этого нужно в файл для консольной утилиты вставить дополнительную команду:​
Строка 143: Строка 193:
 --prepare-report-settings импорт файла, содержащего фильтры подготовки заказа --prepare-report-settings импорт файла, содержащего фильтры подготовки заказа
 --recipients-limits импорт файла, содержащего ограничения для внутренних перемещений --recipients-limits импорт файла, содержащего ограничения для внутренних перемещений
 +--apply-parameters-rules пересчет и применения правил автоустановки сезонности
 </​code>​ </​code>​
  
Строка 321: Строка 372:
 Флаг должен быть указан ​ сразу после [[консоль#​тип|типа]] импортируемого файла Флаг должен быть указан ​ сразу после [[консоль#​тип|типа]] импортируемого файла
  
- +<​code>​--user <пользователь></​code>​ 
-====Пример работы с программой для командной строки Windows ==== +Используется ​при ​загрузке настроек ​балансировкиУказывается пользователь  
- +для которого ​производится загрузка настроек балансировки.
-Пример любезно ​предоставлен компанией ТОО Барс-NORD. +
- +
-<file bat myexample.bat>​ +
-@echo off +
- +
-rem ------------------------------------------------ +
-rem Описание выгрузки: +
-rem Каждый день из системы учета выгружается история продаж в сетевую папку в формате .csv, +
-rem при чем файл именуется определенным ​образом:​  +
-rem [Имя базы данных]_[название СУБД]_[текущая дата в формате ГГГГММДД].csv;​ +
-rem Аналогично каждый день ​выгружается ​классификация в сетевую ​папку в формате .csv, +
-rem при чем файл именуется следующим образом:  +
-rem classification_[текущая дата ​в формате ​ГГГГММДД].csv +
-rem ------------------------------------------------ +
- +
-rem Переход в папку с консольной утилитой импорта... +
-cd "​C:​\Program Files (x86)\ForecastNOW\"​ +
- +
-rem Задаем путь запуска ​консольной утилиты импорта... +
-set fnow_file="​C:​\Program Files (x86)\ForecastNOW\FSystemConsole.exe"​ +
- +
-rem Формирование даты в формате выгрузки ГГГГММДД... +
-set now=%DATE:​~-4%%DATE:​~3,​2%%DATE:​~0,​2% +
- +
-rem Задаем файл формата... +
-set fnow_base_format="​C:​\ForecastNOW\Export\format.format"​ +
- +
-rem ------------------------------------------------ +
-rem Обновление базы  +
-rem Задаем файл ​обновлений... +
-set fnow_update_file="​C:​\ForecastNOW\Export\Sales_History\history_%now%.csv"​ +
- +
-rem Задаем файл классификации +
-set fnow_base_classification="​C:​\ForecastNOW\Export\Classification\classification_%now%.csv"​ +
- +
-rem Задаем путь к файлу базы данных или ​название базы данных в MySQL версии... +
-set fnow_base_file="​databasename"​ +
- +
-rem Задаем параметры обновления истории продаж... +
-set fnow_update_paremetrs= -sh -a %fnow_base_format% %fnow_update_file% %fnow_base_file% +
- +
-rem Запуск обновления истории продаж: +
-%fnow_file% import %fnow_update_paremetrs% +
- +
-rem Задаем параметры обновления ​классификации... +
-set fnow_update_paremetrs= -o -r %fnow_base_classification% %fnow_base_file% +
- +
-rem Запуск обновления классификации:​ +
-%fnow_file% import %fnow_update_paremetrs% +
- +
-</​file>​+
  
  
Строка 412: Строка 412:
 Позволяет формировать заказы без участия пользователя (автопилот) Позволяет формировать заказы без участия пользователя (автопилот)
  
-====Синтаксис==== 
-Syntax 
-<​code>​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 </​code>​ 
  
-<​code>​ --order-schedule ​название расписания</​code>​+====Минимально ​необходимый ​синтаксис==== 
 +<​code>​ make-orders [--user user_name] ​ [--xml] [--xls] [--xlsx] [--csv] filter source target ​</​code>​
  
-Расписание ​заказов, согласно которому проводится формирование ​заказов. Если не задано - для каждого ​товара берется из параметров+Позволит сформировать заказы по указанному фильтру и сохранить их в нужном формате 
  
 <​code>​ --user или -u имя пользователя</​code>​ <​code>​ --user или -u имя пользователя</​code>​
-Использование Пользователя из программы и его настроек. Если в автопилоте указан пользователь (через --user), то при сохранении заказов используется набор и порядок колонок из формата "​Пользовательский"​ этого пользователя. 
  
- <​code>​group-by-</​code>​ Позволяет [[формирование_заказа#​группировка_автозаказов|группировать товары]] при подготовке и расчете ​заказов +Использование ​Пользователя из программы и его настроек. Если в автопилоте указан ​пользователь (через --user), то при сохранении заказов используется набор и порядок колонок из формата ​ользовательский" этого пользователя
- +
---group-by-suppliers - товары группируются по поставщикам (по умолчанию) +
- +
---group-by-storages - товары ​группируются по складам с учетом иерархии +
- +
-<​code>​ --dates date1 date2 </​code>​ +
-Выбор дат размещения заказов,​ которые попадут в работу утилиты. +
- +
-Даты можно задавать в формате дд.мм.гггг или гггг-мм-дд +
- +
-<​code>​--union-by-supplier | --union-by-supplier-ordergroup | --union-by-supplier-ordergroup-customer </​code>​ +
-Объединение сформированных заказов по [[формирование_заказа#​объединение_заказов_по_поставщикам| поставщикам]],​ +
-[[формирование_заказа#​объединение_заказов_по_поставщикам_и_группе_заказа|поставщику и группе заказа]] или по [[формирование_заказа#​объединение_заказов_по_поставщикам_группе_заказа_и_складу|поставщику, группе заказа ​и складу]]. +
-Выбрать можно только одно объединение +
- +
-<​code>​ +
---merge-orders +
-</​code>​ +
-Объединит ​заказы, объединенные по одному из принципов, указанных в утилите +
- +
-<​code>​ +
---group-order-by-product +
-</​code>​ +
-[[формирование_заказа#​создание_общего_заказа_на_склады|Создаст общий заказ]] на склады по объединенным при помощи ключа ​--merge-orders заказы +
- +
-При этом будут [[формирование_заказа#​изменение_связанных_заказов|изменены]] объединения заказов,​ и объединённые заказы(по поставщику,​ группе заказа,​ складу), из которых этот заказ ​получен в соответствии с кратностью указанного склада +
- +
- +
- +
-<​code>​ +
- ​--group-order-roundbystorage storage +
-</​code>​ +
-storage - код склада +
- +
-[[формирование_заказа#​создание_общего_заказа_на_склады_с_учетом_кратности|Создаст общий заказа на склады с учетом кратности]] указанного склада по объединенным при помощи ключа ----merge-orders заказы +
- +
- | --group-order-roundbystorage storage +
-<​code>​----save-union-only</​code>​ +
-Сохранение только объединенных ​заказов +
- +
-<​code>​ +
---consider-balancing +
-</​code>​ +
-При формировании заказов учтутся изменения остатков ​после проведения последней консольной балансировки +
- +
-<​code>​--remove-null-tobuy-records</​code>​ +
-Удаление из заказов,​ строк с нулевым значением Заказать. +
-В реестре сохраняются полные заказы. +
- +
- +
-<​code>​--xml --xls --xlsx --csv</​code>​ +
-Флаги для дополнительного сохранения заказов в [[консоль#​форматы_сохранения_заказов|заданных расширениях]] +
- +
-<​code>​--md5</​code>​ +
-Сохранение заказов с цифровой подписью +
- +
-<​code>​--sync </​code>​ +
-Флаг для [[формирование_заказа#​план_заказов|автоматического согласования]] прогнозируемых остатков и заказать во всех подготовленных и сформированных заказах. +
- +
-<​code>​--no-order-file</​code>​ +
-Не будут сохраняться файлы заказов,​ используемые для последующей загрузки ​в программу при ее открытии (.order). +
- +
-Флаг можно использовать, ​если вы не хотите просматривать заказы, ​сформированные ​консольной утилитой, в интерфейсе программы +
- +
-<​code>​--email</​code>​ +
-Флаг для автоматической [[формирование_заказа#​отправка_заказа_поставщику_по_электронной_почте|отправки сохранённых заказов ​на email]], указанный в карточке поставщика. Заказы отправляются только при указание флага с форматом,​ в указанном формате.+
  
 <​code>​filter</​code>​ <​code>​filter</​code>​
- 
 Имя фильтра,​ [[формирование_заказа#​автоматическое_формирование_заказа|созданного]] в программе для выбора товаров,​ попадающих в автоподготовку Имя фильтра,​ [[формирование_заказа#​автоматическое_формирование_заказа|созданного]] в программе для выбора товаров,​ попадающих в автоподготовку
  
-<code>Source</code>+<note important> 
 +В связи с особенностями работы командной строки Windows фильтры должны задаваться цифрами или латиницей 
 +</note>
  
 +<​code>​Source</​code>​
 Имя базы для MySQL или путь к базе для SQLite, в которой нужно формировать заказы Имя базы для MySQL или путь к базе для SQLite, в которой нужно формировать заказы
- 
  
 <​code>​Target</​code>​ <​code>​Target</​code>​
- 
 Место сохранения сформированных автопилотом заказов Место сохранения сформированных автопилотом заказов
  
-<note tip+<code>​--xml --xls --xlsx --csv</​code
-При сохранении в имени заказа все экранируемые символы заменяются на пробелы. +Флаги для дополнительного сохранения заказов в [[консольорматы_сохранения_заказов|заданных расширениях]]
- +
-Текущий список экранируемых символов: +
-  *"​\\"​  +
-  *"/"​  +
-  *":"​  +
-  *"​*"​  +
-  *"?"​  +
-  *"​\"​  +
-  *"​|"​  +
-  *"<"​  +
-  *">"​  +
-  *"​."​ +
-</​note>​ +
-===Автоформирование по нескольким фильтрам и расписаниям=== +
- +
-Вы можете формировать ​заказы по нескольким фильтрам и расписаниям за один запуск ​консольной утилиты. +
- +
-Формат ​команды:​ +
- +
-<​code>​FSystemConsole.exe make-orders --args-file "​путь к файлу"​ "​путь к базе"​ "​путь к хранилищу ​заказов"</​code>​ +
- +
-Путь к файлу - путь к файлу с указанными фильтрами и расписаниями. Файл состоит из строк вида "​имя_расписания;​имя_фильтра",​ заказы будут подготовлены для всех таких пар ​расписание-фильтр+
- +
-Расписание в файле можно оставлять пустым -  тогда автопилот отработает по имеющимся в файле фильтрам и расписанию заказов из параметров в программе +
- +
-===Форматы сохранения заказов===+
  
-В консольном автопилоте доступно сохранения заказов в различных форматах. В формате .order ​заказы сохраняются ​всегда, дополнительные форматы сохраняются в туже директорию,​ что и .order. +==Структура заказа в xml== 
- +Для файла, сохраненного в xml используется следующая структура:​ 
-Доступны форматы ​xml xls xlsx utf8-csv, сохранение в них происходит по ключам соответственно <​code>​ --xml --xls --xlsx --csv</​code>,​ можно указывать несколько ключей для сохранения одновременно.  +<​hidden>​
- +
-Для ​сохранения специфических значений свойств и параметров товаров нужно указывать пользователяот которого будет взять набор свойств и значений (устанавливаются в меню Вид->​Заказ),​ сделать это можно через ключ -u  +
-имя_пользователя или --user имя_пользователя.  +
-Что бы при ​сохранении заказов,​ использовался набор и порядок колонок из формата "​Пользовательский",​ настроенного в интерфейсе программы,​ нужно указать этого ​пользователя(через --user). +
- +
-Например,​ запуск консольной утилиты:​  +
-<​code>​make-orders --user Администратор --xml --xls --xlsx --csv 1 demo.db "​C:​\dump\orders"</​code>​ +
- +
-===Отображение заказов после работы консольной утилиты=== +
-Сформированные при помощи консольной утилиты заказы при открытии программы ​ автоматически загрузятся по следующей логике. +
- +
-К каждому [[формирование_заказа#​автоматическое_формирование_заказа|фильтру]] подготовки заказов можно приписать набор пользователей,​ которые "​заинтересованы"​ в заказах из этого фильтра. По умолчанию в фильтре стоит значение "​Все пользователи"​. +
- +
-Пусть существует фильтр Ф и к нему приписан набор пользователей П. +
-После отработки автопилота по фильтру Ф на диск будет сохранён набор заказов З, в базу для каждого пользователя будет занесено, что ему надо автоматически загрузить в программу при открытии заказы З. Заказы будут грузится до тех пор, пока пользователь+
- +
-1) не сохранит заказы в файл, и тогда они перестанут автоматически грузится только у него. +
- +
-2) не удалит заказы с диска. тогда заказы перестанут грузится у всего набора пользователей П. об этом будет сообщено в явном виде в программе. +
-==Структура сохраненного заказа в xml==+
 <​code>​ <​code>​
 <​fnow-order > <​fnow-order >
Строка 593: Строка 478:
 <​total>​ - тэг для строки с Итого. дочерние тэги только для числовых значений. <​total>​ - тэг для строки с Итого. дочерние тэги только для числовых значений.
 </​code>​ </​code>​
 +</​hidden>​
  
 ==Назначение дочерних тэгов в row и total== ==Назначение дочерних тэгов в row и total==
 +<​hidden>​
 <​code>​ <​code>​
 Пишется в начало каждого xml документа. ​ Пишется в начало каждого xml документа. ​
Строка 676: Строка 563:
 </​code>​ </​code>​
  
-====Вывод всех доступных фильтров подготовки заказов==== +</​hidden>​ 
-Отобразить все ​доступные фильтры подготовки заказов можно при помощи команды ​filters+===Автоформирование по нескольким фильтрам и расписаниям=== 
 +Часто ​возникает потребность формировать заказы по нескольким созданным фильтрам подготовки и расписаниям за один запуск консольной утилиты. 
 + 
 +Формат такой команды:​ 
 + 
 +<​code>​FSystemConsole.exe make-orders --args-file "​путь к файлу"​ "​base"​ "​target"</​code>​ 
 + 
 +Путь к файлу путь к файлу с указанными фильтрами и расписаниями. Файл состоит из строк ​вида "​имя_расписания;​имя_фильтра",​ заказы будут ​подготовлены для всех таких пар расписание-фильтр. 
 + 
 +Расписание в файле можно оставлять пустым -  тогда автопилот отработает по имеющимся в файле фильтрам и расписанию заказов из параметров в программе 
 + 
 +====Полный синтаксис формирования ​заказов==== 
 +<​code>​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 </​code>​ 
 + 
 +<​code>​ --order-schedule название расписания</​code>​ 
 + 
 +Расписание заказов,​ согласно которому проводится формирование ​заказов. Если не задано - для каждого ​товара берется из параметров 
 + 
 +<​code>​ --user или -u имя пользователя</​code>​ 
 +Использование Пользователя из программы и его настроек. Если в автопилоте ​указан ​пользователь (через --user), то при сохранении заказов используется набор и порядок колонок из формата "​Пользовательский" этого пользователя. 
 + 
 + <​code>​group-by-</​code>​ Позволяет [[формирование_заказа#​группировка_автозаказов|группировать товары]] при ​подготовке и расчете ​заказов 
 + 
 +--group-by-suppliers - товары группируются по поставщикам (по умолчанию) 
 + 
 +--group-by-storages - товары группируются по складам с учетом иерархии 
 + 
 +<​code>​ --dates date1 date2 </​code>​ 
 +Выбор дат размещения заказов,​ которые попадут в работу утилиты. 
 + 
 +Даты ​можно ​задавать в формате дд.мм.гггг или гггг-мм-дд 
 + 
 +<​code>​--union-by-supplier | --union-by-supplier-ordergroup | --union-by-supplier-ordergroup-customer </​code>​ 
 +Объединение сформированных заказов ​по [[формирование_заказа#​объединение_заказов_по_поставщикам| поставщикам]], 
 +[[формирование_заказа#​объединение_заказов_по_поставщикам_и_группе_заказа|поставщику и группе заказа]] или по [[формирование_заказа#​объединение_заказов_по_поставщикам_группе_заказа_и_складу|поставщику,​ группе заказа и складу]]. 
 +Выбрать можно только одно объединение
  
-===Синтаксис=== 
 <​code>​ <​code>​
-filters source+--merge-orders
 </​code>​ </​code>​
-source - имя ​базы +Объединит заказыобъединенные по одному ​из принципов, указанных в утилите
-=====Проведение балансировки===== +
-====Синтаксис команды====+
  
-<​code>​FSystemConsole balancing database [source] target [--user] [--filter] [--xml] [--csv] ​[--xlsx][--consider-balancing[--no-split-by-destinations]</​code>​+<​code>​ 
 +--group-order-by-product 
 +</​code>​ 
 +[[формирование_заказа#​создание_общего_заказа_на_склады|Создаст общий заказ]] на склады по объединенным при помощи ключа ​--merge-orders заказы
  
 +При этом будут [[формирование_заказа#​изменение_связанных_заказов|изменены]] объединения заказов,​ и объединённые заказы(по поставщику,​ группе заказа,​ складу),​ из которых этот заказ получен в соответствии с кратностью указанного склада
  
-  *database – название базы  +<​code>​ 
-  *source – путь к файлу с настройками балансировки + --group-order-roundbystorage storage 
-  *target – место сохранения файла с проведенной балансировкой +</​code>​ 
-можно указать полный путь к файлу. При этом если указать расширение xml - результат проведенной балансировки будет сохранен в [[балансировка_запасов#​структура_xml_файла|xml формате]] +storage ​- код склада
-  *<​code>​--user Имя пользователя ​</​code>​- ​указывается имя пользователя,​ настройки балансировки и отображения которого будут использованы для сохранения балансировки (показанные параметры/​свойства/​анализы, единицы измерения и направления балансировки). +
-Если указывается пользователь то файл настроек указывать не обязательно. Если в команде указан и файл настроек и пользователь,​ то настройки балансировки будут использоваться от указанного пользователя,​ а файл настроек будет проигнорирован. При входе в программу,​ после формирования балансировок,​ будет выведено сообщение,​ что файл настроек использоваться не будет.+
  
-  *<​code>​--filter </​code>​- указание ​фильтра, по которому ​будет ​проходить балансировка.+[[формирование_заказа#создание_общего_заказа_на_склады_с_учетом_кратности|Создаст общий заказа на склады с учетом кратности]] указанного ​склада по объединенным при помощи ​ключа ----merge-orders заказы
  
-Фильтр можно указать ​только один. \\ + | --group-order-roundbystorage storage 
-Если в команде указан фильтр и файл ​настроек,​ то балансироваться будут товары указанные в фильтре. \\ +<​code>​----save-union-only</​code>​ 
-При этом фильтр не учтет итоги ​анализов ​и фильтрацию по параметрам+Сохранение ​только объединенных заказов
  
-  *<​code>​ --consider-balancing </​code>​+<​code>​ 
 +--consider-balancing 
 +</​code>​
 При формировании заказов учтутся изменения остатков после проведения последней консольной балансировки При формировании заказов учтутся изменения остатков после проведения последней консольной балансировки
  
-Если после этой балансировки провести следующую,​ то будут применяться изменения двух предыдущих ​+<​code>​--remove-null-tobuy-records</​code>​ 
 +Удаление из заказов, строк с нулевым значением Заказать. 
 +В реестре сохраняются ​полные заказы.
  
-  *<​code>​[--xml] [--csv] [--xlsx] </​code>​ 
  
-При указании этих флагов (одного или нескольких) балансировка также будет ​сохраняться в указанном формате. По умолчанию балансировка сохраняется в excel csv, для флага "​--csv"​ просто в csv (в имя файла дописывается --csv так как ​расширение файлов у них одинаковое). Если файл цели указан с расширением xml, то флаг "​--xml"​ можно не указывать.+<​code>​--xml --xls --xlsx --csv</​code>​ 
 +Флаги для ​дополнительного сохранения заказов в [[консоль#форматы_сохранения_заказоваданных ​расширениях]]
  
-  *<​code>​--no-split-by-destinations</​code>​ +<​code>​--md5</​code>​ 
-При формирование балансировок с указанием фильтра подготовки, сформированные балансировки не будут разбиваться по направлениям. Если указан этот ​флаг, то в качестве результата необходимо указывать не папку, а имя файла. Если балансировка была ​проведена через фильтр автоподготовки с флагом --no-split-destinations (не разбивать по направлениям),​ то в программе будет отображаться единственная балансировка с названием соответствующем шаблону:​ \\ <​Наименование фильтра>​ <​Текущая дата в момент проведения балансировки>​+Сохранение заказов с цифровой подписью
  
-Во время работы консольной утилиты, ​выводится сообщение о количестве сформированных балансировок. \\ +<​code>​--sync </​code>​ 
-''​X balancing reports where created''​ - где X число сформированных ​балансировок \\ +Флаг для [[формирование_заказа#​план_заказоввтоматического ​согласования]] прогнозируемых остатков и заказать во всех подготовленных и сформированных ​заказах.
-''​none balancing reports where created''​ - если количество ​сформированных ​балансировок равно нулю.+
  
-===Проведение балансировки по фильтрам=== +<​code>​--no-order-file</​code>​ 
-Указание фильтра ​происходит по необязательному ключу <​code>​--filter filter1 </​code>​+Не будут сохраняться файлы заказовиспользуемые для последующей загрузки в программу при ее открытии (.order).
  
-Сам фильтр берется из созданных фильтров ​при [[формирование_заказа#​автоматическое_формирование_заказа|автоподготовке заказа]]+Флаг можно ​использовать, если вы не хотите просматривать заказы, сформированные консольной утилитой, в интерфейсе программы
  
-Если указан  ​несуществующий фильтрто консоль выдаст сообщение ​**non-existent auto-preparation filters**+<​code>​--email</​code>​ 
 +Флаг для автоматической [[формирование_заказа#​отправка_заказа_поставщику_по_электронной_почте|отправки сохранённых заказов на email]], указанный в карточке поставщика. Заказы отправляются только при указание ​флага с форматом,​ в указанном формате.
  
-Фильтр указывает по какому ассортименту/складам будет проводиться балансировка и какому пользователю она будет отображаться.+<​code>​filter<​/code>
  
-В качестве условий отбора складов используется указанные значения ​в фильтре или помолчанию, если какиео конкрентные склады не выбраны, берутся все склады в базе.+Имя фильтра, [[формирование_заказа#автоматическоеормирование_заказа|созданного]] в программе для ​выбора товаров, попадающих ​в автоподготовку
  
-Отбор товаров производится по товарным группам и свойствам. Параметры и результаты анализов не учитываются+<​code>​Source</​code>​
  
-Раздел пользователи отвечает за то, каким пользователям будет ​отображаться проведённая балансировка+Имя базы для MySQL или путь к базе ​для SQLite, в которой нужно формировать заказы
  
-При входе в программу и активации вкладки Балансировка соответствующему пользователю,​ если он был указан в фильтре автоподготовки заказа,​ будет выдано сообщение,​ о том что обнаружена консольная балансировка и предложение её загрузить. 
  
-В случае согласия в таблице балансировки загрузится последняя проведённая для этого пользователя балансировка+<​code>​Target</​code>​
  
-Сообщение о том, что имеется консольная балансировка будет отображаться до тех пор, пока пользователь не произведёт ​сохранение балансировки в файл или удалит балансировку из программы, аналогично заказу. +Место сохранения сформированных автопилотом заказов
-Если ​в результате выполнения алгоритма балансировки ​по фильтру получается пустая балансировка, то такая балансировка не учитывается.+
  
-===Формат файла с настройками балансировки=== 
 <note tip> <note tip>
-Помимо нижеприведенного формата возможно указания файла настроек балансировки, сохраненного из программы в соответствующем [[формат_данных_для_загрузки#настройки_балансировки|формате]]+При сохранении в имени заказа ​все экранируемые ​символы заменяются ​на пробелы
 + 
 +Текущий список экранируемых символов
 +  *"​\\"​  
 +  *"/"​  
 +  *":"​  
 +  *"​*"​  
 +  *"?"​  
 +  *"​\"​  
 +  *"|"  
 +  *"<"​  
 +  *">"​  
 +  *"​."​
 </​note>​ </​note>​
 +
 +====Пример. Кросс-докинг в консольной утилите====
 +Ваша задача - рассчитать изначальные потребности филиалов и сформировать из них общий заказ поставщику,​ который при этом сразу по приходу на распределительный центр поедет на филиалы
 +
 +<​code>​make-orders --user user_name --union-by-supplier ​ --merge-orders ​ --group-order-roundbystorage storageRC [--xml] ​ [--xlsx] ​ filter source target </​code>​
 +
 +  -сформированные заказы будут сгруппированы по поставщику (--union-by-supplier)
 +  -заказы,​ сгруппированные по поставщику,​ будут объединены --merge-orders
 +  -из этих объединенных заказов будут создан сводный заказ на распределительный центр с учетом его кратности (--group-order-roundbystorage storageRC)
 +
 +===Отображение заказов после работы консольной утилиты===
 +Сформированные при помощи консольной утилиты заказы при открытии программы ​ автоматически загрузятся по следующей логике.
 +
 +К каждому [[формирование_заказа#​автоматическое_формирование_заказа|фильтру]] подготовки заказов можно приписать набор пользователей,​ которые "​заинтересованы"​ в заказах из этого фильтра. По умолчанию в фильтре стоит значение "​Все пользователи"​.
 +
 +Пусть существует фильтр Ф и к нему приписан набор пользователей П.
 +После отработки автопилота по фильтру Ф на диск будет сохранён набор заказов З, в базу для каждого пользователя будет занесено,​ что ему надо автоматически загрузить в программу при открытии заказы З. Заказы будут грузится до тех пор, пока пользователь:​
 +
 +1) не сохранит заказы в файл, и тогда они перестанут автоматически грузится только у него.
 +
 +2) не удалит заказы с диска. тогда заказы перестанут грузится у всего набора пользователей П. об этом будет сообщено в явном виде в программе.
 +
 +
 +
 +
 +====Вывод всех доступных фильтров подготовки заказов====
 +Отобразить все доступные фильтры подготовки заказов можно при помощи команды filters
 +
 +===Синтаксис===
 +<​code>​
 +filters source
 +</​code>​
 +source - имя базы
 +=====Проведение балансировки=====
 +====Минимальный синтаксис команды===
 +<​code>​FSystemConsole balancing database [source] target [--user] --filter [--xml] [--csv] [--xlsx]</​code>​
 +<​code>​database </​code>​
 + ​название базы
 +
 +<​code>​source</​code> ​
 +файл с настройками балансировки
 +
 +Во время выполнения команды,​ файл настроек проходит проверку на наличие ошибок. Если в файле есть ошибки,​ то балансировка не сформируется и будет выведено соответствующее сообщение,​ с указанием пути где хранится лог файл. Если указан флаг который игнорирует ошибки файла настроек,​ то балансировка сформируется и ошибочные настройки будут заменены на настройки по умолчанию.
 +
 +<​code>​user</​code>​ - пользователь,​ чьи настройки будут использованы при балансировке
 +
 +<note tip>
 +Обязательно указание или файла настроек или пользователя
 +</​note>​
 +
 +<​code>​ target</​code> ​
 + ​место сохранения файла с проведенной балансировкой
 +можно указать полный путь к файлу. При этом если указать расширение xml - результат проведенной балансировки будет сохранен в [[балансировка_запасов#​структура_xml_файла|xml формате]]
 +
 +<​code>​--filter </​code>​
 +
 +Указание фильтра,​ по которому будет проходить балансировка.
 +
 +Если указан ​ несуществующий фильтр,​ то консоль выдаст сообщение **non-existent auto-preparation filters**
 +
 +Фильтр можно указать только один. Если в команде указан фильтр и файл настроек,​ то балансироваться будут товары указанные в фильтре
 +
 +===Формат файла с настройками балансировки===
 +Рекомендуется указывать файл настроек балансировки,​ сохраненного из программы в соответствующем [[формат_данных_для_загрузки#​настройки_балансировки|формате]]
 +в комбинации с использованием фильтра для отбора товаров,​ участвующих в балансировке.
 +
 +Также поддерживается,​ формат,​ позволяющий задавать товары,​ участвующие в балансировке и прочие параметры ее проведения:​
 +
 +<​hidden>​
 В файле с настройками балансировки задаются:​ В файле с настройками балансировки задаются:​
  
Строка 784: Строка 787:
 расписание заказов;<​основное|балансировка>​ расписание заказов;<​основное|балансировка>​
 алгоритм балансировки;<​по рентабельности|пропорциональное распределение остатка с рц> алгоритм балансировки;<​по рентабельности|пропорциональное распределение остатка с рц>
-направление балансировки;<​значение направления из настроек "​Направления балансировки">​ </​code>​+направление балансировки;<​значение направления из настроек "​Направления балансировки"​
 +метод разворота аналогов;<​сначала старые запасы,​ потом новые|сначала дешевые,​ потом дорогие|по приоритету|обратно приоритету> </​code>​
  
 3.3. Дополнительные настройки (если строчка присутствует в файле настроек,​ то эта настройка будет учтена при проведении балансировки) 3.3. Дополнительные настройки (если строчка присутствует в файле настроек,​ то эта настройка будет учтена при проведении балансировки)
  
 <​code>​учитывать аналоги <​code>​учитывать аналоги
-разворачивать аналоги 
 не учитывать разницу цен не учитывать разницу цен
 норма складского запаса равна сроку поставки + периодичность норма складского запаса равна сроку поставки + периодичность
Строка 795: Строка 798:
 добавлять к остатку склада-донора остаток в пути добавлять к остатку склада-донора остаток в пути
 добавлять к остатку склада-реципиента остаток заказано добавлять к остатку склада-реципиента остаток заказано
-добавлять к остатку склада-реципиента остаток в пути+добавлять к остатку склада-реципиента остаток в пути</​code>​
  
-===Пример файла настроек для проведения балансировки=== +4. Имена полей, которые должны быть в сформированных балансировках,​ берутся либо из настроек балансировки пользователя(задается через вид -> поля товаров),​ 
-группа;​старые товары+либо задаются в файле настроек балансировки в формате:​ 
 + 
 +<​code>​Поля товаров:​ИмяПоля1;​ИмяПоля2;​ИмяПоля3</​code>​ 
 + 
 +Пример файла настроек для проведения балансировки 
 + 
 +<​code>​группа;​старые товары
 склады;​Ф1;​Ф4;​Ф3 склады;​Ф1;​Ф4;​Ф3
 доставка;​от(РЦ1);​до(РЦ2);​срок(1);​стоимость(2000);​кг(3);​%(4) доставка;​от(РЦ1);​до(РЦ2);​срок(1);​стоимость(2000);​кг(3);​%(4)
Строка 809: Строка 818:
 расписание заказов;​балансировка расписание заказов;​балансировка
 учитывать аналоги учитывать аналоги
-разворачивать аналоги+метод ​разворота аналогов;​сначала старые запасы,​ потом новые
 не учитывать разницу цен не учитывать разницу цен
 норма складского запаса равна сроку поставки + периодичность норма складского запаса равна сроку поставки + периодичность
Строка 825: Строка 834:
 Направления из файла настроек считаются приоритетнее направлений пользователя,​ заданным по ключу -user Направления из файла настроек считаются приоритетнее направлений пользователя,​ заданным по ключу -user
 </​note>​ </​note>​
 +
 +</​hidden>​
 +====Минимальный синтаксис команды для нескольких балансировок===
 +Если вам надо провести несколько балансировок (например,​ по разным направлениям),​ то нужно последовательно запускать балансировки с разными файлами настроек или разными пользователями:​
 +
 +<​code>​FSystemConsole balancing database ​ target --user user1 --filter balance [--xml] ​
 +FSystemConsole balancing database ​ target --user user2 --filter balance2 [--xml]
 +</​code>​
 +====Полный синтаксис команды====
 +
 +<​code>​FSystemConsole balancing database [source] target [--user] [--filter] [--xml] [--csv] [--xlsx][--consider-balancing] [--no-split-by-destinations] [--no-verification]</​code>​
 +
 +
 +  *database – название базы ​
 +  *source – путь к файлу с настройками балансировки. Во время выполнения команды,​ файл настроек проходит проверку на наличие ошибок. Если в файле есть ошибки,​ то балансировка не сформируется и будет выведено соответствующее сообщение,​ с указанием пути где хранится лог файл. Если указан флаг который игнорирует ошибки файла настроек,​ то балансировка сформируется и ошибочные настройки будут заменены на настройки по умолчанию.
 +  *target – место сохранения файла с проведенной балансировкой
 +можно указать полный путь к файлу. При этом если указать расширение xml - результат проведенной балансировки будет сохранен в [[балансировка_запасов#​структура_xml_файла|xml формате]]
 +  *<​code>​--user Имя пользователя </​code>​- указывается имя пользователя,​ настройки балансировки и отображения которого будут использованы для сохранения балансировки (показанные параметры/​свойства/​анализы,​ единицы измерения и направления балансировки).
 +Если указывается пользователь то файл настроек указывать не обязательно. Если в команде указан и файл настроек и пользователь,​ то настройки балансировки будут использоваться от указанного пользователя,​ а файл настроек будет проигнорирован. При входе в программу,​ после формирования балансировок,​ будет выведено сообщение,​ что файл настроек использоваться не будет.
 +
 +  *<​code>​--filter </​code>​- указание фильтра,​ по которому будет проходить балансировка.
 +
 +Фильтр можно указать только один. \\
 +Если в команде указан фильтр и файл настроек,​ то балансироваться будут товары указанные в фильтре. \\
 +При этом фильтр не учтет итоги анализов и фильтрацию по параметрам
 +
 +  *<​code>​ --consider-balancing </​code>​
 +При формировании заказов учтутся изменения остатков после проведения последней консольной балансировки
 +
 +Если после этой балансировки провести следующую,​ то будут применяться изменения двух предыдущих ​
 +
 +  *<​code>​[--xml] [--csv] [--xlsx] </​code>​
 +
 +При указании этих флагов (одного или нескольких) балансировка также будет сохраняться в указанном формате. По умолчанию балансировка сохраняется в excel csv, для флага "​--csv"​ просто в csv (в имя файла дописывается --csv так как расширение файлов у них одинаковое). Если файл цели указан с расширением xml, то флаг "​--xml"​ можно не указывать.
 +
 +  *<​code>​--no-split-by-destinations</​code>​
 +При формирование балансировок с указанием фильтра подготовки,​ сформированные балансировки не будут разбиваться по направлениям. Если указан этот флаг, то в качестве результата необходимо указывать не папку, а имя файла. Если балансировка была проведена через фильтр автоподготовки с флагом --no-split-destinations (не разбивать по направлениям),​ то в программе будет отображаться единственная балансировка с названием соответствующем шаблону:​ \\ <​Наименование фильтра>​ <​Текущая дата в момент проведения балансировки>​
 +
 +  *<​code>​--no-verification</​code>​
 +При формирование балансировки с указанием файла настроек,​ если настройка указана с ошибкой,​ то будет использовать настройка по умолчанию.
 +
 +
 +Во время работы консольной утилиты,​ выводится сообщение о количестве сформированных балансировок. \\
 +''​X balancing reports where created''​ - где X число сформированных балансировок \\
 +''​none balancing reports where created''​ - если количество сформированных балансировок равно нулю.
 +
 +
 +
 ====Отображение балансировки в интерфейсе программы=== ====Отображение балансировки в интерфейсе программы===
 При выполнении консольной балансировки её результат сохраняется в базу. ​ При выполнении консольной балансировки её результат сохраняется в базу. ​
Строка 909: Строка 966:
   *exceeded_period_treshold - период акции больше,​ чем указан в [[настройки/​глобальные_настройки#​Ограничение для расчета акций по их длительности|глобальной настройке]]   *exceeded_period_treshold - период акции больше,​ чем указан в [[настройки/​глобальные_настройки#​Ограничение для расчета акций по их длительности|глобальной настройке]]
  
 +Если используются [[настройки/​глобальные_настройки#​коэффициенты_акций_по_товарам|потоварные коэффициенты акций]],​ то расчёт и прогнозирование коэффициентов,​ будет производиться только по товарам удовлетворяющим условиям фильтра.
 ==Фильтрация по времени проведения акций== ==Фильтрация по времени проведения акций==
 Акции можно отфильтровать по времени их проведения ​ - прошедшие,​ текущие,​ будущие Акции можно отфильтровать по времени их проведения ​ - прошедшие,​ текущие,​ будущие
Строка 1320: Строка 1378:
  
 <​code>​ <​code>​
-FSystemConsole ​acvtivate-licence ​<​путь к файлу лицензии>​+FSystemConsole ​activate-license ​<​путь к файлу лицензии>​
 </​code>​ </​code>​
  
Строка 1352: Строка 1410:
 Если во время работы команды что-то пойдёт не так, то об этом будут сообщено в журнале через ненулевой код возврата. Если во время работы команды что-то пойдёт не так, то об этом будут сообщено в журнале через ненулевой код возврата.
  
 +=====Очистка журнала действий пользователей=====
 +
 +<​code>​FSystemConsole clearlog database</​code>​
 +
 +database - имя базы
 +
 +Команда позволяет очистить журнал действий пользователей от старых записей,​ которые не попадают в период указанный в [[настройки/​глобальные_настройки#​хранение_истории_действий_пользователя|глобальной настройке]] \\
 +Если глобальная настройка по [[настройки/​глобальные_настройки#​очищать_журнал_действий_пользователя_при_закрытии_программы|автоматической очистки журнала]] выключена,​ то можно использовать данную команду.
 +
 +=====Пересчёт и применение правил автоматической установки сезонности=====
 +<​code>​FSystemConsole apply-parameters-rules --seasonal database [--names] </​code>​
 +
 +seasonal — конкретное действие над правилами:​ расчет и применение правил сезонности
 +
 +database — название базы
  
 +names — после флага в кавычках через запятую указываются названия правил ​
 + ​сезонности("​правило1,​правило2,​правило3"​),​ которые нужно пересчитать и применить. Если флаг и список названий правил не указаны,​ то операция будет произведена над всеми правилами сезонности в базе(если такие есть).