Случается такое, что в процессе отладки каких-то масштабных вещей нужно удалить какой-то определенный период расчета из кластера. По одному удалять можно с помощью транзакции PU01. А если массово, то никак. Программа удаления результатов расчетов RPUDEL20 умеет удалять только все результаты, что нам не очень подходит.
Для этого можно скопировать программу и всего несколькими строчками изменить ситуацию. Копируем RPUDEL20 в свою программу. После блока DATA добавляем:
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 3(29) TEXT-089 for field p_inper.
PARAMETERS: p_inper LIKE pc261-inper.
SELECTION-SCREEN END OF LINE.
Находим процедуру
FORM FILL_RGDIR TABLES $LIST_RGDIR STRUCTURE LIST_RGDIR
$RGDIR STRUCTURE PC261
USING $PERSNR LIKE PERSNR.
и меняем в ней:
* rgdir -> list_rgdir
LOOP AT $RGDIR.
LIST_RGDIR-PERSNR = $PERSNR.
MOVE-CORRESPONDING $RGDIR TO $LIST_RGDIR .
APPEND $LIST_RGDIR.
ENDLOOP.
На
* rgdir -> list_rgdir
LOOP AT $RGDIR.
if $rgdir-inper = p_inper.
LIST_RGDIR-PERSNR = $PERSNR.
MOVE-CORRESPONDING $RGDIR TO $LIST_RGDIR .
APPEND $LIST_RGDIR.
endif.
ENDLOOP.
Проделанные манипуляции добавят поле ‘В периоде’ на селекционный экран. В нем указываем период в формате ГГГГПП (где , ГГГГ — год, ПП — период). Система выведет только этот период для тех табельных, у кого он есть. Выделяем все и нажимаем удалить.
P.S. Прежде чем все это делать, подумайте. На свой страх и риск. Не рекомендуется к продуктиву.