ABAP Select data from SAP table PCANCELLATION 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 PCANCELLATION 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 PCANCELLATION. 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 PCANCELLATION 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_PCANCELLATION TYPE STANDARD TABLE OF PCANCELLATION,
      WA_PCANCELLATION TYPE PCANCELLATION,
      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: <PCANCELLATION> TYPE PCANCELLATION.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PCANCELLATION
*  INTO TABLE @DATA(IT_PCANCELLATION2).
*--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_PCANCELLATION INDEX 1 INTO DATA(WA_PCANCELLATION2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PCANCELLATION ASSIGNING <PCANCELLATION>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PCANCELLATION>-MANDT = 1.
<PCANCELLATION>-TRADINGCONTRACTNUMBER = 1.
<PCANCELLATION>-TRADINGCONTRACTITEM = 1.
<PCANCELLATION>-CONTRACTSUBITEM = 1.
<PCANCELLATION>-TRDGCONTRCOMMODITYSUBITEM = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PCANCELLATION-CONTRACTQTYCANCELLATIONUUID, sy-vline,
WA_PCANCELLATION-ACMCANCELLATIONTYPE, sy-vline,
WA_PCANCELLATION-ACMOBLIGATIONID, sy-vline,
WA_PCANCELLATION-PURGREASONFORDOCCANCELLATION, sy-vline,
WA_PCANCELLATION-ACMCANCELLATIONDATE, sy-vline,
WA_PCANCELLATION-ACMOBLIGATIONLINKID, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PCANCELLATION 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_PCANCELLATION 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_PCANCELLATION INTO WA_PCANCELLATION. *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 TRADINGCONTRACTNUMBER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PCANCELLATION-TRADINGCONTRACTNUMBER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PCANCELLATION-TRADINGCONTRACTNUMBER.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit CUNIT, internal->external for field CANCL_UNIT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_PCANCELLATION-CANCL_UNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PCANCELLATION-CANCL_UNIT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field TRADEUOM CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_PCANCELLATION-TRADEUOM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PCANCELLATION-TRADEUOM.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit CUNIT, internal->external for field CANCL_UNIT_1 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_PCANCELLATION-CANCL_UNIT_1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PCANCELLATION-CANCL_UNIT_1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field KMEIN_1 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_PCANCELLATION-KMEIN_1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PCANCELLATION-KMEIN_1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field FP_UNIT_1 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_PCANCELLATION-FP_UNIT_1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PCANCELLATION-FP_UNIT_1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field PP_UNIT_1 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_PCANCELLATION-PP_UNIT_1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PCANCELLATION-PP_UNIT_1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field KMEIN_2 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_PCANCELLATION-KMEIN_2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PCANCELLATION-KMEIN_2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field FP_UNIT_2 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_PCANCELLATION-FP_UNIT_2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PCANCELLATION-FP_UNIT_2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field PP_UNIT_2 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_PCANCELLATION-PP_UNIT_2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PCANCELLATION-PP_UNIT_2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field KMEIN_3 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_PCANCELLATION-KMEIN_3 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PCANCELLATION-KMEIN_3.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field KMEIN_4 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_PCANCELLATION-KMEIN_4 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PCANCELLATION-KMEIN_4.
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_PCANCELLATION_STR,
MANDT TYPE STRING,
TRADINGCONTRACTNUMBER TYPE STRING,
TRADINGCONTRACTITEM TYPE STRING,
CONTRACTSUBITEM TYPE STRING,
TRDGCONTRCOMMODITYSUBITEM TYPE STRING,
CONTRACTQTYCANCELLATIONUUID TYPE STRING,
ACMCANCELLATIONTYPE TYPE STRING,
ACMOBLIGATIONID TYPE STRING,
PURGREASONFORDOCCANCELLATION TYPE STRING,
ACMCANCELLATIONDATE TYPE STRING,
ACMOBLIGATIONLINKID TYPE STRING,
TRADECONTRACTSNAPSHOTDATETIME TYPE STRING,
ACMLUMPSUMFEE TYPE STRING,
ACMFEECURRENCY TYPE STRING,
ACMCONTRHASSETTLMT TYPE STRING,
ACMCONTRCANCLNSQNCNMBR TYPE STRING,
RATETYPE TYPE STRING,
ACMSETTLMTCRCY TYPE STRING,
EFFECTIVEDATE TYPE STRING,
NEW_PLOT_ID TYPE STRING,
CANC_PLOT_ID TYPE STRING,
SRC_PLOT_ID TYPE STRING,
SIDE TYPE STRING,
CANCL_QTY TYPE STRING,
CANCL_UNIT TYPE STRING,
TRADEQTY TYPE STRING,
TRADEUOM TYPE STRING,
PRLINK_ID TYPE STRING,
CANCL_STAT TYPE STRING,
CANCL_FEE TYPE STRING,
CANCL_PRC_UNIT TYPE STRING,
CANCL_UNIT_1 TYPE STRING,
EQUITY_AMOUNT TYPE STRING,
EQUITY_CURRENCY TYPE STRING,
UNDERFILL_ID TYPE STRING,
SETTLE_IMM TYPE STRING,
COND_TYPE_1 TYPE STRING,
KBETR_1 TYPE STRING,
KONWA_1 TYPE STRING,
KPEIN_1 TYPE STRING,
KMEIN_1 TYPE STRING,
TRD_KBETR1 TYPE STRING,
FP_AMOUNT_1 TYPE STRING,
FP_CURRENCY_1 TYPE STRING,
FP_QUANTITY_1 TYPE STRING,
FP_UNIT_1 TYPE STRING,
PP_AMOUNT_1 TYPE STRING,
PP_CURRENCY_1 TYPE STRING,
PP_QUANTITY_1 TYPE STRING,
PP_UNIT_1 TYPE STRING,
REASON_CODE_1 TYPE STRING,
PRC_DATE1 TYPE STRING,
COND_TYPE_2 TYPE STRING,
KBETR_2 TYPE STRING,
KONWA_2 TYPE STRING,
KPEIN_2 TYPE STRING,
KMEIN_2 TYPE STRING,
TRD_KBETR2 TYPE STRING,
FP_AMOUNT_2 TYPE STRING,
FP_CURRENCY_2 TYPE STRING,
FP_QUANTITY_2 TYPE STRING,
FP_UNIT_2 TYPE STRING,
PP_AMOUNT_2 TYPE STRING,
PP_CURRENCY_2 TYPE STRING,
PP_QUANTITY_2 TYPE STRING,
PP_UNIT_2 TYPE STRING,
REASON_CODE_2 TYPE STRING,
PRC_DATE2 TYPE STRING,
COND_TYPE_3 TYPE STRING,
KBETR_3 TYPE STRING,
KONWA_3 TYPE STRING,
KPEIN_3 TYPE STRING,
KMEIN_3 TYPE STRING,
TRD_KBETR3 TYPE STRING,
PRC_DATE3 TYPE STRING,
COND_TYPE_4 TYPE STRING,
KBETR_4 TYPE STRING,
KONWA_4 TYPE STRING,
KPEIN_4 TYPE STRING,
KMEIN_4 TYPE STRING,
TRD_KBETR4 TYPE STRING,
PRC_DATE4 TYPE STRING,
CANCELLED_CARLOT TYPE STRING,
ASSGN_GUID TYPE STRING,
PSMGUID TYPE STRING,
PSMSTATUS TYPE STRING,END OF T_EKKO_STR. DATA: WA_PCANCELLATION_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_PCANCELLATION_STR-MANDT sy-vline
WA_PCANCELLATION_STR-TRADINGCONTRACTNUMBER sy-vline
WA_PCANCELLATION_STR-TRADINGCONTRACTITEM sy-vline
WA_PCANCELLATION_STR-CONTRACTSUBITEM sy-vline
WA_PCANCELLATION_STR-TRDGCONTRCOMMODITYSUBITEM sy-vline
WA_PCANCELLATION_STR-CONTRACTQTYCANCELLATIONUUID sy-vline
WA_PCANCELLATION_STR-ACMCANCELLATIONTYPE sy-vline
WA_PCANCELLATION_STR-ACMOBLIGATIONID sy-vline
WA_PCANCELLATION_STR-PURGREASONFORDOCCANCELLATION sy-vline
WA_PCANCELLATION_STR-ACMCANCELLATIONDATE sy-vline
WA_PCANCELLATION_STR-ACMOBLIGATIONLINKID sy-vline
WA_PCANCELLATION_STR-TRADECONTRACTSNAPSHOTDATETIME sy-vline
WA_PCANCELLATION_STR-ACMLUMPSUMFEE sy-vline
WA_PCANCELLATION_STR-ACMFEECURRENCY sy-vline
WA_PCANCELLATION_STR-ACMCONTRHASSETTLMT sy-vline
WA_PCANCELLATION_STR-ACMCONTRCANCLNSQNCNMBR sy-vline
WA_PCANCELLATION_STR-RATETYPE sy-vline
WA_PCANCELLATION_STR-ACMSETTLMTCRCY sy-vline
WA_PCANCELLATION_STR-EFFECTIVEDATE sy-vline
WA_PCANCELLATION_STR-NEW_PLOT_ID sy-vline
WA_PCANCELLATION_STR-CANC_PLOT_ID sy-vline
WA_PCANCELLATION_STR-SRC_PLOT_ID sy-vline
WA_PCANCELLATION_STR-SIDE sy-vline
WA_PCANCELLATION_STR-CANCL_QTY sy-vline
WA_PCANCELLATION_STR-CANCL_UNIT sy-vline
WA_PCANCELLATION_STR-TRADEQTY sy-vline
WA_PCANCELLATION_STR-TRADEUOM sy-vline
WA_PCANCELLATION_STR-PRLINK_ID sy-vline
WA_PCANCELLATION_STR-CANCL_STAT sy-vline
WA_PCANCELLATION_STR-CANCL_FEE sy-vline
WA_PCANCELLATION_STR-CANCL_PRC_UNIT sy-vline
WA_PCANCELLATION_STR-CANCL_UNIT_1 sy-vline
WA_PCANCELLATION_STR-EQUITY_AMOUNT sy-vline
WA_PCANCELLATION_STR-EQUITY_CURRENCY sy-vline
WA_PCANCELLATION_STR-UNDERFILL_ID sy-vline
WA_PCANCELLATION_STR-SETTLE_IMM sy-vline
WA_PCANCELLATION_STR-COND_TYPE_1 sy-vline
WA_PCANCELLATION_STR-KBETR_1 sy-vline
WA_PCANCELLATION_STR-KONWA_1 sy-vline
WA_PCANCELLATION_STR-KPEIN_1 sy-vline
WA_PCANCELLATION_STR-KMEIN_1 sy-vline
WA_PCANCELLATION_STR-TRD_KBETR1 sy-vline
WA_PCANCELLATION_STR-FP_AMOUNT_1 sy-vline
WA_PCANCELLATION_STR-FP_CURRENCY_1 sy-vline
WA_PCANCELLATION_STR-FP_QUANTITY_1 sy-vline
WA_PCANCELLATION_STR-FP_UNIT_1 sy-vline
WA_PCANCELLATION_STR-PP_AMOUNT_1 sy-vline
WA_PCANCELLATION_STR-PP_CURRENCY_1 sy-vline
WA_PCANCELLATION_STR-PP_QUANTITY_1 sy-vline
WA_PCANCELLATION_STR-PP_UNIT_1 sy-vline
WA_PCANCELLATION_STR-REASON_CODE_1 sy-vline
WA_PCANCELLATION_STR-PRC_DATE1 sy-vline
WA_PCANCELLATION_STR-COND_TYPE_2 sy-vline
WA_PCANCELLATION_STR-KBETR_2 sy-vline
WA_PCANCELLATION_STR-KONWA_2 sy-vline
WA_PCANCELLATION_STR-KPEIN_2 sy-vline
WA_PCANCELLATION_STR-KMEIN_2 sy-vline
WA_PCANCELLATION_STR-TRD_KBETR2 sy-vline
WA_PCANCELLATION_STR-FP_AMOUNT_2 sy-vline
WA_PCANCELLATION_STR-FP_CURRENCY_2 sy-vline
WA_PCANCELLATION_STR-FP_QUANTITY_2 sy-vline
WA_PCANCELLATION_STR-FP_UNIT_2 sy-vline
WA_PCANCELLATION_STR-PP_AMOUNT_2 sy-vline
WA_PCANCELLATION_STR-PP_CURRENCY_2 sy-vline
WA_PCANCELLATION_STR-PP_QUANTITY_2 sy-vline
WA_PCANCELLATION_STR-PP_UNIT_2 sy-vline
WA_PCANCELLATION_STR-REASON_CODE_2 sy-vline
WA_PCANCELLATION_STR-PRC_DATE2 sy-vline
WA_PCANCELLATION_STR-COND_TYPE_3 sy-vline
WA_PCANCELLATION_STR-KBETR_3 sy-vline
WA_PCANCELLATION_STR-KONWA_3 sy-vline
WA_PCANCELLATION_STR-KPEIN_3 sy-vline
WA_PCANCELLATION_STR-KMEIN_3 sy-vline
WA_PCANCELLATION_STR-TRD_KBETR3 sy-vline
WA_PCANCELLATION_STR-PRC_DATE3 sy-vline
WA_PCANCELLATION_STR-COND_TYPE_4 sy-vline
WA_PCANCELLATION_STR-KBETR_4 sy-vline
WA_PCANCELLATION_STR-KONWA_4 sy-vline
WA_PCANCELLATION_STR-KPEIN_4 sy-vline
WA_PCANCELLATION_STR-KMEIN_4 sy-vline
WA_PCANCELLATION_STR-TRD_KBETR4 sy-vline
WA_PCANCELLATION_STR-PRC_DATE4 sy-vline
WA_PCANCELLATION_STR-CANCELLED_CARLOT sy-vline
WA_PCANCELLATION_STR-ASSGN_GUID sy-vline
WA_PCANCELLATION_STR-PSMGUID sy-vline
WA_PCANCELLATION_STR-PSMSTATUS sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.