Thursday, October 30, 2025

πŸš€SAP ABAP Refresher

🌼 Chapter 1 – ABAP Basics Refresher

🧠 What is ABAP?

ABAP (Advanced Business Application Programming) is SAP’s core language for building reports, forms, enhancements, interfaces, and data conversions.
It runs inside the SAP Application Server and directly interacts with the SAP database.

πŸ’‘ Think of ABAP as the translator between business processes and SAP’s database.

⚙️ Program Structure

REPORT zhello_world. WRITE: 'Hello, Virat! Welcome back to ABAP!'.

Explanation:

  • REPORT → start of an executable program.

  • WRITE → outputs text or data.

  • . → every ABAP statement ends with a period.

⚠️ Missing a period (.) causes a syntax error.

🎯 Try it: Display your name and today’s date using SY-DATUM.


🧩 Chapter 2 – DATA vs TYPES

Keyword        Purpose                           Example
DATA Creates an actual variable in memory  DATA lv_name TYPE string.

TYPES Defines a reusable structure (template)  TYPES: BEGIN OF ty_student,
        name TYPE string,
        age TYPE i,
        END OF ty_student.



πŸ’‘ TYPES = blueprint.
    DATA = object built from that blueprint.

TYPES: BEGIN OF ty_person, name TYPE string, age TYPE i, END OF ty_person. DATA: lv_person TYPE ty_person. lv_person-name = 'Yuvi'. lv_person-age = 30. WRITE: / 'Name:', lv_person-name, / 'Age :', lv_person-age.

🧠 Define type → create variable → fill values → display output.


πŸ“‹ Chapter 3 – Data Dictionary (DDIC)


πŸ’‘ Main Objects

  1. Tables – Physical storage of data

  2. Data Elements – Field descriptions

  3. Domains – Data type, length, value range

  4. Views – Logical combination of tables

  5. Structures – Combine fields (no data storage)

πŸ“˜ T-Codes: SE11 | SE12 | SE14

⚙️ Example: ZEMPLOYEES table → domain ZEMP_ID (CHAR 10) + data element ZE_EMP_ID.


🧺 Chapter 4 – Internal Tables


🧠 Why Internal Tables?

They act as dynamic arrays holding multiple records in memory.

TYPES: BEGIN OF ty_emp, empid TYPE i, name TYPE string, END OF ty_emp. DATA: lt_emp TYPE STANDARD TABLE OF ty_emp, ls_emp TYPE ty_emp. ls_emp-empid = 101. ls_emp-name = 'Aarav'. APPEND ls_emp TO lt_emp. ls_emp-empid = 102. ls_emp-name = 'Siya'. APPEND ls_emp TO lt_emp. LOOP AT lt_emp INTO ls_emp. WRITE: / ls_emp-empid, ls_emp-name. ENDLOOP.

πŸ’‘ STANDARD TABLE is default; use SORTED or HASHED for faster lookups.

🎯 Add an IF inside the loop to print only employee 102.


🧩 Chapter 5 – Modularization (Keep Code Clean)


πŸͺ„ Types

  1. Subroutines – local to program

  2. Function Modules – reusable globally (SE37)

  3. Includes – split code into files


πŸ–₯️ Subroutine Example

FORM display_message USING pv_text TYPE string. WRITE: / pv_text. ENDFORM. PERFORM display_message USING 'Welcome back!'.


πŸ–₯️ Function Module Example

CALL FUNCTION 'DATE_COMPUTE_DAY' EXPORTING date = sy-datum IMPORTING day = lv_day.

πŸ’‘ Subroutines = simple local;
      Function Modules = global and managed in SE37.


πŸ“Š Chapter 6 – Reports & Selection Screens


⚙️ Simple Report

PARAMETERS: p_name TYPE string. WRITE: / 'Hello', p_name.


⚙️ Select-Options

SELECT-OPTIONS s_carrid FOR spfli-carrid. SELECT * FROM spfli INTO TABLE @DATA(lt_flights) WHERE carrid IN @s_carrid. LOOP AT lt_flights INTO DATA(ls_flight). WRITE: / ls_flight-carrid, ls_flight-connid. ENDLOOP.

🎯 Add a checkbox and conditionally display data when checked.


πŸ“€ Chapter 7 – ALV Reports


ALV = ABAP List Viewer
→ formatted, interactive output.

DATA: lt_flights TYPE TABLE OF spfli. SELECT * FROM spfli INTO TABLE lt_flights. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_structure_name = 'SPFLI' TABLES t_outtab = lt_flights.

πŸ’‘ Use CL_SALV_TABLE for modern OO ALV reports.


πŸ“¨ Chapter 8 – IDocs & Interfaces


🧠 What is an IDoc?

An Intermediate Document is a structured format for data exchange between SAP systems or external partners.

Flow:

  1. Outbound: SAP → IDoc → Partner

  2. Inbound: Partner → IDoc → SAP

πŸ“˜ Tables – EDIDC (Control), EDID4 (Data), EDIDS (Status)
πŸ“˜ T-Codes – WE02 (View), WE19 (Test)


🧠 Chapter 9 – Debugging & Tips


⚙️ Debugging Basics

  • /h → Start debugger

  • F5/F6/F8 → Step into/over/run

  • Watch variables and tables

  • Use conditional breakpoints

⚠️ Never debug production without authorization.


🎯 Chapter 10 – Quick Cheat Sheet

TaskKeyword / T-Code
Create ProgramSE38
Function ModuleSE37
Data DictionarySE11
Table EntriesSE16N
Debug Mode/h
Transport OrganizerSE10
Object NavigatorSE80

No comments:

Post a Comment