Sie sind auf Seite 1von 18

9/5/2019 ABAPblog.

com - ATC Pseudo Comments list

(https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fabapblog.com&t=) (https://twitter.com/intent/tweet?

source=http%3A%2F%2Fabapblog.com&text=:%20http%3A%2F%2Fabapblog.com&via=abapblog) (http://pinterest.com/pin/create/button/?

url=http%3A%2F%2Fabapblog.com&description=) (https://getpocket.com/save?url=http%3A%2F%2Fabapblog.com&title=) (http://www.reddit.com/submit?

url=http%3A%2F%2Fabapblog.com&title=) (http://www.linkedin.com/shareArticle?

mini=true&url=http%3A%2F%2Fabapblog.com&title=&summary=&source=http%3A%2F%2Fabapblog.com) (https://pinboard.in/popup_login/?

url=http%3A%2F%2Fabapblog.com&title=&description=)

Home (/) / Articles (/articles) / Tips (/articles/tips)


/ ATC Pseudo Comments list (https://abapblog.com/articles/tips/124-atc-pseudo-comments-list)

ATC Pseudo Comments list (/articles/tips/124-atc-


pseudo-comments-list)
Written by Łukasz Pęgiel Category: Tips (/Articles/Tips) Published: 26 September 2018 Hits: 7160

Rating 100% (7 Votes)

Tags: ATC (/component/search/?searchword=ATC&ordering=&searchphrase=all) , PSEUDO COMMENTS (/component/search/?

searchword=PSEUDO%20COMMENTS&ordering=&searchphrase=all) , #EC (/component/search/?searchword=#EC&ordering=&searchphrase=all)

1 Comment

I was implementing ATC checks in the company I work for and wanted to find the place where the information about possible pseudo comments are stored.

In transaction ATC I could find them in the management of priorities for check variants, but I couldn't find corresponding DB table. Seems that they are stored directly in
the checks that's why after some debugging I've setup a break-point in the SCI transaction and then I've collected all the checks that have assigned pseudo comments.
The version of NW that I was extracting pseudo comments from is 7.52 SP02.

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 1/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list

Now you can also use this information as I've attached the whole table bellow, hopefully it will help you to find the correct pseudo comment if the code cannot be
adjusted in your opinion.

Test Class Code Kind Text Pseudo Comment Alternative Pseudo


Comment
CL_CI_TEST_ANALYZE_SELECT_DIA EXISTS E Existence check. No fields used CI_ALL_FIELDS_NEEDED
CL_CI_TEST_ANALYZE_SELECT_DIA FEW E Select-Statement can be transformed. CI_ALL_FIELDS_NEEDED
&1% of fields used
CL_CI_TEST_ANALYZE_SELECT_DIA MANY W Select-Statement cannot be CI_ALL_FIELDS_NEEDED
transformed. &1% of fields used
CL_CI_TEST_ANALYZE_SELECT_HANA EXISTS E Existence check. No fields used CI_ALL_FIELDS_NEEDED
CL_CI_TEST_ANALYZE_SELECT_HANA FEW E Select-Statement can be transformed. CI_ALL_FIELDS_NEEDED
&1% of fields used
CL_CI_TEST_ANALYZE_SELECT_HANA MANY W Select-Statement cannot be CI_ALL_FIELDS_NEEDED
transformed. &1% of fields used
CL_CI_TEST_COMPLEX_WHERE 1 N WHERE condition has &1 fields linked CI_CMPLX_WHERE
with AND
CL_CI_TEST_COMPLEX_WHERE 2 N OR branches of different lengths (with CI_CMPLX_WHERE
brackets)
CL_CI_TEST_COMPLEX_WHERE 3 N &1 OR branches with different fields in CI_CMPLX_WHERE
the WHERE condition (with brackets)
CL_CI_TEST_COMPLEX_WHERE 5 N JOIN link from &1 Tables CI_CMPLX_WHERE
CL_CI_TEST_COMPLEX_WHERE 12 W OR branches of different lengths CI_CMPLX_WHERE
(without brackets)
CL_CI_TEST_COMPLEX_WHERE 13 W &1 OR branches with different fields in CI_CMPLX_WHERE
the WHERE condition (without
brackets)
CL_CI_TEST_CRITICAL_STATEMENTS 1 W Call System Function: &1 CI_CCALL
CL_CI_TEST_CRITICAL_STATEMENTS 2 N Call Transaction &1 CI_CALLTA
CL_CI_TEST_CRITICAL_STATEMENTS 3 W Use of a SYSTEM-CALL CI_SYSTEMCALL
CL_CI_TEST_CRITICAL_STATEMENTS 4 N Call Editor CI_EDITORCALL
CL_CI_TEST_CRITICAL_STATEMENTS 5 N Call Executable Program &1 CI_SUBMIT
CL_CI_TEST_CRITICAL_STATEMENTS 6 W Use of Native SQL CI_EXECSQL
CL_CI_TEST_CRITICAL_STATEMENTS 7 N Use of ROLLBACK WORK CI_ROLLBACK
CL_CI_TEST_CRITICAL_STATEMENTS 8 W Use of Database Hint: &1 CI_HINTS
CL_CI_TEST_CRITICAL_STATEMENTS 9 N Dynamic Programming with CI_GENERATE
GENERATE &1
CL_CI_TEST_CRITICAL_STATEMENTS 10 N Read a report/text pool CI_READ_REP
CL_CI_TEST_CRITICAL_STATEMENTS 11 W Write/delete a report/text pool CI_TABL_EXCEPTN
CL_CI_TEST_CRITICAL_STATEMENTS 12 N Read a dynpro CI_IMPORT_DYNP
CL_CI_TEST_CRITICAL_STATEMENTS 13 W Write/delete a dynpro CI_TABL_EXCEPTN
CL_CI_TEST_CRITICAL_STATEMENTS 14 N Read NAMETAB CI_IMPORT_NAM
CL_CI_TEST_CRITICAL_STATEMENTS 15 W Write NAMETAB CI_TABL_EXCEPTN
CL_CI_TEST_DB_OPS_IN_LOOPS DBREAD E NonLocal Nested Reading DB OP CI_SEL_NESTED CI_SROFC_NESTED
(&1) found
CL_CI_TEST_DB_OPS_IN_LOOPS DBREAD_LOC E Local Nested Reading DB OP (&1) CI_SEL_NESTED CI_SROFC_NESTED
found
CL_CI_TEST_DB_OPS_IN_LOOPS DBREAD_S E Simple Nested Reading DB OP (&1) CI_SEL_NESTED CI_SROFC_NESTED
found
CL_CI_TEST_DB_OPS_IN_LOOPS DBWRITE E NonLocal Nested Writing DB OP (&1) CI_IMUD_NESTED
found
CL_CI_TEST_DB_OPS_IN_LOOPS DBWRITE_S E Simple Nested Writing DB OP (&1) CI_IMUD_NESTED
found
CL_CI_TEST_DB_OPS_IN_LOOPS DBWRT_LOC E Local Nested Writing DB OP (&1) CI_IMUD_NESTED
found
CL_CI_TEST_DB_OPS_IN_LOOPS EXEC E NonLocal Nested EXEC SQL found CI_EXEC_SQL_NESTED
CL_CI_TEST_DB_OPS_IN_LOOPS EXEC_LOC E Local Nested EXEC SQL found CI_EXEC_SQL_NESTED
CL_CI_TEST_DDIC_TABLES 1 N No Table Class or Delivery Class CI_TABL_EXCEPTN
Chosen

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 2/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
Test Class Code Kind Text Pseudo Comment Alternative Pseudo
Comment
CL_CI_TEST_DDIC_TABLES 2 N No Data Class or Size Category CI_TABL_EXCEPTN
Chosen
CL_CI_TEST_DDIC_TABLES 3 W Buffering Permitted, but Switched Off CI_TABL_EXCEPTN
selected - Size Category < 2
CL_CI_TEST_DDIC_TABLES 4 N Buffering Permitted, but Switched Off CI_TABL_EXCEPTN
selected - Size Category >= 2
CL_CI_TEST_DDIC_TABLES 10 N Buffering Type is initial but Delivery CI_TABL_EXCEPTN
Class Is "&1"
CL_CI_TEST_DDIC_TABLES 11 N Buffering is activated but Delivery CI_TABL_EXCEPTN
Class Is "&1"
CL_CI_TEST_DDIC_TABLES 12 N Buffering is activated but Size CI_TABL_EXCEPTN
Category Is "&1"
CL_CI_TEST_DDIC_TABLES 13 N Buffering is initial but Data Class Is CI_TABL_EXCEPTN
"APPL2"
CL_CI_TEST_DDIC_TABLES 14 N Buffering is activated but Data Class CI_TABL_EXCEPTN
Is "&1"
CL_CI_TEST_DDIC_TABLES 15 N Buffering is activated but no Buffering CI_TABL_EXCEPTN
Type is chosen
CL_CI_TEST_DDIC_TABLES 16 N Buffering is permitted but table is CI_TABL_EXCEPTN
contained in DB view &1
CL_CI_TEST_DDIC_TABLES 17 N Buffering is permitted but table can be CI_TABL_EXCEPTN
changed using database view &1
CL_CI_TEST_DDIC_TABLES 20 O Table has more than 100 fields CI_TABL_EXCEPTN
CL_CI_TEST_DDIC_TABLES 21 N Table has more than 700 fields CI_TABL_EXCEPTN
CL_CI_TEST_DDIC_TABLES 22 E Change Log active despite Data CI_TABL_EXCEPTN
Class "APPL0" or "APPL1"
CL_CI_TEST_DDIC_TABLES 23 E Change Log active for large table CI_TABL_EXCEPTN
(Size Category &1)
CL_CI_TEST_DDIC_TABLES 30 N Table has unique Secondary Index CI_TABL_EXCEPTN
CL_CI_TEST_DDIC_TABLES 31 N Table has more than 4 Secondary CI_TABL_EXCEPTN
Indexes though Data Class is
"APPL0"
CL_CI_TEST_DDIC_TABLES 32 N Secondary Index "&1": more than 4 CI_TABL_EXCEPTN
fields
CL_CI_TEST_DDIC_TABLES 33 N Table has non-unique secondary CI_TABL_EXCEPTN
index but is buffered
CL_CI_TEST_DDIC_TABLES 34 N Table has more than 2 Secondary CI_TABL_EXCEPTN
Indexes though Data Class is
"APPL1"
CL_CI_TEST_DDIC_TABLES 35 N At least 2 fields ("&1" and "&2") are CI_TABL_EXCEPTN
included in 2 Indexes
CL_CI_TEST_DDIC_TABLES 36 N Index "&2" contains Index "&1" (left- CI_TABL_EXCEPTN
aligned)
CL_CI_TEST_DDIC_TABLES 37 W Table &1: field &3 in secondary index CI_TABL_EXCEPTN
&2 is of the type FLOAT
CL_CI_TEST_DDIC_TABLES 38 N Cross-Client table &1: Secondary CI_TABL_EXCEPTN
Index &2 without client field
CL_CI_TEST_DDIC_TABLES 39 N Cross-Client table &1: Secondary CI_TABL_EXCEPTN
index &2 does not have client as first
field
CL_CI_TEST_DDIC_TABLES 41 W INDX-type table &1 is buffered CI_TABL_EXCEPTN
CL_CI_TEST_DDIC_TABLES 42 W View &1: first field not client, though CI_TABL_EXCEPTN
basis table &2 is client-specific
CL_CI_TEST_DDIC_TABLES 43 W View &1: Client fields of basis tables CI_TABL_EXCEPTN
&2 not linked using join condition
CL_CI_TEST_DDIC_TABLES 50 N Language-dependent table &1: CI_TABL_EXCEPTN
Language is not first field (or second
after the client)
CL_CI_TEST_DDIC_TABLES 51 N Language-specific table &1 is not CI_TABL_EXCEPTN
buffered generically with regard to
language
CL_CI_TEST_DDIC_TABLES 60 W Table &1 contains &2 STRING or CI_TABL_EXCEPTN
RAWSTRING fields
CL_CI_TEST_DDIC_TABLES 70 W Though table &1 lies in column store, CI_TABL_EXCEPTN
secondary index &2 has more than
one field
CL_CI_TEST_DDIC_TABLES 71 W Though table &1 lies in row store, CI_TABL_EXCEPTN
secondary index &2 is explicitly
excluded from HDB
CL_CI_TEST_DDIC_TABLES 72 W Table &1 lies in row store, but CI_TABL_EXCEPTN
software component is &2
CL_CI_TEST_DDIC_TABLES 131 W Table has more than 7 secondary CI_TABL_EXCEPTN
indexes, though data class is APPL0

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 3/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
Test Class Code Kind Text Pseudo Comment Alternative Pseudo
Comment
CL_CI_TEST_DDIC_TABLES 134 W Table has more than 5 secondary CI_TABL_EXCEPTN
indexes though data class is APPL1
CL_CI_TEST_DDIC_TABLES 137 E Table &1: Field &3 in primary index is CI_TABL_EXCEPTN
of type FLOAT
CL_CI_TEST_EXTENDED_CHECK 100 E There is no form routine for this PERF_NO_FORM
PERFORM call
CL_CI_TEST_EXTENDED_CHECK 101 E Wrong number of parameters for this PERF_NUM_ARGS
PERFORM call
CL_CI_TEST_EXTENDED_CHECK 102 E Undefined TABLES parameter for this PERF_TABLE_CATEGORY
PERFORM call
CL_CI_TEST_EXTENDED_CHECK 103 E Formal parameter incompatible with COMPATIBLE
actual parameter
CL_CI_TEST_EXTENDED_CHECK 105 E STRUCTURE parameter too short for COMPATIBLE
formal parameter
CL_CI_TEST_EXTENDED_CHECK 106 E Literal incompatible with formal LIT_COMPATIBLE
parameter
CL_CI_TEST_EXTENDED_CHECK 200 W CASE statement with identical WHEN WHEN_DOUBLE_OK
conditions
CL_CI_TEST_EXTENDED_CHECK 201 N LOOP with WHERE/TO condition LOOP_AT_OK
contains an AT (Warning)
CL_CI_TEST_EXTENDED_CHECK 202 N The TO limit in LOOP is overwritten in LOOP_TO_OK
body
CL_CI_TEST_EXTENDED_CHECK 203 N Name begins with a reserved prefix PREFIX_OK
'%_'
CL_CI_TEST_EXTENDED_CHECK 204 E FREE MEMORY statement with no ID FREE_MEMORY_OK
specified
CL_CI_TEST_EXTENDED_CHECK 205 N INCLUDE program does not have INCL_TYPE_OK
type I
CL_CI_TEST_EXTENDED_CHECK 206 W WHEN statement written in chained WHEN_CHAIN_OK
statement
CL_CI_TEST_EXTENDED_CHECK 208 W Exception handling is empty NO_HANDLER
CL_CI_TEST_EXTENDED_CHECK 209 E STOP statement in MODUL definition STOP_IN_MODULE
CL_CI_TEST_EXTENDED_CHECK 212 N Exception handling is empty NO_HANDLER
CL_CI_TEST_EXTENDED_CHECK 215 E LOAD-OF-PROGRAM event with LOAD_STMNT_OK
invalid statement
CL_CI_TEST_EXTENDED_CHECK 219 E STOP Statement in Function Module STOP_IN_FM
CL_CI_TEST_EXTENDED_CHECK 237 W Important SY field is overwritten WRITE_OK
CL_CI_TEST_EXTENDED_CHECK 300 W Authorization field missing AUTH_FLD_MISSING
CL_CI_TEST_EXTENDED_CHECK 301 W Authorization object not entered in AUTH_OBJ_OK
table TOBJ
CL_CI_TEST_EXTENDED_CHECK 302 W Wrong number of authorization fields AUTH_FLD_NO
CL_CI_TEST_EXTENDED_CHECK 303 W Authorizations: Wrong fixed domain AUTH_DOM_VAL_OK
value entered for ID
CL_CI_TEST_EXTENDED_CHECK 304 W Authorizations: Field length too long AUTH_FLD_LEN
CL_CI_TEST_EXTENDED_CHECK 401 N GET/SET parameters: Field length GS_TWENTY
too long
CL_CI_TEST_EXTENDED_CHECK 402 N GET/SET parameter not entered in EXISTS
TPARA
CL_CI_TEST_EXTENDED_CHECK 600 W T100 MESSAGE not defined MG_MISSING
CL_CI_TEST_EXTENDED_CHECK 601 N MESSAGE call contains the wrong MG_MISSING
number of WITH parameters
CL_CI_TEST_EXTENDED_CHECK 607 N Missing attribute in exception class for MG_MIS_ATT
T100 message
CL_CI_TEST_EXTENDED_CHECK 700 W GUI status not defined STAT_UNDEF
CL_CI_TEST_EXTENDED_CHECK 701 W TITLE not defined TITL_UNDEF
CL_CI_TEST_EXTENDED_CHECK 800 W BREAK-POINT statement NO_BREAK
CL_CI_TEST_EXTENDED_CHECK 806 N Statement after STMNT_EXIT
EXIT/STOP/RETURN/RAISE/SUBMIT
cannot be reached
CL_CI_TEST_EXTENDED_CHECK 824 N Redundant assignment NEEDED
CL_CI_TEST_EXTENDED_CHECK 901 N Undefined search help SEARCH_HELP_OK
CL_CI_TEST_EXTENDED_CHECK 903 N Initial value check for field type VALUE_OK
CL_CI_TEST_EXTENDED_CHECK 904 N Reference is not written NEEDED
CL_CI_TEST_EXTENDED_CHECK 916 W Calculations with time stamp fields TIME_ARITH
CL_CI_TEST_EXTENDED_CHECK 1000 W Called function module does not exist EXISTS
CL_CI_TEST_EXTENDED_CHECK 1001 E Function module parameter not called FM_PAR_MIS
CL_CI_TEST_EXTENDED_CHECK 1002 W Function module parameter missing ARG_OK
CL_CI_TEST_EXTENDED_CHECK 1003 E Class-based exception is not handled EXCEPT_TRY
CL_CI_TEST_EXTENDED_CHECK 1004 N The called function module is FM_OLDED
obsolete
CL_CI_TEST_EXTENDED_CHECK 1006 N Undefined return code accessed after FM_SUBRC_OK
CALL FUNCTION

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 4/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
Test Class Code Kind Text Pseudo Comment Alternative Pseudo
Comment
CL_CI_TEST_EXTENDED_CHECK 1007 N Return codes of function module FM_SUBRC_OK
exceptions are ignored
CL_CI_TEST_EXTENDED_CHECK 1010 W Update module with invalid statement FM_UPDATE_OK
CL_CI_TEST_EXTENDED_CHECK 1025 W Function module exception missing ARG_OK
CL_CI_TEST_EXTENDED_CHECK 1400 N CURR field produced without UOM_IN_MES
CURRENCY Addition
CL_CI_TEST_EXTENDED_CHECK 1401 N UNIT field produced without UNIT UOM_IN_MES
addition
CL_CI_TEST_EXTENDED_CHECK 1700 N Text element missing in a character NO_TEXT
string
CL_CI_TEST_EXTENDED_CHECK 1701 N Text element not defined in TEXT- TEXT_POOL
POOL
CL_CI_TEST_EXTENDED_CHECK 1713 N Text element is missing in a character NO_TEXT
string in a string template
CL_CI_TEST_EXTENDED_CHECK 1800 E Transaction code not entered in TSTC TSTC_MISS
CL_CI_TEST_EXTENDED_CHECK 1801 W SUBMIT parameter does not exist SUB_PAR
CL_CI_TEST_EXTENDED_CHECK 1802 E SELECT-OPTION missing for SUB_SELOP
SUBMIT parameters
CL_CI_TEST_EXTENDED_CHECK 1803 E Dialog module is not entered in TDCT TDCT_MISS
CL_CI_TEST_EXTENDED_CHECK 1804 E Report called using SUBMIT is not SUB_NO_REP
type 1
CL_CI_TEST_EXTENDED_CHECK 1805 W User exit enhancement missing USER_SMOD
CL_CI_TEST_EXTENDED_CHECK 1806 E Function module with interface USER_FM
missing in function group (X..)
CL_CI_TEST_EXTENDED_CHECK 1808 N Report called using SUBMIT has no SUB_FR_SEL
dynamic selections
CL_CI_TEST_EXTENDED_CHECK 1809 E Program does not exist NEEDED
CL_CI_TEST_EXTENDED_CHECK 2004 E Not all supported date formats are DATE_FORMAT
handled
CL_CI_TEST_EXTENDED_CHECK 2005 W It is possible that not all supported DATE_FORMAT
date formats are handled
CL_CI_TEST_EXTENDED_CHECK 2601 W SELECT loop contains statement that CURSOR_LOST
destroys cursor
CL_CI_TEST_EXTENDED_CHECK 2605 E Use of ASSIGN or UNASSIGN on LOOP_ASSIGN
field symbol forbidden
CL_CI_TEST_EXTENDED_CHECK 3200 E Index access on internal table outside LOOP_INDEX
a LOOP
CL_CI_TEST_EXTENDED_CHECK 3202 E Non-numeric index access on internal INDEX_NUM
table
CL_CI_TEST_FIELD_EXT ARC_TYPE W Structure-Component &2 (&1) CI_FLDEXT_OK
arithmetic conflict &3 -> &4
CL_CI_TEST_FIELD_EXT ARC_TYPEO W Old Structure-Component &2 (&1) CI_FLDEXT_OK
arithmetic conflict &3 -> &4
CL_CI_TEST_FIELD_EXT AR_TYPE W Arithmetic type conflict (&1) &2 <-> &3 CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT AR_TYPEO W Old Arithmetic type conflict (&1) &2 <- CI_FLDEXT_OK
> &3
CL_CI_TEST_FIELD_EXT CAST N Casting from/to (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT COMP_CMP E Compare Structure-Component &2 CI_FLDEXT_OK
(&1) type conflict &3 <-> &4
CL_CI_TEST_FIELD_EXT COMP_CONS N Constant-Compare conflict (&1) &2 <- CI_FLDEXT_OK
> &3
CL_CI_TEST_FIELD_EXT COMP_CONSO N Old Constant-Compare conflict (&1) CI_FLDEXT_OK
&2 <-> &3
CL_CI_TEST_FIELD_EXT COMP_GEN N Compare (&1) <-> Generic CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT COMP_LENG E Compare length conflict (&1) &2 <-> CI_FLDEXT_OK
&3
CL_CI_TEST_FIELD_EXT COMP_LENGO W Old Compare length conflict (&1) &2 CI_FLDEXT_OK
<-> &3
CL_CI_TEST_FIELD_EXT COMP_TYPE E Compare type conflict (&1) &2 <-> &3 CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT COMP_TYPEO W Old Compare type conflict (&1) &2 <-> CI_FLDEXT_OK
&3
CL_CI_TEST_FIELD_EXT CONCAT E Concatenate (&1) length conflict &2 -> CI_FLDEXT_OK
&3
CL_CI_TEST_FIELD_EXT CONCATO W Old Concatenate (&1) length conflict CI_FLDEXT_OK
&2 -> &3
CL_CI_TEST_FIELD_EXT DESCRIBE N DESCRIBE FIELD (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT DYN_ASS N Dynamic Assign -> (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT DYN_DB N Dynamic DB-Access (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT EXPORT N EXPORT (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT FUNPAR W Type used by RFC-Function CI_FLDEXT_OK
parameter (&1) &2 -> &3
CL_CI_TEST_FIELD_EXT FUNPAR_CMP W Type component &2 used by RFC- CI_FLDEXT_OK
Function parameter (&1) &3 - >&4
CL_CI_TEST_FIELD_EXT GEN N &1 <-> &2 CI_FLDEXT_OK

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 5/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
Test Class Code Kind Text Pseudo Comment Alternative Pseudo
Comment
CL_CI_TEST_FIELD_EXT GEND N Move (&1) -> Generic CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT GENS N Generic -> (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT GET_PARAM N GET PARAMETER (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT IMPORT N IMPORT (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT LEVEL N Analyze aborted CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT MOVE_CUT E Move length conflict (&1) &2 -> &3 CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT MOVE_CUTO W Old Move length conflict (&1) &2 -> CI_FLDEXT_OK
&3
CL_CI_TEST_FIELD_EXT MOVE_EXT N Move length extend (&1) &2 -> &3 CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT MOVE_TYPE W Move type conflict (&1) &2 -> &3 CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT MOVE_TYPEO W Old Move type conflict (&1) &2 -> &3 CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT MSG_INTO E MESSAGE-INTO length conflict (&1) CI_FLDEXT_OK
&2 -> &3
CL_CI_TEST_FIELD_EXT MSG_INTOO W Old MESSAGE-INTO length conflict CI_FLDEXT_OK
(&1) &2 -> &3
CL_CI_TEST_FIELD_EXT MSG_WITH E MESSAGE-WITH length conflict (&1) CI_FLDEXT_OK
&2 -> &3
CL_CI_TEST_FIELD_EXT MSG_WITHO W Old MESSAGE-WITH length conflict CI_FLDEXT_OK
(&1) &2 -> &3
CL_CI_TEST_FIELD_EXT MVC_CUT E Structure-Component &2 (&1) length CI_FLDEXT_OK
conflict &3 -> &4
CL_CI_TEST_FIELD_EXT MVC_CUTO W Old Structure-Component &2 (&1) CI_FLDEXT_OK
length conflict &3 -> &4
CL_CI_TEST_FIELD_EXT MVC_EXT N Structure-Component &2 (&1) length CI_FLDEXT_OK
extend &3 -> &4
CL_CI_TEST_FIELD_EXT MVC_TYPE W Structure-Component &2 (&1) type CI_FLDEXT_OK
conflict &3 -> &4
CL_CI_TEST_FIELD_EXT MVC_TYPEO W Old Structure-Component &2 (&1) CI_FLDEXT_OK
type conflict &3 -> &4
CL_CI_TEST_FIELD_EXT NOEVAL N Evaluation aborted. (&1) used in CI_FLDEXT_OK
current statement.
CL_CI_TEST_FIELD_EXT OFFLEN W Offset/Length-Access (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT REPLACE W REPLACE (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT SELSCR E SELECTION-SCREEN length conflict CI_FLDEXT_OK
(&1)
CL_CI_TEST_FIELD_EXT SELSRCO W Old SELECTION-SCREEN length CI_FLDEXT_OK
conflict (&1)
CL_CI_TEST_FIELD_EXT SET_PARAM N SET PARAMETER (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT SPLIT W SPLIT length conflict (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT SPLITO W Old SPLIT length conflict (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT TRANSFER W TRANSFER (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT TYPE E Type-Conflict (&1) &2 <-> &3 CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT TYPEO W Old Type-Conflict (&1) &2 <-> &3 CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT TYPE_CMP E Structure-Component &2 (&1) type CI_FLDEXT_OK
conflict &3 <-> &4
CL_CI_TEST_FIELD_EXT WRITE W WRITE (&1) CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT WRITE_TO W WRITE TO type conflict (&1) &2 -> &3 CI_FLDEXT_OK
CL_CI_TEST_FIELD_EXT WRITE_TOO W Old WRITE TO type conflict (&1) &2 - CI_FLDEXT_OK
> &3
CL_CI_TEST_FIND_BADI_CALL 1 W When an instance of a BAdI is CI_BADI_GETINST
created, the import parameter
EXIT_NAME is not filled
CL_CI_TEST_FIND_BADI_CALL 2 N When an instance of a BAdI is CI_BADI_GETINST
created, the import parameter
NULL_INSTANCE_ACCEPTED is not
filled
CL_CI_TEST_FIND_BADI_CALL 3 W When an instance of a BAdI is CI_BADI_GETINST
created, the import parameters
EXIT_NAME and
NULL_INSTANCE_ACCEPTED are
not filled
CL_CI_TEST_FIND_BADI_CALL 10 W Use of Old BAdI Instantiation; Use CI_BADI_OLD
GET BADI
CL_CI_TEST_FIND_DYN_SQL ADBC_USE_i W ADBC classes(e.g. &1) used in &2 CI_ADBC_US
places
CL_CI_TEST_FIND_DYN_SQL ADBC_USE_m W ADBC classes(e.g. &1) used in &2 CI_ADBC_US
places
CL_CI_TEST_FIND_DYN_SQL ADBC_USE_s N ADBC class &1 used CI_ADBC_US
CL_CI_TEST_FOR_ALL_ENTR_HANA TRANSFORM E SELECT * FOR ALL statement can be CI_NO_TRANSFORM
joined with SELECT statement at &1
line &2
CL_CI_TEST_FOR_ALL_ENTRIES FAllRisky N Possible use of &1 without prior CI_FAE_LINES_ENSURED CI_FAE_NO_LINES_OK
content validation within procedure

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 6/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
Test Class Code Kind Text Pseudo Comment Alternative Pseudo
Comment
CL_CI_TEST_FOR_ALL_ENTRIES FAllUnsafe W Possible use of &1 without prior CI_FAE_LINES_ENSURED CI_FAE_NO_LINES_OK
content validation
CL_CI_TEST_IMUD_NESTED 1 N &2 in &1 Loop CI_IMUD_NESTED
CL_CI_TEST_IMUD_NESTED 2 W &2 in LOOP/ENDLOOP Loop CI_IMUD_NESTED
CL_CI_TEST_IMUD_NESTED 3 N &2 in SELECT/ENDSELECT Loop CI_IMUD_NESTED
CL_CI_TEST_IMUD_TAW_SEC01 1 N Dynamic Changing Table Access (&2) CI_DYNTAB
CL_CI_TEST_IMUD_TAW_SEC01 2 N Dynamic WHERE Condition for Table CI_DYNWHERE
&1
CL_CI_TEST_IMUD_TAW_SEC01 3 N Changing Access (&2) to Table &1 CI_TABLES
CL_CI_TEST_IMUD_TAW_SEC01 4 W Client-Specific Changing (&2) Access CI_CLIENT
to Table &1
CL_CI_TEST_IMUD_TAW_SEC01 11 N Dynamic Read Access to Table in CI_DYNTAB
Subquery
CL_CI_TEST_IMUD_TAW_SEC01 12 N Dynamic WHERE Condition for Table CI_DYNWHERE
&1 in Subquery
CL_CI_TEST_IMUD_TAW_SEC01 13 N Read Access to Table &1 in Subquery CI_TABLES
CL_CI_TEST_IMUD_TAW_SEC01 14 W Client-Specific Read Access to Table CI_CLIENT
&1 in Subquery
CL_CI_TEST_INT8 ATYP_CASE W Missing handling of ABAP-Type in CI_INT8_OK
CASE-Statement
CL_CI_TEST_INT8 ATYP_CASEA E Missing handling of ABAP-Type in CI_INT8_OK
CASE-Statement
CL_CI_TEST_INT8 ATYP_COND W Missing handling of ABAP-Type in CI_INT8_OK
condition
CL_CI_TEST_INT8 ATYP_CONDA E Missing handling of ABAP-Type in CI_INT8_OK
condition
CL_CI_TEST_INT8 ATYP_IF W Missing handling of ABAP-Type in IF- CI_INT8_OK
Statement
CL_CI_TEST_INT8 ATYP_IFA E Missing handling of ABAP-Type in IF- CI_INT8_OK
Statement
CL_CI_TEST_INT8 DTYP_CASE W Missing handling of DDIC-Type in CI_INT8_OK
CASE-Statement
CL_CI_TEST_INT8 DTYP_CASEA E Missing handling of DDIC-Type in CI_INT8_OK
CASE-Statement
CL_CI_TEST_INT8 DTYP_COND W Missing handling of DDIC-Type in CI_INT8_OK
condition
CL_CI_TEST_INT8 DTYP_CONDA E Missing handling of DDIC-Type in CI_INT8_OK
condition
CL_CI_TEST_INT8 DTYP_IF W Missing handling of DDIC-Type in IF- CI_INT8_OK
Statement
CL_CI_TEST_INT8 DTYP_IFA E Missing handling of DDIC-Type in IF- CI_INT8_OK
Statement
CL_CI_TEST_INT8 STYP_CASE W Missing handling of ABAP-Type in CI_INT8_OK
CASE-Statement
CL_CI_TEST_INT8 STYP_COND W Missing handling of ABAP-Type in CI_INT8_OK
condition
CL_CI_TEST_INT8 STYP_IF W Missing handling of ABAP-Type in IF- CI_INT8_OK
Statement
CL_CI_TEST_INTFMETHS_IN_LOOP 0L11 N Call interface &1, method &2, in &3 CI_INTF_LOOP
loop
CL_CI_TEST_INTFMETHS_IN_LOOP 0L12 W Call interface &1, method &2, in &3 CI_INTF_LOOP
loop
CL_CI_TEST_INTFMETHS_IN_LOOP 0L13 W Call interface &1, method &2, in &3 CI_INTF_LOOP
loop
CL_CI_TEST_ITAB_PERFORMANCE MESSAGEGJG W Possible sequential access when CI_STDSEQ
deleting from a table
CL_CI_TEST_ITAB_PERFORMANCE MESSAGEGM0 N Sequential read on a standard table CI_STDSEQ
CL_CI_TEST_ITAB_PERFORMANCE MESSAGEGM1 W Possible sequential read on a sorted CI_SORTSEQ
table
CL_CI_TEST_ITAB_PERFORMANCE MESSAGEGM2 W Possible sequential read on a hashed CI_HASHSEQ
table
CL_CI_TEST_ITAB_PERFORMANCE MESSAGEGM3 W Possible sequential read on a CI_ANYSEQ
generically typed table
CL_CI_TEST_LOOP_AT 1 N LOOP AT &1 INTO <fs>. CI_LOOP_INTO_FS
CL_CI_TEST_LOOP_AT 2 N LOOP AT &1 INTO WA. CI_LOOP_INTO_WA
CL_CI_TEST_LOOP_AT 3 N LOOP AT &1. CI_LOOP_INTO_HL
CL_CI_TEST_LOOP_AT 11 N LOOP AT &1 INTO <fs> with CI_LOOP_INTO_FS
'MODIFY' in the Loop
CL_CI_TEST_LOOP_AT 12 N LOOP AT &1 INTO WA with 'MODIFY' CI_LOOP_INTO_WA
in the Loop
CL_CI_TEST_LOOP_AT 13 N LOOP AT &1 with 'MODIFY' in the CI_LOOP_INTO_HL
Loop
CL_CI_TEST_MOVE_PERFORMANCE MESSAGEG}L N Assign a Nested Table CI_CONV_OK
CL_CI_TEST_MOVE_PERFORMANCE MESSAGEG}M N Assign a Long Field CI_CONV_OK

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 7/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
Test Class Code Kind Text Pseudo Comment Alternative Pseudo
Comment
CL_CI_TEST_NO_ORDER_BY AMB_SINGLE N SELECT SINGLE is possibly not CI_NOORDER WARNOK
unique
CL_CI_TEST_NO_ORDER_BY BIN_SEARCH E READ .. BINARY SEARCH for result CI_SORTED
of statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY CONCAT W CONCATENATE ... LINES OF itab ... CI_NOORDER
for result of statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY DELETE_ADJ E DELETE ADJACENT DUPLICATES CI_SORTED
for result of statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY DEL_FR/TO W DELETE ... FROM/TO for result of CI_NOORDER
statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY DEL_IDX W DELETE ... INDEX for result of CI_NOORDER
SELECT statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY EMPTY_SEL N Empty SELECT/ENDSELECT at &1 CI_NOORDER
line &2
CL_CI_TEST_NO_ORDER_BY FIND W FIND FIRST OCCURRENCE ... IN CI_NOORDER
TABLE itab for result of statement at
&1 line &2
CL_CI_TEST_NO_ORDER_BY LOOP_AT E LOOP AT itab. AT ... ENDAT. for result CI_SORTED
of statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY LOOP_AT_FL W LOOP AT itab. AT FIRST/LAST... CI_SORTED
ENDAT. for result of statement at &1
line &2
CL_CI_TEST_NO_ORDER_BY LOOP_EXIT N LOOP AT itab. EXIT/RETURN/LEAVE CI_NOORDER
... for result of statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY LOOP_FR/TO W LOOP AT itab FROM/TO for result of CI_NOORDER
statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY MODIFY_IDX W MODIFY ... INDEX for result of CI_NOORDER
SELECT statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY OPEN_CLUST N OPEN CURSOR ... FOR cluster table CI_NOORDER
&1 without ORDER BY found
CL_CI_TEST_NO_ORDER_BY OPEN_POOL N OPEN CURSOR ... FOR pool table CI_NOORDER
&1 without ORDER BY found
CL_CI_TEST_NO_ORDER_BY PROVIDE E PROVIDE ... itab for result of CI_SORTED
statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY READ_IDX N READ TABLE ... INDEX for result of CI_NOORDER
SELECT statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY READ_IDX_1 N READ TABLE ... INDEX 1 for result of CI_NOORDER
statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY READ_IDX_C W READ TABLE ... INDEX C_CONST CI_NOORDER
for result of statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY REPLACE W REPLACE FIRST OCCURRENCE ... CI_NOORDER
IN TABLE itab for result of statement
at &1 line &2
CL_CI_TEST_NO_ORDER_BY SEARCH W SEARCH ... IN itab for result of CI_NOORDER
statement at &1 line &2
CL_CI_TEST_NO_ORDER_BY SELS_CLUST N SELECT ... FOR cluster table &1 into CI_NOORDER
sorted table without ORDER BY found
CL_CI_TEST_NO_ORDER_BY SELS_POOL N SELECT ... FOR pool table &1 into CI_NOORDER
sorted table without ORDER BY found
CL_CI_TEST_NO_ORDER_BY SEL_CLUST N SELECT ... FOR cluster table &1 CI_NOORDER
without ORDER BY found
CL_CI_TEST_NO_ORDER_BY SEL_EXIT N EXIT/RETURN/LEAVE in CI_NOORDER
SELECT/ENDSELECT at &1 line &2
CL_CI_TEST_NO_ORDER_BY SEL_POOL N SELECT ... FOR pool table &1 without CI_NOORDER
ORDER BY found
CL_CI_TEST_S4H_FIELD_EXT ARC_TYPE W Structure-Component &2 (&1) CI_FLDEXT_OK
arithmetic conflict &3 -> &4
CL_CI_TEST_S4H_FIELD_EXT ARC_TYPEO W Old Structure-Component &2 (&1) CI_FLDEXT_OK
arithmetic conflict &3 -> &4
CL_CI_TEST_S4H_FIELD_EXT AR_TYPE W Arithmetic type conflict (&1) &2 <-> &3 CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT AR_TYPEO W Old Arithmetic type conflict (&1) &2 <- CI_FLDEXT_OK
> &3
CL_CI_TEST_S4H_FIELD_EXT CAST N Casting from/to (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT COMP_CMP E Compare Structure-Component &2 CI_FLDEXT_OK
(&1) type conflict &3 <-> &4
CL_CI_TEST_S4H_FIELD_EXT COMP_CONS N Constant-Compare conflict (&1) &2 <- CI_FLDEXT_OK
> &3
CL_CI_TEST_S4H_FIELD_EXT COMP_CONSO N Old Constant-Compare conflict (&1) CI_FLDEXT_OK
&2 <-> &3
CL_CI_TEST_S4H_FIELD_EXT COMP_GEN N Compare (&1) <-> Generic CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT COMP_LENG E Compare length conflict (&1) &2 <-> CI_FLDEXT_OK
&3
CL_CI_TEST_S4H_FIELD_EXT COMP_LENGO W Old Compare length conflict (&1) &2 CI_FLDEXT_OK
<-> &3

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 8/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
Test Class Code Kind Text Pseudo Comment Alternative Pseudo
Comment
CL_CI_TEST_S4H_FIELD_EXT COMP_TYPE E Compare type conflict (&1) &2 <-> &3 CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT COMP_TYPEO W Old Compare type conflict (&1) &2 <-> CI_FLDEXT_OK
&3
CL_CI_TEST_S4H_FIELD_EXT CONCAT E Concatenate (&1) length conflict &2 -> CI_FLDEXT_OK
&3
CL_CI_TEST_S4H_FIELD_EXT CONCATO W Old Concatenate (&1) length conflict CI_FLDEXT_OK
&2 -> &3
CL_CI_TEST_S4H_FIELD_EXT DESCRIBE N DESCRIBE FIELD (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT DYN_ASS N Dynamic Assign -> (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT DYN_DB N Dynamic DB-Access (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT EXPORT N EXPORT (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT FUNPAR W Type used by RFC-Function CI_FLDEXT_OK
parameter (&1) &2 -> &3
CL_CI_TEST_S4H_FIELD_EXT FUNPAR_CMP W Type component &2 used by RFC- CI_FLDEXT_OK
Function parameter (&1) &3 - >&4
CL_CI_TEST_S4H_FIELD_EXT GEN N &1 <-> &2 CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT GEND N Move (&1) -> Generic CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT GENS N Generic -> (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT GET_PARAM N GET PARAMETER (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT IMPORT N IMPORT (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT LEVEL N Analyze aborted CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT MOVE_CUT E Move length conflict (&1) &2 -> &3 CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT MOVE_CUTO W Old Move length conflict (&1) &2 -> CI_FLDEXT_OK
&3
CL_CI_TEST_S4H_FIELD_EXT MOVE_EXT N Move length extend (&1) &2 -> &3 CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT MOVE_TYPE W Move type conflict (&1) &2 -> &3 CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT MOVE_TYPEO W Old Move type conflict (&1) &2 -> &3 CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT MSG_INTO E MESSAGE-INTO length conflict (&1) CI_FLDEXT_OK
&2 -> &3
CL_CI_TEST_S4H_FIELD_EXT MSG_INTOO W Old MESSAGE-INTO length conflict CI_FLDEXT_OK
(&1) &2 -> &3
CL_CI_TEST_S4H_FIELD_EXT MSG_WITH E MESSAGE-WITH length conflict (&1) CI_FLDEXT_OK
&2 -> &3
CL_CI_TEST_S4H_FIELD_EXT MSG_WITHO W Old MESSAGE-WITH length conflict CI_FLDEXT_OK
(&1) &2 -> &3
CL_CI_TEST_S4H_FIELD_EXT MVC_CUT E Structure-Component &2 (&1) length CI_FLDEXT_OK
conflict &3 -> &4
CL_CI_TEST_S4H_FIELD_EXT MVC_CUTO W Old Structure-Component &2 (&1) CI_FLDEXT_OK
length conflict &3 -> &4
CL_CI_TEST_S4H_FIELD_EXT MVC_EXT N Structure-Component &2 (&1) length CI_FLDEXT_OK
extend &3 -> &4
CL_CI_TEST_S4H_FIELD_EXT MVC_TYPE W Structure-Component &2 (&1) type CI_FLDEXT_OK
conflict &3 -> &4
CL_CI_TEST_S4H_FIELD_EXT MVC_TYPEO W Old Structure-Component &2 (&1) CI_FLDEXT_OK
type conflict &3 -> &4
CL_CI_TEST_S4H_FIELD_EXT NOEVAL N Evaluation aborted. (&1) used in CI_FLDEXT_OK
current statement.
CL_CI_TEST_S4H_FIELD_EXT OFFLEN W Offset/Length-Access (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT REPLACE W REPLACE (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT SELSCR E SELECTION-SCREEN length conflict CI_FLDEXT_OK
(&1)
CL_CI_TEST_S4H_FIELD_EXT SELSRCO W Old SELECTION-SCREEN length CI_FLDEXT_OK
conflict (&1)
CL_CI_TEST_S4H_FIELD_EXT SET_PARAM N SET PARAMETER (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT SPLIT W SPLIT length conflict (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT SPLITO W Old SPLIT length conflict (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT TRANSFER W TRANSFER (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT TYPE E Type-Conflict (&1) &2 <-> &3 CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT TYPEO W Old Type-Conflict (&1) &2 <-> &3 CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT TYPE_CMP E Structure-Component &2 (&1) type CI_FLDEXT_OK
conflict &3 <-> &4
CL_CI_TEST_S4H_FIELD_EXT WRITE W WRITE (&1) CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT WRITE_TO W WRITE TO type conflict (&1) &2 -> &3 CI_FLDEXT_OK
CL_CI_TEST_S4H_FIELD_EXT WRITE_TOO W Old WRITE TO type conflict (&1) &2 - CI_FLDEXT_OK
> &3
CL_CI_TEST_S4H_SEARCH_DB_OPS CLOSE E DB Operation CLOSE CURSOR CI_DB_OPERATION_OK
found (&1, see &2)
CL_CI_TEST_S4H_SEARCH_DB_OPS CLOSE_WO N DB Operation CLOSE CURSOR CI_DB_OPERATION_OK
found.
CL_CI_TEST_S4H_SEARCH_DB_OPS DELETE E DB Operation DELETE found (&1, CI_DB_OPERATION_OK
see &2)
CL_CI_TEST_S4H_SEARCH_DB_OPS EXEC_SQL N EXEC SQL found. CI_DB_OPERATION_OK

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 9/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
Test Class Code Kind Text Pseudo Comment Alternative Pseudo
Comment
CL_CI_TEST_S4H_SEARCH_DB_OPS EXPORT_DB E DB Operation EXPORT DBTAB found CI_DB_OPERATION_OK
(&1, see &2)
CL_CI_TEST_S4H_SEARCH_DB_OPS FETCH E DB Operation FETCH NEXT CI_DB_OPERATION_OK
CURSOR found (&1, see &2)
CL_CI_TEST_S4H_SEARCH_DB_OPS FETCH_WO N DB Operation FETCH NEXT CI_DB_OPERATION_OK
CURSOR found
CL_CI_TEST_S4H_SEARCH_DB_OPS IMPORT_DB E DB Operation IMPORT DBTAB found CI_DB_OPERATION_OK
(&1, see &2)
CL_CI_TEST_S4H_SEARCH_DB_OPS INSERT E DB Operation INSERT found (&1, see CI_DB_OPERATION_OK
&2)
CL_CI_TEST_S4H_SEARCH_DB_OPS JOIN E DB Operation JOIN found (&1, see CI_DB_OPERATION_OK
&2)
CL_CI_TEST_S4H_SEARCH_DB_OPS LOOP_OBS E DB Operation LOOP found (&1, see CI_DB_OPERATION_OK
&2)
CL_CI_TEST_S4H_SEARCH_DB_OPS MODIFY E DB Operation MODIFY found (&1, CI_DB_OPERATION_OK
see &2)
CL_CI_TEST_S4H_SEARCH_DB_OPS OPEN E DB Operation OPEN CURSOR found CI_DB_OPERATION_OK
(&1, see &2)
CL_CI_TEST_S4H_SEARCH_DB_OPS READ_OBS E DB Operation READ found (&1, see CI_DB_OPERATION_OK
&2)
CL_CI_TEST_S4H_SEARCH_DB_OPS SELECT E DB Operation SELECT found (&1, CI_DB_OPERATION_OK
see &2)
CL_CI_TEST_S4H_SEARCH_DB_OPS SELECT_UPD E DB Operation SELECT FOR UPDATE CI_DB_OPERATION_OK
found (&1, see &2)
CL_CI_TEST_S4H_SEARCH_DB_OPS STAT N Details with double click CI_DB_OPERATION_OK
CL_CI_TEST_S4H_SEARCH_DB_OPS UPDATE E DB Operation UPDATE found (&1, CI_DB_OPERATION_OK
see &2)
CL_CI_TEST_S4H_WHERE_USED FuNotAvail E Usage of no longer available CI_USAGE_OK
development object (&3 &2, &1)
CL_CI_TEST_S4H_WHERE_USED FuWPerfImp W Change of existing functionality with CI_USAGE_OK
performance impact (&3 &2, &1)
CL_CI_TEST_S4H_WHERE_USED NoFuEquiv E Functionality not available: no CI_USAGE_OK
functional equivalent (&3 &2, &1)
CL_CI_TEST_S4H_WHERE_USED NonStrFuNE N Non-strategic-function: no functional CI_USAGE_OK
equivalent (&3 &2, &1)
CL_CI_TEST_S4H_WHERE_USED NonStrFuWE N Non-strategic-function: functional CI_USAGE_OK
equivalent available (&3 &2, &1)
CL_CI_TEST_S4H_WHERE_USED NonStratFu N Non-strategic-function (&3 &2, &1) CI_USAGE_OK
CL_CI_TEST_S4H_WHERE_USED OnRoadMap E Functionality not available: equivalent CI_USAGE_OK
function on roadmap (&3 &2, &1)
CL_CI_TEST_S4H_WHERE_USED SemIncompC E Semantically incompatible change of CI_USAGE_OK
existing functionality (&3 &2, &1)
CL_CI_TEST_S4H_WHERE_USED SynIncompC E Syntactically incompatible change of CI_USAGE_OK
existing functionality (&3 &2, &1)
CL_CI_TEST_S4H_WHERE_USED UsageFuMan E Usage of functionality mandatory (&3 CI_USAGE_OK
&2, &1)
CL_CI_TEST_S4H_WHERE_USED UsageFuRec W Usage of functionality recommended CI_USAGE_OK
(&3 &2, &1)
CL_CI_TEST_S4H_WHERE_USED WithFuEqui E Functionality not available: functional CI_USAGE_OK
equivalent available (&3 &2, &1)
CL_CI_TEST_SCAN_NESTED 1 N Nesting: &1 Loop Inside &2 CI_NESTED
CL_CI_TEST_SCAN_NESTED 2 W Nesting: LOOP/ENDLOOP Loop CI_NESTED
Inside LOOP/ENDLOOP
CL_CI_TEST_SCAN_NESTED 3 W Nesting: LOOP/ENDLOOP Loop CI_NESTED
Within SELECT/ENDSELECT
CL_CI_TEST_SEARCH_CDS_PRIV_ACC CLOSE W DB Operation CLOSE CURSOR CI_PRIVACC
found for &1.
CL_CI_TEST_SEARCH_CDS_PRIV_ACC FETCH W DB operation FETCH NEXT CI_PRIVACC
CURSOR found for &1.
CL_CI_TEST_SEARCH_CDS_PRIV_ACC IMPORT_DB W DB Operation IMPORT DBTAB found CI_PRIVACC
for &1.
CL_CI_TEST_SEARCH_CDS_PRIV_ACC JOIN W DB Operation JOIN found for &1. CI_PRIVACC
CL_CI_TEST_SEARCH_CDS_PRIV_ACC OPEN W DB Operation OPEN CURSOR found CI_PRIVACC
for &1.
CL_CI_TEST_SEARCH_CDS_PRIV_ACC SELECT W DB operation SELECT found for &1. CI_PRIVACC
CL_CI_TEST_SEARCH_CDS_PRIV_ACC WITH W DB Operation WITH found for &1. CI_PRIVACC
CL_CI_TEST_SEARCH_DB_OPS_IN_PC CLOSE E DB Operation CLOSE for Pool/Cluster CI_ACCESS_TO_DB_OK
Table &1 found.
CL_CI_TEST_SEARCH_DB_OPS_IN_PC DELETE E DB Operation DELETE for CI_ACCESS_TO_DB_OK
Pool/Cluster Table &1 found.
CL_CI_TEST_SEARCH_DB_OPS_IN_PC EXPORT_DB E DB Operation EXPORT DBTAB for CI_ACCESS_TO_DB_OK
Pool/Cluster Table &1 found.
CL_CI_TEST_SEARCH_DB_OPS_IN_PC FETCH E DB Operation FETCH for Pool/Cluster CI_ACCESS_TO_DB_OK
Table &1 found.

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 10/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
Test Class Code Kind Text Pseudo Comment Alternative Pseudo
Comment
CL_CI_TEST_SEARCH_DB_OPS_IN_PC IMPORT_DB E DB Operation IMPORT DBTAB for CI_ACCESS_TO_DB_OK
Pool/Cluster Table &1 found.
CL_CI_TEST_SEARCH_DB_OPS_IN_PC INSERT E DB Operation INSERT for CI_ACCESS_TO_DB_OK
Pool/Cluster Table &1 found.
CL_CI_TEST_SEARCH_DB_OPS_IN_PC LOOP_OBS E DB Operation LOOP for Pool/Cluster CI_ACCESS_TO_DB_OK
Table &1 found.
CL_CI_TEST_SEARCH_DB_OPS_IN_PC MODIFY E DB Operation MODIFY for CI_ACCESS_TO_DB_OK
Pool/Cluster Table &1 found.
CL_CI_TEST_SEARCH_DB_OPS_IN_PC OPEN E DB Operation OPEN for Pool/Cluster CI_ACCESS_TO_DB_OK
Table &1 found.
CL_CI_TEST_SEARCH_DB_OPS_IN_PC READ_OBS E DB Operation READ for Pool/Cluster CI_ACCESS_TO_DB_OK
Table &1 found.
CL_CI_TEST_SEARCH_DB_OPS_IN_PC SELECT E DB Operation SELECT for CI_ACCESS_TO_DB_OK
Pool/Cluster Table &1 found.
CL_CI_TEST_SEARCH_DB_OPS_IN_PC UPDATE E DB Operation UPDATE for CI_ACCESS_TO_DB_OK
Pool/Cluster Table &1 found.
CL_CI_TEST_SELECT_EXIT 1 N &1 statement within a CI_EXIT_SELECT
SELECT...ENDSELECT loop
CL_CI_TEST_SELECT_EXIT 2 N Empty SELECT...ENDSELECT Loop CI_EMPTY_SELECT
CL_CI_TEST_SELECT_EXIT 3 N Access to single record with unique CI_SELECTS_ONE
index &1
CL_CI_TEST_SELECT_NESTED 1 N SELECT on table &2 in &1 loop CI_SEL_NESTED
CL_CI_TEST_SELECT_NESTED 2 W SELECT on table &2 in CI_SEL_NESTED
LOOP/ENDLOOP loop
CL_CI_TEST_SELECT_NESTED 3 N SELECT on table &2 in CI_SEL_NESTED
SELECT/ENDSELECT loop
CL_CI_TEST_SELECT_NESTED 11 N SELECT on non-buffered table &2 in CI_SEL_NESTED
&1 loop
CL_CI_TEST_SELECT_NESTED 12 W SELECT on non-buffered table &2 in CI_SEL_NESTED
LOOP/ENDLOOP loop
CL_CI_TEST_SELECT_NESTED 13 N SELECT on non-buffered table &2 in CI_SEL_NESTED
SELECT/ENDSELECT loop
CL_CI_TEST_SELECT_NESTED 101 N JOIN on table &2 in &1 loop CI_SEL_NESTED
CL_CI_TEST_SELECT_NESTED 102 W JOIN on table &2 in LOOP/ENDLOOP CI_SEL_NESTED
loop
CL_CI_TEST_SELECT_NESTED 103 N JOIN on table &2 in CI_SEL_NESTED
SELECT/ENDSELECT loop
CL_CI_TEST_SELECT_NESTED 111 N JOIN on table &2 in &1 loop CI_SEL_NESTED
CL_CI_TEST_SELECT_NESTED 112 W JOIN on table &2 in LOOP/ENDLOOP CI_SEL_NESTED
loop
CL_CI_TEST_SELECT_NESTED 113 N JOIN on table &2 in CI_SEL_NESTED
SELECT/ENDSELECT loop
CL_CI_TEST_SELECT_NESTED 201 N SELECT SINGLE on table &2 in &1 CI_SEL_NESTED
loop
CL_CI_TEST_SELECT_NESTED 202 W SELECT SINGLE on table &2 in CI_SEL_NESTED
LOOP/ENDLOOP loop
CL_CI_TEST_SELECT_NESTED 203 N SELECT SINGLE on table &2 in CI_SEL_NESTED
SELECT/ENDSELECT loop
CL_CI_TEST_SELECT_NESTED 211 N SELECT SINGLE on non-buffered CI_SEL_NESTED
table &2 in &1 loop
CL_CI_TEST_SELECT_NESTED 212 W SELECT SINGLE on non-buffered CI_SEL_NESTED
table &2 in LOOP/ENDLOOP loop
CL_CI_TEST_SELECT_NESTED 213 N SELECT SINGLE on non-buffered CI_SEL_NESTED
table &2 in SELECT/ENDSELECT
loop
CL_CI_TEST_SELECT_NESTED 301 N SELECT without SINGLE on table &2 CI_SEL_NESTED
in &1 loop
CL_CI_TEST_SELECT_NESTED 302 W SELECT without SINGLE on table &2 CI_SEL_NESTED
in LOOP/ENDLOOP loop
CL_CI_TEST_SELECT_NESTED 303 N SELECT without SINGLE on table &2 CI_SEL_NESTED
in SELECT/ENDSELECT loop
CL_CI_TEST_SELECT_NESTED 311 N SELECT without SINGLE on non- CI_SEL_NESTED
buffered table &2 in &1 loop
CL_CI_TEST_SELECT_NESTED 312 W SELECT without SINGLE on non- CI_SEL_NESTED
buffered table &2 in LOOP/ENDLOOP
loop
CL_CI_TEST_SELECT_NESTED 313 N SELECT without SINGLE on non- CI_SEL_NESTED
buffered table &2 in
SELECT/ENDSELECT loop
CL_CI_TEST_SELECT_TAW_A 1 W Table &1: No WHERE condition CI_NOWHERE
CL_CI_TEST_SELECT_TAW_A 2 W Table &1: No field of a table index in CI_NOFIELD
WHERE condition
CL_CI_TEST_SELECT_TAW_A 3 W Table &1: No first field of a table index CI_NOFIRST
in WHERE condition

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 11/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
Test Class Code Kind Text Pseudo Comment Alternative Pseudo
Comment
CL_CI_TEST_SELECT_TAW_A 4 N Table &1: No client-specific field in CI_NOCLIENT
WHERE condition despite CLIENT
SPECIFIED
CL_CI_TEST_SELECT_TAW_A 10 E Table &1 does not exist or does not CI_NO_TABLE
have a nametab entry
CL_CI_TEST_SELECT_TAW_A 501 E Large table &1: No WHERE condition CI_NOWHERE
CL_CI_TEST_SELECT_TAW_A 502 E Large table &1: No field of a table CI_NOFIELD
index in WHERE condition
CL_CI_TEST_SELECT_TAW_A 503 E Large table &1: No first field of a table CI_NOFIRST
index in WHERE condition
CL_CI_TEST_SELECT_TAW_A 507 E S/4HANA - Large table &1: No field of CI_NOFIELD
a HDB table index in WHERE
condition
CL_CI_TEST_SELECT_TAW_A 508 E S/4HANA - Large table &1: No first CI_NOFIRST
field of a HDB table index in WHERE
condition
CL_CI_TEST_SELECT_TAW_BYBUF 1 W Buffered Table &1 in a JOIN CI_BUFFJOIN
CL_CI_TEST_SELECT_TAW_BYBUF 2 W Buffered Table &1 in SELECT with CI_BUFFSUBQ
Subquery
CL_CI_TEST_SELECT_TAW_BYBUF 3 W Access to Table &1 Bypasses Table CI_BYPASS
Buffer: &2
CL_CI_TEST_SELECT_TAW_BYBUF 5 W Generically Buffered Key Area not CI_GENBUFF CI_SGLSELECT
Completely Specified for Table &1
CL_CI_TEST_SELECT_TAW_BYBUF 6 W SELECT on Client-Specific Table &1 CI_BUFFCLIENT
with CLIENT SPECIFIED, but no
Client Field in the WHERE Condition
CL_CI_TEST_SELECT_TAW_BYBUF 10 W Access to buffered table &1 with CI_BYPASS
replacement object &2
CL_CI_TEST_SELECT_TAW_BYBUF 51 W Access to single record buffered table CI_GENBUFF CI_SGLSELECT
&1 cannot use buffer
CL_CI_TEST_SELECT_TAW_SEC01 1 N Dynamic Read Access to Table CI_DYNTAB
CL_CI_TEST_SELECT_TAW_SEC01 2 N Dynamic WHERE Condition for Table CI_DYNWHERE
&1
CL_CI_TEST_SELECT_TAW_SEC01 3 N Read Access to Table &1 CI_TABLES
CL_CI_TEST_SELECT_TAW_SEC01 4 W Client-Specific Read Access to Table CI_CLIENT
&1
CL_CI_TEST_SELECT_THEN_CHECK 1 N SELECT on Table &1 with CI_CHECK
Subsequent CHECK
CL_CI_TEST_SEQ_ACC_ITAB_NESTED IN_MD_DL_A N Sequential &1-statement on generic CI_ANYSEQ
typed table inside &2; nesting level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED IN_MD_DL_H W Sequential &1-statement on HASHED CI_HASHSEQ
table inside &2; nesting level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED IN_MD_DL_O W Sequential &1-statement on SORTED CI_SORTSEQ
table inside &2; nesting level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED IN_MD_DL_S N Sequential &1-statement on CI_STDSEQ
STANDARD table inside &2; nesting
level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED LOOP_NO_WH N LOOP without WHERE-clause inside CI_NESTED
&2; nesting level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED LOOP_SEQ_A N Sequential LOOP on generic typed CI_ANYSEQ
table inside &2; nesting level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED LOOP_SEQ_H W Sequential LOOP on HASHED table CI_HASHSEQ
inside &2; nesting level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED LOOP_SEQ_O W Sequential LOOP on SORTED table CI_SORTSEQ
inside &2; nesting level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED LOOP_SEQ_S N Sequential LOOP on STANDARD CI_STDSEQ
table inside &2; nesting level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED OTHERS_A N Other sequential access to generic CI_ANYSEQ
typed table inside &2-loop; nesting
level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED OTHERS_H W Other sequential access to HASHED CI_HASHSEQ
table inside &2-loop; nesting level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED OTHERS_O W Other sequential access to SORTED CI_SORTSEQ
table inside &2-loop; nesting level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED OTHERS_S N Other sequential access to CI_STDSEQ
STANDARD table inside &2-loop;
nesting level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED READ_SEQ_A N Sequential READ TABLE on generic CI_ANYSEQ
typed table inside &2; nesting level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED READ_SEQ_H W Sequential READ TABLE on HASHED CI_HASHSEQ
table inside &2; nesting level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED READ_SEQ_O W Sequential READ TABLE on SORTED CI_SORTSEQ
table inside &2; nesting level &3

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 12/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
Test Class Code Kind Text Pseudo Comment Alternative Pseudo
Comment
CL_CI_TEST_SEQ_ACC_ITAB_NESTED READ_SEQ_S N Sequential READ TABLE on CI_STDSEQ
STANDARD table inside &2; nesting
level &3
CL_CI_TEST_SEQ_ACC_ITAB_NESTED SORT W SORT inside &2; nesting level &3 CI_SORTLOOP
CL_CI_TEST_SHO_CLIENT 1 W Call Client-Specific Method: &1 CI_CLIENT
CL_CI_TEST_SHO_CLIENT 2 W Call Client-Specific Method: &1 CI_CLIENT
CL_CI_TEST_SHO_CLIENT 3 W Call Client-Specific Method: &1 CI_CLIENT
CL_CI_TEST_SHO_CLIENT 4 W Call Client-Specific Method: &1 CI_CLIENT
CL_CI_TEST_SHO_CLIENT 5 W Call Client-Specific Method: &1 CI_CLIENT
CL_CI_TEST_SHO_CLIENT 6 W Call Client-Specific Method: &1 CI_CLIENT
CL_CI_TEST_SHO_CLIENT 7 W Call Client-Specific Method: &1 CI_CLIENT
CL_CI_TEST_SHO_CLIENT 8 W Call Client-Specific Method: &1 CI_CLIENT
CL_CI_TEST_SHO_CLIENT 9 W Call Client-Specific Method: &1 CI_CLIENT
CL_CI_TEST_SHO_CLIENT 10 W Call Client-Specific Method: &1 CI_CLIENT
CL_CI_TEST_SHO_CLIENT 11 W Call Client-Specific Method: &1 CI_CLIENT
CL_CI_TEST_SORT_IN_LOOP 1 N SORT Inside &1 CI_SORTLOOP
CL_CI_TEST_SORT_IN_LOOP 2 W SORT Inside LOOP ... ENDLOOP CI_SORTLOOP
CL_CI_TEST_SORT_IN_LOOP 3 W SORT Inside SELECT ... CI_SORTLOOP
ENDSELECT
CL_CI_TEST_SPEC_CRIT_STMNTS 1 W Call System Function: &1 CI_CCALL
CL_CI_TEST_SPEC_CRIT_STMNTS 2 N Call Transaction &1 CI_CALLTA
CL_CI_TEST_SPEC_CRIT_STMNTS 3 W Use a SYSTEM-CALL: &1 CI_SYSTEMCALL
CL_CI_TEST_SPEC_CRIT_STMNTS 4 N Call Editor for Program &1 CI_EDITORCALL
CL_CI_TEST_SPEC_CRIT_STMNTS 5 N Call Executable Program &1 CI_SUBMIT
CL_CI_TEST_SPEC_CRIT_STMNTS 6 W Use Native SQL: &1 CI_EXECSQL
CL_CI_TEST_SPEC_CRIT_STMNTS 7 N Use of ROLLBACK WORK CI_ROLLBACK
CL_CI_TEST_SPEC_CRIT_STMNTS 8 W Use of Database Hint: &1 CI_HINTS
CL_CI_TEST_SPEC_CRIT_STMNTS 9 N Dynamic Programming with CI_GENERATE
GENERATE DYNPRO &1
CL_CI_TEST_SPEC_CRIT_STMNTS 10 N Read Report/Text Pool &1 CI_READ_REP
CL_CI_TEST_SPEC_CRIT_STMNTS 11 W Write/Delete Report/Text Pool &1 CI_TABL_EXCEPTN
CL_CI_TEST_SPEC_CRIT_STMNTS 12 N Read a dynpro CI_IMPORT_DYNP
CL_CI_TEST_SPEC_CRIT_STMNTS 13 W Write/delete a dynpro CI_TABL_EXCEPTN
CL_CI_TEST_SPEC_CRIT_STMNTS 14 N Read NAMETAB CI_IMPORT_NAM
CL_CI_TEST_SPEC_CRIT_STMNTS 15 W Write NAMETAB CI_TABL_EXCEPTN
CL_CI_TEST_SPEC_CRIT_STMNTS 19 N Dynamic Programming with CI_GENERATE
GENERATE REPORT &1
CL_CI_TEST_SPEC_CRIT_STMNTS 29 N Dynamic Programming with CI_GENERATE
GENERATE SUBROUTINE POOL &1
CL_CI_TEST_SPEC_CRIT_STMNTS 102 N Call Transaction (Transaction Name = CI_CALLTA
Data Object)
CL_CI_TEST_SPEC_CRIT_STMNTS 104 N Call Editor (Program Name = Data CI_EDITORCALL
Object)
CL_CI_TEST_SPEC_CRIT_STMNTS 105 N Call an Executable Program (Program CI_SUBMIT
Name = Data Object)
CL_CI_TEST_SPEC_CRIT_STMNTS 110 N Read a Report/Text Pool (Program CI_READ_REP
Name = Data Object)
CL_CI_TEST_SPEC_CRIT_STMNTS 111 W Write/Delete a Report/Text Pool CI_TABL_EXCEPTN
(Program Name = Data Object)
CL_CI_TEST_SPEC_CRIT_STMNTS 119 N Dynamic Programming with CI_GENERATE
GENERATE REPORT (Program
Name = Data Object)
CL_CI_TEST_SPEC_CRIT_STMNTS 129 N Dynamic Programming with CI_GENERATE
GENERATE SUBROUTINE POOL
(Name of Subroutine Pool = Data
Object)
CL_CI_TEST_SUSP_CONVERSIONS MESSAGEG_F N Suspect Conversion to ABAP Type CI_CONV_OK
NUMERIC
CL_CI_TEST_SUSP_CONVERSIONS MESSAGEG_G N Suspect Conversion Between CI_CONV_OK
Different ABAP Types
CL_CI_TEST_SUSP_CONVERSIONS MESSAGEG_H N Truncate in Conversion to ABAP Type CI_CONV_OK
C
CL_CI_TEST_SUSP_CONVERSIONS MESSAGEG_J N Suspect Conversion (a Structure) to CI_CONV_OK
ABAP Type CHAR
CL_CI_TEST_SUSP_CONVERSIONS MESSAGEG_L N Suspect Conversion from Literal to CI_CONV_OK
ABAP Type NUMERIC
CL_CI_TEST_SUSP_CONVERSIONS MESSAGEG_M N Suspect Conversion from Literal to CI_CONV_OK
ABAP Type
CL_CI_TEST_SUSP_CONVERSIONS MESSAGEG_N N Truncate in Conversion from Literal to CI_CONV_OK
ABAP Type
CL_CI_TEST_SYSUBRC 1 W No Handling of SY-SUBRC After CI_SUBRC
Changing Database Statement

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 13/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
Test Class Code Kind Text Pseudo Comment Alternative Pseudo
Comment
CL_CI_TEST_SYSUBRC 2 W No Handling of SY-SUBRC After CI_SUBRC
Reading Database Statement
CL_CI_TEST_SYSUBRC 3 E No Handling of SY-SUBRC After CI_SUBRC
AUTHORITY-CHECK
CL_CI_TEST_SYSUBRC 4 W No Handling of SY-SUBRC After CI_SUBRC
CALL FUNCTION
CL_CI_TEST_SYSUBRC 5 W No Handling of SY-SUBRC After &1 CI_SUBRC
CL_CI_TEST_SYSUBRC 14 W No Handling of SY-SUBRC After CI_SUBRC
CALL METHOD
CL_CI_TEST_SYSUBRC 15 W No Handling of SY-SUBRC After CI_SUBRC
ENQUEUE
CL_CI_TEST_SYSUBRC 16 N No Handling of SY-SUBRC After CI_SUBRC
ENDCATCH
CL_CI_TEST_SYSUBRC 17 N No Handling of SY-SUBRC After CI_SUBRC
Dynamic ASSIGN
CL_CI_TEST_UCCHECK CASE W Missing handling of UCCHECK in CI_UCCHECK_OK
CASE-Statement
CL_CI_TEST_UCCHECK COND W Missing handling of UCCHECK in CI_UCCHECK_OK
condition
CL_CI_TEST_UCCHECK IF W Missing handling of UCCHECK in IF- CI_UCCHECK_OK
Statement
CL_CI_TEST_VALUE_PARAMETER DEEP_TAB E Parameter is a nested internal table CI_VALPAR
and is passed by VALUE
CL_CI_TEST_VALUE_PARAMETER FLD_INNOWR N Input parameter is passed by VALUE CI_VALPAR
but not changed
CL_CI_TEST_VALUE_PARAMETER LEN W Parameter is a long field and is CI_VALPAR
passed by VALUE
CL_CI_TEST_VALUE_PARAMETER LEN_EV W EVENT parameter is a long field CI_VALPAR
CL_CI_TEST_VALUE_PARAMETER LEN_INNOWR W Parameter is a long field, is passed by CI_VALPAR
VALUE, and is not changed
CL_CI_TEST_VALUE_PARAMETER LEN_INWR W Parameter is a long field, is passed by CI_VALPAR
VALUE, and is changed
CL_CI_TEST_VALUE_PARAMETER LEN_RET W RETURNING parameter is a long field CI_VALPAR
CL_CI_TEST_VALUE_PARAMETER STR W Parameter contains strings and is CI_VALPAR
passed by VALUE
CL_CI_TEST_VALUE_PARAMETER STR_EV W EVENT parameter contains strings CI_VALPAR
CL_CI_TEST_VALUE_PARAMETER STR_INNOWR W Parameter contains strings, is passed CI_VALPAR
by VALUE, and is not changed
CL_CI_TEST_VALUE_PARAMETER STR_INWR W Parameter contains strings, is passed CI_VALPAR
by VALUE, and is changed
CL_CI_TEST_VALUE_PARAMETER STR_RET W RETURNING param. contains strings CI_VALPAR
CL_CI_TEST_VALUE_PARAMETER TAB W Parameter is an internal table and is CI_VALPAR
passed by VALUE
CL_CI_TEST_VALUE_PARAMETER TAB_EV W EVENT parameter contains internal CI_VALPAR
tables
CL_CI_TEST_VALUE_PARAMETER TAB_INNOWR W Parameter contains internal tables, is CI_VALPAR
passed by VALUE, and is not
changed
CL_CI_TEST_VALUE_PARAMETER TAB_INWR E Parameter contains internal tables, is CI_VALPAR
passed by VALUE, and is changed
CL_CI_TEST_VALUE_PARAMETER TAB_RET W RETURNING parameter contains CI_VALPAR
internal tables
ZCL_AOC_CHECK_40 1 E CI_SUBRC
ZCL_AOC_CHECK_48 1 E CI_DEFAULT_KEY

EDIT: Additionally here is the list of the pragmas and pseudo comments for SLIN checks.

Pseudo Comment Pragma Finding Description

ARGCHECKED ARG_OK Function module exception missing

ARGCHECKED ARG_OK Function module parameter missing

ASSIGN_LEN ASSIGN_LEN ASSIGN across field limit

ASSIGN_OK ASSIGN_OK Write performed on read-only field

AT_LOOP_WH LOOP_AT_OK LOOP with FROM condition contains an AT (information)

AT_LOOP_WH LOOP_AT_OK LOOP with WHERE/TO condition contains an AT (Warning)

AUTDOM_CON AUTH_DOM_VAL_OK Authorizations: Wrong fixed domain value entered for ID

AUTFLD_LEN AUTH_FLD_LEN Authorizations: Field length too long

AUTFLD_MIS AUTH_FLD_MISSING Authorization field missing

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 14/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
AUTFLD_WRO AUTH_FLD_NO Wrong number of authorization fields

AUTOBJ_WRO AUTH_OBJ_OK Authorization object not entered in table TOBJ

BLANK_OK BLANK_OK Comparison ignores closing blanks

BOOL_OK BOOL_OK Condition is always/never met

BOOL_OK BOOL_OK Condition is duplicated

BOOL_OK BOOL_OK WHEN condition always processed

CALLED CALLED FORM not called

CALLED CALLED FORM not called (include is shared)

CALLED CALLED Method not called

CATCH_ALL CATCH_ALL Exception Handling with CX_ROOT

CHAIN_OK CHAIN_OK Problematic chained statement

CLAS_FINAL CLASS_FINAL Class is FINAL

CONST_WRT CONST_WRITE Constant is overwritten

CURS_LOST CURSOR_LOST SELECT loop contains statement that destroys cursor

CURS_PERF CURSOR_LOST SELECT loop contains PERFORM call (cursor may be lost)

DATFM DATE_FORMAT It is possible that not all supported date formats are handled

DATFM DATE_FORMAT Not all supported date formats are handled

DECL_EVENT DECL_EVENT Declaration in Event

DECL_MODUL DECL_MODUL Declaration in module (offset with no length specified)

DEST_OK FM_DEST_OK RFC with incorrect DESTINATION specified

DO_OK DO_OK DO loop not exited

DUPL_EVENT DUPL_EVENT Duplicate event definition

DUPL_OK DUPLICATE_OK Duplicate statements

ENDLES_CAL ENDLESS_CALL Non-termination of procedure calls

EXCEPT_OK EXCEPT_OK No RAISE statement in function group for EXCEPTION in function module

EXCEPT_TRY EXCEPT_TRY Class-based exception is not handled

EXISTS EXISTS Called function module does not exist

EXISTS EXISTS GET/SET parameter not entered in TPARA

FB_EXC_CX FM_EXCEPT_OK Name of EXCEPTION begins with CX

FB_NORC FM_SUBRC_OK Undefined return code accessed after CALL FUNCTION

FB_NO_RFC FM_RFC_OK Function module is not flagged as Remote Function Call

FB_NO_TYPE FM_NO_TYPE Missing typing of formal parameter

FB_NO_UPD FM_UPDATE_OK Function module is not an update function module

FB_OLDED FM_OLDED The called function module is obsolete

FB_PAR_MIS FM_PAR_MIS Function module parameter not called

FB_RAIS_EX FM_RAISE_OK EXCEPTION for RAISE statement missing in function module

FB_RC FM_SUBRC_OK Return codes of function module exceptions are ignored

FB_UPD_ILL FM_UPDATE_OK Update module with invalid statement

FDSHLP_MIS SEARCH_HELP_OK Undefined search help

FD_ASSGN FS_ASSIGN_OK Field symbol is not assigned

FD_HYPHEN FIELD_HYPHEN Field name with hyphen

FD_PRE_TYP FLD_TYPE_NAME Misleading field name

FM_ARG_OK FM_ARG_OK RFC with incorrect argument call

FREE_MEM FREE_MEMORY_OK FREE MEMORY statement with no ID specified

FS_UNTYPED FS_UNTYPED Untyped field symbol

F_INPUT_OK FORMAT_INPUT_OK 'FORMAT INPUT ON' in a procedure without following 'FORMAT INPUT OFF'

GEN_OK GEN_OK Unnecessary genericity

GS_TWENTY GS_TWENTY GET/SET parameters: Field length too long

INCL_OK INCL_OK Include included more than once

INCL_OK INCL_OK Include with only one statement

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 15/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
INCL_OK INCL_OK Include without source code

INDEX_NUM INDEX_NUM Non-numeric index access on internal table

INTO_OK INTO_OK LOOP INTO with deep work area

IN_TYP_NOK INCL_TYPE_OK INCLUDE program does not have type I

IS_SUPP_OK IS_SUPP_OK IS SUPPLIED in a parameter of an RFC module

LIT_INCOMP LIT_COMPATIBLE Literal incompatible with formal parameter

LIT_INCOMP LIT_INCOMP Literal passed to incompatible parameter

LOAD_W_INV LOAD_STMNT_OK LOAD-OF-PROGRAM event with invalid statement

LOOP_ASSIG LOOP_ASSIGN Use of ASSIGN or UNASSIGN on field symbol forbidden

LOOP_INDEX LOOP_INDEX Index access on internal table outside a LOOP

LOOP_INDEX LOOP_INDEX Index access on internal table outside a LOOP (in FORM)

LOOP_TO_WR LOOP_TO_OK The TO limit in LOOP is overwritten in body

MG_ARG_LEN MG_ARG_LEN MESSAGE parameter is too long

MG_MISSING MG_MISSING T100 MESSAGE not defined

MG_MIS_ATT MG_MIS_ATT Missing attribute in exception class for T100 message

MG_PAR_CNT MG_MISSING MESSAGE call contains the wrong number of WITH parameters

MG_TYPE_UN MG_TYPE_UNDEF Incorrect type for MESSAGE command

MG_USER MG_USER Message in customer namespace

MG_WRN_ATT MG_WRN_ATT Error in attribute in exception class for T100 message

MOD_IN_FP MODUL_IN_POOL MODULE statement in FORM POOL

NEEDED NEEDED Duplicate Macro Definition

NEEDED NEEDED EXPORTING parameter not called

NEEDED NEEDED Field symbol is not used

NEEDED NEEDED Local class not used

NEEDED NEEDED Macro definition not used

NEEDED NEEDED No writes to CHANGING parameters

NEEDED NEEDED Obsolete statement SYNTAX-TRACE

NEEDED NEEDED Program does not exist

NEEDED NEEDED Program uses global fields

NEEDED NEEDED Redundant assignment

NEEDED NEEDED Reference (without instance access) not written

NEEDED NEEDED Reference is not written

NEEDED NEEDED Reporting event outside of report

NEEDED NEEDED SY-INDEX used outside a WHILE/DO loop

NEEDED NEEDED Statement for time measurement

NEEDED NEEDED Statements between DO - ENDDO are missing

NEEDED NEEDED Statements between ELSE - ENDIF missing

NEEDED NEEDED Statements between IF - ENDIF missing

NEEDED NEEDED Statements between LOOP - ENDLOOP missing

NEEDED NEEDED Statements between SELECT - ENDSELECT missing

NEEDED NEEDED Statements between TRY - ENDTRY missing

NEEDED NEEDED Statements between WHILE - ENDWHILE missing

NEEDED NEEDED Statements for a dialog module are missing

NEEDED NEEDED Statements for a form are missing

NEEDED NEEDED Statements for a function module are missing

NEEDED NEEDED Statements for a macro are missing

NEEDED NEEDED Statements for a method are missing

NEEDED NEEDED Type is not used

NEEDED NEEDED Unread fields

NEEDED NEEDED Unread fields (INCLUDE is shared)

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 16/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
NEEDED NEEDED Unused fields

NEEDED NEEDED Unused fields (INCLUDE is shared)

NEEDED NEEDED Unused type pool

NOBREAK NO_BREAK BREAK-POINT statement

NOTEXT NO_TEXT Text element is missing in a character string in a string template

NOTEXT NO_TEXT Text element missing in a character string

NO_HANDLER NO_HANDLER Exception handling for CX_.. is empty

NO_HANDLER NO_HANDLER Exception handling is empty

NO_HANDLER NO_HANDLER Exception of category CX_DYNAMIC_CHECK not handled

NO_HANDLER NO_HANDLER Exception of category CX_NO_CHECK not handled

NO_HANDLER NO_HANDLER Exception of category CX_STATIC_CHECK not handled

NO_INCOMP COMPATIBLE Formal parameter incompatible with actual parameter

NO_INCOMP COMPATIBLE STRUCTURE parameter too short for formal parameter

NUMBER_OK NUMBER_OK Numeric literal used

PART_OK PART_OK COMMON PART definition is different

PF_ACT_GLO PERF_GLOBAL_PAR_OK FORM parameter is addressed globally at the same time

PF_NO_FORM PERF_NO_FORM There is no form routine for this PERFORM call

PF_NO_TYPE PERF_NO_TYPE Missing typing of formal parameter

PF_NUM_ARG PERF_NUM_ARGS Wrong number of parameters for this PERFORM call

PF_PAR_CAT PERF_CAT_OK Argument categories do not match (USING/CHANGING)

PF_TAB_CAT PERF_TABLE_CATEGORY Undefined TABLES parameter for this PERFORM call

PREFIX_OK PREFIX_OK Name begins with a reserved prefix '%_'

RAISE_OK RAISE_OK MESSAGE RAISING not used

RAIS_NO_FB RAISE_NO_FM RAISE statement outside a function group

RC_AFT_COM SUBRC_AFTER_COMMIT SY-SUBRC handling after COMMIT WORK

RC_READ SUBRC_READ SY-SUBRC read without being set first

SAPRL_OK SAPRL_OK SY-SAPRL compared with an integer field

SEC_PROTEC SECTION_OK PROTECTED SECTION in final class

SEL_WRONG SEL_WRONG Selection text is not defined

SHAREOK SHARE_OK Text element in shared include

STAT_PROG STAT_PROG Program without GUI status

STAT_UNDEF STAT_UNDEF GUI status not defined

STMNT_EXIT STMNT_EXIT Statement after EXIT/STOP/RETURN/RAISE/SUBMIT cannot be reached

STOP_IN_FB STOP_IN_FM STOP Statement in Function Module

STOP_IN_MO STOP_IN_MODULE STOP statement in MODUL definition

STRING_OK STRING_OK Character string in source code contains invalid characters

STR_NUM STR_NUM Text literal converted to integer unnecessarily

SUBRC_OK SUBRC_OK EXCEPTION return code ignored

SUBRC_OK SUBRC_OK Undefined return code accessed after CALL METHOD

SUB_FR_SEL SUB_FR_SEL Report called using SUBMIT has no dynamic selections

SUB_NO_REP SUB_NO_REP Report called using SUBMIT is not type 1

SUB_PAR SUB_PAR SUBMIT parameter does not exist

SUB_SELOP SUB_SELOP SELECT-OPTION missing for SUBMIT parameters

TDCT_MISS TDCT_MISS Dialog module is not entered in TDCT

TEXT_CHAR TEXT_CHAR Text element ends with an umlaut

TEXT_DIFF TEXT_DIFF Text element defined differently in text pool and program

TEXT_DUP TEXT_DUP Literal with duplicate text element

TEXT_POOL TEXT_POOL Text element not defined in TEXT-POOL

TEXT_UNIQ TEXT_UNIQ Different strings have the same text element ID

TEXT_USE TEXT_USE Text element not used

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 17/23
9/5/2019 ABAPblog.com - ATC Pseudo Comments list
TIME_ARITH TIME_ARITH Calculations with time stamp fields

TIME_ASSIG TIME_ASSIGN Assignment to time stamp field

TIME_COMP TIME_COMP Time stamp fields compared

TITL_UNDEF TITL_UNDEF TITLE not defined

TSTC_MISS TSTC_MISS Transaction code not entered in TSTC

TYPES_MISS TYPE_CHAIN_OK Type not specified within a chained statement

UOM_IN_MES UOM_IN_MES CURR field produced without CURRENCY Addition

UOM_IN_MES UOM_IN_MES UNIT field produced without UNIT addition

UOM_IN_MES UOM_IN_MES UNIT field produced without UNIT addition with DECIMALS

USER_FB USER_FM Function module not deactivated using TMOD/SMOD

USER_FB USER_FM Function module with interface missing in function group (X..)

USER_OK USER_OK User-specific control flow (SY-UNAME used)

USER_SMOD USER_SMOD User exit enhancement missing

VALUE_OK VALUE_OK Initial value check for field type

WHEN_DOUBL WHEN_DOUBLE_OK CASE statement with identical WHEN condition

WHEN_DOUBL WHEN_DOUBLE_OK CASE statement with identical WHEN conditions

WHERE_OK LOOP_WHERE_OK LOOP WHERE in which variables of WHERE condition are modified in loop

WH_WRCHAIN WHEN_CHAIN_OK WHEN statement written in chained statement

WRITE_MOVE WRITE_MOVE WRITE TO statement can be replaced by MOVE

WRITE_OK WRITE_OK Important SY field is overwritten

Cheers

https://abapblog.com/articles/tips/124-atc-pseudo-comments-list 18/23

Das könnte Ihnen auch gefallen