ABAP Select data from SAP table FIWTVE_S_BP_CERT_DTL 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 FIWTVE_S_BP_CERT_DTL 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 FIWTVE_S_BP_CERT_DTL. 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 FIWTVE_S_BP_CERT_DTL 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_FIWTVE_S_BP_CERT_DTL TYPE STANDARD TABLE OF FIWTVE_S_BP_CERT_DTL,
      WA_FIWTVE_S_BP_CERT_DTL TYPE FIWTVE_S_BP_CERT_DTL,
      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: <FIWTVE_S_BP_CERT_DTL> TYPE FIWTVE_S_BP_CERT_DTL.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM FIWTVE_S_BP_CERT_DTL
*  INTO TABLE @DATA(IT_FIWTVE_S_BP_CERT_DTL2).
*--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_FIWTVE_S_BP_CERT_DTL INDEX 1 INTO DATA(WA_FIWTVE_S_BP_CERT_DTL2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_FIWTVE_S_BP_CERT_DTL ASSIGNING <FIWTVE_S_BP_CERT_DTL>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<FIWTVE_S_BP_CERT_DTL>-PARTNERNO = 1.
<FIWTVE_S_BP_CERT_DTL>-DOCUMENTDATE = 1.
<FIWTVE_S_BP_CERT_DTL>-INVDOCUMENTNUMBER = 1.
<FIWTVE_S_BP_CERT_DTL>-DOCUMENTTEXT = 1.
<FIWTVE_S_BP_CERT_DTL>-REFDOCNUMBER = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_FIWTVE_S_BP_CERT_DTL-TOTAMOUNTDOCCURR, sy-vline,
WA_FIWTVE_S_BP_CERT_DTL-BASEAMOUNTDOCCURR, sy-vline,
WA_FIWTVE_S_BP_CERT_DTL-WITHTAXRATE, sy-vline,
WA_FIWTVE_S_BP_CERT_DTL-WT_TYPE_DESC, sy-vline,
WA_FIWTVE_S_BP_CERT_DTL-TAXAMOUNTDOCCURR, sy-vline,
WA_FIWTVE_S_BP_CERT_DTL-REDUCTIONS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FIWTVE_S_BP_CERT_DTL 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_FIWTVE_S_BP_CERT_DTL 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_FIWTVE_S_BP_CERT_DTL INTO WA_FIWTVE_S_BP_CERT_DTL. *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 INVDOCUMENTNUMBER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FIWTVE_S_BP_CERT_DTL-INVDOCUMENTNUMBER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIWTVE_S_BP_CERT_DTL-INVDOCUMENTNUMBER.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field TOTAMOUNTDOCCURR CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FIWTVE_S_BP_CERT_DTL-TOTAMOUNTDOCCURR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIWTVE_S_BP_CERT_DTL-TOTAMOUNTDOCCURR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field BASEAMOUNTDOCCURR CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FIWTVE_S_BP_CERT_DTL-BASEAMOUNTDOCCURR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIWTVE_S_BP_CERT_DTL-BASEAMOUNTDOCCURR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field TAXAMOUNTDOCCURR CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FIWTVE_S_BP_CERT_DTL-TAXAMOUNTDOCCURR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIWTVE_S_BP_CERT_DTL-TAXAMOUNTDOCCURR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field REDUCTIONS CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FIWTVE_S_BP_CERT_DTL-REDUCTIONS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIWTVE_S_BP_CERT_DTL-REDUCTIONS.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

*Conversion exit AU132, internal->external for field TOTALPURVAT CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FIWTVE_S_BP_CERT_DTL-TOTALPURVAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIWTVE_S_BP_CERT_DTL-TOTALPURVAT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field PURWITHOUTTAX CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FIWTVE_S_BP_CERT_DTL-PURWITHOUTTAX IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIWTVE_S_BP_CERT_DTL-PURWITHOUTTAX.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field TAXABLEBASE CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FIWTVE_S_BP_CERT_DTL-TAXABLEBASE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIWTVE_S_BP_CERT_DTL-TAXABLEBASE.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field VAT CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FIWTVE_S_BP_CERT_DTL-VAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIWTVE_S_BP_CERT_DTL-VAT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field WITHHELDVAT CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FIWTVE_S_BP_CERT_DTL-WITHHELDVAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIWTVE_S_BP_CERT_DTL-WITHHELDVAT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field ACCUMBASE CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FIWTVE_S_BP_CERT_DTL-ACCUMBASE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIWTVE_S_BP_CERT_DTL-ACCUMBASE.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field ACCUMWHT CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FIWTVE_S_BP_CERT_DTL-ACCUMWHT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FIWTVE_S_BP_CERT_DTL-ACCUMWHT.
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_FIWTVE_S_BP_CERT_DTL_STR,
PARTNERNO TYPE STRING,
DOCUMENTDATE TYPE STRING,
INVDOCUMENTNUMBER TYPE STRING,
DOCUMENTTEXT TYPE STRING,
REFDOCNUMBER TYPE STRING,
TOTAMOUNTDOCCURR TYPE STRING,
BASEAMOUNTDOCCURR TYPE STRING,
WITHTAXRATE TYPE STRING,
WT_TYPE_DESC TYPE STRING,
TAXAMOUNTDOCCURR TYPE STRING,
REDUCTIONS TYPE STRING,
POSTINGDATE TYPE STRING,
DOCUMENTNUMBER TYPE STRING,
OPERATIONNUMBER TYPE STRING,
CENTRALNUMBER TYPE STRING,
DEBITNOTENUMBER TYPE STRING,
CREDITNOTENUMBER TYPE STRING,
OPERATIONCLASS TYPE STRING,
INVNUMBERAFFECTED TYPE STRING,
TOTALPURVAT TYPE STRING,
PURWITHOUTTAX TYPE STRING,
TAXABLEBASE TYPE STRING,
VAT TYPE STRING,
WITHHELDVAT TYPE STRING,
LTX TYPE STRING,
ACCUMBASE TYPE STRING,
ACCUMWHT TYPE STRING,END OF T_EKKO_STR. DATA: WA_FIWTVE_S_BP_CERT_DTL_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_FIWTVE_S_BP_CERT_DTL_STR-PARTNERNO sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-DOCUMENTDATE sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-INVDOCUMENTNUMBER sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-DOCUMENTTEXT sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-REFDOCNUMBER sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-TOTAMOUNTDOCCURR sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-BASEAMOUNTDOCCURR sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-WITHTAXRATE sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-WT_TYPE_DESC sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-TAXAMOUNTDOCCURR sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-REDUCTIONS sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-POSTINGDATE sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-DOCUMENTNUMBER sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-OPERATIONNUMBER sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-CENTRALNUMBER sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-DEBITNOTENUMBER sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-CREDITNOTENUMBER sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-OPERATIONCLASS sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-INVNUMBERAFFECTED sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-TOTALPURVAT sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-PURWITHOUTTAX sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-TAXABLEBASE sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-VAT sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-WITHHELDVAT sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-LTX sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-ACCUMBASE sy-vline
WA_FIWTVE_S_BP_CERT_DTL_STR-ACCUMWHT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.