ABAP Select data from SAP table /PM0/AOOL_LN_PRICE_CONDITION 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 /PM0/AOOL_LN_PRICE_CONDITION 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 /PM0/AOOL_LN_PRICE_CONDITION. 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 /PM0/AOOL_LN_PRICE_CONDITION 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_/PM0/AOOL_LN_PRICE_CONDITION TYPE STANDARD TABLE OF /PM0/AOOL_LN_PRICE_CONDITION,
      WA_/PM0/AOOL_LN_PRICE_CONDITION TYPE /PM0/AOOL_LN_PRICE_CONDITION,
      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: </PM0/AOOL_LN_PRICE_CONDITION> TYPE /PM0/AOOL_LN_PRICE_CONDITION.

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

SELECT *
*restrict ABAP select to first 10 rows
 UP TO 10 ROWS      
  FROM /PM0/AOOL_LN_PRICE_CONDITION
  INTO TABLE IT_/PM0/AOOL_LN_PRICE_CONDITION.

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM /PM0/AOOL_LN_PRICE_CONDITION
*  INTO TABLE @DATA(IT_/PM0/AOOL_LN_PRICE_CONDITION2).
*--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_/PM0/AOOL_LN_PRICE_CONDITION INDEX 1 INTO DATA(WA_/PM0/AOOL_LN_PRICE_CONDITION2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_/PM0/AOOL_LN_PRICE_CONDITION ASSIGNING </PM0/AOOL_LN_PRICE_CONDITION>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
</PM0/AOOL_LN_PRICE_CONDITION>-VALIDITY_PERIOD = 1.
</PM0/AOOL_LN_PRICE_CONDITION>-START_DATE = 1.
</PM0/AOOL_LN_PRICE_CONDITION>-END_DATE = 1.
</PM0/AOOL_LN_PRICE_CONDITION>-BANK_CNTRCT_FIN_COND_TYPE_CODE = 1.
</PM0/AOOL_LN_PRICE_CONDITION>-ROUNDING_RULE_CODE = 1.
ENDLOOP.

LOOP AT IT_/PM0/AOOL_LN_PRICE_CONDITION INTO WA_/PM0/AOOL_LN_PRICE_CONDITION.
*Write horizonal line to screen report.
  WRITE:/ sy-uline.

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_/PM0/AOOL_LN_PRICE_CONDITION-ROUNDING_UNIT_DECIMAL_VALUE, sy-vline,
WA_/PM0/AOOL_LN_PRICE_CONDITION-ZERO_CONDITION_APPLY_INDICATOR, sy-vline,
WA_/PM0/AOOL_LN_PRICE_CONDITION-STATISTICAL_COND_APPLY_INDICAT, sy-vline,
WA_/PM0/AOOL_LN_PRICE_CONDITION-PAYMENT_COND_FIXED_INDICATOR, sy-vline,
WA_/PM0/AOOL_LN_PRICE_CONDITION-ACCOUNTING_DOC_AUTO_CREATE_IND, sy-vline,
WA_/PM0/AOOL_LN_PRICE_CONDITION-PRIORITY_VALUE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_/PM0/AOOL_LN_PRICE_CONDITION 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_/PM0/AOOL_LN_PRICE_CONDITION 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_/PM0/AOOL_LN_PRICE_CONDITION INTO WA_/PM0/AOOL_LN_PRICE_CONDITION. *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_/PM0/AOOL_LN_PRICE_CONDITION_STR,
VALIDITY_PERIOD TYPE STRING,
START_DATE TYPE STRING,
END_DATE TYPE STRING,
BANK_CNTRCT_FIN_COND_TYPE_CODE TYPE STRING,
ROUNDING_RULE_CODE TYPE STRING,
ROUNDING_UNIT_DECIMAL_VALUE TYPE STRING,
ZERO_CONDITION_APPLY_INDICATOR TYPE STRING,
STATISTICAL_COND_APPLY_INDICAT TYPE STRING,
PAYMENT_COND_FIXED_INDICATOR TYPE STRING,
ACCOUNTING_DOC_AUTO_CREATE_IND TYPE STRING,
PRIORITY_VALUE TYPE STRING,
CALCULATION_SPECIFICATION TYPE STRING,
FRST_PER_BK_CT_FC_CALC_MTD_CD TYPE STRING,
LAST_PER_BK_CT_FC_CALC_MTD_CD TYPE STRING,
DETERMIN_BASE_AMOUNT_CALC_SPEC TYPE STRING,
BASE_AMOUNT TYPE STRING,
AMOUNT TYPE STRING,
CURRENCY_CODE TYPE STRING,
BANK_CTR_FCND_CLC_BS_AMNT_TP_C TYPE STRING,
BANK_CTR_FCND_CLC_BS_AMNT_FX_C TYPE STRING,
WORKING_DAY_CALENDAR_ASSGNMNT TYPE STRING,
CALC_DATE_RECURRENCE_SPEC TYPE STRING,
BANK_CTR_FCND_DATE_REC_TYPE_CD TYPE STRING,
CALC_DATE_INCLUDE_INDICATOR TYPE STRING,
CALC_DATE_MONTH_END_ADJUST_IND TYPE STRING,
FIRST_KEY_DATE_SPECIFICATION TYPE STRING,
RECURRENCE TYPE STRING,
FREQUENCY_CODE TYPE STRING,
FREQUENCY_VALUE TYPE STRING,
KEY_DT_WRK_DAY_ADJSTT_RULE_CD TYPE STRING,
DAY_OF_MONTH TYPE STRING,
RELATIVE_RECURRENCE TYPE STRING,
BANK_CTR_FCND_BAS_DATE_REC_CD TYPE STRING,
KEY_DT_WRK_DAY_ADJSTT_RULE_CD TYPE STRING,
DUE_DATE_RECURRENCE_SPEC TYPE STRING,
BANK_CTR_FCND_DATE_REC_TYPE_CD TYPE STRING,
DUE_DATE_ADJUSTMENT_CODE TYPE STRING,
DUE_DATE_INCLUDED_INDICATOR TYPE STRING,
DUE_DATE_MONTH_END_ADJUST_IND TYPE STRING,
FIRST_KEY_DATE_SPECIFICATION TYPE STRING,
RECURRENCE TYPE STRING,
FREQUENCY_CODE TYPE STRING,
FREQUENCY_VALUE TYPE STRING,
KEY_DT_WRK_DAY_ADJSTT_RULE_CD TYPE STRING,
DAY_OF_MONTH TYPE STRING,
RELATIVE_RECURRENCE TYPE STRING,
BANK_CTR_FCND_BAS_DATE_REC_CD TYPE STRING,
KEY_DT_WRK_DAY_ADJSTT_RULE_CD TYPE STRING,
PRICE_SPECIFICATION TYPE STRING,
INTEREST_CALCULATION_METHOD_CD TYPE STRING,
LINEAR_INTEREST_CALC_APPLY_IND TYPE STRING,
PRICING_AMOUNT TYPE STRING,
AMOUNT TYPE STRING,
CURRENCY_CODE TYPE STRING,
PRICING_PERCENT TYPE STRING,
VARIABLE_INTEREST TYPE STRING,
REFERENCE_INTEREST_CURVE_CODE TYPE STRING,
INTEREST_RATE_FORMULA_EXPR_TXT TYPE STRING,
MARGIN_ABSOLUTE_RELATIVE_CODE TYPE STRING,
INTEREST_RATE_ROUNDING_RULE_CD TYPE STRING,
INTEREST_RATE_RND_UNIT_DEC_VAL TYPE STRING,
MARGIN_PERCENT TYPE STRING,
CAP_PERCENT TYPE STRING,
FLOOR_PERCENT TYPE STRING,
CAP_REF_INTEREST_CURVE_CODE TYPE STRING,
FLOOR_REF_INTEREST_CURVE_CODE TYPE STRING,
FLUCTUATION_MARGIN_CAP_PRCNT TYPE STRING,
FLUCTUATION_MARGIN_FLOOR_PRCNT TYPE STRING,
WORKING_DAY_CALENDAR_ASSGNMNT TYPE STRING,
WORKING_DAY_CALENDAR_CODE TYPE STRING,
PAYMENT_TRANSACTION_INSTRUCTN TYPE STRING,
PAYMENT_PROCEDURE_CODE TYPE STRING,
COUNTER_PARTY TYPE STRING,
PARTY_ID TYPE STRING,
BANK_DETAILS_ID TYPE STRING,
DIRECT_DEBIT_MANDATE TYPE STRING,
ID TYPE STRING,
CREDITOR_PARTY_ID TYPE STRING,END OF T_EKKO_STR. DATA: WA_/PM0/AOOL_LN_PRICE_CONDITION_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_/PM0/AOOL_LN_PRICE_CONDITION_STR-VALIDITY_PERIOD sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-START_DATE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-END_DATE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-BANK_CNTRCT_FIN_COND_TYPE_CODE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-ROUNDING_RULE_CODE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-ROUNDING_UNIT_DECIMAL_VALUE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-ZERO_CONDITION_APPLY_INDICATOR sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-STATISTICAL_COND_APPLY_INDICAT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-PAYMENT_COND_FIXED_INDICATOR sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-ACCOUNTING_DOC_AUTO_CREATE_IND sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-PRIORITY_VALUE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-CALCULATION_SPECIFICATION sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-FRST_PER_BK_CT_FC_CALC_MTD_CD sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-LAST_PER_BK_CT_FC_CALC_MTD_CD sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-DETERMIN_BASE_AMOUNT_CALC_SPEC sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-BASE_AMOUNT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-AMOUNT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-CURRENCY_CODE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-BANK_CTR_FCND_CLC_BS_AMNT_TP_C sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-BANK_CTR_FCND_CLC_BS_AMNT_FX_C sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-WORKING_DAY_CALENDAR_ASSGNMNT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-CALC_DATE_RECURRENCE_SPEC sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-BANK_CTR_FCND_DATE_REC_TYPE_CD sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-CALC_DATE_INCLUDE_INDICATOR sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-CALC_DATE_MONTH_END_ADJUST_IND sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-FIRST_KEY_DATE_SPECIFICATION sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-RECURRENCE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-FREQUENCY_CODE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-FREQUENCY_VALUE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-KEY_DT_WRK_DAY_ADJSTT_RULE_CD sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-DAY_OF_MONTH sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-RELATIVE_RECURRENCE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-BANK_CTR_FCND_BAS_DATE_REC_CD sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-KEY_DT_WRK_DAY_ADJSTT_RULE_CD sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-DUE_DATE_RECURRENCE_SPEC sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-BANK_CTR_FCND_DATE_REC_TYPE_CD sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-DUE_DATE_ADJUSTMENT_CODE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-DUE_DATE_INCLUDED_INDICATOR sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-DUE_DATE_MONTH_END_ADJUST_IND sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-FIRST_KEY_DATE_SPECIFICATION sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-RECURRENCE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-FREQUENCY_CODE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-FREQUENCY_VALUE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-KEY_DT_WRK_DAY_ADJSTT_RULE_CD sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-DAY_OF_MONTH sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-RELATIVE_RECURRENCE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-BANK_CTR_FCND_BAS_DATE_REC_CD sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-KEY_DT_WRK_DAY_ADJSTT_RULE_CD sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-PRICE_SPECIFICATION sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-INTEREST_CALCULATION_METHOD_CD sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-LINEAR_INTEREST_CALC_APPLY_IND sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-PRICING_AMOUNT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-AMOUNT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-CURRENCY_CODE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-PRICING_PERCENT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-VARIABLE_INTEREST sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-REFERENCE_INTEREST_CURVE_CODE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-INTEREST_RATE_FORMULA_EXPR_TXT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-MARGIN_ABSOLUTE_RELATIVE_CODE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-INTEREST_RATE_ROUNDING_RULE_CD sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-INTEREST_RATE_RND_UNIT_DEC_VAL sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-MARGIN_PERCENT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-CAP_PERCENT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-FLOOR_PERCENT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-CAP_REF_INTEREST_CURVE_CODE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-FLOOR_REF_INTEREST_CURVE_CODE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-FLUCTUATION_MARGIN_CAP_PRCNT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-FLUCTUATION_MARGIN_FLOOR_PRCNT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-WORKING_DAY_CALENDAR_ASSGNMNT sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-WORKING_DAY_CALENDAR_CODE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-PAYMENT_TRANSACTION_INSTRUCTN sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-PAYMENT_PROCEDURE_CODE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-COUNTER_PARTY sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-PARTY_ID sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-BANK_DETAILS_ID sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-DIRECT_DEBIT_MANDATE sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-ID sy-vline
WA_/PM0/AOOL_LN_PRICE_CONDITION_STR-CREDITOR_PARTY_ID sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.