ABAP Select data from SAP table CRMST_CONP_ADDRESS_BUIL 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 CRMST_CONP_ADDRESS_BUIL 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 CRMST_CONP_ADDRESS_BUIL. 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 CRMST_CONP_ADDRESS_BUIL 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_CRMST_CONP_ADDRESS_BUIL TYPE STANDARD TABLE OF CRMST_CONP_ADDRESS_BUIL, WA_CRMST_CONP_ADDRESS_BUIL TYPE CRMST_CONP_ADDRESS_BUIL, 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: <CRMST_CONP_ADDRESS_BUIL> TYPE CRMST_CONP_ADDRESS_BUIL. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_CRMST_CONP_ADDRESS_BUIL. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM CRMST_CONP_ADDRESS_BUIL INTO TABLE IT_CRMST_CONP_ADDRESS_BUIL. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM CRMST_CONP_ADDRESS_BUIL * INTO TABLE @DATA(IT_CRMST_CONP_ADDRESS_BUIL2). *--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_CRMST_CONP_ADDRESS_BUIL INDEX 1 INTO DATA(WA_CRMST_CONP_ADDRESS_BUIL2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_CRMST_CONP_ADDRESS_BUIL ASSIGNING <CRMST_CONP_ADDRESS_BUIL>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<CRMST_CONP_ADDRESS_BUIL>-BP_NUMBER = 1.
<CRMST_CONP_ADDRESS_BUIL>-CONP_NUMBER = 1.
<CRMST_CONP_ADDRESS_BUIL>-ADDRESS_GUID = 1.
<CRMST_CONP_ADDRESS_BUIL>-STANDARDADDRESS = 1.
<CRMST_CONP_ADDRESS_BUIL>-BUILDING_P = 1.
ENDLOOP. LOOP AT IT_CRMST_CONP_ADDRESS_BUIL INTO WA_CRMST_CONP_ADDRESS_BUIL. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_CRMST_CONP_ADDRESS_BUIL-FLOOR, sy-vline,
WA_CRMST_CONP_ADDRESS_BUIL-ROOM_NO, sy-vline,
WA_CRMST_CONP_ADDRESS_BUIL-INITS_SIG, sy-vline,
WA_CRMST_CONP_ADDRESS_BUIL-INHOUSE_ML, sy-vline,
WA_CRMST_CONP_ADDRESS_BUIL-COMM_TYPE, sy-vline,
WA_CRMST_CONP_ADDRESS_BUIL-DEPARTMENT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CRMST_CONP_ADDRESS_BUIL 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_CRMST_CONP_ADDRESS_BUIL 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_CRMST_CONP_ADDRESS_BUIL INTO WA_CRMST_CONP_ADDRESS_BUIL. *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 BP_NUMBER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMST_CONP_ADDRESS_BUIL-BP_NUMBER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMST_CONP_ADDRESS_BUIL-BP_NUMBER.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field CONP_NUMBER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMST_CONP_ADDRESS_BUIL-CONP_NUMBER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMST_CONP_ADDRESS_BUIL-CONP_NUMBER.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ISOLA, internal->external for field LANGUTEL CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_CRMST_CONP_ADDRESS_BUIL-LANGUTEL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMST_CONP_ADDRESS_BUIL-LANGUTEL.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ISOLA, internal->external for field LANGUFAX CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_CRMST_CONP_ADDRESS_BUIL-LANGUFAX IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMST_CONP_ADDRESS_BUIL-LANGUFAX.
WRITE:/ 'New Value:', ld_input.
*Conversion exit SXIDN, internal->external for field E_MAILSMT CALL FUNCTION 'CONVERSION_EXIT_SXIDN_OUTPUT' EXPORTING input = WA_CRMST_CONP_ADDRESS_BUIL-E_MAILSMT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMST_CONP_ADDRESS_BUIL-E_MAILSMT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ISOLA, internal->external for field LANGUSMT CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_CRMST_CONP_ADDRESS_BUIL-LANGUSMT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMST_CONP_ADDRESS_BUIL-LANGUSMT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ISOLA, internal->external for field LANGUMOB CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_CRMST_CONP_ADDRESS_BUIL-LANGUMOB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMST_CONP_ADDRESS_BUIL-LANGUMOB.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ISOLA, internal->external for field REM_LANGU CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_CRMST_CONP_ADDRESS_BUIL-REM_LANGU IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMST_CONP_ADDRESS_BUIL-REM_LANGU.
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_CRMST_CONP_ADDRESS_BUIL_STR,
BP_NUMBER TYPE STRING,
CONP_NUMBER TYPE STRING,
ADDRESS_GUID TYPE STRING,
STANDARDADDRESS TYPE STRING,
BUILDING_P TYPE STRING,
FLOOR TYPE STRING,
ROOM_NO TYPE STRING,
INITS_SIG TYPE STRING,
INHOUSE_ML TYPE STRING,
COMM_TYPE TYPE STRING,
DEPARTMENT TYPE STRING,
FUNCTION TYPE STRING,
ADDR_SHORT TYPE STRING,
COUNTRYTEL TYPE STRING,
COUNTRYISOTEL TYPE STRING,
STD_NOTEL TYPE STRING,
TELEPHONETEL TYPE STRING,
EXTENSIONTEL TYPE STRING,
TEL_NOTEL TYPE STRING,
CALLER_NOTEL TYPE STRING,
STD_RECIPTEL TYPE STRING,
R_3_USERTEL TYPE STRING,
HOME_FLAGTEL TYPE STRING,
CONSNUMBERTEL TYPE STRING,
ERRORFLAGTEL TYPE STRING,
FLG_NOUSETEL TYPE STRING,
VALID_FROMTEL TYPE STRING,
VALID_TOTEL TYPE STRING,
LANGUTEL TYPE STRING,
LANGU_ISOTEL TYPE STRING,
COMM_NOTESTEL TYPE STRING,
VALIDFROMDATETEL TYPE STRING,
VALIDTODATETEL TYPE STRING,
COUNTRYFAX TYPE STRING,
COUNTRYISOFAX TYPE STRING,
STD_NOFAX TYPE STRING,
FAXFAX TYPE STRING,
EXTENSIONFAX TYPE STRING,
FAX_NOFAX TYPE STRING,
SENDER_NOFAX TYPE STRING,
FAX_GROUPFAX TYPE STRING,
STD_RECIPFAX TYPE STRING,
R_3_USERFAX TYPE STRING,
HOME_FLAGFAX TYPE STRING,
CONSNUMBERFAX TYPE STRING,
ERRORFLAGFAX TYPE STRING,
FLG_NOUSEFAX TYPE STRING,
VALID_FROMFAX TYPE STRING,
VALID_TOFAX TYPE STRING,
LANGUFAX TYPE STRING,
LANGU_ISOFAX TYPE STRING,
COMM_NOTESFAX TYPE STRING,
VALIDFROMDATEFAX TYPE STRING,
VALIDTODATEFAX TYPE STRING,
STD_NOSMT TYPE STRING,
E_MAILSMT TYPE STRING,
EMAIL_SRCHSMT TYPE STRING,
STD_RECIPSMT TYPE STRING,
R_3_USERSMT TYPE STRING,
ENCODESMT TYPE STRING,
TNEFSMT TYPE STRING,
HOME_FLAGSMT TYPE STRING,
CONSNUMBERSMT TYPE STRING,
ERRORFLAGSMT TYPE STRING,
FLG_NOUSESMT TYPE STRING,
VALID_FROMSMT TYPE STRING,
VALID_TOSMT TYPE STRING,
LANGUSMT TYPE STRING,
LANGU_ISOSMT TYPE STRING,
COMM_NOTESSMT TYPE STRING,
VALIDFROMDATESMT TYPE STRING,
VALIDTODATESMT TYPE STRING,
COUNTRYMOB TYPE STRING,
COUNTRYISOMOB TYPE STRING,
STD_NOMOB TYPE STRING,
TELEPHONEMOB TYPE STRING,
EXTENSIONMOB TYPE STRING,
TEL_NOMOB TYPE STRING,
CALLER_NOMOB TYPE STRING,
STD_RECIPMOB TYPE STRING,
R_3_USERMOB TYPE STRING,
HOME_FLAGMOB TYPE STRING,
CONSNUMBERMOB TYPE STRING,
ERRORFLAGMOB TYPE STRING,
FLG_NOUSEMOB TYPE STRING,
VALID_FROMMOB TYPE STRING,
VALID_TOMOB TYPE STRING,
LANGUMOB TYPE STRING,
LANGU_ISOMOB TYPE STRING,
COMM_NOTESMOB TYPE STRING,
VALIDFROMDATEMOB TYPE STRING,
VALIDTODATEMOB TYPE STRING,
REM_LANGU TYPE STRING,END OF T_EKKO_STR. DATA: WA_CRMST_CONP_ADDRESS_BUIL_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_CRMST_CONP_ADDRESS_BUIL_STR-BP_NUMBER sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-CONP_NUMBER sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-ADDRESS_GUID sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-STANDARDADDRESS sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-BUILDING_P sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-FLOOR sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-ROOM_NO sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-INITS_SIG sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-INHOUSE_ML sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-COMM_TYPE sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-DEPARTMENT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-FUNCTION sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-ADDR_SHORT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-COUNTRYTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-COUNTRYISOTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-STD_NOTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-TELEPHONETEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-EXTENSIONTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-TEL_NOTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-CALLER_NOTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-STD_RECIPTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-R_3_USERTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-HOME_FLAGTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-CONSNUMBERTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-ERRORFLAGTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-FLG_NOUSETEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALID_FROMTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALID_TOTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-LANGUTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-LANGU_ISOTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-COMM_NOTESTEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALIDFROMDATETEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALIDTODATETEL sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-COUNTRYFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-COUNTRYISOFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-STD_NOFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-FAXFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-EXTENSIONFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-FAX_NOFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-SENDER_NOFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-FAX_GROUPFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-STD_RECIPFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-R_3_USERFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-HOME_FLAGFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-CONSNUMBERFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-ERRORFLAGFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-FLG_NOUSEFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALID_FROMFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALID_TOFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-LANGUFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-LANGU_ISOFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-COMM_NOTESFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALIDFROMDATEFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALIDTODATEFAX sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-STD_NOSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-E_MAILSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-EMAIL_SRCHSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-STD_RECIPSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-R_3_USERSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-ENCODESMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-TNEFSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-HOME_FLAGSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-CONSNUMBERSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-ERRORFLAGSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-FLG_NOUSESMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALID_FROMSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALID_TOSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-LANGUSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-LANGU_ISOSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-COMM_NOTESSMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALIDFROMDATESMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALIDTODATESMT sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-COUNTRYMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-COUNTRYISOMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-STD_NOMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-TELEPHONEMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-EXTENSIONMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-TEL_NOMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-CALLER_NOMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-STD_RECIPMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-R_3_USERMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-HOME_FLAGMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-CONSNUMBERMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-ERRORFLAGMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-FLG_NOUSEMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALID_FROMMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALID_TOMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-LANGUMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-LANGU_ISOMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-COMM_NOTESMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALIDFROMDATEMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-VALIDTODATEMOB sy-vline
WA_CRMST_CONP_ADDRESS_BUIL_STR-REM_LANGU sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.