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

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

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

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


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_/PF1/STR_CP_DB_COLLECT ASSIGNING </PF1/STR_CP_DB_COLLECT>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
</PF1/STR_CP_DB_COLLECT>-CLIENT = 1.
</PF1/STR_CP_DB_COLLECT>-GUID = 1.
</PF1/STR_CP_DB_COLLECT>-CLEARING_AREA = 1.
</PF1/STR_CP_DB_COLLECT>-COLLECTOR_NO = 1.
</PF1/STR_CP_DB_COLLECT>-SEQUENCE_NO = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_/PF1/STR_CP_DB_COLLECT-COLLECTOR_DATE, sy-vline,
WA_/PF1/STR_CP_DB_COLLECT-DIRECTION, sy-vline,
WA_/PF1/STR_CP_DB_COLLECT-COLLECT_KIND, sy-vline,
WA_/PF1/STR_CP_DB_COLLECT-MAX_NO_OF_ITEMS, sy-vline,
WA_/PF1/STR_CP_DB_COLLECT-MAX_ACC_SUM, sy-vline,
WA_/PF1/STR_CP_DB_COLLECT-MIN_NO_OF_ITEMS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_/PF1/STR_CP_DB_COLLECT 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_/PF1/STR_CP_DB_COLLECT 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_/PF1/STR_CP_DB_COLLECT INTO WA_/PF1/STR_CP_DB_COLLECT. *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 BCM_RULE CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_/PF1/STR_CP_DB_COLLECT-BCM_RULE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/PF1/STR_CP_DB_COLLECT-BCM_RULE.
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_/PF1/STR_CP_DB_COLLECT_STR,
CLIENT TYPE STRING,
GUID TYPE STRING,
CLEARING_AREA TYPE STRING,
COLLECTOR_NO TYPE STRING,
SEQUENCE_NO TYPE STRING,
COLLECTOR_DATE TYPE STRING,
DIRECTION TYPE STRING,
COLLECT_KIND TYPE STRING,
MAX_NO_OF_ITEMS TYPE STRING,
MAX_ACC_SUM TYPE STRING,
MIN_NO_OF_ITEMS TYPE STRING,
MIN_ACC_SUM TYPE STRING,
MIN_CLOSE_ITEMS TYPE STRING,
MIN_CLOSE_SUM TYPE STRING,
CUR_ACC_SUM TYPE STRING,
FLG_CURRENCY TYPE STRING,
FLG_VALUE_SPLIT TYPE STRING,
FLG_DEBIT_CREDIT TYPE STRING,
FLG_COLL_ACCTS TYPE STRING,
FLG_COLL_PIKINDS TYPE STRING,
FLG_COLL_POSTDAT TYPE STRING,
FLG_SHOW_COLL TYPE STRING,
FLG_NET_POSTING TYPE STRING,
FLG_SINGLE_POST TYPE STRING,
FLG_ACCRUED TYPE STRING,
FLG_RESERVED_IT TYPE STRING,
FLG_EOD_CLOSE TYPE STRING,
FLG_COLL_PROCDAT TYPE STRING,
FLG_DUE_DATE TYPE STRING,
FLG_ORIG_MSG_ID TYPE STRING,
FLG_EXT_RESP TYPE STRING,
FLG_MULTI_COLL TYPE STRING,
FLG_MULTI_PROC TYPE STRING,
FLG_LM_RELEVANT TYPE STRING,
COLLECTION_TYPE TYPE STRING,
FLG_OTHERS TYPE STRING,
FLG_FEE_INFO TYPE STRING,
FLG_ORIG_PO TYPE STRING,
FLG_SEPARATE_SEPA TYPE STRING,
FLG_PAYMENT_METHOD TYPE STRING,
FLG_BCM_RULE TYPE STRING,
FLG_DUE_DATE_ONLY TYPE STRING,
NO_OF_ITEMS_DEB TYPE STRING,
NO_OF_ITEMS_CRED TYPE STRING,
ACC_SUM_DEB TYPE STRING,
ACC_SUM_CRED TYPE STRING,
ACT_CLOSE_DATE TYPE STRING,
ACT_CLOSE_TIME TYPE STRING,
CLOSE_REASON TYPE STRING,
COLLECTOR_STAT TYPE STRING,
COLLECTOR_PIKIND TYPE STRING,
CLOSE_USER TYPE STRING,
CLOSE_DAT TYPE STRING,
CLOSE_TIME TYPE STRING,
CHECK_DATE TYPE STRING,
CHECK_TIME TYPE STRING,
ACCT_NO TYPE STRING,
ACCT_CUR TYPE STRING,
COUNTRY TYPE STRING,
BANKKEY TYPE STRING,
IBAN TYPE STRING,
HOLDER TYPE STRING,
BIC TYPE STRING,
SEP_BIC TYPE STRING,
SEP_ACCT_NO TYPE STRING,
SEP_ACCT_CUR TYPE STRING,
SEP_COUNTRY TYPE STRING,
SEP_BANKKEY TYPE STRING,
SEP_IBAN TYPE STRING,
SEP_HOLDER TYPE STRING,
POST_DATE TYPE STRING,
FLG_RESERVED TYPE STRING,
REF_PRENOTE_ID TYPE STRING,
RESERVED_AMOUNT TYPE STRING,
RESERV_AMNT_CURR TYPE STRING,
PROCESS_DATE TYPE STRING,
PL_CLR_DATE TYPE STRING,
FLG_ENFORCE_PROC TYPE STRING,
FLG_CLR_BOOKED TYPE STRING,
DUE_DATE TYPE STRING,
DIRECT_DEB_TYPE TYPE STRING,
PL_CLOSING_DATE TYPE STRING,
REF_ORIG_MSG_ID TYPE STRING,
CHARGE_SUM_DEB TYPE STRING,
CHARGE_SUM_CRED TYPE STRING,
TECH_QUEUE_RSN TYPE STRING,
OTHER_FIELD TYPE STRING,
FEE_INFO TYPE STRING,
ORIG_PO TYPE STRING,
ACCT_CURR TYPE STRING,
SEPA_PAYMENT TYPE STRING,
PAYMENT_METHOD TYPE STRING,
BCM_RULE TYPE STRING,
COLLECTION_KEY TYPE STRING,
TR_SUM_DEB TYPE STRING,
TR_SUM_CRED TYPE STRING,
A_AMOUNT_DEB TYPE STRING,
A_AMOUNT_CRED TYPE STRING,
CLOSE_TIMESTAMP TYPE STRING,
CURRENCY TYPE STRING,
DEBCREDIND TYPE STRING,
VALUE_DATE TYPE STRING,
ROUTE_ID TYPE STRING,
CLEARING_ID TYPE STRING,
PO_DATE TYPE STRING,
PO_NO TYPE STRING,
ARCHIVE_STATUS TYPE STRING,
ARCHIVE_FLUD TYPE STRING,
REJECTION TYPE STRING,
CRUSR TYPE STRING,
CRDAT TYPE STRING,
CRTIM TYPE STRING,
CHUSR TYPE STRING,
CHDAT TYPE STRING,
CHTIM TYPE STRING,
RLUSR TYPE STRING,
RLDAT TYPE STRING,
RLTIM TYPE STRING,END OF T_EKKO_STR. DATA: WA_/PF1/STR_CP_DB_COLLECT_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_/PF1/STR_CP_DB_COLLECT_STR-CLIENT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-GUID sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CLEARING_AREA sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-COLLECTOR_NO sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-SEQUENCE_NO sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-COLLECTOR_DATE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-DIRECTION sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-COLLECT_KIND sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-MAX_NO_OF_ITEMS sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-MAX_ACC_SUM sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-MIN_NO_OF_ITEMS sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-MIN_ACC_SUM sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-MIN_CLOSE_ITEMS sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-MIN_CLOSE_SUM sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CUR_ACC_SUM sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_CURRENCY sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_VALUE_SPLIT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_DEBIT_CREDIT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_COLL_ACCTS sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_COLL_PIKINDS sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_COLL_POSTDAT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_SHOW_COLL sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_NET_POSTING sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_SINGLE_POST sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_ACCRUED sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_RESERVED_IT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_EOD_CLOSE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_COLL_PROCDAT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_DUE_DATE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_ORIG_MSG_ID sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_EXT_RESP sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_MULTI_COLL sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_MULTI_PROC sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_LM_RELEVANT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-COLLECTION_TYPE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_OTHERS sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_FEE_INFO sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_ORIG_PO sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_SEPARATE_SEPA sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_PAYMENT_METHOD sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_BCM_RULE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_DUE_DATE_ONLY sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-NO_OF_ITEMS_DEB sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-NO_OF_ITEMS_CRED sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-ACC_SUM_DEB sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-ACC_SUM_CRED sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-ACT_CLOSE_DATE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-ACT_CLOSE_TIME sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CLOSE_REASON sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-COLLECTOR_STAT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-COLLECTOR_PIKIND sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CLOSE_USER sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CLOSE_DAT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CLOSE_TIME sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CHECK_DATE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CHECK_TIME sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-ACCT_NO sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-ACCT_CUR sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-COUNTRY sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-BANKKEY sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-IBAN sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-HOLDER sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-BIC sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-SEP_BIC sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-SEP_ACCT_NO sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-SEP_ACCT_CUR sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-SEP_COUNTRY sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-SEP_BANKKEY sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-SEP_IBAN sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-SEP_HOLDER sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-POST_DATE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_RESERVED sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-REF_PRENOTE_ID sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-RESERVED_AMOUNT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-RESERV_AMNT_CURR sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-PROCESS_DATE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-PL_CLR_DATE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_ENFORCE_PROC sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FLG_CLR_BOOKED sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-DUE_DATE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-DIRECT_DEB_TYPE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-PL_CLOSING_DATE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-REF_ORIG_MSG_ID sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CHARGE_SUM_DEB sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CHARGE_SUM_CRED sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-TECH_QUEUE_RSN sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-OTHER_FIELD sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-FEE_INFO sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-ORIG_PO sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-ACCT_CURR sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-SEPA_PAYMENT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-PAYMENT_METHOD sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-BCM_RULE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-COLLECTION_KEY sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-TR_SUM_DEB sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-TR_SUM_CRED sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-A_AMOUNT_DEB sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-A_AMOUNT_CRED sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CLOSE_TIMESTAMP sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CURRENCY sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-DEBCREDIND sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-VALUE_DATE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-ROUTE_ID sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CLEARING_ID sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-PO_DATE sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-PO_NO sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-ARCHIVE_STATUS sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-ARCHIVE_FLUD sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-REJECTION sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CRUSR sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CRDAT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CRTIM sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CHUSR sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CHDAT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-CHTIM sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-RLUSR sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-RLDAT sy-vline
WA_/PF1/STR_CP_DB_COLLECT_STR-RLTIM sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.