Skip to content

Verify sy-subrc Promptly After Data Retrieval and Search ​

WarningClean ABAP & Modern Syntax#EC PREF_CHECK_SUBRCRemote Enabled

Overview ​

Check sy-subrc after DB, table and string operations.

ATC Finding Message: Check sy-subrc after SELECT SINGLE, READ, FIND, SEARCH

Rationale ​

Statements such as SELECT SINGLE, READ TABLE, FIND, and SEARCH report success through sy-subrc. If intervening statements execute before inspection, sy-subrc is overwritten and failure states are silently ignored. Check sy-subrc immediately after execution.

Non-Compliant ​

abap
SELECT SINGLE customer_id FROM /dmo/customer
  WHERE customer_id = @lv_id
  INTO @lv_customer_id.
process_customer( lv_customer_id ).

Compliant ​

abap
SELECT SINGLE customer_id FROM /dmo/customer
  WHERE customer_id = @lv_id
  INTO @lv_customer_id.
IF sy-subrc = 0.
  process_customer( lv_customer_id ).
ENDIF.

Configuration & Thresholds ​

This check can be fine-tuned directly in the ATC Check Variant Editor (CHKV) in Eclipse ADT:

Parameter NameData TypeDefault ValueDescription & Guidance
CHECK_SELECT_SINGLEBooleantrueRequire sy-subrc check after SELECT SINGLE
CHECK_READ_TABLEBooleantrueRequire sy-subrc check after READ TABLE
CHECK_FIND_SEARCHBooleantrueRequire sy-subrc check after FIND or SEARCH
CHECK_ASSIGNBooleantrueRequire sy-subrc check after dynamic ASSIGN

Suppression ​

To suppress findings for this rule, append the pseudo-comment to the statement:

abap
" Standard pseudo-comment:
... "#EC PREF_CHECK_SUBRC

" SAP CI_ prefix format:
... "#EC CI_PREF_CHECK_SUBRC

Technical Details ​

Released under the MIT License.