Only Modify Tables Defined in Your Own Package/Component
Overview
Modify Only Own Database Tables.
ATC Finding Message:
Modify only customer-owned database tables (see OWN_TABLES)
Rationale
Directly executing INSERT, UPDATE, MODIFY, or DELETE statements on SAP standard tables (like VBAK, BKPF, EKKO, BUT000) bypasses core SAP document locking, document numbering, consistency validations, and business events. Such direct updates corrupt standard SAP database integrity and void SAP enterprise support agreements.
Clean Core Standard: Always use released SAP Business APIs (BAPIs), standard Business Objects, or RAP transactional interfaces to create or update SAP standard data.
Non-Compliant
" Highly Dangerous: Direct modification of standard SAP Financials header table
UPDATE bkpf SET bstat = 'V' WHERE belnr = @lv_doc_num.Compliant
" Clean Core: Modification via official released BAPI / RAP interface
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = ls_header
TABLES
accountgl = lt_gl
return = lt_return.Configuration & Thresholds
This check can be fine-tuned directly in the ATC Check Variant Editor (CHKV) in Eclipse ADT:
| Parameter Name | Data Type | Default Value | Description & Guidance |
|---|---|---|---|
OWN_TABLES | String | ^[yz/] | Regex pattern matching custom namespace tables permitted for direct mutation (default: ^[yz/]) |
REPORT_DYNAMIC | Boolean | true | Report dynamic database statements targeting unverified table variables |
Suppression
To suppress findings for this rule, append the pseudo-comment to the statement:
" Standard pseudo-comment:
... "#EC NO_MOD_STD_TABLE
" SAP CI_ prefix format:
... "#EC CI_NO_MOD_STD_TABLERelated Rules
- Prefer TYPE STANDARD TABLE OF over TYPE TABLE OF —
#EC PREF_STD_TABLE - Modernize READ TABLE (Table Expressions & line_exists) —
#EC PREF_TAB_EXPR - Do Not Mutate the Internal Table Currently Being Looped (Iterator Invalidation) —
#EC NO_MOD_LOOP_TAB
Technical Details
- Native ATC Class:
ZCL_SKYLINT_NO_MOD_STD_TABLE - Implementation File: zcl_skylint_no_mod_std_table.clas.abap