← ClaudeAtlas

clean-abaplisted

Clean ABAP Style Guide — naming conventions, formatting rules, method length limits, error handling patterns, OO best practices, modern ABAP conventions based on SAP Clean ABAP Style Guide (CC BY 4.0). Use when writing ABAP code, reviewing ABAP code quality, refactoring ABAP, or applying clean code rules to ABAP programs.
williamcorrea23/sap-router-skill · ★ 0 · Code & Development · score 69
Install: claude install-skill williamcorrea23/sap-router-skill
# Clean ABAP Style Guide Clean ABAP patterns derived from SAP Clean ABAP Style Guide (CC BY 4.0). ## Naming Conventions | Rule | Good | Bad | |---|---|---| | Variables descriptive | `lv_material_description` | `lv_md` | | Classes prefixed ZCL_ | `zcl_material_handler` | `material_class` | | Methods verb-first | `create_material()` | `material_create()` | | Booleans with is/has | `is_active`, `has_errors` | `active_flag` | | Constants UPPER case | `gc_max_retries` | `max_retries` | ## Formatting ```abap " Good METHOD create_material. DATA(ls_header) = prepare_header( iv_payload ). DATA(ls_return) = call_bapi( ls_header ). check_result( ls_return ). ENDMETHOD. " Bad METHOD create_material. data(ls_header)=prepare_header(iv_payload). data(ls_return)=call_bapi(ls_header). check_result(ls_return). ENDMETHOD. ``` ## Method Rules - Max 50 lines per method (not counting declarations block) - Single responsibility — one method, one purpose - Extract conditions into self-documenting methods: ```abap " Good IF is_material_locked( lv_matnr ). RETURN. ENDIF. " Bad IF lt_lock[] IS NOT INITIAL AND lv_matnr IN lt_lock. RETURN. ENDIF. ``` ## Error Handling ```abap " Prefer class-based exceptions TRY. DATA(lo_handler) = get_handler( iv_module ). lo_handler->handle_action( iv_action = iv_action iv_payload = iv_payload ). CATCH cx_zrouter INTO DATA(lx). mo_logger->log_action( iv_status = 'ERROR' iv_message = lx->mv_text ). ENDTRY. " Not: "