ABAP Select data from SAP table Q5UB0 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 Q5UB0 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 Q5UB0. 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 Q5UB0 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_Q5UB0 TYPE STANDARD TABLE OF Q5UB0,
      WA_Q5UB0 TYPE Q5UB0,
      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: <Q5UB0> TYPE Q5UB0.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM Q5UB0
*  INTO TABLE @DATA(IT_Q5UB02).
*--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_Q5UB0 INDEX 1 INTO DATA(WA_Q5UB02).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_Q5UB0 ASSIGNING <Q5UB0>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<Q5UB0>-CURR1 = 1.
<Q5UB0>-CURR2 = 1.
<Q5UB0>-CURR3 = 1.
<Q5UB0>-CURR4 = 1.
<Q5UB0>-CURR5 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_Q5UB0-CURR6, sy-vline,
WA_Q5UB0-CURR7, sy-vline,
WA_Q5UB0-CURR8, sy-vline,
WA_Q5UB0-CURR9, sy-vline,
WA_Q5UB0-CURRA, sy-vline,
WA_Q5UB0-CURRB, sy-vline.
ENDLOOP. *Add any further fields from structure WA_Q5UB0 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_Q5UB0 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_Q5UB0 INTO WA_Q5UB0. *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 PDATE, internal->external for field GBDAT CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT' EXPORTING input = WA_Q5UB0-GBDAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_Q5UB0-GBDAT.
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_Q5UB0_STR,
CURR1 TYPE STRING,
CURR2 TYPE STRING,
CURR3 TYPE STRING,
CURR4 TYPE STRING,
CURR5 TYPE STRING,
CURR6 TYPE STRING,
CURR7 TYPE STRING,
CURR8 TYPE STRING,
CURR9 TYPE STRING,
CURRA TYPE STRING,
CURRB TYPE STRING,
CURRC TYPE STRING,
WAIYR TYPE STRING,
WAIQU TYPE STRING,
WAIMO TYPE STRING,
WAIPD TYPE STRING,
WAINW TYPE STRING,
TRMYR TYPE STRING,
TRMQU TYPE STRING,
TRMMO TYPE STRING,
TRMPD TYPE STRING,
TRMNW TYPE STRING,
PLYRD TYPE STRING,
PLYRM TYPE STRING,
GRCDA TYPE STRING,
GRCMO TYPE STRING,
SALDY TYPE STRING,
SALMO TYPE STRING,
AGEDY TYPE STRING,
AGEMO TYPE STRING,
SRVDY TYPE STRING,
SRVMO TYPE STRING,
BSALD TYPE STRING,
BSALM TYPE STRING,
PAYDA TYPE STRING,
CNPCI TYPE STRING,
LMPCI TYPE STRING,
CNECA TYPE STRING,
LMECA TYPE STRING,
GESC1 TYPE STRING,
GESC2 TYPE STRING,
NOREL TYPE STRING,
MINLS TYPE STRING,
MAXLS TYPE STRING,
ANYPL TYPE STRING,
ALLPL TYPE STRING,
GPENR TYPE STRING,
GPPRT TYPE STRING,
AUTOM TYPE STRING,
INTRM TYPE STRING,
REIND TYPE STRING,
CONTR TYPE STRING,
BNAME TYPE STRING,
GBDAT TYPE STRING,
PERID TYPE STRING,
PERSN TYPE STRING,
DEPPI TYPE STRING,
BEEVD TYPE STRING,
BESYS TYPE STRING,
BEFXD TYPE STRING,
ENPRO TYPE STRING,
ENEOT TYPE STRING,
ENFXD TYPE STRING,
NOOPN TYPE STRING,
PDEEP TYPE STRING,
CKFFL TYPE STRING,
CUMPD TYPE STRING,
PDREG TYPE STRING,
SAPSC TYPE STRING,
DOCTX TYPE STRING,
FOTTX TYPE STRING,
PERTX TYPE STRING,
EOIAT TYPE STRING,
EVTTX TYPE STRING,
EECPP TYPE STRING,
EECPR TYPE STRING,
EECPS TYPE STRING,
ACHRS TYPE STRING,
SVEVA TYPE STRING,
EQCAL TYPE STRING,
EQVAL TYPE STRING,
URLL1 TYPE STRING,
URLL2 TYPE STRING,
URLL3 TYPE STRING,
ADOBE TYPE STRING,
GRCRD TYPE STRING,
GRCRM TYPE STRING,
RMBPP TYPE STRING,END OF T_EKKO_STR. DATA: WA_Q5UB0_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_Q5UB0_STR-CURR1 sy-vline
WA_Q5UB0_STR-CURR2 sy-vline
WA_Q5UB0_STR-CURR3 sy-vline
WA_Q5UB0_STR-CURR4 sy-vline
WA_Q5UB0_STR-CURR5 sy-vline
WA_Q5UB0_STR-CURR6 sy-vline
WA_Q5UB0_STR-CURR7 sy-vline
WA_Q5UB0_STR-CURR8 sy-vline
WA_Q5UB0_STR-CURR9 sy-vline
WA_Q5UB0_STR-CURRA sy-vline
WA_Q5UB0_STR-CURRB sy-vline
WA_Q5UB0_STR-CURRC sy-vline
WA_Q5UB0_STR-WAIYR sy-vline
WA_Q5UB0_STR-WAIQU sy-vline
WA_Q5UB0_STR-WAIMO sy-vline
WA_Q5UB0_STR-WAIPD sy-vline
WA_Q5UB0_STR-WAINW sy-vline
WA_Q5UB0_STR-TRMYR sy-vline
WA_Q5UB0_STR-TRMQU sy-vline
WA_Q5UB0_STR-TRMMO sy-vline
WA_Q5UB0_STR-TRMPD sy-vline
WA_Q5UB0_STR-TRMNW sy-vline
WA_Q5UB0_STR-PLYRD sy-vline
WA_Q5UB0_STR-PLYRM sy-vline
WA_Q5UB0_STR-GRCDA sy-vline
WA_Q5UB0_STR-GRCMO sy-vline
WA_Q5UB0_STR-SALDY sy-vline
WA_Q5UB0_STR-SALMO sy-vline
WA_Q5UB0_STR-AGEDY sy-vline
WA_Q5UB0_STR-AGEMO sy-vline
WA_Q5UB0_STR-SRVDY sy-vline
WA_Q5UB0_STR-SRVMO sy-vline
WA_Q5UB0_STR-BSALD sy-vline
WA_Q5UB0_STR-BSALM sy-vline
WA_Q5UB0_STR-PAYDA sy-vline
WA_Q5UB0_STR-CNPCI sy-vline
WA_Q5UB0_STR-LMPCI sy-vline
WA_Q5UB0_STR-CNECA sy-vline
WA_Q5UB0_STR-LMECA sy-vline
WA_Q5UB0_STR-GESC1 sy-vline
WA_Q5UB0_STR-GESC2 sy-vline
WA_Q5UB0_STR-NOREL sy-vline
WA_Q5UB0_STR-MINLS sy-vline
WA_Q5UB0_STR-MAXLS sy-vline
WA_Q5UB0_STR-ANYPL sy-vline
WA_Q5UB0_STR-ALLPL sy-vline
WA_Q5UB0_STR-GPENR sy-vline
WA_Q5UB0_STR-GPPRT sy-vline
WA_Q5UB0_STR-AUTOM sy-vline
WA_Q5UB0_STR-INTRM sy-vline
WA_Q5UB0_STR-REIND sy-vline
WA_Q5UB0_STR-CONTR sy-vline
WA_Q5UB0_STR-BNAME sy-vline
WA_Q5UB0_STR-GBDAT sy-vline
WA_Q5UB0_STR-PERID sy-vline
WA_Q5UB0_STR-PERSN sy-vline
WA_Q5UB0_STR-DEPPI sy-vline
WA_Q5UB0_STR-BEEVD sy-vline
WA_Q5UB0_STR-BESYS sy-vline
WA_Q5UB0_STR-BEFXD sy-vline
WA_Q5UB0_STR-ENPRO sy-vline
WA_Q5UB0_STR-ENEOT sy-vline
WA_Q5UB0_STR-ENFXD sy-vline
WA_Q5UB0_STR-NOOPN sy-vline
WA_Q5UB0_STR-PDEEP sy-vline
WA_Q5UB0_STR-CKFFL sy-vline
WA_Q5UB0_STR-CUMPD sy-vline
WA_Q5UB0_STR-PDREG sy-vline
WA_Q5UB0_STR-SAPSC sy-vline
WA_Q5UB0_STR-DOCTX sy-vline
WA_Q5UB0_STR-FOTTX sy-vline
WA_Q5UB0_STR-PERTX sy-vline
WA_Q5UB0_STR-EOIAT sy-vline
WA_Q5UB0_STR-EVTTX sy-vline
WA_Q5UB0_STR-EECPP sy-vline
WA_Q5UB0_STR-EECPR sy-vline
WA_Q5UB0_STR-EECPS sy-vline
WA_Q5UB0_STR-ACHRS sy-vline
WA_Q5UB0_STR-SVEVA sy-vline
WA_Q5UB0_STR-EQCAL sy-vline
WA_Q5UB0_STR-EQVAL sy-vline
WA_Q5UB0_STR-URLL1 sy-vline
WA_Q5UB0_STR-URLL2 sy-vline
WA_Q5UB0_STR-URLL3 sy-vline
WA_Q5UB0_STR-ADOBE sy-vline
WA_Q5UB0_STR-GRCRD sy-vline
WA_Q5UB0_STR-GRCRM sy-vline
WA_Q5UB0_STR-RMBPP sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.