ABAP Select data from SAP table PTRAC 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 PTRAC 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 PTRAC. 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 PTRAC 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_PTRAC TYPE STANDARD TABLE OF PTRAC, WA_PTRAC TYPE PTRAC, 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: <PTRAC> TYPE PTRAC. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_PTRAC. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM PTRAC INTO TABLE IT_PTRAC. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM PTRAC * INTO TABLE @DATA(IT_PTRAC2). *--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_PTRAC INDEX 1 INTO DATA(WA_PTRAC2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_PTRAC ASSIGNING <PTRAC>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<PTRAC>-MANDT = 1.
<PTRAC>-TREASURYBUSINESSTRANSACTION = 1.
<PTRAC>-TREASURYVALUATIONAREA = 1.
<PTRAC>-TREASURYTRANSACTIONFLOW = 1.
<PTRAC>-DEBITGLACCOUNT = 1.
ENDLOOP. LOOP AT IT_PTRAC INTO WA_PTRAC. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_PTRAC-DEBITCUSTOMER, sy-vline,
WA_PTRAC-ACCOUNTINGDOCUMENT, sy-vline,
WA_PTRAC-ISUSEDINPAYMENTTRANSACTION, sy-vline,
WA_PTRAC-FISCALYEAR, sy-vline,
WA_PTRAC-POSTINGDATE, sy-vline,
WA_PTRAC-FISCALPERIOD, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PTRAC 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_PTRAC 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_PTRAC INTO WA_PTRAC. *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 DEBITGLACCOUNT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRAC-DEBITGLACCOUNT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRAC-DEBITGLACCOUNT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field DEBITCUSTOMER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRAC-DEBITCUSTOMER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRAC-DEBITCUSTOMER.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field ACCOUNTINGDOCUMENT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRAC-ACCOUNTINGDOCUMENT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRAC-ACCOUNTINGDOCUMENT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit GJAHR, internal->external for field FISCALYEAR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_PTRAC-FISCALYEAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRAC-FISCALYEAR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field REFERENCEDOCUMENT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRAC-REFERENCEDOCUMENT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRAC-REFERENCEDOCUMENT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit GJAHR, internal->external for field REVERSEDOCUMENTFISCALYEAR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_PTRAC-REVERSEDOCUMENTFISCALYEAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRAC-REVERSEDOCUMENTFISCALYEAR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field REVERSEDOCUMENT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRAC-REVERSEDOCUMENT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRAC-REVERSEDOCUMENT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field REVERSALREFERENCEDOCUMENT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRAC-REVERSALREFERENCEDOCUMENT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRAC-REVERSALREFERENCEDOCUMENT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field ACTIVITYFINANCIALTRANSACTION CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRAC-ACTIVITYFINANCIALTRANSACTION IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRAC-ACTIVITYFINANCIALTRANSACTION.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field CREDITGLACCOUNT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRAC-CREDITGLACCOUNT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRAC-CREDITGLACCOUNT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field CREDITCUSTOMER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRAC-CREDITCUSTOMER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRAC-CREDITCUSTOMER.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field GRANTID CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRAC-GRANTID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRAC-GRANTID.
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_PTRAC_STR,
MANDT TYPE STRING,
TREASURYBUSINESSTRANSACTION TYPE STRING,
TREASURYVALUATIONAREA TYPE STRING,
TREASURYTRANSACTIONFLOW TYPE STRING,
DEBITGLACCOUNT TYPE STRING,
DEBITCUSTOMER TYPE STRING,
ACCOUNTINGDOCUMENT TYPE STRING,
ISUSEDINPAYMENTTRANSACTION TYPE STRING,
FISCALYEAR TYPE STRING,
POSTINGDATE TYPE STRING,
FISCALPERIOD TYPE STRING,
TREASURYGLACCOUNTASSIGNMENTREF TYPE STRING,
REFERENCEDOCUMENT TYPE STRING,
REFERENCEDOCUMENTCONTEXT TYPE STRING,
REVERSEDOCUMENTFISCALYEAR TYPE STRING,
REVERSEDOCUMENTPOSTINGDATE TYPE STRING,
REVERSEDOCUMENTFISCALPERIOD TYPE STRING,
REVERSEDOCUMENT TYPE STRING,
REVERSALREFERENCEDOCUMENT TYPE STRING,
REVERSALREFERENCEDOCUMENTCNTXT TYPE STRING,
ACTIVITYFINANCIALTRANSACTION TYPE STRING,
CREDITGLACCOUNT TYPE STRING,
CREDITCUSTOMER TYPE STRING,
FUND TYPE STRING,
GRANTID TYPE STRING,
TREASURYVALUATIONCLASS TYPE STRING,
DIFFERENTIATIONPORTFOLIO TYPE STRING,
COMPANYCODE TYPE STRING,END OF T_EKKO_STR. DATA: WA_PTRAC_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_PTRAC_STR-MANDT sy-vline
WA_PTRAC_STR-TREASURYBUSINESSTRANSACTION sy-vline
WA_PTRAC_STR-TREASURYVALUATIONAREA sy-vline
WA_PTRAC_STR-TREASURYTRANSACTIONFLOW sy-vline
WA_PTRAC_STR-DEBITGLACCOUNT sy-vline
WA_PTRAC_STR-DEBITCUSTOMER sy-vline
WA_PTRAC_STR-ACCOUNTINGDOCUMENT sy-vline
WA_PTRAC_STR-ISUSEDINPAYMENTTRANSACTION sy-vline
WA_PTRAC_STR-FISCALYEAR sy-vline
WA_PTRAC_STR-POSTINGDATE sy-vline
WA_PTRAC_STR-FISCALPERIOD sy-vline
WA_PTRAC_STR-TREASURYGLACCOUNTASSIGNMENTREF sy-vline
WA_PTRAC_STR-REFERENCEDOCUMENT sy-vline
WA_PTRAC_STR-REFERENCEDOCUMENTCONTEXT sy-vline
WA_PTRAC_STR-REVERSEDOCUMENTFISCALYEAR sy-vline
WA_PTRAC_STR-REVERSEDOCUMENTPOSTINGDATE sy-vline
WA_PTRAC_STR-REVERSEDOCUMENTFISCALPERIOD sy-vline
WA_PTRAC_STR-REVERSEDOCUMENT sy-vline
WA_PTRAC_STR-REVERSALREFERENCEDOCUMENT sy-vline
WA_PTRAC_STR-REVERSALREFERENCEDOCUMENTCNTXT sy-vline
WA_PTRAC_STR-ACTIVITYFINANCIALTRANSACTION sy-vline
WA_PTRAC_STR-CREDITGLACCOUNT sy-vline
WA_PTRAC_STR-CREDITCUSTOMER sy-vline
WA_PTRAC_STR-FUND sy-vline
WA_PTRAC_STR-GRANTID sy-vline
WA_PTRAC_STR-TREASURYVALUATIONCLASS sy-vline
WA_PTRAC_STR-DIFFERENTIATIONPORTFOLIO sy-vline
WA_PTRAC_STR-COMPANYCODE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.