ABAP Select data from SAP table P08P1_CLSA2 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 P08P1_CLSA2 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 P08P1_CLSA2. 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 P08P1_CLSA2 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_P08P1_CLSA2 TYPE STANDARD TABLE OF P08P1_CLSA2,
      WA_P08P1_CLSA2 TYPE P08P1_CLSA2,
      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: <P08P1_CLSA2> TYPE P08P1_CLSA2.

*Process all fields in table header/work area as string values
  PERFORM process_as_string_field_values CHANGING wa_P08P1_CLSA2.

SELECT *
*restrict ABAP select to first 10 rows
 UP TO 10 ROWS      
  FROM P08P1_CLSA2
  INTO TABLE IT_P08P1_CLSA2.

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM P08P1_CLSA2
*  INTO TABLE @DATA(IT_P08P1_CLSA22).
*--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_P08P1_CLSA2 INDEX 1 INTO DATA(WA_P08P1_CLSA22).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_P08P1_CLSA2 ASSIGNING <P08P1_CLSA2>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<P08P1_CLSA2>-RECTP = 1.
<P08P1_CLSA2>-NINUM = 1.
<P08P1_CLSA2>-FILL1 = 1.
<P08P1_CLSA2>-KEY2 = 1.
<P08P1_CLSA2>-SNAME = 1.
ENDLOOP.

LOOP AT IT_P08P1_CLSA2 INTO WA_P08P1_CLSA2.
*Write horizonal line to screen report.
  WRITE:/ sy-uline.

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_P08P1_CLSA2-FNAME, sy-vline,
WA_P08P1_CLSA2-SCHEM, sy-vline,
WA_P08P1_CLSA2-STATU, sy-vline,
WA_P08P1_CLSA2-SEX, sy-vline,
WA_P08P1_CLSA2-CLASS, sy-vline,
WA_P08P1_CLSA2-DOB, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P08P1_CLSA2 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_P08P1_CLSA2 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_P08P1_CLSA2 INTO WA_P08P1_CLSA2. *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_P08P1_CLSA2_STR,
RECTP TYPE STRING,
NINUM TYPE STRING,
FILL1 TYPE STRING,
KEY2 TYPE STRING,
SNAME TYPE STRING,
FNAME TYPE STRING,
SCHEM TYPE STRING,
STATU TYPE STRING,
SEX TYPE STRING,
CLASS TYPE STRING,
DOB TYPE STRING,
DJEMP TYPE STRING,
DJFUN TYPE STRING,
LSDAT TYPE STRING,
LOCAT TYPE STRING,
FILL2 TYPE STRING,
DSPEN TYPE STRING,
DOSER TYPE STRING,
FILL3 TYPE STRING,
TITLE TYPE STRING,
FILL4 TYPE STRING,
NILET TYPE STRING,
REDNI TYPE STRING,
PTIND TYPE STRING,
CRATE TYPE STRING,
DLEFT TYPE STRING,
LEFTR TYPE STRING,
FILLC TYPE STRING,
KEY3 TYPE STRING,
KEY4 TYPE STRING,
SPDT1 TYPE STRING,
SPDT2 TYPE STRING,
SPDT3 TYPE STRING,
SPIND TYPE STRING,
PTPER TYPE STRING,
NOTUS TYPE STRING,
LADD1 TYPE STRING,
LADD2 TYPE STRING,
LADD3 TYPE STRING,
LADD4 TYPE STRING,
LADD5 TYPE STRING,
LPTCD TYPE STRING,
SPNAM TYPE STRING,
SPV TYPE STRING,
SPKID TYPE STRING,
SPMDT TYPE STRING,
SPV2 TYPE STRING,
SPID1 TYPE STRING,
SPID2 TYPE STRING,
SPGEN TYPE STRING,
CADD1 TYPE STRING,
CADD2 TYPE STRING,
CADD3 TYPE STRING,
CADD4 TYPE STRING,
CADD5 TYPE STRING,
CPTCD TYPE STRING,
FILL5 TYPE STRING,
S1SDT TYPE STRING,
S1EDT TYPE STRING,
S1ADJ TYPE STRING,
S1ID1 TYPE STRING,
S1ID2 TYPE STRING,
FILL6 TYPE STRING,
S1SI1 TYPE STRING,
S1SI2 TYPE STRING,
S1SI3 TYPE STRING,
FILL7 TYPE STRING,
S2SDT TYPE STRING,
S2EDT TYPE STRING,
S2ADJ TYPE STRING,
S2ID1 TYPE STRING,
S2ID2 TYPE STRING,
FILL8 TYPE STRING,
S2SI1 TYPE STRING,
S2SI2 TYPE STRING,
S2SI3 TYPE STRING,
FILL9 TYPE STRING,
SBSDT TYPE STRING,
SBEDT TYPE STRING,
SBHR1 TYPE STRING,
SBHR2 TYPE STRING,
SBID1 TYPE STRING,
SBID2 TYPE STRING,
SBID3 TYPE STRING,
FILLA TYPE STRING,
SBGEN TYPE STRING,
DMEMC TYPE STRING,
AMEMC TYPE STRING,
DSTRC TYPE STRING,
ASTRC TYPE STRING,
DNICC TYPE STRING,
ANICC TYPE STRING,
DACTC TYPE STRING,
AACTC TYPE STRING,
DPENC TYPE STRING,
APENC TYPE STRING,
DSIX TYPE STRING,
ASIX TYPE STRING,
S2DAT TYPE STRING,
S2AM1 TYPE STRING,
S2AM2 TYPE STRING,
S2TYP TYPE STRING,
S3DAT TYPE STRING,
S3AM1 TYPE STRING,
S3AM2 TYPE STRING,
S3TYP TYPE STRING,
S4DAT TYPE STRING,
S4AM1 TYPE STRING,
S4AM2 TYPE STRING,
S4AM3 TYPE STRING,
S4AM4 TYPE STRING,
S4TYP TYPE STRING,
FILLB TYPE STRING,END OF T_EKKO_STR. DATA: WA_P08P1_CLSA2_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_P08P1_CLSA2_STR-RECTP sy-vline
WA_P08P1_CLSA2_STR-NINUM sy-vline
WA_P08P1_CLSA2_STR-FILL1 sy-vline
WA_P08P1_CLSA2_STR-KEY2 sy-vline
WA_P08P1_CLSA2_STR-SNAME sy-vline
WA_P08P1_CLSA2_STR-FNAME sy-vline
WA_P08P1_CLSA2_STR-SCHEM sy-vline
WA_P08P1_CLSA2_STR-STATU sy-vline
WA_P08P1_CLSA2_STR-SEX sy-vline
WA_P08P1_CLSA2_STR-CLASS sy-vline
WA_P08P1_CLSA2_STR-DOB sy-vline
WA_P08P1_CLSA2_STR-DJEMP sy-vline
WA_P08P1_CLSA2_STR-DJFUN sy-vline
WA_P08P1_CLSA2_STR-LSDAT sy-vline
WA_P08P1_CLSA2_STR-LOCAT sy-vline
WA_P08P1_CLSA2_STR-FILL2 sy-vline
WA_P08P1_CLSA2_STR-DSPEN sy-vline
WA_P08P1_CLSA2_STR-DOSER sy-vline
WA_P08P1_CLSA2_STR-FILL3 sy-vline
WA_P08P1_CLSA2_STR-TITLE sy-vline
WA_P08P1_CLSA2_STR-FILL4 sy-vline
WA_P08P1_CLSA2_STR-NILET sy-vline
WA_P08P1_CLSA2_STR-REDNI sy-vline
WA_P08P1_CLSA2_STR-PTIND sy-vline
WA_P08P1_CLSA2_STR-CRATE sy-vline
WA_P08P1_CLSA2_STR-DLEFT sy-vline
WA_P08P1_CLSA2_STR-LEFTR sy-vline
WA_P08P1_CLSA2_STR-FILLC sy-vline
WA_P08P1_CLSA2_STR-KEY3 sy-vline
WA_P08P1_CLSA2_STR-KEY4 sy-vline
WA_P08P1_CLSA2_STR-SPDT1 sy-vline
WA_P08P1_CLSA2_STR-SPDT2 sy-vline
WA_P08P1_CLSA2_STR-SPDT3 sy-vline
WA_P08P1_CLSA2_STR-SPIND sy-vline
WA_P08P1_CLSA2_STR-PTPER sy-vline
WA_P08P1_CLSA2_STR-NOTUS sy-vline
WA_P08P1_CLSA2_STR-LADD1 sy-vline
WA_P08P1_CLSA2_STR-LADD2 sy-vline
WA_P08P1_CLSA2_STR-LADD3 sy-vline
WA_P08P1_CLSA2_STR-LADD4 sy-vline
WA_P08P1_CLSA2_STR-LADD5 sy-vline
WA_P08P1_CLSA2_STR-LPTCD sy-vline
WA_P08P1_CLSA2_STR-SPNAM sy-vline
WA_P08P1_CLSA2_STR-SPV sy-vline
WA_P08P1_CLSA2_STR-SPKID sy-vline
WA_P08P1_CLSA2_STR-SPMDT sy-vline
WA_P08P1_CLSA2_STR-SPV2 sy-vline
WA_P08P1_CLSA2_STR-SPID1 sy-vline
WA_P08P1_CLSA2_STR-SPID2 sy-vline
WA_P08P1_CLSA2_STR-SPGEN sy-vline
WA_P08P1_CLSA2_STR-CADD1 sy-vline
WA_P08P1_CLSA2_STR-CADD2 sy-vline
WA_P08P1_CLSA2_STR-CADD3 sy-vline
WA_P08P1_CLSA2_STR-CADD4 sy-vline
WA_P08P1_CLSA2_STR-CADD5 sy-vline
WA_P08P1_CLSA2_STR-CPTCD sy-vline
WA_P08P1_CLSA2_STR-FILL5 sy-vline
WA_P08P1_CLSA2_STR-S1SDT sy-vline
WA_P08P1_CLSA2_STR-S1EDT sy-vline
WA_P08P1_CLSA2_STR-S1ADJ sy-vline
WA_P08P1_CLSA2_STR-S1ID1 sy-vline
WA_P08P1_CLSA2_STR-S1ID2 sy-vline
WA_P08P1_CLSA2_STR-FILL6 sy-vline
WA_P08P1_CLSA2_STR-S1SI1 sy-vline
WA_P08P1_CLSA2_STR-S1SI2 sy-vline
WA_P08P1_CLSA2_STR-S1SI3 sy-vline
WA_P08P1_CLSA2_STR-FILL7 sy-vline
WA_P08P1_CLSA2_STR-S2SDT sy-vline
WA_P08P1_CLSA2_STR-S2EDT sy-vline
WA_P08P1_CLSA2_STR-S2ADJ sy-vline
WA_P08P1_CLSA2_STR-S2ID1 sy-vline
WA_P08P1_CLSA2_STR-S2ID2 sy-vline
WA_P08P1_CLSA2_STR-FILL8 sy-vline
WA_P08P1_CLSA2_STR-S2SI1 sy-vline
WA_P08P1_CLSA2_STR-S2SI2 sy-vline
WA_P08P1_CLSA2_STR-S2SI3 sy-vline
WA_P08P1_CLSA2_STR-FILL9 sy-vline
WA_P08P1_CLSA2_STR-SBSDT sy-vline
WA_P08P1_CLSA2_STR-SBEDT sy-vline
WA_P08P1_CLSA2_STR-SBHR1 sy-vline
WA_P08P1_CLSA2_STR-SBHR2 sy-vline
WA_P08P1_CLSA2_STR-SBID1 sy-vline
WA_P08P1_CLSA2_STR-SBID2 sy-vline
WA_P08P1_CLSA2_STR-SBID3 sy-vline
WA_P08P1_CLSA2_STR-FILLA sy-vline
WA_P08P1_CLSA2_STR-SBGEN sy-vline
WA_P08P1_CLSA2_STR-DMEMC sy-vline
WA_P08P1_CLSA2_STR-AMEMC sy-vline
WA_P08P1_CLSA2_STR-DSTRC sy-vline
WA_P08P1_CLSA2_STR-ASTRC sy-vline
WA_P08P1_CLSA2_STR-DNICC sy-vline
WA_P08P1_CLSA2_STR-ANICC sy-vline
WA_P08P1_CLSA2_STR-DACTC sy-vline
WA_P08P1_CLSA2_STR-AACTC sy-vline
WA_P08P1_CLSA2_STR-DPENC sy-vline
WA_P08P1_CLSA2_STR-APENC sy-vline
WA_P08P1_CLSA2_STR-DSIX sy-vline
WA_P08P1_CLSA2_STR-ASIX sy-vline
WA_P08P1_CLSA2_STR-S2DAT sy-vline
WA_P08P1_CLSA2_STR-S2AM1 sy-vline
WA_P08P1_CLSA2_STR-S2AM2 sy-vline
WA_P08P1_CLSA2_STR-S2TYP sy-vline
WA_P08P1_CLSA2_STR-S3DAT sy-vline
WA_P08P1_CLSA2_STR-S3AM1 sy-vline
WA_P08P1_CLSA2_STR-S3AM2 sy-vline
WA_P08P1_CLSA2_STR-S3TYP sy-vline
WA_P08P1_CLSA2_STR-S4DAT sy-vline
WA_P08P1_CLSA2_STR-S4AM1 sy-vline
WA_P08P1_CLSA2_STR-S4AM2 sy-vline
WA_P08P1_CLSA2_STR-S4AM3 sy-vline
WA_P08P1_CLSA2_STR-S4AM4 sy-vline
WA_P08P1_CLSA2_STR-S4TYP sy-vline
WA_P08P1_CLSA2_STR-FILLB sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.