ABAP Select data from SAP table ISU_RPPM 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 ISU_RPPM 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 ISU_RPPM. 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 ISU_RPPM 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_ISU_RPPM TYPE STANDARD TABLE OF ISU_RPPM,
      WA_ISU_RPPM TYPE ISU_RPPM,
      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: <ISU_RPPM> TYPE ISU_RPPM.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM ISU_RPPM
*  INTO TABLE @DATA(IT_ISU_RPPM2).
*--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_ISU_RPPM INDEX 1 INTO DATA(WA_ISU_RPPM2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_ISU_RPPM ASSIGNING <ISU_RPPM>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<ISU_RPPM>-PP_NR = 1.
<ISU_RPPM>-VERTRAG = 1.
<ISU_RPPM>-GPARTNER = 1.
<ISU_RPPM>-GPTEXT = 1.
<ISU_RPPM>-PP_FROM = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_ISU_RPPM-PP_TO, sy-vline,
WA_ISU_RPPM-PP_REFRENZNR, sy-vline,
WA_ISU_RPPM-MOVE_IN_DATE, sy-vline,
WA_ISU_RPPM-ACTION, sy-vline,
WA_ISU_RPPM-TEXT, sy-vline,
WA_ISU_RPPM-ADRNB, sy-vline.
ENDLOOP. *Add any further fields from structure WA_ISU_RPPM 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_ISU_RPPM 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_ISU_RPPM INTO WA_ISU_RPPM. *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 PP_NR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_ISU_RPPM-PP_NR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ISU_RPPM-PP_NR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field QS_08_PREIS CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_ISU_RPPM-QS_08_PREIS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ISU_RPPM-QS_08_PREIS.
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_ISU_RPPM_STR,
PP_NR TYPE STRING,
VERTRAG TYPE STRING,
GPARTNER TYPE STRING,
GPTEXT TYPE STRING,
PP_FROM TYPE STRING,
PP_TO TYPE STRING,
PP_REFRENZNR TYPE STRING,
MOVE_IN_DATE TYPE STRING,
ACTION TYPE STRING,
TEXT TYPE STRING,
ADRNB TYPE STRING,
ERDAT TYPE STRING,
ERNAM TYPE STRING,
ERSAP TYPE STRING,
AEDAT TYPE STRING,
AENAM TYPE STRING,
AEUZEIT TYPE STRING,
AESAP TYPE STRING,
RR_FROM TYPE STRING,
RR_TIME_FROM TYPE STRING,
RR_TO TYPE STRING,
RR_TIME_TO TYPE STRING,
RR_ACTION TYPE STRING,
ZWNUMMER TYPE STRING,
RR_OUTLETID TYPE STRING,
RR_CONS TYPE STRING,
RR_NON_CONS TYPE STRING,
PP_ZEILE TYPE STRING,
DEBT_CONS TYPE STRING,
DEBT_NON_CONS TYPE STRING,
AMOUNT_CONS TYPE STRING,
AMOUNT_NO_CONS TYPE STRING,
CREDIT_VALUE TYPE STRING,
PAY_AMOUNT TYPE STRING,
PAYDATE TYPE STRING,
TRANSFER_DATE TYPE STRING,
TWAERS TYPE STRING,
OUTLETID TYPE STRING,
DEBT_ACTION TYPE STRING,
REASON TYPE STRING,
TARIFTYP TYPE STRING,
PRIORITY TYPE STRING,
WEEKLY_MIN TYPE STRING,
WEEKS_CONS TYPE STRING,
WEEKS_NON_CONS TYPE STRING,
RR_DEBT_CONS TYPE STRING,
RR_DEBT_NON_CONS TYPE STRING,
ENDABRPE TYPE STRING,
METER_READINGS TYPE STRING,
BILLING TYPE STRING,
DELETE TYPE STRING,
DEBIT_CONS TYPE STRING,
CREDIT_CONS TYPE STRING,
DEBIT_NON_CONS TYPE STRING,
CREDIT_NON_CONS TYPE STRING,
CREDIT_AMOUNT TYPE STRING,
DEBIT_AMOUNT TYPE STRING,
RR_STATUS TYPE STRING,
DEBT_STATUS TYPE STRING,
CARD_REASON TYPE STRING,
ISSUE_TYPE TYPE STRING,
QS_03_ADRNB TYPE STRING,
QS_03_DISADRNB TYPE STRING,
QS_03_CARD_ST TYPE STRING,
QS_03_CARD_WEEK TYPE STRING,
QS_03_BP_TEXT TYPE STRING,
QS_06_RESP_1H TYPE STRING,
QS_06_RESP_SD TYPE STRING,
QS_06_RESP_3D TYPE STRING,
QS_06_ORI_JOB_NR TYPE STRING,
QS_06_DESCRIP TYPE STRING,
QS_07_JOB_TYPE TYPE STRING,
QS_07_JOB_NR TYPE STRING,
QS_07_SLA_BROKEN TYPE STRING,
QS_07_NATURE TYPE STRING,
QS_07_EXPLANAT TYPE STRING,
QS_08_CARD_X TYPE STRING,
QS_08_CARD_R TYPE STRING,
QS_08_EM_VHIGH TYPE STRING,
QS_08_EM_HIGH TYPE STRING,
QS_08_EM_MEDIUM TYPE STRING,
QS_08_EM_LOW TYPE STRING,
QS_08_ALGO_CODE TYPE STRING,
QS_08_WB_AMOUNT TYPE STRING,
QS_08_TARIFTYP TYPE STRING,
QS_08_GAS_AL_RATE TYPE STRING,
QS_08_ADRNB TYPE STRING,
QS_08_DISADRNB TYPE STRING,
QS_08_BP_TEXT TYPE STRING,
QS_08_ECT TYPE STRING,
QS_08_ECL TYPE STRING,
QS_08_BISS_AMO TYPE STRING,
QS_08_ST_CHARGE TYPE STRING,
QS_08_PREIS TYPE STRING,
QS_08_OUTLETID_1 TYPE STRING,
QS_08_ISSUE_TYPE TYPE STRING,
QS_09_WD_RE_OUT TYPE STRING,
QS_09_WD_RE_SW TYPE STRING,
QS_09_WD_RE_NPPM TYPE STRING,
QS_09_WD_DATE TYPE STRING,
FRAME_1 TYPE STRING,
FRAME_2 TYPE STRING,
FRAME_3 TYPE STRING,
FRAME_4 TYPE STRING,
FRAME_5 TYPE STRING,
FRAME_6 TYPE STRING,
FRAME_7 TYPE STRING,
FRAME_8 TYPE STRING,
FRAME_9 TYPE STRING,
FRAME1_1 TYPE STRING,
FRAME1_2 TYPE STRING,
FRAME1_3 TYPE STRING,
FRAME1_4 TYPE STRING,
FRAME1_5 TYPE STRING,
FRAME1_6 TYPE STRING,
FRAME_11 TYPE STRING,
FRAME_12 TYPE STRING,
CHARGEABLE TYPE STRING,
FIRST_DEBT TYPE STRING,
FIRST_RR TYPE STRING,
RECENT_RR TYPE STRING,
ADJUSTMENT_DEBT TYPE STRING,
BEGABRPE TYPE STRING,
DIALOG_MODUS TYPE STRING,END OF T_EKKO_STR. DATA: WA_ISU_RPPM_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_ISU_RPPM_STR-PP_NR sy-vline
WA_ISU_RPPM_STR-VERTRAG sy-vline
WA_ISU_RPPM_STR-GPARTNER sy-vline
WA_ISU_RPPM_STR-GPTEXT sy-vline
WA_ISU_RPPM_STR-PP_FROM sy-vline
WA_ISU_RPPM_STR-PP_TO sy-vline
WA_ISU_RPPM_STR-PP_REFRENZNR sy-vline
WA_ISU_RPPM_STR-MOVE_IN_DATE sy-vline
WA_ISU_RPPM_STR-ACTION sy-vline
WA_ISU_RPPM_STR-TEXT sy-vline
WA_ISU_RPPM_STR-ADRNB sy-vline
WA_ISU_RPPM_STR-ERDAT sy-vline
WA_ISU_RPPM_STR-ERNAM sy-vline
WA_ISU_RPPM_STR-ERSAP sy-vline
WA_ISU_RPPM_STR-AEDAT sy-vline
WA_ISU_RPPM_STR-AENAM sy-vline
WA_ISU_RPPM_STR-AEUZEIT sy-vline
WA_ISU_RPPM_STR-AESAP sy-vline
WA_ISU_RPPM_STR-RR_FROM sy-vline
WA_ISU_RPPM_STR-RR_TIME_FROM sy-vline
WA_ISU_RPPM_STR-RR_TO sy-vline
WA_ISU_RPPM_STR-RR_TIME_TO sy-vline
WA_ISU_RPPM_STR-RR_ACTION sy-vline
WA_ISU_RPPM_STR-ZWNUMMER sy-vline
WA_ISU_RPPM_STR-RR_OUTLETID sy-vline
WA_ISU_RPPM_STR-RR_CONS sy-vline
WA_ISU_RPPM_STR-RR_NON_CONS sy-vline
WA_ISU_RPPM_STR-PP_ZEILE sy-vline
WA_ISU_RPPM_STR-DEBT_CONS sy-vline
WA_ISU_RPPM_STR-DEBT_NON_CONS sy-vline
WA_ISU_RPPM_STR-AMOUNT_CONS sy-vline
WA_ISU_RPPM_STR-AMOUNT_NO_CONS sy-vline
WA_ISU_RPPM_STR-CREDIT_VALUE sy-vline
WA_ISU_RPPM_STR-PAY_AMOUNT sy-vline
WA_ISU_RPPM_STR-PAYDATE sy-vline
WA_ISU_RPPM_STR-TRANSFER_DATE sy-vline
WA_ISU_RPPM_STR-TWAERS sy-vline
WA_ISU_RPPM_STR-OUTLETID sy-vline
WA_ISU_RPPM_STR-DEBT_ACTION sy-vline
WA_ISU_RPPM_STR-REASON sy-vline
WA_ISU_RPPM_STR-TARIFTYP sy-vline
WA_ISU_RPPM_STR-PRIORITY sy-vline
WA_ISU_RPPM_STR-WEEKLY_MIN sy-vline
WA_ISU_RPPM_STR-WEEKS_CONS sy-vline
WA_ISU_RPPM_STR-WEEKS_NON_CONS sy-vline
WA_ISU_RPPM_STR-RR_DEBT_CONS sy-vline
WA_ISU_RPPM_STR-RR_DEBT_NON_CONS sy-vline
WA_ISU_RPPM_STR-ENDABRPE sy-vline
WA_ISU_RPPM_STR-METER_READINGS sy-vline
WA_ISU_RPPM_STR-BILLING sy-vline
WA_ISU_RPPM_STR-DELETE sy-vline
WA_ISU_RPPM_STR-DEBIT_CONS sy-vline
WA_ISU_RPPM_STR-CREDIT_CONS sy-vline
WA_ISU_RPPM_STR-DEBIT_NON_CONS sy-vline
WA_ISU_RPPM_STR-CREDIT_NON_CONS sy-vline
WA_ISU_RPPM_STR-CREDIT_AMOUNT sy-vline
WA_ISU_RPPM_STR-DEBIT_AMOUNT sy-vline
WA_ISU_RPPM_STR-RR_STATUS sy-vline
WA_ISU_RPPM_STR-DEBT_STATUS sy-vline
WA_ISU_RPPM_STR-CARD_REASON sy-vline
WA_ISU_RPPM_STR-ISSUE_TYPE sy-vline
WA_ISU_RPPM_STR-QS_03_ADRNB sy-vline
WA_ISU_RPPM_STR-QS_03_DISADRNB sy-vline
WA_ISU_RPPM_STR-QS_03_CARD_ST sy-vline
WA_ISU_RPPM_STR-QS_03_CARD_WEEK sy-vline
WA_ISU_RPPM_STR-QS_03_BP_TEXT sy-vline
WA_ISU_RPPM_STR-QS_06_RESP_1H sy-vline
WA_ISU_RPPM_STR-QS_06_RESP_SD sy-vline
WA_ISU_RPPM_STR-QS_06_RESP_3D sy-vline
WA_ISU_RPPM_STR-QS_06_ORI_JOB_NR sy-vline
WA_ISU_RPPM_STR-QS_06_DESCRIP sy-vline
WA_ISU_RPPM_STR-QS_07_JOB_TYPE sy-vline
WA_ISU_RPPM_STR-QS_07_JOB_NR sy-vline
WA_ISU_RPPM_STR-QS_07_SLA_BROKEN sy-vline
WA_ISU_RPPM_STR-QS_07_NATURE sy-vline
WA_ISU_RPPM_STR-QS_07_EXPLANAT sy-vline
WA_ISU_RPPM_STR-QS_08_CARD_X sy-vline
WA_ISU_RPPM_STR-QS_08_CARD_R sy-vline
WA_ISU_RPPM_STR-QS_08_EM_VHIGH sy-vline
WA_ISU_RPPM_STR-QS_08_EM_HIGH sy-vline
WA_ISU_RPPM_STR-QS_08_EM_MEDIUM sy-vline
WA_ISU_RPPM_STR-QS_08_EM_LOW sy-vline
WA_ISU_RPPM_STR-QS_08_ALGO_CODE sy-vline
WA_ISU_RPPM_STR-QS_08_WB_AMOUNT sy-vline
WA_ISU_RPPM_STR-QS_08_TARIFTYP sy-vline
WA_ISU_RPPM_STR-QS_08_GAS_AL_RATE sy-vline
WA_ISU_RPPM_STR-QS_08_ADRNB sy-vline
WA_ISU_RPPM_STR-QS_08_DISADRNB sy-vline
WA_ISU_RPPM_STR-QS_08_BP_TEXT sy-vline
WA_ISU_RPPM_STR-QS_08_ECT sy-vline
WA_ISU_RPPM_STR-QS_08_ECL sy-vline
WA_ISU_RPPM_STR-QS_08_BISS_AMO sy-vline
WA_ISU_RPPM_STR-QS_08_ST_CHARGE sy-vline
WA_ISU_RPPM_STR-QS_08_PREIS sy-vline
WA_ISU_RPPM_STR-QS_08_OUTLETID_1 sy-vline
WA_ISU_RPPM_STR-QS_08_ISSUE_TYPE sy-vline
WA_ISU_RPPM_STR-QS_09_WD_RE_OUT sy-vline
WA_ISU_RPPM_STR-QS_09_WD_RE_SW sy-vline
WA_ISU_RPPM_STR-QS_09_WD_RE_NPPM sy-vline
WA_ISU_RPPM_STR-QS_09_WD_DATE sy-vline
WA_ISU_RPPM_STR-FRAME_1 sy-vline
WA_ISU_RPPM_STR-FRAME_2 sy-vline
WA_ISU_RPPM_STR-FRAME_3 sy-vline
WA_ISU_RPPM_STR-FRAME_4 sy-vline
WA_ISU_RPPM_STR-FRAME_5 sy-vline
WA_ISU_RPPM_STR-FRAME_6 sy-vline
WA_ISU_RPPM_STR-FRAME_7 sy-vline
WA_ISU_RPPM_STR-FRAME_8 sy-vline
WA_ISU_RPPM_STR-FRAME_9 sy-vline
WA_ISU_RPPM_STR-FRAME1_1 sy-vline
WA_ISU_RPPM_STR-FRAME1_2 sy-vline
WA_ISU_RPPM_STR-FRAME1_3 sy-vline
WA_ISU_RPPM_STR-FRAME1_4 sy-vline
WA_ISU_RPPM_STR-FRAME1_5 sy-vline
WA_ISU_RPPM_STR-FRAME1_6 sy-vline
WA_ISU_RPPM_STR-FRAME_11 sy-vline
WA_ISU_RPPM_STR-FRAME_12 sy-vline
WA_ISU_RPPM_STR-CHARGEABLE sy-vline
WA_ISU_RPPM_STR-FIRST_DEBT sy-vline
WA_ISU_RPPM_STR-FIRST_RR sy-vline
WA_ISU_RPPM_STR-RECENT_RR sy-vline
WA_ISU_RPPM_STR-ADJUSTMENT_DEBT sy-vline
WA_ISU_RPPM_STR-BEGABRPE sy-vline
WA_ISU_RPPM_STR-DIALOG_MODUS sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.