Как рассчитывается заработная плата в SAP

Сложно рассчитывается заработная плата в SAP. Приготовьтесь к тому, что последующий материал придется перечитывать неоднократно. Начнем с азов и будем углубляться с деталей в технику. Для пользователя расчет заработной платы, это нажатие на пару кнопок в системе: перевести единицу расчета в режим деблокирования, запустить расчет заработной платы, проверить на ошибки, посмотреть отчеты, запустить обмен носителями данных (ОНД) для перечисления, сделать проводки в модуле FI и CO, завершить расчет заработной платы. Для нас, настройщиков, это годы мучений в попытке понять, как работает расчет.

Читать далее


Закрытие периода в SAP

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

Читать далее


Тонкости загрузки зарплаты

Загружаем зп в систему через таблицу T558B и схему Ru30. Случилось так, что человек в одном месяце был уволен и принят обратно. Один табельный номер. Как правильно положить суммы в загрузку?

С помощью отладчика выяснил следующее. В драйвере расчета до запуска схемы идет проверка на строчку PGM TRN. Если такая строчка найдена, то система игнорирует состояние управляющей записи и грузит все периоды, которые есть в T558B. Но, для корректности загрузки она внутри себя строит таблицу APER, в которой по WPBP сама собирает периоды расчета. Если человек принят повторно в месяце, то мы должны разделить расчет заработной платы на два с помощью отдельного мероприятия — повторный прием. Признак разделения устанавливается в таблице T530. Система по этому признаку наш месяц поделила на два периода расчета с одним годом и месяцем, но разными датами начала и окончания (begda-endda).

Следующим шагом система читает t558b и сравнивает периоды в ней с периодами в APER. Если не сошлись, то выдает ошибку «Расчетный период 12 в T558B не совпадает с основными данными» (период расчета может быть любой). Поэтому в T558b должно быть два периода — уволенный сотрудник (без видов оплаты), вновь принятый (с видами начислений/удержаний). Если работник уволен, а потом повторно принят с разрывом в несколько месяцев, то в таблице T558b должны быть периоды, когда работник не работал.

В HRUCALC0 смотреть здесь:
Include RPCHRT09_FILL_APER

*———————————————————————-*
* new: to this point «K11K127822*
*———————————————————————-*
WHEN ‘TRN’. «tranfer old payroll results
PERFORM check_payty_t558b.
IF NOT rueckrab IS INITIAL.
PERFORM fill_aper_for_regular_payroll «QNZ note 331016
USING fa_datum. «QNZ note 331016
PERFORM check_aper_versus_t558b.
ENDIF.
PERFORM insert_bonus_runs_from_t558b.

А еще апельсины можно загружать с помощью IDOC: LSMW и IDOC инструкция для начинающих


Инструкция по миграции заработной платы в SAP

Заметка для себя любимого о последовательности миграции заработной платы. Загрузка ЗП за 2009 год для старта с 01.2010.

0. Грузим заработную плату в таблицы T558*
1. Единицу расчета на 12.2009. Ранняя дата расчета 01.2009
2. Деблокирую ЕР. Переводится в 01.2010
3. Считаю зп по схеме RU30. Автоматом красиво ложится вся история в=для-периода из T558*
4. В ИТ0003 меняю даты на 01.01.2010. Массово можно изменить с помощью программы RPUTRBK0 (спасибо Macros на sapboard.ru)
5. Считаю зп по нашей схеме **** за 01.2010. Красиво ложится в 01.2010. Первый месяц продуктивный посчитан.

ай да мы 🙂


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

«Установл. системой дата обрат. расч. 01.01.2009 предшеств. инд. САМ. РАНН.» — экспериментальным путем выяснил, если вываливается такая ошибка при расчете зп в журнале расчета заработной платы, то: 1. Сначала смотритм ИТ0003
2. Смотрим кластер по человеку. В моем случае был расчет зп до даты обратного расчета из ИТ0003. То есть, зп посчитал с 01.01.2009, а дату обратного расчета и раннего изменения поставил в ИТ0003 = 01.10.2009. Вот система и ругалась. Удалил результаты расчета, и все красиво посчиталось 😉