ABAP Select data from SAP table BAPIVIQM01 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 BAPIVIQM01 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 BAPIVIQM01. 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 BAPIVIQM01 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_BAPIVIQM01 TYPE STANDARD TABLE OF BAPIVIQM01,
      WA_BAPIVIQM01 TYPE BAPIVIQM01,
      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: <BAPIVIQM01> TYPE BAPIVIQM01.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM BAPIVIQM01
*  INTO TABLE @DATA(IT_BAPIVIQM012).
*--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_BAPIVIQM01 INDEX 1 INTO DATA(WA_BAPIVIQM012).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_BAPIVIQM01 ASSIGNING <BAPIVIQM01>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<BAPIVIQM01>-OPERATION = 1.
<BAPIVIQM01>-NOTIF_NO = 1.
<BAPIVIQM01>-PLANPLANT = 1.
<BAPIVIQM01>-LOC_ACC = 1.
<BAPIVIQM01>-EQUIPMENT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_BAPIVIQM01-ASSEMBLY, sy-vline,
WA_BAPIVIQM01-BREAKDOWN, sy-vline,
WA_BAPIVIQM01-STRMLFNDATE, sy-vline,
WA_BAPIVIQM01-ENDMLFNDATE, sy-vline,
WA_BAPIVIQM01-STRMLFNTIME, sy-vline,
WA_BAPIVIQM01-ENDMLFNTIME, sy-vline.
ENDLOOP. *Add any further fields from structure WA_BAPIVIQM01 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_BAPIVIQM01 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_BAPIVIQM01 INTO WA_BAPIVIQM01. *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_BAPIVIQM01_STR,
OPERATION TYPE STRING,
NOTIF_NO TYPE STRING,
PLANPLANT TYPE STRING,
LOC_ACC TYPE STRING,
EQUIPMENT TYPE STRING,
ASSEMBLY TYPE STRING,
BREAKDOWN TYPE STRING,
STRMLFNDATE TYPE STRING,
ENDMLFNDATE TYPE STRING,
STRMLFNTIME TYPE STRING,
ENDMLFNTIME TYPE STRING,
DOWNTIME TYPE STRING,
UNIT TYPE STRING,
ISOCODE_UNIT TYPE STRING,
PLANGROUP TYPE STRING,
MNTPLAN TYPE STRING,
MNTCALL_NO TYPE STRING,
MAINTITEM TYPE STRING,
NOTIF_TYPE TYPE STRING,
SHORT_TEXT TYPE STRING,
PRIOTYPE TYPE STRING,
PRIORITY TYPE STRING,
CREATED_BY TYPE STRING,
CREATED_ON TYPE STRING,
CHANGED_BY TYPE STRING,
CHANGED_ON TYPE STRING,
NOTIFTIME TYPE STRING,
NOTIF_DATE TYPE STRING,
REPORTEDBY TYPE STRING,
DESSTDATE TYPE STRING,
DESSTTIME TYPE STRING,
DESENDDATE TYPE STRING,
DESENDTM TYPE STRING,
ORDERID TYPE STRING,
MATERIAL TYPE STRING,
CUST_NO TYPE STRING,
OBJECT_NO TYPE STRING,
COMPDATE TYPE STRING,
COMPTIME TYPE STRING,
CATPROFILE TYPE STRING,
LONG_TEXT TYPE STRING,
PRILANG TYPE STRING,
REFDATE TYPE STRING,
REFTIME TYPE STRING,
SALES_ORD TYPE STRING,
PURCH_NO_C TYPE STRING,
PURCH_DATE TYPE STRING,
DIVISION TYPE STRING,
SALES_ORG TYPE STRING,
DISTR_CHAN TYPE STRING,
ADDR_NUMBER TYPE STRING,
CHANGED_AT TYPE STRING,
CREATED_AT TYPE STRING,
CAT_TYPE TYPE STRING,
CODE_GROUP TYPE STRING,
CODING TYPE STRING,
PM_WKCTR TYPE STRING,
SERIALNO TYPE STRING,
DELETE_FLAG TYPE STRING,
DEVICEDATA TYPE STRING,
SALES_OFFICE TYPE STRING,
SALES_GRP TYPE STRING,
OBJ_ID TYPE STRING,
NOTIFTMEZ TYPE STRING,
FUNCT_LOC TYPE STRING,
ABCINDIC TYPE STRING,
SORTFIELD TYPE STRING,
MAINTPLANT TYPE STRING,
MAINTLOC TYPE STRING,
MAINTROOM TYPE STRING,
PLSECTN TYPE STRING,
PP_WKCTR TYPE STRING,
BUS_AREA TYPE STRING,
CO_AREA TYPE STRING,
COSTCENTER TYPE STRING,
WBS_ELEMENT TYPE STRING,
ASSET_NO TYPE STRING,
SUB_NUMBER TYPE STRING,
STDGORD TYPE STRING,
STLMTORDER TYPE STRING,
COMP_CODE TYPE STRING,
SALES_ORG_LOC_ACC TYPE STRING,
DIVISION_LOC_ACC TYPE STRING,
DIST_CHAN_LOC_ACC TYPE STRING,
ADDR_NO_LOC_ACC TYPE STRING,
DOC_NUMBER TYPE STRING,
ITM_NUMBER TYPE STRING,
OBJECT_REF TYPE STRING,END OF T_EKKO_STR. DATA: WA_BAPIVIQM01_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_BAPIVIQM01_STR-OPERATION sy-vline
WA_BAPIVIQM01_STR-NOTIF_NO sy-vline
WA_BAPIVIQM01_STR-PLANPLANT sy-vline
WA_BAPIVIQM01_STR-LOC_ACC sy-vline
WA_BAPIVIQM01_STR-EQUIPMENT sy-vline
WA_BAPIVIQM01_STR-ASSEMBLY sy-vline
WA_BAPIVIQM01_STR-BREAKDOWN sy-vline
WA_BAPIVIQM01_STR-STRMLFNDATE sy-vline
WA_BAPIVIQM01_STR-ENDMLFNDATE sy-vline
WA_BAPIVIQM01_STR-STRMLFNTIME sy-vline
WA_BAPIVIQM01_STR-ENDMLFNTIME sy-vline
WA_BAPIVIQM01_STR-DOWNTIME sy-vline
WA_BAPIVIQM01_STR-UNIT sy-vline
WA_BAPIVIQM01_STR-ISOCODE_UNIT sy-vline
WA_BAPIVIQM01_STR-PLANGROUP sy-vline
WA_BAPIVIQM01_STR-MNTPLAN sy-vline
WA_BAPIVIQM01_STR-MNTCALL_NO sy-vline
WA_BAPIVIQM01_STR-MAINTITEM sy-vline
WA_BAPIVIQM01_STR-NOTIF_TYPE sy-vline
WA_BAPIVIQM01_STR-SHORT_TEXT sy-vline
WA_BAPIVIQM01_STR-PRIOTYPE sy-vline
WA_BAPIVIQM01_STR-PRIORITY sy-vline
WA_BAPIVIQM01_STR-CREATED_BY sy-vline
WA_BAPIVIQM01_STR-CREATED_ON sy-vline
WA_BAPIVIQM01_STR-CHANGED_BY sy-vline
WA_BAPIVIQM01_STR-CHANGED_ON sy-vline
WA_BAPIVIQM01_STR-NOTIFTIME sy-vline
WA_BAPIVIQM01_STR-NOTIF_DATE sy-vline
WA_BAPIVIQM01_STR-REPORTEDBY sy-vline
WA_BAPIVIQM01_STR-DESSTDATE sy-vline
WA_BAPIVIQM01_STR-DESSTTIME sy-vline
WA_BAPIVIQM01_STR-DESENDDATE sy-vline
WA_BAPIVIQM01_STR-DESENDTM sy-vline
WA_BAPIVIQM01_STR-ORDERID sy-vline
WA_BAPIVIQM01_STR-MATERIAL sy-vline
WA_BAPIVIQM01_STR-CUST_NO sy-vline
WA_BAPIVIQM01_STR-OBJECT_NO sy-vline
WA_BAPIVIQM01_STR-COMPDATE sy-vline
WA_BAPIVIQM01_STR-COMPTIME sy-vline
WA_BAPIVIQM01_STR-CATPROFILE sy-vline
WA_BAPIVIQM01_STR-LONG_TEXT sy-vline
WA_BAPIVIQM01_STR-PRILANG sy-vline
WA_BAPIVIQM01_STR-REFDATE sy-vline
WA_BAPIVIQM01_STR-REFTIME sy-vline
WA_BAPIVIQM01_STR-SALES_ORD sy-vline
WA_BAPIVIQM01_STR-PURCH_NO_C sy-vline
WA_BAPIVIQM01_STR-PURCH_DATE sy-vline
WA_BAPIVIQM01_STR-DIVISION sy-vline
WA_BAPIVIQM01_STR-SALES_ORG sy-vline
WA_BAPIVIQM01_STR-DISTR_CHAN sy-vline
WA_BAPIVIQM01_STR-ADDR_NUMBER sy-vline
WA_BAPIVIQM01_STR-CHANGED_AT sy-vline
WA_BAPIVIQM01_STR-CREATED_AT sy-vline
WA_BAPIVIQM01_STR-CAT_TYPE sy-vline
WA_BAPIVIQM01_STR-CODE_GROUP sy-vline
WA_BAPIVIQM01_STR-CODING sy-vline
WA_BAPIVIQM01_STR-PM_WKCTR sy-vline
WA_BAPIVIQM01_STR-SERIALNO sy-vline
WA_BAPIVIQM01_STR-DELETE_FLAG sy-vline
WA_BAPIVIQM01_STR-DEVICEDATA sy-vline
WA_BAPIVIQM01_STR-SALES_OFFICE sy-vline
WA_BAPIVIQM01_STR-SALES_GRP sy-vline
WA_BAPIVIQM01_STR-OBJ_ID sy-vline
WA_BAPIVIQM01_STR-NOTIFTMEZ sy-vline
WA_BAPIVIQM01_STR-FUNCT_LOC sy-vline
WA_BAPIVIQM01_STR-ABCINDIC sy-vline
WA_BAPIVIQM01_STR-SORTFIELD sy-vline
WA_BAPIVIQM01_STR-MAINTPLANT sy-vline
WA_BAPIVIQM01_STR-MAINTLOC sy-vline
WA_BAPIVIQM01_STR-MAINTROOM sy-vline
WA_BAPIVIQM01_STR-PLSECTN sy-vline
WA_BAPIVIQM01_STR-PP_WKCTR sy-vline
WA_BAPIVIQM01_STR-BUS_AREA sy-vline
WA_BAPIVIQM01_STR-CO_AREA sy-vline
WA_BAPIVIQM01_STR-COSTCENTER sy-vline
WA_BAPIVIQM01_STR-WBS_ELEMENT sy-vline
WA_BAPIVIQM01_STR-ASSET_NO sy-vline
WA_BAPIVIQM01_STR-SUB_NUMBER sy-vline
WA_BAPIVIQM01_STR-STDGORD sy-vline
WA_BAPIVIQM01_STR-STLMTORDER sy-vline
WA_BAPIVIQM01_STR-COMP_CODE sy-vline
WA_BAPIVIQM01_STR-SALES_ORG_LOC_ACC sy-vline
WA_BAPIVIQM01_STR-DIVISION_LOC_ACC sy-vline
WA_BAPIVIQM01_STR-DIST_CHAN_LOC_ACC sy-vline
WA_BAPIVIQM01_STR-ADDR_NO_LOC_ACC sy-vline
WA_BAPIVIQM01_STR-DOC_NUMBER sy-vline
WA_BAPIVIQM01_STR-ITM_NUMBER sy-vline
WA_BAPIVIQM01_STR-OBJECT_REF sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.