I get different results when run against the function fom BRF+ (platform 7.5).
In interpretation mode result is OK.
In generated mode, however, this happens:
The generated class for the function is /FDT/00O2TR0WNEDAW2BVI67LSX2T0.
Date of generation is 14.06.2016
in /FDT/00O2TR0WNEDAW2BVI67LSX2T0=>PROCESS_PURE it enters into processing as expected
/fdt/00o2tr0wnedaw2bvi67lsx2t0=>_m_dt_upto_row_0000000044( EXPORTING _iv_timestamp = _iv_timestamp
CHANGING lv_item_status = /fdt/00o2tr0wnedaw2bvi67lsx2t0=>lv_item_status
_v_cond_buf = _v_cond_buf
_v_match_found = _v_match_found
_v_max_col_matched = _v_max_col_matched
in _M_DT_UPTO_ROW_0000000044 the processing is OK, correct row is found and then all processing goes correctly.
The code first examines that condition form row 36 from the decision table is met, then row 4 from the second decision table is met.
The static attribute /fdt/00o2tr0wnedaw2bvi67lsx2t0=>lv_item_status of the generated class /FDT/00O2TR0WNEDAW2BVI67LSX2T0 is set to 'X', which is as expected.
Now, when the method /fdt/00o2tr0wnedaw2bvi67lsx2t0=>_m_dt_upto_row_0000000044 ends, the attribute /fdt/00o2tr0wnedaw2bvi67lsx2t0=>lv_item_status is cleared. It happens right after ENDMETHOD call.
This results in wrong outcome.