Работа с производственным календарем (SCAL / OY05) (factory calendar) и полезные ФМа
В одной из предыдущих статей мы рассматривали как работать с датами и временем: прибавлять и отнимать количество дней/секунд, а также форматировать. Однако, зачастую приходится работать именно с датами производственного календаря, а не с простой последовательностью дат.
Производственный календарь – это календарь с учетом рабочих и праздничных дней. Его цель – правильно спланировать производственные мощности, сориентироать клиента по срокам производства/доставки, корректно начислить зар.плату, отпуск и другие начисления. Список рабочих и нерабочих дней на 2025 год можно видеть на сайте, например, КонсультантПлюс. Сам календарь утверждается Правительством.
Однако, это не значит, что все предприятия и/или их подразделения обязаны работать в соответствии с этим календарем. Существуют отрасли/производства, которые останавливаются очень редко, а постоянство работы обеспечивается сменами.
Ведение производственного календаря (мастер-данные)
В SAP ERP для ведения производственного календаря имеется транзакция SCAL (или OY05). В транзакции SCAL указываются: идентификатор производственного календаря, а также календарь с набором праздников (Holiday Calendar) и рабочие дни недели (Рис.1):
Рис. 1 Производственный календарь - Z9 (для целей демонстрации)
Внутри транзакции SCAL мы также обозначает праздничные дни и присваиваем их нужному Календарю праздничных дней.
Рис. 2 Меню для ведения праздничных дней
В календаре праздничных дней у нас имеется список праздничных дней (случаи, когда дни могут «сдвигаться» тоже предусмотрены, но сейчас нам нужен сам принцип присвоения).
Рис. 3 Присвоение праздничных дней календарю выходных дней
После того, как в систему заведены: производственный календарь и праздничные дни – система может корректно вычислять даты с учетом производственных возможностей.
Идентификатор производственного календаря присваивается через настройки к различным орг.единицам: Балансовой единице, Заводу, складу, пункту отгрузки. Поэтому правило: не стоит «хардкодить» ID-производственного календаря, а лучше брать его идентификатор из настроек. Обращу внимание, что не все подразделения компании могут работать по единому производственному календарю. Это может быть в силу специфики отрасли или в силу региональных особенностей.
Ближайший рабочий день – используем ФМ DATE_CONVERT_TO_FACTORYDATE
Чтобы узнать ближайший рабочий день – мы можем использовать ФМ DATE_CONVERT_TO_FACTORYDATE с параметрами:
Рис. 4 Пример работы ФМа DATE_CONVERT_TO_FACTORYDATE
В результате мы видим, что по производственному календарю Z9 – 5января является выходным днем, а ближайший рабочий день – 9 января 2025.
Чтобы прибавить/отнять N-производственных дней к дате: ФМ BKK_ADD_WORKINGDAY
Если Вы получаете заказ 20 января, а на его исполнение Вам нужно 10 рабочих дней, то готов к отгрузке он будет...3 февраля.
Рис. 5 Расчёт производственной даты "через 10 дней"
Для отнимания даты – использовать отрицательное количество в параметре I_DAYS.
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти