ABAP Select data from SAP table MIG_BUS_EI_BUPA_ADDRESS 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 MIG_BUS_EI_BUPA_ADDRESS 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 MIG_BUS_EI_BUPA_ADDRESS. 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 MIG_BUS_EI_BUPA_ADDRESS 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_MIG_BUS_EI_BUPA_ADDRESS TYPE STANDARD TABLE OF MIG_BUS_EI_BUPA_ADDRESS,
      WA_MIG_BUS_EI_BUPA_ADDRESS TYPE MIG_BUS_EI_BUPA_ADDRESS,
      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: <MIG_BUS_EI_BUPA_ADDRESS> TYPE MIG_BUS_EI_BUPA_ADDRESS.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM MIG_BUS_EI_BUPA_ADDRESS
*  INTO TABLE @DATA(IT_MIG_BUS_EI_BUPA_ADDRESS2).
*--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_MIG_BUS_EI_BUPA_ADDRESS INDEX 1 INTO DATA(WA_MIG_BUS_EI_BUPA_ADDRESS2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_MIG_BUS_EI_BUPA_ADDRESS ASSIGNING <MIG_BUS_EI_BUPA_ADDRESS>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<MIG_BUS_EI_BUPA_ADDRESS>-GUIDKEY = 1.
<MIG_BUS_EI_BUPA_ADDRESS>-OPERATIONKEY = 1.
<MIG_BUS_EI_BUPA_ADDRESS>-STANDARDADDRESSPTLDAT = 1.
<MIG_BUS_EI_BUPA_ADDRESS>-C_O_NAMEPTLDAT = 1.
<MIG_BUS_EI_BUPA_ADDRESS>-CITYPTLDAT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_MIG_BUS_EI_BUPA_ADDRESS-DISTRICTPTLDAT, sy-vline,
WA_MIG_BUS_EI_BUPA_ADDRESS-REGIOGROUPPTLDAT, sy-vline,
WA_MIG_BUS_EI_BUPA_ADDRESS-POSTL_COD1PTLDAT, sy-vline,
WA_MIG_BUS_EI_BUPA_ADDRESS-POSTL_COD2PTLDAT, sy-vline,
WA_MIG_BUS_EI_BUPA_ADDRESS-POSTL_COD3PTLDAT, sy-vline,
WA_MIG_BUS_EI_BUPA_ADDRESS-PCODE1_EXTPTLDAT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_MIG_BUS_EI_BUPA_ADDRESS 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_MIG_BUS_EI_BUPA_ADDRESS 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_MIG_BUS_EI_BUPA_ADDRESS INTO WA_MIG_BUS_EI_BUPA_ADDRESS. *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 LANGUPTLDAT CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_MIG_BUS_EI_BUPA_ADDRESS-LANGUPTLDAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_MIG_BUS_EI_BUPA_ADDRESS-LANGUPTLDAT.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field TOWNSHIP_NOPTLDAT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_MIG_BUS_EI_BUPA_ADDRESS-TOWNSHIP_NOPTLDAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_MIG_BUS_EI_BUPA_ADDRESS-TOWNSHIP_NOPTLDAT.
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_MIG_BUS_EI_BUPA_ADDRESS_STR,
GUIDKEY TYPE STRING,
OPERATIONKEY TYPE STRING,
STANDARDADDRESSPTLDAT TYPE STRING,
C_O_NAMEPTLDAT TYPE STRING,
CITYPTLDAT TYPE STRING,
DISTRICTPTLDAT TYPE STRING,
REGIOGROUPPTLDAT TYPE STRING,
POSTL_COD1PTLDAT TYPE STRING,
POSTL_COD2PTLDAT TYPE STRING,
POSTL_COD3PTLDAT TYPE STRING,
PCODE1_EXTPTLDAT TYPE STRING,
PCODE2_EXTPTLDAT TYPE STRING,
PCODE3_EXTPTLDAT TYPE STRING,
PO_BOXPTLDAT TYPE STRING,
PO_W_O_NOPTLDAT TYPE STRING,
PO_BOX_CITPTLDAT TYPE STRING,
PO_BOX_REGPTLDAT TYPE STRING,
POBOX_CTRYPTLDAT TYPE STRING,
PO_CTRYISOPTLDAT TYPE STRING,
STREETPTLDAT TYPE STRING,
STR_ABBRPTLDAT TYPE STRING,
HOUSE_NOPTLDAT TYPE STRING,
HOUSE_NO2PTLDAT TYPE STRING,
HOUSE_NO3PTLDAT TYPE STRING,
STR_SUPPL1PTLDAT TYPE STRING,
STR_SUPPL2PTLDAT TYPE STRING,
STR_SUPPL3PTLDAT TYPE STRING,
LOCATIONPTLDAT TYPE STRING,
BUILDINGPTLDAT TYPE STRING,
FLOORPTLDAT TYPE STRING,
ROOM_NOPTLDAT TYPE STRING,
COUNTRYPTLDAT TYPE STRING,
COUNTRYISOPTLDAT TYPE STRING,
REGIONPTLDAT TYPE STRING,
TIME_ZONEPTLDAT TYPE STRING,
TAXJURCODEPTLDAT TYPE STRING,
HOME_CITYPTLDAT TYPE STRING,
TRANSPZONEPTLDAT TYPE STRING,
LANGUPTLDAT TYPE STRING,
LANGUISOPTLDAT TYPE STRING,
COMM_TYPEPTLDAT TYPE STRING,
EXTADDRESSNUMBERPTLDAT TYPE STRING,
DONT_USE_PPTLDAT TYPE STRING,
DONT_USE_SPTLDAT TYPE STRING,
MOVE_DATEPTLDAT TYPE STRING,
MOVE_ADDRESSPTLDAT TYPE STRING,
VALIDFROMDATEPTLDAT TYPE STRING,
VALIDTODATEPTLDAT TYPE STRING,
MOVE_ADDR_GUIDPTLDAT TYPE STRING,
CITY_NOPTLDAT TYPE STRING,
DISTRCT_NOPTLDAT TYPE STRING,
CHCKSTATUSPTLDAT TYPE STRING,
PBOXCIT_NOPTLDAT TYPE STRING,
STREET_NOPTLDAT TYPE STRING,
HOMECITYNOPTLDAT TYPE STRING,
PO_BOX_LOBBYPTLDAT TYPE STRING,
DELI_SERV_TYPEPTLDAT TYPE STRING,
DELI_SERV_NUMBERPTLDAT TYPE STRING,
COUNTYPTLDAT TYPE STRING,
COUNTY_NOPTLDAT TYPE STRING,
TOWNSHIPPTLDAT TYPE STRING,
TOWNSHIP_NOPTLDAT TYPE STRING,
REMARKSDAT TYPE STRING,
PHONECOMDAT TYPE STRING,
FAXCOMDAT TYPE STRING,
TTXCOMDAT TYPE STRING,
TLXCOMDAT TYPE STRING,
SMTPCOMDAT TYPE STRING,
RMLCOMDAT TYPE STRING,
X400COMDAT TYPE STRING,
RFCCOMDAT TYPE STRING,
PRTCOMDAT TYPE STRING,
SSFCOMDAT TYPE STRING,
URICOMDAT TYPE STRING,
PAGERCOMDAT TYPE STRING,
TIME_DEPENDENTCOMDAT TYPE STRING,
ADDR_USAGESDAT TYPE STRING,
VERSIONSDAT TYPE STRING,
CURRENTLY_VALIDDAT TYPE STRING,
CURRENTLY_VALID TYPE STRING,END OF T_EKKO_STR. DATA: WA_MIG_BUS_EI_BUPA_ADDRESS_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_MIG_BUS_EI_BUPA_ADDRESS_STR-GUIDKEY sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-OPERATIONKEY sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-STANDARDADDRESSPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-C_O_NAMEPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-CITYPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-DISTRICTPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-REGIOGROUPPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-POSTL_COD1PTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-POSTL_COD2PTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-POSTL_COD3PTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-PCODE1_EXTPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-PCODE2_EXTPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-PCODE3_EXTPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-PO_BOXPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-PO_W_O_NOPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-PO_BOX_CITPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-PO_BOX_REGPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-POBOX_CTRYPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-PO_CTRYISOPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-STREETPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-STR_ABBRPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-HOUSE_NOPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-HOUSE_NO2PTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-HOUSE_NO3PTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-STR_SUPPL1PTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-STR_SUPPL2PTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-STR_SUPPL3PTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-LOCATIONPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-BUILDINGPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-FLOORPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-ROOM_NOPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-COUNTRYPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-COUNTRYISOPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-REGIONPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-TIME_ZONEPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-TAXJURCODEPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-HOME_CITYPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-TRANSPZONEPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-LANGUPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-LANGUISOPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-COMM_TYPEPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-EXTADDRESSNUMBERPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-DONT_USE_PPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-DONT_USE_SPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-MOVE_DATEPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-MOVE_ADDRESSPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-VALIDFROMDATEPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-VALIDTODATEPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-MOVE_ADDR_GUIDPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-CITY_NOPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-DISTRCT_NOPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-CHCKSTATUSPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-PBOXCIT_NOPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-STREET_NOPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-HOMECITYNOPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-PO_BOX_LOBBYPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-DELI_SERV_TYPEPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-DELI_SERV_NUMBERPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-COUNTYPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-COUNTY_NOPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-TOWNSHIPPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-TOWNSHIP_NOPTLDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-REMARKSDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-PHONECOMDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-FAXCOMDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-TTXCOMDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-TLXCOMDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-SMTPCOMDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-RMLCOMDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-X400COMDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-RFCCOMDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-PRTCOMDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-SSFCOMDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-URICOMDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-PAGERCOMDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-TIME_DEPENDENTCOMDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-ADDR_USAGESDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-VERSIONSDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-CURRENTLY_VALIDDAT sy-vline
WA_MIG_BUS_EI_BUPA_ADDRESS_STR-CURRENTLY_VALID sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.