Vlado написал(а):
Вот ФМ, gs_flags-stat2 и gs_flags-enl приходят равными X, поэтому обработка идет как для увольнения. Где заполняется gs_flags ?
gs_flags определяется в ФМ HR_RU_SET_CRITERIA_HIRE_FIRE. В HRUCALC0 сначало вызывается HR_RU_SET_CRITERIA_HIRE_FIRE вот так
Code:
FORM init-natio. " Initialisierung der steuerl. Freibetraege.
CALL FUNCTION 'HR_RU_SET_CRITERIA_HIRE_FIRE'
EXPORTING
P_STAT2 = 'X'
P_MASTY = 'X'
P_ENL = 'X'
P_NOHOLES = 'X'
p_status = '2' "statuses 2 and 3 -> employee active
IMPORTING
P_TAB_CRITERIA = gt_hifi_criteria
.
ru_mk_read_keys sy-repid 'RUAID_46C_V0_STRUC' gv_ruaid_46c_v0_struc.
ENDFORM. "INIT-NATIO
кроме gs_flags, заполняется структура gt_hifi_criteria, которая уже используется в HR_RU_HIRE_FIRE_DATES.
Может быть поможет такая информация. Я нашел в реальной системе аналогичный ТН, он принят в 2010 году, марте у него перевод, который вызывает разделение периодов расчета.
gs_flags заполнена вот так
Code:
STAT2 C 1 X
MASTY C 1 X
ENL C 1 X
NOHOLES C 1 X
В gt_hifi получается одна запись, заполненная вот так
Code:
BEGDA D 8 20010807
ENDDA D 8 99991231
ACTIVE C 1 X
FHE C 1
CLASS C 4
V_T7RU530 пустая
В аper 2 записи по периодам до и после перевода. RUSPL P?A для первого полупериода возвращает *, для второго Х.