ABAP Select data from SAP table BBP_ATTR_F1 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 BBP_ATTR_F1 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 BBP_ATTR_F1. 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 BBP_ATTR_F1 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_BBP_ATTR_F1 TYPE STANDARD TABLE OF BBP_ATTR_F1,
      WA_BBP_ATTR_F1 TYPE BBP_ATTR_F1,
      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: <BBP_ATTR_F1> TYPE BBP_ATTR_F1.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM BBP_ATTR_F1
*  INTO TABLE @DATA(IT_BBP_ATTR_F12).
*--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_BBP_ATTR_F1 INDEX 1 INTO DATA(WA_BBP_ATTR_F12).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_BBP_ATTR_F1 ASSIGNING <BBP_ATTR_F1>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<BBP_ATTR_F1>-ACC_FUND = 1.
<BBP_ATTR_F1>-ACC_GRANT = 1.
<BBP_ATTR_F1>-ACC_FCAREA = 1.
<BBP_ATTR_F1>-ACC_FCENTR = 1.
<BBP_ATTR_F1>-ACC_CMITEM = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_BBP_ATTR_F1-ACS, sy-vline,
WA_BBP_ATTR_F1-AN1, sy-vline,
WA_BBP_ATTR_F1-AN2, sy-vline,
WA_BBP_ATTR_F1-ANK, sy-vline,
WA_BBP_ATTR_F1-ANR, sy-vline,
WA_BBP_ATTR_F1-APO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_BBP_ATTR_F1 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_BBP_ATTR_F1 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_BBP_ATTR_F1 INTO WA_BBP_ATTR_F1. *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.

*Conversion exit ALPHA, internal->external for field ACS CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BBP_ATTR_F1-ACS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BBP_ATTR_F1-ACS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field SYS CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BBP_ATTR_F1-SYS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BBP_ATTR_F1-SYS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field VENDOR_ACS CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BBP_ATTR_F1-VENDOR_ACS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BBP_ATTR_F1-VENDOR_ACS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field VENDOR_SYS CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BBP_ATTR_F1-VENDOR_SYS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BBP_ATTR_F1-VENDOR_SYS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field ADDR_SHIPT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BBP_ATTR_F1-ADDR_SHIPT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BBP_ATTR_F1-ADDR_SHIPT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field ADDR_BILLT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BBP_ATTR_F1-ADDR_BILLT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BBP_ATTR_F1-ADDR_BILLT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field PM_GL_ACCT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BBP_ATTR_F1-PM_GL_ACCT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BBP_ATTR_F1-PM_GL_ACCT.
WRITE:/ 'New Value:', ld_input.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_BBP_ATTR_F1_STR,
ACC_FUND TYPE STRING,
ACC_GRANT TYPE STRING,
ACC_FCAREA TYPE STRING,
ACC_FCENTR TYPE STRING,
ACC_CMITEM TYPE STRING,
ACS TYPE STRING,
AN1 TYPE STRING,
AN2 TYPE STRING,
ANK TYPE STRING,
ANR TYPE STRING,
APO TYPE STRING,
AUN TYPE STRING,
BSA TYPE STRING,
BUK TYPE STRING,
BWA TYPE STRING,
CAT TYPE STRING,
CNT TYPE STRING,
CUR TYPE STRING,
DFT_PGP TYPE STRING,
FORWARD_WI TYPE STRING,
IS_PGR TYPE STRING,
IS_POR TYPE STRING,
ITS_DEST TYPE STRING,
KNT TYPE STRING,
NET TYPE STRING,
LAG TYPE STRING,
PHOTO TYPE STRING,
PRI TYPE STRING,
PRO TYPE STRING,
PURCH_GRP TYPE STRING,
PURCH_GRPX TYPE STRING,
PURCH_ORG TYPE STRING,
PURCH_ORGX TYPE STRING,
REQUESTER TYPE STRING,
RESP_PGRP TYPE STRING,
RESP_WGR TYPE STRING,
ROLE TYPE STRING,
STR TYPE STRING,
SYS TYPE STRING,
VENDOR_ACS TYPE STRING,
VENDOR_SYS TYPE STRING,
WGR TYPE STRING,
WRK TYPE STRING,
EXT_ITS TYPE STRING,
CT_PROC_TYP TYPE STRING,
DP_PROC_TYP TYPE STRING,
TEND_TYPE TYPE STRING,
SLAPPROVER TYPE STRING,
SF_HEADER TYPE STRING,
SF_FOOTER TYPE STRING,
SF_GRAPHIC TYPE STRING,
TOG TYPE STRING,
PRCAT TYPE STRING,
ADDR_SHIPT TYPE STRING,
ADDR_BILLT TYPE STRING,
RESP_PRCAT TYPE STRING,
PM_IWERK TYPE STRING,
PM_SWERK TYPE STRING,
PM_VAWRK TYPE STRING,
PM_ARWRK TYPE STRING,
PM_WRK TYPE STRING,
PM_AUART TYPE STRING,
PM_IPHAS TYPE STRING,
PM_PUR_GRP TYPE STRING,
PM_PUR_ORG TYPE STRING,
PM_WGR TYPE STRING,
PM_GL_ACCT TYPE STRING,
SYS_NOCONV TYPE STRING,
PS_PA_SEL TYPE STRING,END OF T_EKKO_STR. DATA: WA_BBP_ATTR_F1_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_BBP_ATTR_F1_STR-ACC_FUND sy-vline
WA_BBP_ATTR_F1_STR-ACC_GRANT sy-vline
WA_BBP_ATTR_F1_STR-ACC_FCAREA sy-vline
WA_BBP_ATTR_F1_STR-ACC_FCENTR sy-vline
WA_BBP_ATTR_F1_STR-ACC_CMITEM sy-vline
WA_BBP_ATTR_F1_STR-ACS sy-vline
WA_BBP_ATTR_F1_STR-AN1 sy-vline
WA_BBP_ATTR_F1_STR-AN2 sy-vline
WA_BBP_ATTR_F1_STR-ANK sy-vline
WA_BBP_ATTR_F1_STR-ANR sy-vline
WA_BBP_ATTR_F1_STR-APO sy-vline
WA_BBP_ATTR_F1_STR-AUN sy-vline
WA_BBP_ATTR_F1_STR-BSA sy-vline
WA_BBP_ATTR_F1_STR-BUK sy-vline
WA_BBP_ATTR_F1_STR-BWA sy-vline
WA_BBP_ATTR_F1_STR-CAT sy-vline
WA_BBP_ATTR_F1_STR-CNT sy-vline
WA_BBP_ATTR_F1_STR-CUR sy-vline
WA_BBP_ATTR_F1_STR-DFT_PGP sy-vline
WA_BBP_ATTR_F1_STR-FORWARD_WI sy-vline
WA_BBP_ATTR_F1_STR-IS_PGR sy-vline
WA_BBP_ATTR_F1_STR-IS_POR sy-vline
WA_BBP_ATTR_F1_STR-ITS_DEST sy-vline
WA_BBP_ATTR_F1_STR-KNT sy-vline
WA_BBP_ATTR_F1_STR-NET sy-vline
WA_BBP_ATTR_F1_STR-LAG sy-vline
WA_BBP_ATTR_F1_STR-PHOTO sy-vline
WA_BBP_ATTR_F1_STR-PRI sy-vline
WA_BBP_ATTR_F1_STR-PRO sy-vline
WA_BBP_ATTR_F1_STR-PURCH_GRP sy-vline
WA_BBP_ATTR_F1_STR-PURCH_GRPX sy-vline
WA_BBP_ATTR_F1_STR-PURCH_ORG sy-vline
WA_BBP_ATTR_F1_STR-PURCH_ORGX sy-vline
WA_BBP_ATTR_F1_STR-REQUESTER sy-vline
WA_BBP_ATTR_F1_STR-RESP_PGRP sy-vline
WA_BBP_ATTR_F1_STR-RESP_WGR sy-vline
WA_BBP_ATTR_F1_STR-ROLE sy-vline
WA_BBP_ATTR_F1_STR-STR sy-vline
WA_BBP_ATTR_F1_STR-SYS sy-vline
WA_BBP_ATTR_F1_STR-VENDOR_ACS sy-vline
WA_BBP_ATTR_F1_STR-VENDOR_SYS sy-vline
WA_BBP_ATTR_F1_STR-WGR sy-vline
WA_BBP_ATTR_F1_STR-WRK sy-vline
WA_BBP_ATTR_F1_STR-EXT_ITS sy-vline
WA_BBP_ATTR_F1_STR-CT_PROC_TYP sy-vline
WA_BBP_ATTR_F1_STR-DP_PROC_TYP sy-vline
WA_BBP_ATTR_F1_STR-TEND_TYPE sy-vline
WA_BBP_ATTR_F1_STR-SLAPPROVER sy-vline
WA_BBP_ATTR_F1_STR-SF_HEADER sy-vline
WA_BBP_ATTR_F1_STR-SF_FOOTER sy-vline
WA_BBP_ATTR_F1_STR-SF_GRAPHIC sy-vline
WA_BBP_ATTR_F1_STR-TOG sy-vline
WA_BBP_ATTR_F1_STR-PRCAT sy-vline
WA_BBP_ATTR_F1_STR-ADDR_SHIPT sy-vline
WA_BBP_ATTR_F1_STR-ADDR_BILLT sy-vline
WA_BBP_ATTR_F1_STR-RESP_PRCAT sy-vline
WA_BBP_ATTR_F1_STR-PM_IWERK sy-vline
WA_BBP_ATTR_F1_STR-PM_SWERK sy-vline
WA_BBP_ATTR_F1_STR-PM_VAWRK sy-vline
WA_BBP_ATTR_F1_STR-PM_ARWRK sy-vline
WA_BBP_ATTR_F1_STR-PM_WRK sy-vline
WA_BBP_ATTR_F1_STR-PM_AUART sy-vline
WA_BBP_ATTR_F1_STR-PM_IPHAS sy-vline
WA_BBP_ATTR_F1_STR-PM_PUR_GRP sy-vline
WA_BBP_ATTR_F1_STR-PM_PUR_ORG sy-vline
WA_BBP_ATTR_F1_STR-PM_WGR sy-vline
WA_BBP_ATTR_F1_STR-PM_GL_ACCT sy-vline
WA_BBP_ATTR_F1_STR-SYS_NOCONV sy-vline
WA_BBP_ATTR_F1_STR-PS_PA_SEL sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.