ABAP Select data from SAP table CACS_S_COND_TC_LINE_BDT 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 CACS_S_COND_TC_LINE_BDT 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 CACS_S_COND_TC_LINE_BDT. 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 CACS_S_COND_TC_LINE_BDT 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_CACS_S_COND_TC_LINE_BDT TYPE STANDARD TABLE OF CACS_S_COND_TC_LINE_BDT,
      WA_CACS_S_COND_TC_LINE_BDT TYPE CACS_S_COND_TC_LINE_BDT,
      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: <CACS_S_COND_TC_LINE_BDT> TYPE CACS_S_COND_TC_LINE_BDT.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CACS_S_COND_TC_LINE_BDT
*  INTO TABLE @DATA(IT_CACS_S_COND_TC_LINE_BDT2).
*--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_CACS_S_COND_TC_LINE_BDT INDEX 1 INTO DATA(WA_CACS_S_COND_TC_LINE_BDT2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CACS_S_COND_TC_LINE_BDT ASSIGNING <CACS_S_COND_TC_LINE_BDT>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CACS_S_COND_TC_LINE_BDT>-KNUMH = 1.
<CACS_S_COND_TC_LINE_BDT>-KBETR = 1.
<CACS_S_COND_TC_LINE_BDT>-KBETR_OLD = 1.
<CACS_S_COND_TC_LINE_BDT>-KBETR_OLD_T = 1.
<CACS_S_COND_TC_LINE_BDT>-KBETR_STD = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CACS_S_COND_TC_LINE_BDT-KBETR_STD_T, sy-vline,
WA_CACS_S_COND_TC_LINE_BDT-KBETR_T, sy-vline,
WA_CACS_S_COND_TC_LINE_BDT-KONWA, sy-vline,
WA_CACS_S_COND_TC_LINE_BDT-KONWA_STD, sy-vline,
WA_CACS_S_COND_TC_LINE_BDT-DATAB, sy-vline,
WA_CACS_S_COND_TC_LINE_BDT-DATAB_OLD, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CACS_S_COND_TC_LINE_BDT 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_CACS_S_COND_TC_LINE_BDT 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_CACS_S_COND_TC_LINE_BDT INTO WA_CACS_S_COND_TC_LINE_BDT. *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 TSTPS, internal->external for field P_VERSION CALL FUNCTION 'CONVERSION_EXIT_TSTPS_OUTPUT' EXPORTING input = WA_CACS_S_COND_TC_LINE_BDT-P_VERSION IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CACS_S_COND_TC_LINE_BDT-P_VERSION.
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_CACS_S_COND_TC_LINE_BDT_STR,
KNUMH TYPE STRING,
KBETR TYPE STRING,
KBETR_OLD TYPE STRING,
KBETR_OLD_T TYPE STRING,
KBETR_STD TYPE STRING,
KBETR_STD_T TYPE STRING,
KBETR_T TYPE STRING,
KONWA TYPE STRING,
KONWA_STD TYPE STRING,
DATAB TYPE STRING,
DATAB_OLD TYPE STRING,
DATAB_STD TYPE STRING,
DATBI TYPE STRING,
DATBI_OLD TYPE STRING,
DATBI_STD TYPE STRING,
KEYFIELD01 TYPE STRING,
KEYFIELD02 TYPE STRING,
KEYFIELD03 TYPE STRING,
KEYFIELD04 TYPE STRING,
KEYFIELD05 TYPE STRING,
KEYFIELD06 TYPE STRING,
KEYFIELD07 TYPE STRING,
KEYFIELD08 TYPE STRING,
KEYFIELD09 TYPE STRING,
KEYFIELD10 TYPE STRING,
KEYTITLE01 TYPE STRING,
KEYTITLE02 TYPE STRING,
KEYTITLE03 TYPE STRING,
KEYTITLE04 TYPE STRING,
KEYTITLE05 TYPE STRING,
KEYTITLE06 TYPE STRING,
KEYTITLE07 TYPE STRING,
KEYTITLE08 TYPE STRING,
KEYTITLE09 TYPE STRING,
KEYTITLE10 TYPE STRING,
NODE_KEY TYPE STRING,
AUTH_VAKEY TYPE STRING,
AMOUNT_MIN TYPE STRING,
AMOUNT_MAX TYPE STRING,
CURRENCY TYPE STRING,
MSGID TYPE STRING,
MSGNO_MIN TYPE STRING,
MSGNO_MAX TYPE STRING,
P_VERSION TYPE STRING,
P_CTRT_XL TYPE STRING,
P_CACSAPPL TYPE STRING,
P_STATE TYPE STRING,
P_NUM1 TYPE STRING,
P_NUM2 TYPE STRING,
P_AMNT1 TYPE STRING,
P_AMNT2 TYPE STRING,
P_CURR1 TYPE STRING,
P_CURR2 TYPE STRING,
P_TEXT1 TYPE STRING,
P_TEXT2 TYPE STRING,
P_STATE_OLD TYPE STRING,
P_NUM1_OLD TYPE STRING,
P_NUM2_OLD TYPE STRING,
P_AMNT1_OLD TYPE STRING,
P_AMNT2_OLD TYPE STRING,
P_CURR1_OLD TYPE STRING,
P_CURR2_OLD TYPE STRING,
P_TEXT1_OLD TYPE STRING,
P_TEXT2_OLD TYPE STRING,
P_NUM1_STD TYPE STRING,
P_NUM2_STD TYPE STRING,
P_AMNT1_STD TYPE STRING,
P_AMNT2_STD TYPE STRING,
P_CURR1_STD TYPE STRING,
P_CURR2_STD TYPE STRING,
P_TEXT1_STD TYPE STRING,
P_TEXT2_STD TYPE STRING,
P_NUM1_STD_T TYPE STRING,
P_NUM2_STD_T TYPE STRING,
P_AMNT1_STD_T TYPE STRING,
P_AMNT2_STD_T TYPE STRING,
SCALE_INDICATOR TYPE STRING,
SCALE_INDVIDUAL TYPE STRING,
KEYFIELD01_P1 TYPE STRING,
KEYFIELD01_P2 TYPE STRING,
KEYFIELD01_P3 TYPE STRING,
KEYFIELD01_P4 TYPE STRING,
KEYFIELD01_P5 TYPE STRING,
KEYFIELD01_P6 TYPE STRING,
KEYFIELD01_P7 TYPE STRING,
KEYFIELD01_P8 TYPE STRING,
KEYFIELD01_P9 TYPE STRING,
KEYFIELD01_P10 TYPE STRING,
STRONG TYPE STRING,
STRONG_TAB TYPE STRING,
COND_TABLE TYPE STRING,END OF T_EKKO_STR. DATA: WA_CACS_S_COND_TC_LINE_BDT_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_CACS_S_COND_TC_LINE_BDT_STR-KNUMH sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KBETR sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KBETR_OLD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KBETR_OLD_T sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KBETR_STD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KBETR_STD_T sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KBETR_T sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KONWA sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KONWA_STD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-DATAB sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-DATAB_OLD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-DATAB_STD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-DATBI sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-DATBI_OLD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-DATBI_STD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD01 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD02 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD03 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD04 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD05 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD06 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD07 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD08 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD09 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD10 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYTITLE01 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYTITLE02 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYTITLE03 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYTITLE04 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYTITLE05 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYTITLE06 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYTITLE07 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYTITLE08 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYTITLE09 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYTITLE10 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-NODE_KEY sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-AUTH_VAKEY sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-AMOUNT_MIN sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-AMOUNT_MAX sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-CURRENCY sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-MSGID sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-MSGNO_MIN sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-MSGNO_MAX sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_VERSION sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_CTRT_XL sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_CACSAPPL sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_STATE sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_NUM1 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_NUM2 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_AMNT1 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_AMNT2 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_CURR1 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_CURR2 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_TEXT1 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_TEXT2 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_STATE_OLD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_NUM1_OLD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_NUM2_OLD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_AMNT1_OLD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_AMNT2_OLD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_CURR1_OLD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_CURR2_OLD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_TEXT1_OLD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_TEXT2_OLD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_NUM1_STD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_NUM2_STD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_AMNT1_STD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_AMNT2_STD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_CURR1_STD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_CURR2_STD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_TEXT1_STD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_TEXT2_STD sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_NUM1_STD_T sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_NUM2_STD_T sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_AMNT1_STD_T sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-P_AMNT2_STD_T sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-SCALE_INDICATOR sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-SCALE_INDVIDUAL sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD01_P1 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD01_P2 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD01_P3 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD01_P4 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD01_P5 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD01_P6 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD01_P7 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD01_P8 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD01_P9 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-KEYFIELD01_P10 sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-STRONG sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-STRONG_TAB sy-vline
WA_CACS_S_COND_TC_LINE_BDT_STR-COND_TABLE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.