ABAP Select data from SAP table BAPIP0041 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 BAPIP0041 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 BAPIP0041. 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 BAPIP0041 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_BAPIP0041 TYPE STANDARD TABLE OF BAPIP0041,
      WA_BAPIP0041 TYPE BAPIP0041,
      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: <BAPIP0041> TYPE BAPIP0041.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM BAPIP0041
*  INTO TABLE @DATA(IT_BAPIP00412).
*--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_BAPIP0041 INDEX 1 INTO DATA(WA_BAPIP00412).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_BAPIP0041 ASSIGNING <BAPIP0041>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<BAPIP0041>-EMPLOYEENO = 1.
<BAPIP0041>-SUBTYPE = 1.
<BAPIP0041>-OBJECTID = 1.
<BAPIP0041>-LOCKINDIC = 1.
<BAPIP0041>-VALIDEND = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_BAPIP0041-VALIDBEGIN, sy-vline,
WA_BAPIP0041-RECORDNR, sy-vline,
WA_BAPIP0041-LAST_CHANGED_ON, sy-vline,
WA_BAPIP0041-LAST_CHANGED_BY, sy-vline,
WA_BAPIP0041-ADD_TEXT_EXISTS, sy-vline,
WA_BAPIP0041-REASON_FOR_CHNG, sy-vline.
ENDLOOP. *Add any further fields from structure WA_BAPIP0041 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_BAPIP0041 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_BAPIP0041 INTO WA_BAPIP0041. *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_BAPIP0041_STR,
EMPLOYEENO TYPE STRING,
SUBTYPE TYPE STRING,
OBJECTID TYPE STRING,
LOCKINDIC TYPE STRING,
VALIDEND TYPE STRING,
VALIDBEGIN TYPE STRING,
RECORDNR TYPE STRING,
LAST_CHANGED_ON TYPE STRING,
LAST_CHANGED_BY TYPE STRING,
ADD_TEXT_EXISTS TYPE STRING,
REASON_FOR_CHNG TYPE STRING,
DATETYPE01 TYPE STRING,
NAMEOFDATETYPE01 TYPE STRING,
DATE01 TYPE STRING,
DATETYPE02 TYPE STRING,
NAMEOFDATETYPE02 TYPE STRING,
DATE02 TYPE STRING,
DATETYPE03 TYPE STRING,
NAMEOFDATETYPE03 TYPE STRING,
DATE03 TYPE STRING,
DATETYPE04 TYPE STRING,
NAMEOFDATETYPE04 TYPE STRING,
DATE04 TYPE STRING,
DATETYPE05 TYPE STRING,
NAMEOFDATETYPE05 TYPE STRING,
DATE05 TYPE STRING,
DATETYPE06 TYPE STRING,
NAMEOFDATETYPE06 TYPE STRING,
DATE06 TYPE STRING,
DATETYPE07 TYPE STRING,
NAMEOFDATETYPE07 TYPE STRING,
DATE07 TYPE STRING,
DATETYPE08 TYPE STRING,
NAMEOFDATETYPE08 TYPE STRING,
DATE08 TYPE STRING,
DATETYPE09 TYPE STRING,
NAMEOFDATETYPE09 TYPE STRING,
DATE09 TYPE STRING,
DATETYPE10 TYPE STRING,
NAMEOFDATETYPE10 TYPE STRING,
DATE10 TYPE STRING,
DATETYPE11 TYPE STRING,
NAMEOFDATETYPE11 TYPE STRING,
DATE11 TYPE STRING,
DATETYPE12 TYPE STRING,
NAMEOFDATETYPE12 TYPE STRING,
DATE12 TYPE STRING,
DATETYPE13 TYPE STRING,
NAMEOFDATETYPE13 TYPE STRING,
DATE13 TYPE STRING,
DATETYPE14 TYPE STRING,
NAMEOFDATETYPE14 TYPE STRING,
DATE14 TYPE STRING,
DATETYPE15 TYPE STRING,
NAMEOFDATETYPE15 TYPE STRING,
DATE15 TYPE STRING,
DATETYPE16 TYPE STRING,
NAMEOFDATETYPE16 TYPE STRING,
DATE16 TYPE STRING,
DATETYPE17 TYPE STRING,
NAMEOFDATETYPE17 TYPE STRING,
DATE17 TYPE STRING,
DATETYPE18 TYPE STRING,
NAMEOFDATETYPE18 TYPE STRING,
DATE18 TYPE STRING,
DATETYPE19 TYPE STRING,
NAMEOFDATETYPE19 TYPE STRING,
DATE19 TYPE STRING,
DATETYPE20 TYPE STRING,
NAMEOFDATETYPE20 TYPE STRING,
DATE20 TYPE STRING,
DATETYPE21 TYPE STRING,
NAMEOFDATETYPE21 TYPE STRING,
DATE21 TYPE STRING,
DATETYPE22 TYPE STRING,
NAMEOFDATETYPE22 TYPE STRING,
DATE22 TYPE STRING,
DATETYPE23 TYPE STRING,
NAMEOFDATETYPE23 TYPE STRING,
DATE23 TYPE STRING,
DATETYPE24 TYPE STRING,
NAMEOFDATETYPE24 TYPE STRING,
DATE24 TYPE STRING,END OF T_EKKO_STR. DATA: WA_BAPIP0041_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_BAPIP0041_STR-EMPLOYEENO sy-vline
WA_BAPIP0041_STR-SUBTYPE sy-vline
WA_BAPIP0041_STR-OBJECTID sy-vline
WA_BAPIP0041_STR-LOCKINDIC sy-vline
WA_BAPIP0041_STR-VALIDEND sy-vline
WA_BAPIP0041_STR-VALIDBEGIN sy-vline
WA_BAPIP0041_STR-RECORDNR sy-vline
WA_BAPIP0041_STR-LAST_CHANGED_ON sy-vline
WA_BAPIP0041_STR-LAST_CHANGED_BY sy-vline
WA_BAPIP0041_STR-ADD_TEXT_EXISTS sy-vline
WA_BAPIP0041_STR-REASON_FOR_CHNG sy-vline
WA_BAPIP0041_STR-DATETYPE01 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE01 sy-vline
WA_BAPIP0041_STR-DATE01 sy-vline
WA_BAPIP0041_STR-DATETYPE02 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE02 sy-vline
WA_BAPIP0041_STR-DATE02 sy-vline
WA_BAPIP0041_STR-DATETYPE03 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE03 sy-vline
WA_BAPIP0041_STR-DATE03 sy-vline
WA_BAPIP0041_STR-DATETYPE04 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE04 sy-vline
WA_BAPIP0041_STR-DATE04 sy-vline
WA_BAPIP0041_STR-DATETYPE05 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE05 sy-vline
WA_BAPIP0041_STR-DATE05 sy-vline
WA_BAPIP0041_STR-DATETYPE06 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE06 sy-vline
WA_BAPIP0041_STR-DATE06 sy-vline
WA_BAPIP0041_STR-DATETYPE07 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE07 sy-vline
WA_BAPIP0041_STR-DATE07 sy-vline
WA_BAPIP0041_STR-DATETYPE08 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE08 sy-vline
WA_BAPIP0041_STR-DATE08 sy-vline
WA_BAPIP0041_STR-DATETYPE09 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE09 sy-vline
WA_BAPIP0041_STR-DATE09 sy-vline
WA_BAPIP0041_STR-DATETYPE10 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE10 sy-vline
WA_BAPIP0041_STR-DATE10 sy-vline
WA_BAPIP0041_STR-DATETYPE11 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE11 sy-vline
WA_BAPIP0041_STR-DATE11 sy-vline
WA_BAPIP0041_STR-DATETYPE12 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE12 sy-vline
WA_BAPIP0041_STR-DATE12 sy-vline
WA_BAPIP0041_STR-DATETYPE13 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE13 sy-vline
WA_BAPIP0041_STR-DATE13 sy-vline
WA_BAPIP0041_STR-DATETYPE14 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE14 sy-vline
WA_BAPIP0041_STR-DATE14 sy-vline
WA_BAPIP0041_STR-DATETYPE15 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE15 sy-vline
WA_BAPIP0041_STR-DATE15 sy-vline
WA_BAPIP0041_STR-DATETYPE16 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE16 sy-vline
WA_BAPIP0041_STR-DATE16 sy-vline
WA_BAPIP0041_STR-DATETYPE17 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE17 sy-vline
WA_BAPIP0041_STR-DATE17 sy-vline
WA_BAPIP0041_STR-DATETYPE18 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE18 sy-vline
WA_BAPIP0041_STR-DATE18 sy-vline
WA_BAPIP0041_STR-DATETYPE19 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE19 sy-vline
WA_BAPIP0041_STR-DATE19 sy-vline
WA_BAPIP0041_STR-DATETYPE20 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE20 sy-vline
WA_BAPIP0041_STR-DATE20 sy-vline
WA_BAPIP0041_STR-DATETYPE21 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE21 sy-vline
WA_BAPIP0041_STR-DATE21 sy-vline
WA_BAPIP0041_STR-DATETYPE22 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE22 sy-vline
WA_BAPIP0041_STR-DATE22 sy-vline
WA_BAPIP0041_STR-DATETYPE23 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE23 sy-vline
WA_BAPIP0041_STR-DATE23 sy-vline
WA_BAPIP0041_STR-DATETYPE24 sy-vline
WA_BAPIP0041_STR-NAMEOFDATETYPE24 sy-vline
WA_BAPIP0041_STR-DATE24 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.