This replaces the need for LOOP AT, IF, and APPEND all in one line—powerful and readable. *&---------------------------------------------------------------------* *& Report ZREP_LCLCLASS *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zrep_lclclass. 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_names TYPE STANDARD TABLE OF string WITH EMPTY KEY. lt_users = VALUE #( ( name = 'Alice' status = 'ACTIVE' ) ( name = 'Bob' status = 'INACTIVE' ) ( name = 'Charlie' status = 'ACTIVE' ) ). lt_names = VALUE string_table( FOR user IN lt_users WHERE ( status = 'ACTIVE' ) ( user-name ) ). LOOP AT lt_names INTO DATA(name). WRITE: / name. ENDLOOP. Output: Alice Charlie
SAP EWM Help Latest Questions
A class can implement multiple interfaces at once, which allows you to combine functionality from many sources. Example: ” First interface INTERFACE if_flyable. METHODS: fly. ENDINTERFACE. ” Second interface INTERFACE if_swimmable. METHODS: swim. ENDINTERFACE. ” A class implementing multiple interfaces CLASS cl_duck DEFINITION. PUBLIC ...
Abstract Class Defined with CLASS ... DEFINITION ABSTRACT. Can have: Attributes (data) Concrete methods (implemented) Abstract methods (declared but not implemented — must be redefined in subclass) Cannot be instantiated directly — only subclasses can be created. Supports inheritance (a subclass inherits implementation + attributes). Can implement interfaces ...
FIELD-SYMBOLS are like pointers in other programming languages. They don’t store data themselves but rather point to memory locations dynamically. This is especially useful when you don’t know the field or structure you’re working with until runtime. Step 1: Declare an ...
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: — ...
Synchronous RFC (sRFC) Default type when you call a function module via RFC. The caller program waits until the remote system has completed the function execution and returned the result. Example use: Real-time data retrieval (e.g., fetching stock from another SAP system). FM execution: ...
*&———————————————————————* *& Report ZTEST_BDC_FI01_1 *& *&———————————————————————* *& *& *&———————————————————————* REPORT ztest_bdc_fi01_1. types: begin of ty_error, msg type string, lineno type i, end of ty_error. * Batchinputdata of single transaction DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE. PARAMETERS : p_data TYPE ibipparms-path. DATA : it_tab TYPE truxs_t_text_data, lv_filename TYPE rlgrap-filename, it_msg type table of bdcmsgcoll, lv_msg type string, lt_error type table of ty_error, ls_error type ty_error. TYPES: BEGIN OF record, * data element: BANKS banks(003), * data element: BANKK bankl(015), * data element: BANKA banka(060), * data element: REGIO provz(003), * data element: ORT01_GP ort01(035), * data element: BRNCH brnch(040), ** data element: BANKA * banka_007(060), ** data element: REGIO * provz_008(003), ** data element: ORT01_GP * ort01_009(035), ** data element: BRNCH * brnch_010(040), END OF record. DATA: lt_record TYPE STANDARD TABLE OF record,
Convert any structure to Internal table format, Field text and values data: stru_descr type ref to cl_abap_structdescr. data: dummy. data: data_structure type abap_abstypename. data: lt_components type abap_compdescr_tab. data: ls_email_data ...
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 ...
1. Primary Index Created automatically when you create a table in SE11. Based on the primary key fields of the table. Always unique. Cannot be deleted. Used whenever you do a SELECT ... WHERE on the primary key. Example:For table MARA, the primary index is ...