В обновлении появилась возможность понять, какой запас распределительного центра при моделировании поехал на филиалы, подробно посмотреть, какой спрос возникал на разных филиалах и оценить, откуда сформировалась общая потребность товара к заказу.
Также вы можете посмотреть возможные заказы на филиалы при формировании заказа поставщику и увидеть количество товара из учтенной балансировки.
Вы можете выбрать, по какому принципу разбивать заказы при автоподготовке – гибко настроить, какие товары будут попадать в один документ заказа.
Сам заказ вы теперь можете округлять до упаковок нужного уровня, выбрав, поедет заказ в упаковках только одного уровня или можно комбинировать разные.
Стал доступен автоматический учет временных расписаний заказов (если поставщик на какой-то период меняет расписание).
При проведении балансировки теперь норму запаса можно определять автоматически - чтобы товара хватало до даты прихода следующего распределения. Сами документы балансировки можно разбивать по группам заказа.
При помощи анализа эффективности вы теперь можете найти товары с риском дефицита (по которым прошла точка заказа).
Расширены возможности консольной утилиты. Добавлены:
- план заказов
- сжатие баз данных
- расширенное логирование
Обратную связь по обновлению или вопросам использования Forecast NOW! теперь можно отправлять прямо из программы.
Оглавление
- Обновление программы
- Импорт данных
- Заказ
- Балансировка
- Навигация
- Анализ
- Параметры
- Консольная утилита
- Прочее
Контакты специалиста техподдержки
По всем возникающим в ходе использования программы вопросам Вы можете обращаться к специалисту технической поддержки:
e-mail: support@forecastnow.ru
Обновление программы
Ускорен процесс обновления программы в части обновления базы данных.
Полностью процесс обновления выглядит следующим образом:
- Закрыть программу у всех пользователей
- Скопировать базу данных (.db) для SQLite версии программы или дамп базы для MySQL и MS SQL версий на внешний носитель для обеспечения сохранности данных.
- Удалите программу через мастера установки и удаления программ
- Проверьте, что папка с программой пуста, если нет – удалите ее содержимое вручную
- Установить обновление, запустив дистрибутив
- Открыть программу
- При необходимости обновить базу данных (будет сообщено при выборе базы)
- При обновлении базы с версии 76 перед обновлением создаётся резервная копия базы (дамп) средствами СУБД.
Для MSSQL резервная копия хранится в каталоге хранения резервных данных (настраивается в свойствах сервера)
Для MySQL резервная копия сохраняется в каталоге, выбранном в диалоговом окне при обновлении базы или в Глобальных настройках.
Для MySQL также нужно указать путь к утилите mysqldump.exe
По умолчанию она находится по пути C:\Program Files\MySQL\MySQL Server 5.7\bin
Импорт данных
Автоматическое определение формата истории продаж
При первоначальной загрузке файла истории продаж формата csv, содержащего заголовки, соответствие полей будет устанавливаться автоматически, исходя из заголовка столбцов.
Автоматическое игнорирование истории продаж за будущий период
При загрузке истории продаж теперь в целях безопасности игнорируются записи за будущий период.
Проверка работает и в интерфейсе, и в консольной утилите. Если файл содержит продажи за сегодняшний день, то они будут загружены, за завтрашний день и позже – нет.
Если загрузка осуществляется в csv формате, то будет выдано предупреждение о том, что была попытка загрузить историю за будущий период.
Загрузка xml файлов из папки
Добавлена возможность загрузки xml файлов из папки (ранее была доступна только для csv файлов). Загрузка из папки происходит при помощи флага - -dir. Такая загрузка позволяет проще и быстрее загрузить большой объем данных (например, если файлы истории продаж разбиты по разным торговым точкам)
Заказ
Значительно обновлен и уточнен алгоритм формирования заказов с учетом дат поступлений:
- точнее определяется оптимальный запас
- точнее определяется оптимальный уровень сервиса
- уточнен заказ на распределительный центр с учетом потребностей филиалов
- уточнен учет кратностей, принудительного округления, округления по упаковкам для филиалов при заказе на РЦ
Заказ на РЦ
Мы работаем над тем, чтобы заказ на распределительный центр стал понятнее и при этом учитывал разные бизнес-логики работы с РЦ.
Подробная расшифровка заказа на РЦ
Добавлена подробная расшифровка заказа на РЦ.
Вы сможете понять:
- какой остаток РЦ должен уехать на филиалы под их потребности
- прогнозируемые остатки по РЦ и филиалам к дате прихода заказа
- какой спрос филиалов не удовлетворен их остатками и остатками РЦ (какая потребность филиалов попала в общий заказ)
- как акции повлияли на заказы
Расшифровка доступна при нажатии кнопки «Расшифровать расчет» на вкладке Потребности складов:
В примере формируется заказ на Основной склад (распределительный центр). Общий заказ равен 157. По расшифровке видим, что единственный филиал, где возникает потребность – склад 1. На текущий момент там доступно 142 штуки, за срок доставки будет израсходовано 124, нужно 270. 103 штуки мы можем отправить с РЦ (оставшееся будет удовлетворять спрос самого РЦ). Поэтому остаток потребности склада 1 – 157 штук – нужно заказать на РЦ.
Описание всех полей расшифровки:
- «Доступно на начало моделирования» - остаток, доступный на дату размещения заказа на каждом складе
- «Перемещено до заказа» - Объем перемещений запаса РЦ на филиал в период до поступления, учтённый при расчёте заказа
- «Влияние акций заранее (Резерв под акции)» - показывает, как резерв под маркетинговые акции с «Заказать заранее за» повлиял на расчёт
- «Заказано» - объем поступлений от начала моделирования до даты «До» (соответствует столбцу вкладки Заказ)
- «Расход до поступления» - расход товара до поступления рассчитываемого заказа (соответствует столбцу вкладки Заказ)
- «Перемещено во время заказа» - объем перемещений запаса РЦ на филиал на горизонте планирования, учтённый при расчёте заказа
- «Прогнозируемый остаток» - остаток, доступный на дату поступления рассчитываемого заказа(соответствует столбцу вкладки Заказ)
- «Спрос» -ожидаемое значение спроса на горизонте планирования. Отличается от столбца «прогноз спроса» вкладки заказ тем, что «Спрос» показывает значение, соответствующее уровню сервиса, а «прогноз спроса» - среднее значение
- «Влияние акций заранее (ОТЗ)» - показывает как маркетинговые акции с «Заказать заранее за» повлияли на объем оптимального запаса
- «Оптимальный запас» - количество товара, которое необходимо на период заказа, чтобы обеспечить спрос на товар (соответствует столбцу вкладки Заказ)
- «Заказать» -разница между оптимальным запасом и прогнозируемым остатком(соответствует столбцу вкладки Заказ). Не учитывает кратности и других ограничений на перемещение, которые учитываются в конечном Заказать для РЦ
Отдельный просмотр заказов на филиалы
Часто возникает необходимость посмотреть, откуда взялась потребность на филиале при заказе на распределительный центр. Для этого добавлена возможность просмотра «заказов» на филиалы при заказе на РЦ.
Для этого нужно выделить интересующую вас позицию и в контекстном меню выбрать «Развернуть позицию по филиалам».
В отображаемой таблице будет представлена аналогичная информация, что и в оригинальном заказе на РЦ. Но данные будут представлены отдельно по складам.
Если соответствующие столбцы были добавлены в таблицу заказа на распределительный центр («оригинальный заказ»), то можно посмотреть какие заданы параметры по каждому складу, какие акции и на каком складе учитываются.
Чтобы вернуться к оригинальному заказу нужно нажать «Сбросить» или же выбрать другой заказ в Списке заказов.
Учет потребностей филиалов, если поставщиком указан РЦ
В предыдущем обновлении 4.6 был добавлен параметр «Способ доставки» для филиалов. Он показывает, откуда пополняется склад (филиал) – с РЦ или от поставщика. Часто возникает ситуация, когда есть несколько РЦ и периодически у товара филиала меняется РЦ для пополнения.
Теперь такие ситуации можно учитывать следующим образом:
- в параметр «Поставщик» для товара филиала загружается актуальный РЦ, который везет этот товар на филиал
- при заказе на РЦ по товару будут учитываться только продажи тех дочерних складов, у которых значение параметра «Со склада» и поставщиком указан этот РЦ или внешний поставщик.
То есть для поддержания этой сложной схемы вам нужно создать несколько иерархий складов с разными РЦ и прогружать актуальный РЦ для поставки для товаров филиалов – все остальное программа сделает сама.
Поддержка внутринедельной сезонности в алгоритме с поступлениями
В обновлении поддерживается внутринедельная сезонность (параметр «Учитывать внутринедельную сезонность= да») для алгоритма с поступлениями. Теперь вы можете учитывать, что в одни дни недели товары продаются лучше, чем в другие.
Разбивка заказов при автоподготовке
Ранее при автоподготовке заказов в один заказ строго попадали товары, у которых одинаковые:
- поставщик
- группа заказа
- склад
- даты заказа
Может возникнуть потребность группировать заказы по другому принципу. Например, товарам по итогам ABC анализа или другому принципу задается разный дополнительный запас на случай срыва срока поставки. Этот запас влияет на даты заказа, но товары одного поставщика – склада получателя мы хотим видеть в 1 заказе.
Чтобы решать подобные задачи, добавлена глобальная настройка «Разбивать заказ По»:
По умолчанию, при автоподготовке заказов они разбиваются по группам заказа, датам От и До. С помощью данной настройки можно выбрать разные варианты разбиения заказов:
- Если не выбрано значение «Дата От», то не будет происходить разбиение по дате «От». В заказе не будет конкретно зафиксированных дат «От» и «До», установка этих дат для сформированного заказа будет недоступна. Для названия заказа будет выбрана минимальная дата «От» из всех объединяемых заказов.
- Если отключено разбиение «Дата До», то не будет происходить разбиение по дате «До». В заказе не будет конкретно зафиксированных дат «От» и «До», установка этих дат для сформированного заказа будет недоступна. Для названия заказа будет выбрала максимальная дата «До» из всех объединяемых заказов.
- Если отключено разбиение «Группа заказа», то не будет происходить разбиение по группе заказа. В название заказа не будет зафиксирована Группа заказа.
Значения настройки можно комбинировать.
Настройка работает как при автоподготовке через интерфейс программы, так и в консольном автопилоте.
Влияние учтенной балансировки
Если у вас в консольной утилите сначала проводится балансировка (например, с РЦ на филиалы), потом она запоминается, и сразу формируется заказ (например, на филиалы дозаказывается товар у поставщика), то теперь вы сможете увидеть таблице заказа, сколько товара было перемещено по балансировке.
Отображается учтенная балансировка при помощи столбца «Влияние балансировки» - показывает, как перемещение, повлияло на остаток товара. Влияние рассчитывается как разница между остатком по товару до и после учета балансировки.
Если заказ формируется на склад, который был донором в балансировке и с него происходило перемещение, то остаток у него уменьшился и влияние балансировки будет отрицательное число.
Если заказ сформирован на склад-реципиент, то влияние - положительное число.
Принудительное округление до упаковки 2 уровня
В программе доступен функционал принудительного округления. Если по установленным правилам округления и кратности товар не закажется никогда (например, кратность - 300, оптимальный запас колеблется около 50, кратность - «по правилам», значит при установленных правилах округления ОТЗ округляется в ноль, т.е. заказ не будет сделан даже при нулевом уровне запасов), то кратность будет изменена на «по правилам, складская».
Балансировка
Определение нормы запаса по расписанию балансировки
Ранее в программе потребность на филиале определялась при помощи параметра норма складского запаса (на сколько дней должно хватать товар в момент прихода). В обновлении добавлена возможность учета расписания балансировки – товара должно хватать до даты прихода следующей балансировки (или на норму, если она больше).
Запас теперь рассчитывается на МАКС(количество дней от текущей даты до даты прихода следующей балансировки -1, норма запас + срок доставки).
Например, мы делаем распределение по понедельникам и четвергам, товар едет с РЦ 2 дня.
Делая распределение 10.08 (понедельник) нам нужно, чтобы на филиале хватило запаса с 10 (текущий день) по 15.08 (дата прихода распределения в четверг).
Если норма запаса больше 5 дней, то тогда будет использоваться она.
Разбивка по группе заказа
В балансировку добавлена возможность разбивки по группе заказа.
Например, на одном РЦ присутствует и охлажденная продукция, и заморозка. Их нужно перевозить в разных транспортных средствах. То есть “заморозка” не может перемещаться вместе с “охлаждёнкой”. И в таблице балансировок эти перемещения нужно видеть отдельными документами.
Для решения подобного рода задач добавлены
- Параметр «группа заказа «балансировка»»
- В настройки балансировки добавлен выбор учёта группы заказа - не использовать (по умолчанию), основная и балансировка
При использовании групп заказа балансировка разбивается по ним. Используется группа заказа со склада-реципиента. При разбиении значение группы заказа дописывается к имени балансировки.
Таким образом, если вы хотите разбивать балансировки по группам заказа, то вам нужно выбрать – по обычной группе заказа или по отдельной группе заказа для балансировки:
- Основная - используется “Группа заказа”, установленная параметрах Особенности поставок
- Балансировка - используется “Группа заказа (балансировка)” установленная параметрах Балансировка
- Не учитывать - группа заказа не будет учитываться при формировании балансировки
- балансировки
Помимо этого, в консольную утилиту добавлен флаг "--no-split-by-order-group". Пре его использовании балансировки не будут разбиваться по группам заказа не смотря на настройки.
В xml файл балансировки добавлены новые поля:
- в секцию настроек BalancingSettings добавлен атирут orderGroupType - группа заказа. Может принимать значения - FROM_BALANCING(балансировка), FROM_ORDER(основные), NONE.
- в секцию результатов добавлен тэг orderGroups - группы заказа
orderGroups - группы заказа
item - элемент-значение группы заказа для товара
storage - склад
product - товар
value - группа заказа
Уточнение работы с монтажной кратностью
Параметр «монтажная кратность» показывает, что товар продается кратно какому-то объёму (например, по 4 колеса). При распределении товара возможна ситуация дефицита (когда остатка РЦ не хватает под все потребности филиалов).
Уточнена работа монтажной кратности и минимальной партии: количество перемещения, скорректированное по монтажной кратности, не может быть меньше минимальной партии. После перемещения, остаток на реципиенте станет кратен монтажной кратности, установленной для этого склада.
Столбцы с потребностью складов
Для прозрачности расчетов добавлены столбцы с потребностью склада-донора и склада-реципиента.
Столбцы сохраняются в файлы всех форматов.
Как рассчитываем потребность:
- из значения ОТЗ вычитается фактический остаток, а также вычитается остаток “в пути” и “заказано”, если это указано в настройках балансировки.
- если разница больше нуля, то используем разницу из первого пункта. Иначе потребность будет равна нулю.
Округление по упаковкам
Округление «по упаковкам» теперь работает и для балансировки. Если вам нужно округлить перемещение до упаковки, то нужно выбрать значение параметра округление «балансировка» = «по упаковкам» и задать пороги округления в настройки-упаковки.
В самом округлении по упаковкам теперь поддерживается 2 логики (везти товар в упаковке 1 уровня или комбинировать разные упаковки).
Навигация
Отправка обратной связи
В Forecast NOW! есть специальная форма обратной связи, через которую мы можем получать сообщения от пользователей программы.
В форме имеется два поля, для указания адреса электронной почты и для текста сообщения. Если электронная почта не указана, то сообщение будет отправлено анонимно. Но если при работе с программой у вас возникли какие-то вопросы, укажите адрес электронной почты при отправке сообщения, и мы обязательно вам ответим.
При разработке новых версий программы мы прислушиваемся к мнению пользователей. Напишите нам, каким функционалом вы пользуетесь, и мы постараемся сделать вашу работу с программой более удобной.
При работе над программой мы стараемся учитывать все обращения.
Анализ
Анализ эффективности
Запас на точку заказа
В программе рассчитываются излишние запасы (сверхзапасы) - сейчас товара лежит больше, чем нужно на норму запаса/горизонт планирования.
Для целей аналитики часто нужно также оценивать недостаток товара. Для этого добавлена возможность расчета оптимального запаса на точку заказа. Если сейчас товара лежит меньше, чем нужно на точку заказа, то возможен недостаток товара или пропущена возможность для его дозаказа.
Для расчета необходимо в настройках анализа выбрать расчет ОТЗ на точку заказа.
В зависимости от настроек анализа, можно рассчитать ОТЗ на “Точку заказа” установленную в Параметры-Расписание поставок и на “Точку заказу”, установленную в Параметры-Балансировка.
Чтобы данные показатели рассчитывались, также должна быть включена настройка «Рассчитывать сверхзапас» в настройках Анализ-Эффективность.
Рассчитанные значения будут отображать в столбцах ОТЗ (Точка заказа) и ОТЗ (Точка заказа балансировки).
Средневзвешенные цены
Большинство аналитических показателей рассчитывается при помощи средневзвешенной цены закупки. Для удобства добавлны столбцы средневзвешенных цен закупки и реализации в анализе эффективности.
Добавить средневзвешенные цены можно через меню Вид - Столбцы. Столбцы содержат значения соответствующих средневзвешенных цен, которые используются при анализе
Никаких агрегаций по ценам (итого, итого по группе) не производится, в соответствующих строках значения 0.
Произвольные поля
Вы можете добавить в таблицу анализ-эффективность столбцы произвольных полей для товаров при помощи меню Вид.
Параметры
Округление по упаковкам
В предыдущем обновлении 4.6. была добавлена возможность округления заказа по упаковкам. При этом сначала определялось целое число упаковок 3 уровня, если после этого был остаток – он ехал в упаковках более низкого уровня и т.д.
Добавлена возможность округлять заказ до целых упаковок 1 уровня (заказ полностью поедет или в упаковках 1 или 2 или 3 уровня). Для этого не нужно ставить галочку «использовать разные уровни упаковок» в Настройки - упаковки
Таким образом, если настройка включена, то заказ может поехать разными упаковками (часть контейнером, часть паллетами), если выключена – только одним уровнем.
Временное расписание заказов
Часто бывает, что на какой-то период меняется расписание заказов у поставщика (например, на период майских праздников). Для того, чтобы это учитывать, добавлена возможность задавать временные расписания заказов.
Если дата размещения заказа попадает на период временного расписания, то используется оно, в противном случае, расписание по умолчанию.
Само расписание можно задать при помощи контекстного меню или загрузить.
Пример учёта временного расписания
Временное Расписание действует с 01.01.2020 до 10.01.2020 - заказы ежедневно, срок доставки 1 день. По обычному расписанию заказ размещается раз в неделю, срок доставки 7 дней (после 10.01. первый заказ выпадает на 13.01. ).
Горизонт планирования и Дополнительный запас, дней, не установлены.
Формируем заказ 9 числа. Следующий попадает в дату временного расписания - в результате получается дата размещения 09.01.
Дата От = 10.01 (9.01 + временный срок доставки 1).
Дата До = 11.01. (след заказ по временному 10.01+1 день (доставка по временному)
Делаем заказ 10 числа. Следующий заказ по обычному расписанию выпадает на 13.01. Получается дата размещения 10.01.
Дата От = 11.01 (10.01+временный срок доставки 1).
Дата До = 20.01 (дата следующего заказа 13.01+7 дней (срок доставки по обычному расписанию)
Группа заказа (балансировка)
Позволяет разделить товары, перемещаемые по одному направлению, на разные балансировки. В каждой балансировке будут товары с одинаковым значение группы заказа на складе реципиенте.
Например, если необходимо разделить товары на две балансировки, из-за разного способа доставки, то можно указать две разные группы заказа.
При балансировке учитывается группа заказа, установленная на складе реципиенте (склад, на который осуществляется перемещение).
При разбиении, значение группы заказа дописывается к имени балансировки.
Консольная утилита
Сжатие MSSQL баз
Добавлена возможность сжатия MSSQL баз (из базы убираются лишние нули, она становится меньшей по размеру).
Сжатие происходит через массовую загрузку из файла. Файл со сжатой историей продаж создается во временной папке для массовой загрузки (указывается в Глобальных настройках)
Чтобы все прошло корректно сжатие должно быть запущено на компьютере, где расположен сервер СУБД. Программа должна быть запущена под пользователем, который имеет права на запись во временную папку для массовой загрузки, а сервер СУБД имеет права на чтение из этой папки. Перед процессом сжатия, автоматически создается дамп базы.
Команда для запуска сжатия базы:
FSystemConsole.exe compress [database-name]
database-name - имя базы данных.
Если при сжатие произойдет ошибка, то код консольная утилита вернет код 38
Текст кода ошибки при открытии программы зависит от произошедшей ошибки и может быть один из:
- массовая загрузка недоступна
- не удалось создать временный файл для массовой загрузки
- не удалось экспортировать сжатую историю продаж в файл
- не удалось очистить таблицу продаж после сжатия
- не удалось выполнить сжатие средствами СУБД
- не удалось загрузить сжатую историю продаж в базу
- не удалось выполнить оптимизацию таблиц
- не удалось создать резервную копию базы
Построение плана заказов при помощи консольной утилиты
Добавлена возможность построения плана заказов при помощи консольной утилиты.
Синтаксис
FSystemConsole.exe stockplan database --filter filter [--user userName] --target target --dates date1 date2 [--xlsx] [--csv] [настройки плана заказов]
database - путь или имя базы для расчетов
filter- имя фильтра, созданного в программе для выбора товаров, попадающих в план заказов
user - имя пользователя. Если указан пользователь, то используются настройки плана заказов, указанные у этого пользователя в программе (Тип анализа, Временная корзина, Единицы измерения)
target - файл, куда сохранится рассчитанный план заказов
dates - период расчёта плана заказов. dates1 - дата От, dates2 - дата До
xlsx csv - указывается в каком формате сохранится план заказов xlsx или utf8 csv. если флаг не указан, то сохранится в xlsx.
Настройки плана заказов
Тип анализа
--type (income | ordered | rests | payment)
income - Приходы
ordered - Заказано
rests - Остатки
payment - План оплат
Временная корзина
--timeBucket (week | month | quarter)
week - По неделям
month - По месяцам
quarter - По кварталам
Единицы измерения
--units (sell | purchase | amount | weight | volume | reports | sku)
sell - в Реализационных ценах
purchase - в Закупочных ценах
amount - Нат. ед.
weight - Вес
volume - Объём
reports - Число заказов
sku - SKU
План оплат формируется только в закупочных ценах и не может быть поквартальным.
Пример команды
FSystemConsole.exe stockplan demo.db --filter filter№1 --user FCN --target "D:\FNOW\OUT" --dates 01.01.2020 01.04.2020
Расширенное логирование балансировки в консольной утилите
В консольную балансировку было добавлено расширенное логирование. Дополнительные записи появляются, если запустить её с ключом --log. Иначе отображается стандартный вывод.
Прочее
Проведены работы по оптимизации занимаемой программой оперативной памяти, ускорены основные операции.