An Interactive Report in ABAP is a report that lets users interact with the list (usually by clicking on a line or hotspot). When the user clicks, the program reacts to the event and shows secondary details (like drilling down). Classic mechanism: ...
SAP EWM Help Latest Questions
SAP R/3 is based on a 3-tier client-server architecture, which separates presentation, application, and database layers. This design provides scalability, flexibility, and better performance. Three-Tier Architecture: 1. Presentation Layer (Client Tier) Interface between the user and SAP system Usually a SAP ...
RFC (Remote Function Call) Definition: A communication method that allows one SAP system (or external system) to call a function module in another SAP system. Nature: Technical interface (low-level). Can be synchronous (sRFC), asynchronous (aRFC), transactional (tRFC), or queued (qRFC). Usage: Purely for function/module execution between ...
In SAP, an enhancement refers to a mechanism that allows you to add or change standard SAP behavior without modifying the original SAP code. Enhancements are essential for implementing custom business logic while keeping the SAP standard upgradeable and maintainable. Purpose ...
Joins combine rows from two or more tables based on a related column, usually a key field. ABAP supports various join types (INNER JOIN, LEFT OUTER JOIN, etc.) mostly used inside Open SQL queries. How to Use Joins: SELECT a~vbeln, a~erdat, b~posnr, b~matnr
Scenario: Business wants to run a Sales Order Report (ZSD_SALES_ORDER_REPORT) every night automatically in the background. Instead of manual execution, a background job is scheduled from the ABAP program. CODE: REPORT z_schedule_bg_job. DATA: lv_jobname TYPE tbtcjob-jobname VALUE ‘Z_SALES_ORDER_JOB’, lv_jobcount TYPE tbtcjob-jobcount, lv_subrc TYPE sy-subrc. PARAMETERS: p_variant ...
Hierarchical ALV allows you to display header–item relationships (like parent–child data). Example: One material (MARA) is the header, and its plant details (MARC) are the items. Useful for showing 1:N relationships in a single ALV output. In the SAP function module world, this ...
Feature List Report Grid Report (ALV) Output Format Plain text list Interactive grid/table User Interactivity Low High Sorting/Filtering Manual (if needed) Built-in Totals/Subtotals Not available Available Export Options Manual Export to Excel, etc. Development Effort Low Medium to High Modern UI Experience No Yes
Program Type Code Purpose Executable? Typical Usage Executable 1 Reports, standalone programs ✅ Yes Reports, jobs, selection screens Include I Reusable code ❌ No Shared FORM routines, definitions Module Pool M Dialog screens, GUI transactions ✅ Yes Custom SAP GUI apps Function Grp F Group of function modules ❌ No BAPIs, reusable logic Subroutine S Collection of FORM routines ❌ No Old-style code reuse Class Pool K Global class definitions ❌ No OO programming, ...
You can build a new internal table with only selected entries and fields like this: *&---------------------------------------------------------------------* *& Report ZREP_LCLCLASS *&---------------------------------------------------------------------* *& Demonstrates modern ABAP syntax: REDUCE, FILTER, FOR expressions *&---------------------------------------------------------------------* REPORT zrep_lclclass. *---------------------------- * Example 1: REDUCE Operator *---------------------------- TYPES: BEGIN OF ty_order, id TYPE i, amount TYPE i, END OF ty_order. DATA: lt_orders TYPE STANDARD TABLE OF ty_order WITH EMPTY KEY, lv_total TYPE i. lt_orders = VALUE #( ( id = 1 amount = 100 ) ( id = 2 amount = 250 ) ( id = 3 amount = 150 ) ). lv_total = REDUCE i( INIT sum = 0 FOR order IN lt_orders NEXT sum = sum + order-amount ). WRITE: / '--- REDUCE Example ---', / 'Total Amount:', lv_total. *---------------------------- * Example 2: FILTER Operator *---------------------------- TYPES: BEGIN OF ty_user, name TYPE string, status TYPE string, END OF ty_user. DATA: lt_users TYPE STANDARD TABLE OF ty_user WITH EMPTY KEY, lt_active_users TYPE STANDARD TABLE OF ty_user WITH EMPTY KEY. lt_users = VALUE #( ( name = 'Alice' status = 'ACTIVE' ) ( name = 'Bob' status = 'INACTIVE' ) ( name = 'Charlie' status = 'ACTIVE' ) ). lt_active_users = FILTER #( lt_users WHERE status = 'ACTIVE' ). WRITE: / '--- FILTER Example ---'. LOOP AT lt_active_users INTO DATA(user). WRITE: / user-name, user-status. ENDLOOP. *------------------------------------------------------ * Example 3: FOR Expression - Extract Specific Fields *------------------------------------------------------ DATA: lt_names TYPE STANDARD TABLE OF string WITH EMPTY KEY. lt_names = VALUE string_table( FOR user IN lt_users WHERE ( status = 'ACTIVE' ) ( user-name ) ). WRITE: / '--- FOR Expression Example ---'. LOOP AT lt_names INTO DATA(name). WRITE: / name. ENDLOOP. This creates a new string table containing only the names of users whose status = 'ACTIVE'—short, clean, and readable. Output: — ...