ABAP Select data from SAP table BAMSDDOCU 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 BAMSDDOCU 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 BAMSDDOCU. 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 BAMSDDOCU 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_BAMSDDOCU TYPE STANDARD TABLE OF BAMSDDOCU,
      WA_BAMSDDOCU TYPE BAMSDDOCU,
      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: <BAMSDDOCU> TYPE BAMSDDOCU.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM BAMSDDOCU
*  INTO TABLE @DATA(IT_BAMSDDOCU2).
*--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_BAMSDDOCU INDEX 1 INTO DATA(WA_BAMSDDOCU2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_BAMSDDOCU ASSIGNING <BAMSDDOCU>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<BAMSDDOCU>-NODE00000 = 1.
<BAMSDDOCU>-VBAK00010 = 1.
<BAMSDDOCU>-NODE02300 = 1.
<BAMSDDOCU>-VBAK00015 = 1.
<BAMSDDOCU>-VBAK00016 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_BAMSDDOCU-NODE02400, sy-vline,
WA_BAMSDDOCU-VBAP00002, sy-vline,
WA_BAMSDDOCU-VBAP00010, sy-vline,
WA_BAMSDDOCU-VBEP00002, sy-vline,
WA_BAMSDDOCU-VBEP00010, sy-vline,
WA_BAMSDDOCU-VBEP00011, sy-vline.
ENDLOOP. *Add any further fields from structure WA_BAMSDDOCU 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_BAMSDDOCU 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_BAMSDDOCU INTO WA_BAMSDDOCU. *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_BAMSDDOCU_STR,
NODE00000 TYPE STRING,
VBAK00010 TYPE STRING,
NODE02300 TYPE STRING,
VBAK00015 TYPE STRING,
VBAK00016 TYPE STRING,
NODE02400 TYPE STRING,
VBAP00002 TYPE STRING,
VBAP00010 TYPE STRING,
VBEP00002 TYPE STRING,
VBEP00010 TYPE STRING,
VBEP00011 TYPE STRING,
NODE03700 TYPE STRING,
VBSKL00001 TYPE STRING,
VBSKL00002 TYPE STRING,
VBSKL00003 TYPE STRING,
VBSKL00004 TYPE STRING,
VBSKL00005 TYPE STRING,
VBSKL00006 TYPE STRING,
VBSKL00007 TYPE STRING,
VBSKL00009 TYPE STRING,
VBSKL00010 TYPE STRING,
VBSKL00015 TYPE STRING,
NODE04300 TYPE STRING,
LIKP00006 TYPE STRING,
LIKP00013 TYPE STRING,
LIKP00014 TYPE STRING,
NODE04400 TYPE STRING,
LIPS00002 TYPE STRING,
LIPS00005 TYPE STRING,
NODE08500 TYPE STRING,
VBSKF00001 TYPE STRING,
VBSKF00002 TYPE STRING,
VBSKF00003 TYPE STRING,
VBSKF00004 TYPE STRING,
VBSKF00005 TYPE STRING,
VBSKF00006 TYPE STRING,
VBSKF00007 TYPE STRING,
VBSKF00009 TYPE STRING,
VBSKF00010 TYPE STRING,
VBRK00007 TYPE STRING,
NODE07350 TYPE STRING,
VBRK00025 TYPE STRING,
VBRK00026 TYPE STRING,
NODE07400 TYPE STRING,
VBRP00002 TYPE STRING,
VBRP00004 TYPE STRING,
NODE50000 TYPE STRING,
NODE51000 TYPE STRING,
VBAK00011 TYPE STRING,
VBAP00029 TYPE STRING,
VBRK00036 TYPE STRING,
VBRP00010 TYPE STRING,
COMB00002 TYPE STRING,
COMB00003 TYPE STRING,
KONV00001 TYPE STRING,
KONV00002 TYPE STRING,
KONV00003 TYPE STRING,
KONV00006 TYPE STRING,
COMB00025 TYPE STRING,
COMB00026 TYPE STRING,
KONV00021 TYPE STRING,
KONV00022 TYPE STRING,
KONV00023 TYPE STRING,
T68200003 TYPE STRING,
T68200004 TYPE STRING,
T68200005 TYPE STRING,
T68200071 TYPE STRING,
COND00004 TYPE STRING,
NODE55050 TYPE STRING,
NODE60000 TYPE STRING,
VBAP00036 TYPE STRING,
LIPS00030 TYPE STRING,
VBAP00041 TYPE STRING,
COMB00012 TYPE STRING,
COMB00013 TYPE STRING,
AVTAB00001 TYPE STRING,
NODE68000 TYPE STRING,
VBAK00017 TYPE STRING,
VBAP00026 TYPE STRING,
LIKP00015 TYPE STRING,
LIPS00023 TYPE STRING,
VBRK00019 TYPE STRING,
NODE69000 TYPE STRING,
NODE70000 TYPE STRING,
VBAK00018 TYPE STRING,
VBAP00027 TYPE STRING,
LIKP00016 TYPE STRING,
LIPS00046 TYPE STRING,
VBRK00021 TYPE STRING,
NODE71000 TYPE STRING,
NODE72000 TYPE STRING,
NODE94000 TYPE STRING,
NODE99998 TYPE STRING,
NODE99999 TYPE STRING,END OF T_EKKO_STR. DATA: WA_BAMSDDOCU_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_BAMSDDOCU_STR-NODE00000 sy-vline
WA_BAMSDDOCU_STR-VBAK00010 sy-vline
WA_BAMSDDOCU_STR-NODE02300 sy-vline
WA_BAMSDDOCU_STR-VBAK00015 sy-vline
WA_BAMSDDOCU_STR-VBAK00016 sy-vline
WA_BAMSDDOCU_STR-NODE02400 sy-vline
WA_BAMSDDOCU_STR-VBAP00002 sy-vline
WA_BAMSDDOCU_STR-VBAP00010 sy-vline
WA_BAMSDDOCU_STR-VBEP00002 sy-vline
WA_BAMSDDOCU_STR-VBEP00010 sy-vline
WA_BAMSDDOCU_STR-VBEP00011 sy-vline
WA_BAMSDDOCU_STR-NODE03700 sy-vline
WA_BAMSDDOCU_STR-VBSKL00001 sy-vline
WA_BAMSDDOCU_STR-VBSKL00002 sy-vline
WA_BAMSDDOCU_STR-VBSKL00003 sy-vline
WA_BAMSDDOCU_STR-VBSKL00004 sy-vline
WA_BAMSDDOCU_STR-VBSKL00005 sy-vline
WA_BAMSDDOCU_STR-VBSKL00006 sy-vline
WA_BAMSDDOCU_STR-VBSKL00007 sy-vline
WA_BAMSDDOCU_STR-VBSKL00009 sy-vline
WA_BAMSDDOCU_STR-VBSKL00010 sy-vline
WA_BAMSDDOCU_STR-VBSKL00015 sy-vline
WA_BAMSDDOCU_STR-NODE04300 sy-vline
WA_BAMSDDOCU_STR-LIKP00006 sy-vline
WA_BAMSDDOCU_STR-LIKP00013 sy-vline
WA_BAMSDDOCU_STR-LIKP00014 sy-vline
WA_BAMSDDOCU_STR-NODE04400 sy-vline
WA_BAMSDDOCU_STR-LIPS00002 sy-vline
WA_BAMSDDOCU_STR-LIPS00005 sy-vline
WA_BAMSDDOCU_STR-NODE08500 sy-vline
WA_BAMSDDOCU_STR-VBSKF00001 sy-vline
WA_BAMSDDOCU_STR-VBSKF00002 sy-vline
WA_BAMSDDOCU_STR-VBSKF00003 sy-vline
WA_BAMSDDOCU_STR-VBSKF00004 sy-vline
WA_BAMSDDOCU_STR-VBSKF00005 sy-vline
WA_BAMSDDOCU_STR-VBSKF00006 sy-vline
WA_BAMSDDOCU_STR-VBSKF00007 sy-vline
WA_BAMSDDOCU_STR-VBSKF00009 sy-vline
WA_BAMSDDOCU_STR-VBSKF00010 sy-vline
WA_BAMSDDOCU_STR-VBRK00007 sy-vline
WA_BAMSDDOCU_STR-NODE07350 sy-vline
WA_BAMSDDOCU_STR-VBRK00025 sy-vline
WA_BAMSDDOCU_STR-VBRK00026 sy-vline
WA_BAMSDDOCU_STR-NODE07400 sy-vline
WA_BAMSDDOCU_STR-VBRP00002 sy-vline
WA_BAMSDDOCU_STR-VBRP00004 sy-vline
WA_BAMSDDOCU_STR-NODE50000 sy-vline
WA_BAMSDDOCU_STR-NODE51000 sy-vline
WA_BAMSDDOCU_STR-VBAK00011 sy-vline
WA_BAMSDDOCU_STR-VBAP00029 sy-vline
WA_BAMSDDOCU_STR-VBRK00036 sy-vline
WA_BAMSDDOCU_STR-VBRP00010 sy-vline
WA_BAMSDDOCU_STR-COMB00002 sy-vline
WA_BAMSDDOCU_STR-COMB00003 sy-vline
WA_BAMSDDOCU_STR-KONV00001 sy-vline
WA_BAMSDDOCU_STR-KONV00002 sy-vline
WA_BAMSDDOCU_STR-KONV00003 sy-vline
WA_BAMSDDOCU_STR-KONV00006 sy-vline
WA_BAMSDDOCU_STR-COMB00025 sy-vline
WA_BAMSDDOCU_STR-COMB00026 sy-vline
WA_BAMSDDOCU_STR-KONV00021 sy-vline
WA_BAMSDDOCU_STR-KONV00022 sy-vline
WA_BAMSDDOCU_STR-KONV00023 sy-vline
WA_BAMSDDOCU_STR-T68200003 sy-vline
WA_BAMSDDOCU_STR-T68200004 sy-vline
WA_BAMSDDOCU_STR-T68200005 sy-vline
WA_BAMSDDOCU_STR-T68200071 sy-vline
WA_BAMSDDOCU_STR-COND00004 sy-vline
WA_BAMSDDOCU_STR-NODE55050 sy-vline
WA_BAMSDDOCU_STR-NODE60000 sy-vline
WA_BAMSDDOCU_STR-VBAP00036 sy-vline
WA_BAMSDDOCU_STR-LIPS00030 sy-vline
WA_BAMSDDOCU_STR-VBAP00041 sy-vline
WA_BAMSDDOCU_STR-COMB00012 sy-vline
WA_BAMSDDOCU_STR-COMB00013 sy-vline
WA_BAMSDDOCU_STR-AVTAB00001 sy-vline
WA_BAMSDDOCU_STR-NODE68000 sy-vline
WA_BAMSDDOCU_STR-VBAK00017 sy-vline
WA_BAMSDDOCU_STR-VBAP00026 sy-vline
WA_BAMSDDOCU_STR-LIKP00015 sy-vline
WA_BAMSDDOCU_STR-LIPS00023 sy-vline
WA_BAMSDDOCU_STR-VBRK00019 sy-vline
WA_BAMSDDOCU_STR-NODE69000 sy-vline
WA_BAMSDDOCU_STR-NODE70000 sy-vline
WA_BAMSDDOCU_STR-VBAK00018 sy-vline
WA_BAMSDDOCU_STR-VBAP00027 sy-vline
WA_BAMSDDOCU_STR-LIKP00016 sy-vline
WA_BAMSDDOCU_STR-LIPS00046 sy-vline
WA_BAMSDDOCU_STR-VBRK00021 sy-vline
WA_BAMSDDOCU_STR-NODE71000 sy-vline
WA_BAMSDDOCU_STR-NODE72000 sy-vline
WA_BAMSDDOCU_STR-NODE94000 sy-vline
WA_BAMSDDOCU_STR-NODE99998 sy-vline
WA_BAMSDDOCU_STR-NODE99999 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.