Два момента..
CX_RSROUT_SKIP_VAL: If an exception type cx_rsrout_skip_val is triggered in the routine, the target field is deleted.
В общем понятие deleted можно трактовать по разному, но если подебажить то можно увидеть что поле очищается, см. по коду:
CATCH cx_rsrout_skip_val.
CLEAR _G_1-/BIC/ZPRJOECT.
ENDTRY.
CX_RSROUT_SKIP_RECORD: If a raise exception type cx_rsrout_skip_record is triggered in the routine, the system stops processing the current row and continues with the next data record.
Неожиданно CX_RSROUT_SKIP_RECORD сыграл в Rule Group. Обработка текущего Rule Group прерывалась, и переход был не к следующему Rule Group, а к следующей строке... т.е. к 1му Rule Group (Standard Group) следующей строки.
Просто пытался сделать красиво траспонирование данных, но обломался.