ABAP Select data from SAP table REXC_AT_MS_HEADER_C 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 REXC_AT_MS_HEADER_C 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 REXC_AT_MS_HEADER_C. 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 REXC_AT_MS_HEADER_C 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_REXC_AT_MS_HEADER_C TYPE STANDARD TABLE OF REXC_AT_MS_HEADER_C,
      WA_REXC_AT_MS_HEADER_C TYPE REXC_AT_MS_HEADER_C,
      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: <REXC_AT_MS_HEADER_C> TYPE REXC_AT_MS_HEADER_C.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM REXC_AT_MS_HEADER_C
*  INTO TABLE @DATA(IT_REXC_AT_MS_HEADER_C2).
*--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_REXC_AT_MS_HEADER_C INDEX 1 INTO DATA(WA_REXC_AT_MS_HEADER_C2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_REXC_AT_MS_HEADER_C ASSIGNING <REXC_AT_MS_HEADER_C>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<REXC_AT_MS_HEADER_C>-DVRNR = 1.
<REXC_AT_MS_HEADER_C>-IDENT_BE = 1.
<REXC_AT_MS_HEADER_C>-IDENT_BU = 1.
<REXC_AT_MS_HEADER_C>-IDENT_PG = 1.
<REXC_AT_MS_HEADER_C>-MANDTLID = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_REXC_AT_MS_HEADER_C-LISTIDLID, sy-vline,
WA_REXC_AT_MS_HEADER_C-FORMTYPELID, sy-vline,
WA_REXC_AT_MS_HEADER_C-SFNAMELID, sy-vline,
WA_REXC_AT_MS_HEADER_C-SPRASLID, sy-vline,
WA_REXC_AT_MS_HEADER_C-XMLISTIDLID, sy-vline,
WA_REXC_AT_MS_HEADER_C-XLLISTIDLID, sy-vline.
ENDLOOP. *Add any further fields from structure WA_REXC_AT_MS_HEADER_C 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_REXC_AT_MS_HEADER_C 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_REXC_AT_MS_HEADER_C INTO WA_REXC_AT_MS_HEADER_C. *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 ISOLA, internal->external for field SPRASLID CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_REXC_AT_MS_HEADER_C-SPRASLID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REXC_AT_MS_HEADER_C-SPRASLID.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit ISOLA, internal->external for field LANGUCC CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_REXC_AT_MS_HEADER_C-LANGUCC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REXC_AT_MS_HEADER_C-LANGUCC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ISOLA, internal->external for field LANGUCD CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_REXC_AT_MS_HEADER_C-LANGUCD IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REXC_AT_MS_HEADER_C-LANGUCD.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field ADDR_NOCD CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_REXC_AT_MS_HEADER_C-ADDR_NOCD IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REXC_AT_MS_HEADER_C-ADDR_NOCD.
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_REXC_AT_MS_HEADER_C_STR,
DVRNR TYPE STRING,
IDENT_BE TYPE STRING,
IDENT_BU TYPE STRING,
IDENT_PG TYPE STRING,
MANDTLID TYPE STRING,
LISTIDLID TYPE STRING,
FORMTYPELID TYPE STRING,
SFNAMELID TYPE STRING,
SPRASLID TYPE STRING,
XMLISTIDLID TYPE STRING,
XLLISTIDLID TYPE STRING,
ADDR_NOCC TYPE STRING,
FORMOFADDRCC TYPE STRING,
NAMECC TYPE STRING,
NAME_2CC TYPE STRING,
NAME_3CC TYPE STRING,
NAME_4CC TYPE STRING,
C_O_NAMECC TYPE STRING,
CITYCC TYPE STRING,
DISTRICTCC TYPE STRING,
CITY_NOCC TYPE STRING,
POSTL_COD1CC TYPE STRING,
POSTL_COD2CC TYPE STRING,
POSTL_COD3CC TYPE STRING,
PO_BOXCC TYPE STRING,
PO_BOX_CITCC TYPE STRING,
DELIV_DISCC TYPE STRING,
STREETCC TYPE STRING,
STREET_NOCC TYPE STRING,
STR_ABBRCC TYPE STRING,
HOUSE_NOCC TYPE STRING,
STR_SUPPL1CC TYPE STRING,
STR_SUPPL2CC TYPE STRING,
LOCATIONCC TYPE STRING,
BUILDINGCC TYPE STRING,
FLOORCC TYPE STRING,
ROOM_NOCC TYPE STRING,
COUNTRYCC TYPE STRING,
LANGUCC TYPE STRING,
REGIONCC TYPE STRING,
SORT1CC TYPE STRING,
SORT2CC TYPE STRING,
TIME_ZONECC TYPE STRING,
TAXJURCODECC TYPE STRING,
ADR_NOTESCC TYPE STRING,
COMM_TYPECC TYPE STRING,
TEL1_NUMBRCC TYPE STRING,
TEL1_EXTCC TYPE STRING,
FAX_NUMBERCC TYPE STRING,
FAX_EXTENSCC TYPE STRING,
ADRTXTCC TYPE STRING,
COMP_CODECD TYPE STRING,
COMP_NAMECD TYPE STRING,
CITYCD TYPE STRING,
COUNTRYCD TYPE STRING,
CURRENCYCD TYPE STRING,
LANGUCD TYPE STRING,
CHRT_ACCTSCD TYPE STRING,
FY_VARIANTCD TYPE STRING,
VAT_REG_NOCD TYPE STRING,
COMPANYCD TYPE STRING,
ADDR_NOCD TYPE STRING,
COUNTRY_ISOCD TYPE STRING,
CURRENCY_ISOCD TYPE STRING,
LANGU_ISOCD TYPE STRING,
OBJNROBJ TYPE STRING,
OBJTYPEOBJ TYPE STRING,
OBJIDOBJ TYPE STRING,
STREETOBJ TYPE STRING,
HOUSE_NUM1OBJ TYPE STRING,
CITY1OBJ TYPE STRING,
POST_CODE1OBJ TYPE STRING,
COUNTRYOBJ TYPE STRING,
REGIONOBJ TYPE STRING,
ADRZUSOBJ TYPE STRING,
STR_SUPPL1OBJ TYPE STRING,
STR_SUPPL2OBJ TYPE STRING,
STR_SUPPL3OBJ TYPE STRING,
LOCATIONOBJ TYPE STRING,
HOUSE_NUM2OBJ TYPE STRING,
CITY2OBJ TYPE STRING,
BUILDINGOBJ TYPE STRING,
TAXJURCODEOBJ TYPE STRING,
ADRTXTOBJ TYPE STRING,END OF T_EKKO_STR. DATA: WA_REXC_AT_MS_HEADER_C_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_REXC_AT_MS_HEADER_C_STR-DVRNR sy-vline
WA_REXC_AT_MS_HEADER_C_STR-IDENT_BE sy-vline
WA_REXC_AT_MS_HEADER_C_STR-IDENT_BU sy-vline
WA_REXC_AT_MS_HEADER_C_STR-IDENT_PG sy-vline
WA_REXC_AT_MS_HEADER_C_STR-MANDTLID sy-vline
WA_REXC_AT_MS_HEADER_C_STR-LISTIDLID sy-vline
WA_REXC_AT_MS_HEADER_C_STR-FORMTYPELID sy-vline
WA_REXC_AT_MS_HEADER_C_STR-SFNAMELID sy-vline
WA_REXC_AT_MS_HEADER_C_STR-SPRASLID sy-vline
WA_REXC_AT_MS_HEADER_C_STR-XMLISTIDLID sy-vline
WA_REXC_AT_MS_HEADER_C_STR-XLLISTIDLID sy-vline
WA_REXC_AT_MS_HEADER_C_STR-ADDR_NOCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-FORMOFADDRCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-NAMECC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-NAME_2CC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-NAME_3CC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-NAME_4CC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-C_O_NAMECC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-CITYCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-DISTRICTCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-CITY_NOCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-POSTL_COD1CC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-POSTL_COD2CC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-POSTL_COD3CC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-PO_BOXCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-PO_BOX_CITCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-DELIV_DISCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-STREETCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-STREET_NOCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-STR_ABBRCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-HOUSE_NOCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-STR_SUPPL1CC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-STR_SUPPL2CC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-LOCATIONCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-BUILDINGCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-FLOORCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-ROOM_NOCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-COUNTRYCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-LANGUCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-REGIONCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-SORT1CC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-SORT2CC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-TIME_ZONECC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-TAXJURCODECC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-ADR_NOTESCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-COMM_TYPECC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-TEL1_NUMBRCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-TEL1_EXTCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-FAX_NUMBERCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-FAX_EXTENSCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-ADRTXTCC sy-vline
WA_REXC_AT_MS_HEADER_C_STR-COMP_CODECD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-COMP_NAMECD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-CITYCD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-COUNTRYCD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-CURRENCYCD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-LANGUCD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-CHRT_ACCTSCD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-FY_VARIANTCD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-VAT_REG_NOCD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-COMPANYCD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-ADDR_NOCD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-COUNTRY_ISOCD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-CURRENCY_ISOCD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-LANGU_ISOCD sy-vline
WA_REXC_AT_MS_HEADER_C_STR-OBJNROBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-OBJTYPEOBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-OBJIDOBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-STREETOBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-HOUSE_NUM1OBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-CITY1OBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-POST_CODE1OBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-COUNTRYOBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-REGIONOBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-ADRZUSOBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-STR_SUPPL1OBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-STR_SUPPL2OBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-STR_SUPPL3OBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-LOCATIONOBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-HOUSE_NUM2OBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-CITY2OBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-BUILDINGOBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-TAXJURCODEOBJ sy-vline
WA_REXC_AT_MS_HEADER_C_STR-ADRTXTOBJ sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.