Чтение результатов расчёта

Один из основных моментов в модуле HCM - расчёт заработной платы. Все данные расчета лежат в кластерах PCL1 и PCL2, который читаю специальными ФМ-ми. За редким исключением, когда произведена декластеризация ( На практике видел такое только в одной системе, поэтому опустим этот вид доступа к данным расчета).

Расчет ЗП для человека можно посмотреть в транзакции PC_PAYRESULT. Поскольку данная заметка предназначена больше для разработчиков, чем для консультантов, подробно описывать все таблицы не буду.



Как правило, нас интересуют виды оплат(ВО) из таблицы RT, которые необходимо получить как полностью за весь период расчета, так и по каким либо сплитам. Например AB или WPBP.
Физический смысл этих сплитов показать, какие выплаты были в случае определенного Организационного присвоения (WPBP) или В привязки к каким-нибудь отсутствиям (AB).


Также нас интересуют следующие поля в расчете:
1. Индикатор актуальности - говорит о том, что мы имеем актуальный расчет или нет. Физический смысл следующий. Если вам в рассчитали зп единожды, а потом по какой либо причине пересчитали. Актуальным (А) будет только последний расчет, все прошлые расчеты данного периода станут предыдущими (P).

2. Краеугольный камень чтения результата расчёта ЗП это "Для"-период и "В"-период. В зависимости от типа по которому хотим получать данные, будут различаться инструменты и алгоритмы обработки полученных записей.

"В"-период - период в котором производился расчет.
"Для"-период - период для которого производился расчет.
Пример:
Человек отработал в январе все дни, а в последний не пришел по какой-то неясной для работодателя причине. В итоге "В"-периоде 01.2023 ему рассчитали ЗП. "Для"-периода 01.2023. После этого в феврале он принес больничный лист на этот последний день января. В феврале будет произведен перерасчет января с уточненными данными. В итоге получим новый расчёт за январь у которого "В"-период будет 02.2023 (ведь его считали уже в феврале), а вот Для-период будет все тот же 01.2023 (Т.к. этот расчет для января). При этом актуальным будет именно последний расчет, а первый получит тип Предыдущий (P).

Надеюсь, пример не запутал вас еще больше.


Для-период

Получение данных ДЛЯ-период начинается с получения данных о всех расчетах по текущему ТН. После чего выбираются только Актуальные(A) записи srtza = 'A' .
Также в  примере видно, что определённые ВО собираются по сплиту AB.

В-период

В случае В-периода необходимо учитывать не только Актуальные (А), но и Предыдущие расчеты (P).  Суммы из актуальных расчетов используются как есть, а у прошлых знак инвертируется.

Для В-периодов существует более простое с точки зрения разработчика решение - использование класса cl_hrpayru_pltaxrun или более нового cl_hrpayru_pltaxrun_ce. Он умеет самостоятельно  собирать данные по ВО на основании настройки из транзакции HRPAYRUT7RUN.
Удобство данного метода состоит в том, что практически все суммирования ВО решаются настройкой, а вам как разработчику, остается только воспользоваться результатам. Кроме того, учитываются всевозможные доработки, которые могут производиться для определённых справок. Если есть возможность использовать cl_hrpayru_pltaxrun - используйте. 

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

Добавить комментарий

Ваш адрес email не будет опубликован.