ABAP Select data from SAP table PRINT_CO 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 PRINT_CO 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 PRINT_CO. 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 PRINT_CO 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_PRINT_CO TYPE STANDARD TABLE OF PRINT_CO, WA_PRINT_CO TYPE PRINT_CO, 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: <PRINT_CO> TYPE PRINT_CO. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_PRINT_CO. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM PRINT_CO INTO TABLE IT_PRINT_CO. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM PRINT_CO * INTO TABLE @DATA(IT_PRINT_CO2). *--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_PRINT_CO INDEX 1 INTO DATA(WA_PRINT_CO2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_PRINT_CO ASSIGNING <PRINT_CO>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<PRINT_CO>-MANDT = 1.
<PRINT_CO>-AUFNR = 1.
<PRINT_CO>-POSNR = 1.
<PRINT_CO>-AUART = 1.
<PRINT_CO>-WERKS = 1.
ENDLOOP. LOOP AT IT_PRINT_CO INTO WA_PRINT_CO. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_PRINT_CO-DISPO, sy-vline,
WA_PRINT_CO-PUSER, sy-vline,
WA_PRINT_CO-DRVAR, sy-vline,
WA_PRINT_CO-PSTEU, sy-vline,
WA_PRINT_CO-SAMLT, sy-vline,
WA_PRINT_CO-PMODE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PRINT_CO 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_PRINT_CO 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_PRINT_CO INTO WA_PRINT_CO. *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 AUFNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PRINT_CO-AUFNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PRINT_CO-AUFNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit SPDEV, internal->external for field DESTI CALL FUNCTION 'CONVERSION_EXIT_SPDEV_OUTPUT' EXPORTING input = WA_PRINT_CO-DESTI IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PRINT_CO-DESTI.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ISOLA, internal->external for field SPRAS CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_PRINT_CO-SPRAS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PRINT_CO-SPRAS.
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_PRINT_CO_STR,
MANDT TYPE STRING,
AUFNR TYPE STRING,
POSNR TYPE STRING,
AUART TYPE STRING,
WERKS TYPE STRING,
DISPO TYPE STRING,
PUSER TYPE STRING,
DRVAR TYPE STRING,
PSTEU TYPE STRING,
SAMLT TYPE STRING,
PMODE TYPE STRING,
DRART TYPE STRING,
DRTXT TYPE STRING,
KTEXT TYPE STRING,
SELPR TYPE STRING,
TCODE TYPE STRING,
REPID TYPE STRING,
FORML TYPE STRING,
FORM_PDF TYPE STRING,
DESTI TYPE STRING,
PKEEP TYPE STRING,
DKEEP TYPE STRING,
PRIMM TYPE STRING,
SPRAS TYPE STRING,
LSTID TYPE STRING,
LSTNM TYPE STRING,
COPYS TYPE STRING,
LNAME TYPE STRING,
BARCO TYPE STRING,
NLIST TYPE STRING,
AZABS TYPE STRING,
SCREEN TYPE STRING,
VBFORM TYPE STRING,
USE_WCP TYPE STRING,
ACTPAGE TYPE STRING,END OF T_EKKO_STR. DATA: WA_PRINT_CO_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_PRINT_CO_STR-MANDT sy-vline
WA_PRINT_CO_STR-AUFNR sy-vline
WA_PRINT_CO_STR-POSNR sy-vline
WA_PRINT_CO_STR-AUART sy-vline
WA_PRINT_CO_STR-WERKS sy-vline
WA_PRINT_CO_STR-DISPO sy-vline
WA_PRINT_CO_STR-PUSER sy-vline
WA_PRINT_CO_STR-DRVAR sy-vline
WA_PRINT_CO_STR-PSTEU sy-vline
WA_PRINT_CO_STR-SAMLT sy-vline
WA_PRINT_CO_STR-PMODE sy-vline
WA_PRINT_CO_STR-DRART sy-vline
WA_PRINT_CO_STR-DRTXT sy-vline
WA_PRINT_CO_STR-KTEXT sy-vline
WA_PRINT_CO_STR-SELPR sy-vline
WA_PRINT_CO_STR-TCODE sy-vline
WA_PRINT_CO_STR-REPID sy-vline
WA_PRINT_CO_STR-FORML sy-vline
WA_PRINT_CO_STR-FORM_PDF sy-vline
WA_PRINT_CO_STR-DESTI sy-vline
WA_PRINT_CO_STR-PKEEP sy-vline
WA_PRINT_CO_STR-DKEEP sy-vline
WA_PRINT_CO_STR-PRIMM sy-vline
WA_PRINT_CO_STR-SPRAS sy-vline
WA_PRINT_CO_STR-LSTID sy-vline
WA_PRINT_CO_STR-LSTNM sy-vline
WA_PRINT_CO_STR-COPYS sy-vline
WA_PRINT_CO_STR-LNAME sy-vline
WA_PRINT_CO_STR-BARCO sy-vline
WA_PRINT_CO_STR-NLIST sy-vline
WA_PRINT_CO_STR-AZABS sy-vline
WA_PRINT_CO_STR-SCREEN sy-vline
WA_PRINT_CO_STR-VBFORM sy-vline
WA_PRINT_CO_STR-USE_WCP sy-vline
WA_PRINT_CO_STR-ACTPAGE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.