Всем добрый день.
Столкнулся с таким поведением, хотелось бы узнать корректно ли оно?
Пытаюсь добавить свое поле в папку ANLAV, которое будет просто выводит имя по табельнику ANLAV-PERNR
Code:
SELECT SINGLE ENAME FROM PA0001 INTO MATOTVLASTNAME
WHERE
PERNR = ANLAV-PERNR
AND BEGDA <= BERDATUM
AND ENDDA >= BERDATUM.
Сгенерировал, в запросе добавил вывод, но получается следующая картина. Если по данному ОС нет записей в ANCLV, т.е. программа в блок GET ANCLV не заходит, то и мое дополнительное поле не выводится, хотя на момент выборки из ANLAV оно заполняется. Как удалось найти, это из-за того что дополнительное поле ложится в группу полей %fg02(extract в которую происходит в операции GET ANLCV, куда мы не попадаем, т.к. данных нет), тогда как в выборка из anlav ложится в %fg01.
Наглядно видно, какие поля система пихает в первую группу в методе вывода:
Code:
loop.
%data_selected = 'X'.
at %fg01.
%znr = '01'.
%zgr = '01'.
%cline = %cline + 1.
perform %clear02.
%g00-ANLAV-ANLN1 = ANLAV-ANLN1.
%g00-ANLAV-INVNR = ANLAV-INVNR.
%g00-ANLAV-LVTNR = ANLAV-LVTNR.
%g00-ANLAV-LEAFI = ANLAV-LEAFI.
%g00-ANLAV-PERNR = ANLAV-PERNR.
%g00-ANLAV-CAUFN = ANLAV-CAUFN.
%g00-ANLAV-LVDAT = ANLAV-LVDAT.
%g00-ANLAV-LKDAT = ANLAV-LKDAT.
%g00-ANLAV-LEABG = ANLAV-LEABG.
...
at %fg02.
%znr = '02'.
%zgr = '02'.
%cline = %cline + 1.
if %znr > %lznr.
read table %g00 index %glline.
endif.
perform %clear03.
%g00-ANLCV-ANSW_GJE = ANLCV-ANSW_GJE.
%g00-T093B-WAERS-0201 = T093B-WAERS.
%g00-ANLCV-NAFA_GJE = ANLCV-NAFA_GJE.
%g00-T093B-WAERS-0202 = T093B-WAERS.
%g00-ANLCV-BCHWRT_GJE = ANLCV-BCHWRT_GJE.
%g00-T093B-WAERS-0203 = T093B-WAERS.
%g00-TEXT_ANLAV_ANLN1 = TEXT_ANLAV_ANLN1.
%g00-TEXT_ANLAV_LEAFI = TEXT_ANLAV_LEAFI.
%g00-MATOTVLASTNAME = MATOTVLASTNAME.
%g00-TEXT_ANLAV_CAUFN = TEXT_ANLAV_CAUFN.
В итоге имеем что хоть поле у нас и выбралось, но его экстракт не происходит. Почему так происходит, почему бы не добавить наше дополнительное поле в первую группу вместе с ANLAV? Как от этого избавится? А то получается табельник у нас выводится, а текст к нему нет...