ABAP Select data from SAP table BUS052_DI 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 BUS052_DI 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 BUS052_DI. 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 BUS052_DI 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_BUS052_DI TYPE STANDARD TABLE OF BUS052_DI, WA_BUS052_DI TYPE BUS052_DI, 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: <BUS052_DI> TYPE BUS052_DI. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_BUS052_DI. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM BUS052_DI INTO TABLE IT_BUS052_DI. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM BUS052_DI * INTO TABLE @DATA(IT_BUS052_DI2). *--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_BUS052_DI INDEX 1 INTO DATA(WA_BUS052_DI2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_BUS052_DI ASSIGNING <BUS052_DI>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<BUS052_DI>-ADDRNUMBER = 1.
<BUS052_DI>-ADEXT_ADDR = 1.
<BUS052_DI>-CHIND_ADDR = 1.
<BUS052_DI>-XDFADR = 1.
<BUS052_DI>-DEPARTMENT = 1.
ENDLOOP. LOOP AT IT_BUS052_DI INTO WA_BUS052_DI. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_BUS052_DI-FUNCTION, sy-vline,
WA_BUS052_DI-BUILDING_C, sy-vline,
WA_BUS052_DI-FLOOR_C, sy-vline,
WA_BUS052_DI-ROOMNUM_C, sy-vline,
WA_BUS052_DI-ID_CODE, sy-vline,
WA_BUS052_DI-IH_MAIL, sy-vline.
ENDLOOP. *Add any further fields from structure WA_BUS052_DI 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_BUS052_DI 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_BUS052_DI INTO WA_BUS052_DI. *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 ADDRNUMBER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BUS052_DI-ADDRNUMBER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BUS052_DI-ADDRNUMBER.
WRITE:/ 'New Value:', ld_input.
*Conversion exit SXIDN, internal->external for field SMTP_ADDR CALL FUNCTION 'CONVERSION_EXIT_SXIDN_OUTPUT' EXPORTING input = WA_BUS052_DI-SMTP_ADDR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BUS052_DI-SMTP_ADDR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit SPDEV, internal->external for field PRT_DEST CALL FUNCTION 'CONVERSION_EXIT_SPDEV_OUTPUT' EXPORTING input = WA_BUS052_DI-PRT_DEST IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BUS052_DI-PRT_DEST.
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_BUS052_DI_STR,
ADDRNUMBER TYPE STRING,
ADEXT_ADDR TYPE STRING,
CHIND_ADDR TYPE STRING,
XDFADR TYPE STRING,
DEPARTMENT TYPE STRING,
FUNCTION TYPE STRING,
BUILDING_C TYPE STRING,
FLOOR_C TYPE STRING,
ROOMNUM_C TYPE STRING,
ID_CODE TYPE STRING,
IH_MAIL TYPE STRING,
DEFLT_COMM TYPE STRING,
CHIND_TEL TYPE STRING,
TEL_CONSNR TYPE STRING,
TEL_CNTRY TYPE STRING,
TEL_NUM_ADDR TYPE STRING,
TEL_EXT_ADDR TYPE STRING,
TEL_DEFLT TYPE STRING,
TEL_REMARK TYPE STRING,
TEL_HOME TYPE STRING,
CHIND_FAX TYPE STRING,
FAX_CONSNR TYPE STRING,
FAX_CNTRY TYPE STRING,
FAX_NUM_ADDR TYPE STRING,
FAX_EXT_ADDR TYPE STRING,
FAX_DEFLT TYPE STRING,
FAX_REMARK TYPE STRING,
FAX_HOME TYPE STRING,
CHIND_TTX TYPE STRING,
TTX_CONSNR TYPE STRING,
TTX_CNTRY TYPE STRING,
TTX_NUM_ADDR TYPE STRING,
TTX_DEFLT TYPE STRING,
TTX_REMARK TYPE STRING,
TTX_HOME TYPE STRING,
CHIND_TLX TYPE STRING,
TLX_CONSNR TYPE STRING,
TLX_CNTRY TYPE STRING,
TLX_NUM_ADDR TYPE STRING,
TLX_DEFLT TYPE STRING,
TLX_REMARK TYPE STRING,
TLX_HOME TYPE STRING,
CHIND_SMTP TYPE STRING,
SMTP_CONSNR TYPE STRING,
SMTP_ADDR TYPE STRING,
SMTP_DEFLT TYPE STRING,
SMTP_REMARK TYPE STRING,
SMTP_HOME TYPE STRING,
CHIND_RML TYPE STRING,
RML_CONSNR TYPE STRING,
RML_SYMB_DEST TYPE STRING,
RML_RECVR_TYPE TYPE STRING,
RML_UMAND TYPE STRING,
RML_UNAME TYPE STRING,
RML_DEFLT TYPE STRING,
RML_REMARK TYPE STRING,
RML_HOME TYPE STRING,
CHIND_X400 TYPE STRING,
X400_CONSNR TYPE STRING,
X400_CNTRY TYPE STRING,
X400_ADMIN TYPE STRING,
X400_PRIVD TYPE STRING,
X400_ORG TYPE STRING,
X400_ORG1 TYPE STRING,
X400_ORG2 TYPE STRING,
X400_ORG3 TYPE STRING,
X400_ORG4 TYPE STRING,
X400_LNAME TYPE STRING,
X400_FNAME TYPE STRING,
X400_INI TYPE STRING,
X400_GENER TYPE STRING,
X400_X121 TYPE STRING,
X400_TERMID TYPE STRING,
X400_TERMTP TYPE STRING,
X400_UANUMID TYPE STRING,
X400_TYPE1 TYPE STRING,
X400_VALUE1 TYPE STRING,
X400_TYPE2 TYPE STRING,
X400_VALUE2 TYPE STRING,
X400_TYPE3 TYPE STRING,
X400_VALUE3 TYPE STRING,
X400_TYPE4 TYPE STRING,
X400_VALUE4 TYPE STRING,
X400_R3_USER TYPE STRING,
X400_DEFLT TYPE STRING,
X400_REMARK TYPE STRING,
X400_HOME TYPE STRING,
CHIND_RFC TYPE STRING,
RFC_CONSNR TYPE STRING,
RFC_DEST TYPE STRING,
RFC_DEFLT TYPE STRING,
RFC_REMARK TYPE STRING,
RFC_HOME TYPE STRING,
CHIND_PRT TYPE STRING,
PRT_CONSNR TYPE STRING,
PRT_DEST TYPE STRING,
PRT_DEFLT TYPE STRING,
PRT_REMARK TYPE STRING,
PRT_HOME TYPE STRING,
CHIND_SSF TYPE STRING,
SSF_CONSNR TYPE STRING,
SSF_SCREEN TYPE STRING,
SSF_DEFLT TYPE STRING,
SSF_REMARK TYPE STRING,
SSF_HOME TYPE STRING,
CHIND_URI TYPE STRING,
URI_CONSNR TYPE STRING,
URI_TYPE TYPE STRING,
URI_SCREEN TYPE STRING,
URI_DEFLT TYPE STRING,
URI_REMARK TYPE STRING,
URI_HOME TYPE STRING,
CHIND_PAG TYPE STRING,
PAG_CONSNR TYPE STRING,
PAG_CNTRY TYPE STRING,
PAG_SERV TYPE STRING,
PAG_NMBR TYPE STRING,
PAG_DEFLT TYPE STRING,
PAG_REMARK TYPE STRING,
PAG_HOME TYPE STRING,
R_3_USER TYPE STRING,
STD_RECIP TYPE STRING,
FLG_NOUSE TYPE STRING,END OF T_EKKO_STR. DATA: WA_BUS052_DI_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_BUS052_DI_STR-ADDRNUMBER sy-vline
WA_BUS052_DI_STR-ADEXT_ADDR sy-vline
WA_BUS052_DI_STR-CHIND_ADDR sy-vline
WA_BUS052_DI_STR-XDFADR sy-vline
WA_BUS052_DI_STR-DEPARTMENT sy-vline
WA_BUS052_DI_STR-FUNCTION sy-vline
WA_BUS052_DI_STR-BUILDING_C sy-vline
WA_BUS052_DI_STR-FLOOR_C sy-vline
WA_BUS052_DI_STR-ROOMNUM_C sy-vline
WA_BUS052_DI_STR-ID_CODE sy-vline
WA_BUS052_DI_STR-IH_MAIL sy-vline
WA_BUS052_DI_STR-DEFLT_COMM sy-vline
WA_BUS052_DI_STR-CHIND_TEL sy-vline
WA_BUS052_DI_STR-TEL_CONSNR sy-vline
WA_BUS052_DI_STR-TEL_CNTRY sy-vline
WA_BUS052_DI_STR-TEL_NUM_ADDR sy-vline
WA_BUS052_DI_STR-TEL_EXT_ADDR sy-vline
WA_BUS052_DI_STR-TEL_DEFLT sy-vline
WA_BUS052_DI_STR-TEL_REMARK sy-vline
WA_BUS052_DI_STR-TEL_HOME sy-vline
WA_BUS052_DI_STR-CHIND_FAX sy-vline
WA_BUS052_DI_STR-FAX_CONSNR sy-vline
WA_BUS052_DI_STR-FAX_CNTRY sy-vline
WA_BUS052_DI_STR-FAX_NUM_ADDR sy-vline
WA_BUS052_DI_STR-FAX_EXT_ADDR sy-vline
WA_BUS052_DI_STR-FAX_DEFLT sy-vline
WA_BUS052_DI_STR-FAX_REMARK sy-vline
WA_BUS052_DI_STR-FAX_HOME sy-vline
WA_BUS052_DI_STR-CHIND_TTX sy-vline
WA_BUS052_DI_STR-TTX_CONSNR sy-vline
WA_BUS052_DI_STR-TTX_CNTRY sy-vline
WA_BUS052_DI_STR-TTX_NUM_ADDR sy-vline
WA_BUS052_DI_STR-TTX_DEFLT sy-vline
WA_BUS052_DI_STR-TTX_REMARK sy-vline
WA_BUS052_DI_STR-TTX_HOME sy-vline
WA_BUS052_DI_STR-CHIND_TLX sy-vline
WA_BUS052_DI_STR-TLX_CONSNR sy-vline
WA_BUS052_DI_STR-TLX_CNTRY sy-vline
WA_BUS052_DI_STR-TLX_NUM_ADDR sy-vline
WA_BUS052_DI_STR-TLX_DEFLT sy-vline
WA_BUS052_DI_STR-TLX_REMARK sy-vline
WA_BUS052_DI_STR-TLX_HOME sy-vline
WA_BUS052_DI_STR-CHIND_SMTP sy-vline
WA_BUS052_DI_STR-SMTP_CONSNR sy-vline
WA_BUS052_DI_STR-SMTP_ADDR sy-vline
WA_BUS052_DI_STR-SMTP_DEFLT sy-vline
WA_BUS052_DI_STR-SMTP_REMARK sy-vline
WA_BUS052_DI_STR-SMTP_HOME sy-vline
WA_BUS052_DI_STR-CHIND_RML sy-vline
WA_BUS052_DI_STR-RML_CONSNR sy-vline
WA_BUS052_DI_STR-RML_SYMB_DEST sy-vline
WA_BUS052_DI_STR-RML_RECVR_TYPE sy-vline
WA_BUS052_DI_STR-RML_UMAND sy-vline
WA_BUS052_DI_STR-RML_UNAME sy-vline
WA_BUS052_DI_STR-RML_DEFLT sy-vline
WA_BUS052_DI_STR-RML_REMARK sy-vline
WA_BUS052_DI_STR-RML_HOME sy-vline
WA_BUS052_DI_STR-CHIND_X400 sy-vline
WA_BUS052_DI_STR-X400_CONSNR sy-vline
WA_BUS052_DI_STR-X400_CNTRY sy-vline
WA_BUS052_DI_STR-X400_ADMIN sy-vline
WA_BUS052_DI_STR-X400_PRIVD sy-vline
WA_BUS052_DI_STR-X400_ORG sy-vline
WA_BUS052_DI_STR-X400_ORG1 sy-vline
WA_BUS052_DI_STR-X400_ORG2 sy-vline
WA_BUS052_DI_STR-X400_ORG3 sy-vline
WA_BUS052_DI_STR-X400_ORG4 sy-vline
WA_BUS052_DI_STR-X400_LNAME sy-vline
WA_BUS052_DI_STR-X400_FNAME sy-vline
WA_BUS052_DI_STR-X400_INI sy-vline
WA_BUS052_DI_STR-X400_GENER sy-vline
WA_BUS052_DI_STR-X400_X121 sy-vline
WA_BUS052_DI_STR-X400_TERMID sy-vline
WA_BUS052_DI_STR-X400_TERMTP sy-vline
WA_BUS052_DI_STR-X400_UANUMID sy-vline
WA_BUS052_DI_STR-X400_TYPE1 sy-vline
WA_BUS052_DI_STR-X400_VALUE1 sy-vline
WA_BUS052_DI_STR-X400_TYPE2 sy-vline
WA_BUS052_DI_STR-X400_VALUE2 sy-vline
WA_BUS052_DI_STR-X400_TYPE3 sy-vline
WA_BUS052_DI_STR-X400_VALUE3 sy-vline
WA_BUS052_DI_STR-X400_TYPE4 sy-vline
WA_BUS052_DI_STR-X400_VALUE4 sy-vline
WA_BUS052_DI_STR-X400_R3_USER sy-vline
WA_BUS052_DI_STR-X400_DEFLT sy-vline
WA_BUS052_DI_STR-X400_REMARK sy-vline
WA_BUS052_DI_STR-X400_HOME sy-vline
WA_BUS052_DI_STR-CHIND_RFC sy-vline
WA_BUS052_DI_STR-RFC_CONSNR sy-vline
WA_BUS052_DI_STR-RFC_DEST sy-vline
WA_BUS052_DI_STR-RFC_DEFLT sy-vline
WA_BUS052_DI_STR-RFC_REMARK sy-vline
WA_BUS052_DI_STR-RFC_HOME sy-vline
WA_BUS052_DI_STR-CHIND_PRT sy-vline
WA_BUS052_DI_STR-PRT_CONSNR sy-vline
WA_BUS052_DI_STR-PRT_DEST sy-vline
WA_BUS052_DI_STR-PRT_DEFLT sy-vline
WA_BUS052_DI_STR-PRT_REMARK sy-vline
WA_BUS052_DI_STR-PRT_HOME sy-vline
WA_BUS052_DI_STR-CHIND_SSF sy-vline
WA_BUS052_DI_STR-SSF_CONSNR sy-vline
WA_BUS052_DI_STR-SSF_SCREEN sy-vline
WA_BUS052_DI_STR-SSF_DEFLT sy-vline
WA_BUS052_DI_STR-SSF_REMARK sy-vline
WA_BUS052_DI_STR-SSF_HOME sy-vline
WA_BUS052_DI_STR-CHIND_URI sy-vline
WA_BUS052_DI_STR-URI_CONSNR sy-vline
WA_BUS052_DI_STR-URI_TYPE sy-vline
WA_BUS052_DI_STR-URI_SCREEN sy-vline
WA_BUS052_DI_STR-URI_DEFLT sy-vline
WA_BUS052_DI_STR-URI_REMARK sy-vline
WA_BUS052_DI_STR-URI_HOME sy-vline
WA_BUS052_DI_STR-CHIND_PAG sy-vline
WA_BUS052_DI_STR-PAG_CONSNR sy-vline
WA_BUS052_DI_STR-PAG_CNTRY sy-vline
WA_BUS052_DI_STR-PAG_SERV sy-vline
WA_BUS052_DI_STR-PAG_NMBR sy-vline
WA_BUS052_DI_STR-PAG_DEFLT sy-vline
WA_BUS052_DI_STR-PAG_REMARK sy-vline
WA_BUS052_DI_STR-PAG_HOME sy-vline
WA_BUS052_DI_STR-R_3_USER sy-vline
WA_BUS052_DI_STR-STD_RECIP sy-vline
WA_BUS052_DI_STR-FLG_NOUSE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.