ABAP Select data from SAP table JBT_FTP_CALC_TRA 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 JBT_FTP_CALC_TRA 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 JBT_FTP_CALC_TRA. 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 JBT_FTP_CALC_TRA 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_JBT_FTP_CALC_TRA TYPE STANDARD TABLE OF JBT_FTP_CALC_TRA,
      WA_JBT_FTP_CALC_TRA TYPE JBT_FTP_CALC_TRA,
      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: <JBT_FTP_CALC_TRA> TYPE JBT_FTP_CALC_TRA.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM JBT_FTP_CALC_TRA
*  INTO TABLE @DATA(IT_JBT_FTP_CALC_TRA2).
*--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_JBT_FTP_CALC_TRA INDEX 1 INTO DATA(WA_JBT_FTP_CALC_TRA2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_JBT_FTP_CALC_TRA ASSIGNING <JBT_FTP_CALC_TRA>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<JBT_FTP_CALC_TRA>-MANDT = 1.
<JBT_FTP_CALC_TRA>-COSTING_RULE = 1.
<JBT_FTP_CALC_TRA>-CURRENCYCATEGORY = 1.
<JBT_FTP_CALC_TRA>-TRANCHE_NR = 1.
<JBT_FTP_CALC_TRA>-TRANCHE_WEIGHT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_JBT_FTP_CALC_TRA-TRANCHE_SIGN, sy-vline,
WA_JBT_FTP_CALC_TRA-ADJBEGINDATESRC, sy-vline,
WA_JBT_FTP_CALC_TRA-ADJSTEPNRUNITS, sy-vline,
WA_JBT_FTP_CALC_TRA-ADJSTEPUNIT, sy-vline,
WA_JBT_FTP_CALC_TRA-REFERENCEDATESRC, sy-vline,
WA_JBT_FTP_CALC_TRA-REFERNCEINTRSTID, sy-vline.
ENDLOOP. *Add any further fields from structure WA_JBT_FTP_CALC_TRA 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_JBT_FTP_CALC_TRA 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_JBT_FTP_CALC_TRA INTO WA_JBT_FTP_CALC_TRA. *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.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_JBT_FTP_CALC_TRA_STR,
MANDT TYPE STRING,
COSTING_RULE TYPE STRING,
CURRENCYCATEGORY TYPE STRING,
TRANCHE_NR TYPE STRING,
TRANCHE_WEIGHT TYPE STRING,
TRANCHE_SIGN TYPE STRING,
ADJBEGINDATESRC TYPE STRING,
ADJSTEPNRUNITS TYPE STRING,
ADJSTEPUNIT TYPE STRING,
REFERENCEDATESRC TYPE STRING,
REFERNCEINTRSTID TYPE STRING,
YIELD_CURVE_TYPE TYPE STRING,
INTERESTTERMSRC TYPE STRING,
INTRSTTRMNRUNITS TYPE STRING,
INTRSTTRMUNIT TYPE STRING,
INTERPOLATEORNOT TYPE STRING,
AVRBEGOFFNRUNITS TYPE STRING,
AVRBEGOFFUNIT TYPE STRING,
AVRENDOFFNRUNITS TYPE STRING,
AVRENDOFFUNIT TYPE STRING,
AVRSTEPNRUNITS TYPE STRING,
AVRSTEPUNIT TYPE STRING,
INTMTHAVEFTRTHIS TYPE STRING,
EXCLFROMTOTALFTP TYPE STRING,
AVER_VOL_VAL_FLD TYPE STRING,
FTP_VALUE_FIELD TYPE STRING,
FTP_VALUEFIELDLC TYPE STRING,
USE_FTPCALC_BADI TYPE STRING,END OF T_EKKO_STR. DATA: WA_JBT_FTP_CALC_TRA_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_JBT_FTP_CALC_TRA_STR-MANDT sy-vline
WA_JBT_FTP_CALC_TRA_STR-COSTING_RULE sy-vline
WA_JBT_FTP_CALC_TRA_STR-CURRENCYCATEGORY sy-vline
WA_JBT_FTP_CALC_TRA_STR-TRANCHE_NR sy-vline
WA_JBT_FTP_CALC_TRA_STR-TRANCHE_WEIGHT sy-vline
WA_JBT_FTP_CALC_TRA_STR-TRANCHE_SIGN sy-vline
WA_JBT_FTP_CALC_TRA_STR-ADJBEGINDATESRC sy-vline
WA_JBT_FTP_CALC_TRA_STR-ADJSTEPNRUNITS sy-vline
WA_JBT_FTP_CALC_TRA_STR-ADJSTEPUNIT sy-vline
WA_JBT_FTP_CALC_TRA_STR-REFERENCEDATESRC sy-vline
WA_JBT_FTP_CALC_TRA_STR-REFERNCEINTRSTID sy-vline
WA_JBT_FTP_CALC_TRA_STR-YIELD_CURVE_TYPE sy-vline
WA_JBT_FTP_CALC_TRA_STR-INTERESTTERMSRC sy-vline
WA_JBT_FTP_CALC_TRA_STR-INTRSTTRMNRUNITS sy-vline
WA_JBT_FTP_CALC_TRA_STR-INTRSTTRMUNIT sy-vline
WA_JBT_FTP_CALC_TRA_STR-INTERPOLATEORNOT sy-vline
WA_JBT_FTP_CALC_TRA_STR-AVRBEGOFFNRUNITS sy-vline
WA_JBT_FTP_CALC_TRA_STR-AVRBEGOFFUNIT sy-vline
WA_JBT_FTP_CALC_TRA_STR-AVRENDOFFNRUNITS sy-vline
WA_JBT_FTP_CALC_TRA_STR-AVRENDOFFUNIT sy-vline
WA_JBT_FTP_CALC_TRA_STR-AVRSTEPNRUNITS sy-vline
WA_JBT_FTP_CALC_TRA_STR-AVRSTEPUNIT sy-vline
WA_JBT_FTP_CALC_TRA_STR-INTMTHAVEFTRTHIS sy-vline
WA_JBT_FTP_CALC_TRA_STR-EXCLFROMTOTALFTP sy-vline
WA_JBT_FTP_CALC_TRA_STR-AVER_VOL_VAL_FLD sy-vline
WA_JBT_FTP_CALC_TRA_STR-FTP_VALUE_FIELD sy-vline
WA_JBT_FTP_CALC_TRA_STR-FTP_VALUEFIELDLC sy-vline
WA_JBT_FTP_CALC_TRA_STR-USE_FTPCALC_BADI sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.