ABAP Select data from SAP table J_7L_SMARTFORM_FIELDNAMES into internal table
Get Example source ABAP code based on a different SAP table
Below is a number of ABAP code snippets to demonstrate how to select data from SAP J_7L_SMARTFORM_FIELDNAMES table and store it within an internal table, including using the newer @DATA inline declaration methods. It also shows you various ways to process this data using ABAP work area, inline declaration or field symbols including executing all the relevant CONVERSION_EXIT routines specific to J_7L_SMARTFORM_FIELDNAMES. See here for more generic Select statement tips.
Sometimes data within SAP is stored within the database table in a different format to what it is displayed to the user. These input/output conversation FM routines are what translates the data between the two formats.
There is also a full declaration of the J_7L_SMARTFORM_FIELDNAMES table where each field has a char/string type for you to simply copy and paste. This allows you to use processing that is only available to these field types such as the CONCATENATE statement.
DATA: IT_J_7L_SMARTFORM_FIELDNAMES TYPE STANDARD TABLE OF J_7L_SMARTFORM_FIELDNAMES, WA_J_7L_SMARTFORM_FIELDNAMES TYPE J_7L_SMARTFORM_FIELDNAMES, GD_STR TYPE STRING. DATA: lo_typedescr type REF TO cl_abap_typedescr. DATA: lv_fieldname type fieldname. FIELD-SYMBOLS: <FIELD> TYPE any. FIELD-SYMBOLS: <J_7L_SMARTFORM_FIELDNAMES> TYPE J_7L_SMARTFORM_FIELDNAMES. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_J_7L_SMARTFORM_FIELDNAMES. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM J_7L_SMARTFORM_FIELDNAMES INTO TABLE IT_J_7L_SMARTFORM_FIELDNAMES. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM J_7L_SMARTFORM_FIELDNAMES * INTO TABLE @DATA(IT_J_7L_SMARTFORM_FIELDNAMES2). *--Further methods of using ABAP code to select data from SAP database tables *You can also declare the header/work area using the in-line DATA declaration method READ TABLE IT_J_7L_SMARTFORM_FIELDNAMES INDEX 1 INTO DATA(WA_J_7L_SMARTFORM_FIELDNAMES2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_J_7L_SMARTFORM_FIELDNAMES ASSIGNING <J_7L_SMARTFORM_FIELDNAMES>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<J_7L_SMARTFORM_FIELDNAMES>-J_7LENTNAM = 1.
<J_7L_SMARTFORM_FIELDNAMES>-J_7LMELDUNGSTITEL = 1.
<J_7L_SMARTFORM_FIELDNAMES>-BUKRS = 1.
<J_7L_SMARTFORM_FIELDNAMES>-ORT01 = 1.
<J_7L_SMARTFORM_FIELDNAMES>-J_7LAUDITOR = 1.
ENDLOOP. LOOP AT IT_J_7L_SMARTFORM_FIELDNAMES INTO WA_J_7L_SMARTFORM_FIELDNAMES. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_J_7L_SMARTFORM_FIELDNAMES-J_7LZNAME, sy-vline,
WA_J_7L_SMARTFORM_FIELDNAMES-BUDAT, sy-vline,
WA_J_7L_SMARTFORM_FIELDNAMES-SIGNATUR, sy-vline,
WA_J_7L_SMARTFORM_FIELDNAMES-J_7LVNR_A, sy-vline,
WA_J_7L_SMARTFORM_FIELDNAMES-WAERK, sy-vline,
WA_J_7L_SMARTFORM_FIELDNAMES-J_7LKPROZ, sy-vline.
ENDLOOP. *Add any further fields from structure WA_J_7L_SMARTFORM_FIELDNAMES you want to display... WRITE:/ sy-uline. * Aternatively use generic code to Write field values (and NAME) to screen report DO. ASSIGN COMPONENT sy-index OF STRUCTURE wa_J_7L_SMARTFORM_FIELDNAMES TO <field>. IF sy-subrc <> 0. EXIT. ENDIF. WRITE:/ 'Field Value', <field>, sy-vline. gd_str = <field> . lo_typedescr ?= CL_ABAP_DATADESCR=>DESCRIBE_BY_DATA( <field> ). lv_fieldname = lo_typedescr->GET_RELATIVE_NAME( ). WRITE:/ 'Field Name', lv_fieldname. ENDDO. *Redo loop but convert all fields from internal to out value LOOP AT IT_J_7L_SMARTFORM_FIELDNAMES INTO WA_J_7L_SMARTFORM_FIELDNAMES. *Write horizonal line to screen report. WRITE:/ sy-uline. *Convert all fields to display/output versions using conversion routines PERFORM convert_all_field_values CHANGING wa_EKKO. ENDLOOP. *&---------------------------------------------------------------------* *& Form convert_all_field_values *&---------------------------------------------------------------------* FORM convert_all_field_values CHANGING p_EKKO LIKE wa_EKKO. DATA: ld_input(1000) TYPE c, ld_output(1000) TYPE C.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_J_7L_SMARTFORM_FIELDNAMES_STR,
J_7LENTNAM TYPE STRING,
J_7LMELDUNGSTITEL TYPE STRING,
BUKRS TYPE STRING,
ORT01 TYPE STRING,
J_7LAUDITOR TYPE STRING,
J_7LZNAME TYPE STRING,
BUDAT TYPE STRING,
SIGNATUR TYPE STRING,
J_7LVNR_A TYPE STRING,
WAERK TYPE STRING,
J_7LKPROZ TYPE STRING,
STENR TYPE STRING,
STCEG TYPE STRING,
J_7LSOKOA TYPE STRING,
J_7LSTOFE TYPE STRING,
J_7LRSTKXT TYPE STRING,
J_7LRGEW TYPE STRING,
J_7LSTPE TYPE STRING,
KPEIN TYPE STRING,
KMEIN TYPE STRING,
GEWEI TYPE STRING,
J_7LNETWR TYPE STRING,
J_7LVFLKL TYPE STRING,
J_7LVFLST TYPE STRING,
SUM1SUM TYPE STRING,
SUM2SUM TYPE STRING,
SUM3SUM TYPE STRING,
SUM4SUM TYPE STRING,
SUM5SUM TYPE STRING,
SUM6SUM TYPE STRING,
SUM7SUM TYPE STRING,
SUM8SUM TYPE STRING,
SUM9SUM TYPE STRING,
SUM10SUM TYPE STRING,END OF T_EKKO_STR. DATA: WA_J_7L_SMARTFORM_FIELDNAMES_STR type T_EKKO_STR. DATA: ld_text TYPE string. LOOP AT IT_EKKO INTO WA_EKKO. MOVE-CORRESPONDING wa_EKKO TO WA_EKKO_STR. CONCATENATE: sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LENTNAM sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LMELDUNGSTITEL sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-BUKRS sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-ORT01 sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LAUDITOR sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LZNAME sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-BUDAT sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-SIGNATUR sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LVNR_A sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-WAERK sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LKPROZ sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-STENR sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-STCEG sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LSOKOA sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LSTOFE sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LRSTKXT sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LRGEW sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LSTPE sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-KPEIN sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-KMEIN sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-GEWEI sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LNETWR sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LVFLKL sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-J_7LVFLST sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-SUM1SUM sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-SUM2SUM sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-SUM3SUM sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-SUM4SUM sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-SUM5SUM sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-SUM6SUM sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-SUM7SUM sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-SUM8SUM sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-SUM9SUM sy-vline
WA_J_7L_SMARTFORM_FIELDNAMES_STR-SUM10SUM sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.