понедельник, 22 июня 2015 г.

raise exception CX_RSROUT_SKIP_VAL \ CX_RSROUT_SKIP_RECORD vs Rule Group

Два момента..

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) следующей строки.

Просто пытался сделать красиво траспонирование данных, но обломался.