Macros написал:
Code:
* input parameters
split im_wafor-fidaq-soufi at ',' into lv_bezab lv_abgrp lv_fldnm.
if not lv_bezab is initial.
* without AB, only MD
lv_bezab = 'X'.
endif.
Этот параметр (lv_bezab) не пробовали менять в настройках записи с вызовом DAQ?
Там если он заполнен то другая ветка работает.
Нет, параметр lv_bezab не поможет.
В ФМ HR_RU_DAQ_PAY2_DAY вызов функции HR_RU_DAQ_AB происходит дважды:
Первый раз
Code:
if ls_pay2s-summa > 0.
* periods MD
ls_wafor-fidaq-soufi = 'X'.
call function 'HR_RU_DAQ_AB'
Второй раз
Code:
* AB
clear: ls_wafor-fidaq-soufi, ls_fidat-value[].
call function 'HR_RU_DAQ_AB'
в первом случае параметр lv_bezab имеет значение 'X', а во втором - ' '.
При значении lv_bezab = 'X' при переборе отсутствий
Code:
if lv_bezab = 'X'.
* is AB exists?
loop at <ls_resul>-inter-ab transporting no fields
where begda ge <ls_resul>-evp-fpbeg and endda le <ls_resul>-evp-fpend.
exit.
endloop.
check sy-subrc <> 0.
проверка sy-subrc всегда дает результат false, поскольку в каждом расчетном периоде определяется какое-то отсутствие, либо отпуск до 1.5 лет либо отпуск до 3 лет.
Остаются только варианты, предложенные RoustR.
Спасибо.