- Run the ABAP reports by following the detailed instructions in
guide.md2. Run thepython -m kb.std.ecc_6_0_ehp_7.scripts.prepare_datasets ...using the output of above step as input for this step 3. Run thepython -m kb.std.ecc_6_0_ehp_7.scripts.vectorize ...using the output of above step as input for this step
← Back to gists
ABAP Vibe Coders
Pipeline code for indexing ECC 6.0
Published Oct 26, 2025View on LinkedIn
Shared by
Darshita Chaturvedi - Adri AI | LinkedIn
As the founder of Adri AI (YC W23), I lead the development of products in the AI risk… · Experience: Adri AI · Education: Y Combinator · Location: San Francisco · 500+ connections on LinkedIn. View Darshita Chaturvedi’s profile on LinkedIn, a professional community of 1 billion members.
How-to guide
Files
abap/ecc-6.0-ehp7/errors/z_class_objects.md
markdown# ABAP ECC 6.0 EP7 - Syntax Mistakes Documentation ## Complete List of Errors Made During Development ### 1. **Field Reference Without TABLES Declaration** **Error:** `Field "SEOCLASS-CLSNAME" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement.` **Mistake Made:** ```abap" Missing TABLES declarationSELECT-OPTIONS: s_clsnam FOR seoclass-clsname, " ← Error here``` **Correct Approach:** ```abap" Always declare tables firstTABLES: seoclass, tadir.SELECT-OPTIONS: s_clsnam FOR seoclass-clsname,``` ### 2. **Mixed OpenSQL Syntax - INTO Clause** **Error:** `If the new OpenSQL syntax is used, it must be used throughout. This includes using @ to escape host variables.` **Mistake Made:** ```abapSELECT c~clsname c~clstype INTO CORRESPONDING FIELDS OF TABLE lt_class_data " ← New syntax WHERE c~clsname IN s_clsnam " ← Old syntax (missing @)``` **Correct Approach for ECC 6.0 EP7:** ```abap" Use old syntax throughoutSELECT * FROM seoclass WHERE clsname IN s_clsnam. " Process with ENDSELECTENDSELECT.``` ### 3. **System Variables in JOIN Without @ Prefix** **Error:** `If the new OpenSQL syntax is used, it must be used throughout. This includes using @ to escape host variables.` **Mistake Made:** ```abapLEFT OUTER JOIN seoclasstx AS tx ON tx~clsname = c~clsname AND tx~langu = sy-langu " ← Error: sy-langu needs @ prefix or local variable``` **Correct Approach:** ```abap" Use local variable insteadDATA: lv_langu TYPE sy-langu.lv_langu = sy-langu." Then use lv_langu in query or use separate SELECT``` ### 4. **Missing Commas in SELECT Field List** **Error:** `The elements in the "SELECT LIST" list must be separated using commas` **Mistake Made:** ```abapSELECT c~clsname c~clstype tx~descript " ← Missing commas between fields``` **Correct Approach:** ```abap" Use SELECT * or avoid multi-line field lists in ECC 6.0 EP7SELECT * FROM seoclass``` ### 5. **IS INITIAL in SQL WHERE Clause** **Error:** `'NULL' was expected here.` **Mistake Made:** ```abapAND ( lv_version IS INITIAL OR version = lv_version ) " ← IS INITIAL not supported in SQL" Also had typo: lv_sersion``` **Correct Approach:** ```abap" Handle in ABAP logic insteadIF lv_version IS INITIAL. SELECT * FROM table WHERE condition1.ELSE. SELECT * FROM table WHERE condition1 AND version = lv_version.ENDIF.``` ### 6. **Parenthesized Field List Triggering New Syntax** **Error:** `If the new OpenSQL syntax is used, it must be used throughout. This includes using @ to escape host variables.` **Mistake Made:** ```abapINTO (ls_class_data-clsname, ls_class_data-clstype) " ← Parentheses trigger new syntax``` **Correct Approach:** ```abap" Use SELECT * with table work areaSELECT * FROM seoclass WHERE clsname IN s_clsnam. ls_structure-clsname = seoclass-clsname. " Manual assignmentsENDSELECT.``` ### 7. **Field List Without INTO Clause** **Error:** `Field list without INTO clause is not allowed.` **Mistake Made:** ```abapSELECT clsname clstype FROM seoclass " ← Field list requires INTO clause WHERE clsname IN s_clsnam.``` **Correct Approach:** ```abap" Either use SELECT * or explicit INTOSELECT * FROM seoclass WHERE clsname IN s_clsnam." ORSELECT clsname clstype INTO (var1, var2) FROM seoclass.``` ### 8. **Integer Fields in CONCATENATE** **Error:** `"METHOD_COUNT" must be a character-type data object (data type C, N, D, T or STRING)` **Mistake Made:** ```abapCONCATENATE ls_data-clsname ls_data-method_count " ← method_count is TYPE i INTO lv_line SEPARATED BY tab.``` **Correct Approach:** ```abap" Convert integers to strings firstDATA: lv_method_count TYPE string.lv_method_count = ls_data-method_count.CONCATENATE ls_data-clsname lv_method_count INTO lv_line.``` ### 9. **Text Element Direct Assignment** **Error:** `The field "TEXT-001" cannot be changed.` **Mistake Made:** ```abapTEXT-001 = 'Object Types to Extract'. " ← Cannot assign to text elements``` **Correct Approach:** ```abap" Define text elements in SE80 or use literals directlySELECTION-SCREEN COMMENT 1(30) FOR FIELD s_clsnam.``` ### 10. **Long Frame Titles** **Error:** `The name of the comment can be up to 8 characters long` **Mistake Made:** ```abapSELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE 'Objects'. " ← Too long``` **Correct Approach:** ```abapSELECTION-SCREEN BEGIN OF BLOCK obj WITH FRAME TITLE text-t01. " ← Max 8 chars``` ## **ECC 6.0 EP7 Best Practices Summary** ### **Always Do:** 1. **Declare all tables** in TABLES section before using their fields2. **Use SELECT \*** with table work areas for simplicity3. **Use separate SELECT statements** instead of complex JOINs4. **Convert integers to strings** before CONCATENATE5. **Use local variables** for system fields in SQL6. **Keep WHERE clauses simple** without complex boolean logic7. **Use old OpenSQL syntax consistently** throughout the program8. **Test each SELECT statement separately** for compatibility ### **Never Do:** 1. **Mix old and new OpenSQL syntax** in the same program2. **Use IS INITIAL** in SQL WHERE clauses3. **Use system variables directly** in JOIN conditions4. **Use parenthesized field lists** without proper INTO clauses5. **Use field lists** without explicit INTO clauses6. **Use integers directly** in CONCATENATE operations7. **Assign values to text elements** (TEXT-001, etc.)8. **Use frame titles longer than 8 characters**9. **Use complex JOIN conditions** with host variables ### **Data Type Compatibility:** - **CONCATENATE requires:** C, N, D, T, STRING only- **SQL WHERE clauses:** Use comparison operators, not ABAP logic operators- **Host variables in new SQL:** Must use @ prefix (avoid in ECC 6.0 EP7) This comprehensive list should prevent repeating these specific syntax errors in future ECC 6.0 EP7 ABAP development.