ABAP Select data from SAP table PTRACTDOCUMENT 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 PTRACTDOCUMENT 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 PTRACTDOCUMENT. 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 PTRACTDOCUMENT 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_PTRACTDOCUMENT TYPE STANDARD TABLE OF PTRACTDOCUMENT, WA_PTRACTDOCUMENT TYPE PTRACTDOCUMENT, 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: <PTRACTDOCUMENT> TYPE PTRACTDOCUMENT. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_PTRACTDOCUMENT. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM PTRACTDOCUMENT INTO TABLE IT_PTRACTDOCUMENT. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM PTRACTDOCUMENT * INTO TABLE @DATA(IT_PTRACTDOCUMENT2). *--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_PTRACTDOCUMENT INDEX 1 INTO DATA(WA_PTRACTDOCUMENT2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_PTRACTDOCUMENT ASSIGNING <PTRACTDOCUMENT>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<PTRACTDOCUMENT>-MANDT = 1.
<PTRACTDOCUMENT>-DOCUMENTUUID = 1.
<PTRACTDOCUMENT>-TREASURYBUSINESSTRANSACTION = 1.
<PTRACTDOCUMENT>-DISTRIBUTORDOCUMENTID = 1.
<PTRACTDOCUMENT>-TREASURYVALUATIONAREA = 1.
ENDLOOP. LOOP AT IT_PTRACTDOCUMENT INTO WA_PTRACTDOCUMENT. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_PTRACTDOCUMENT-TREASURYVALUATIONAREANAME, sy-vline,
WA_PTRACTDOCUMENT-REFERENCEDOCUMENT, sy-vline,
WA_PTRACTDOCUMENT-REFERENCEDOCUMENTCONTEXT, sy-vline,
WA_PTRACTDOCUMENT-POSTINGDATE, sy-vline,
WA_PTRACTDOCUMENT-FISCALPERIOD, sy-vline,
WA_PTRACTDOCUMENT-FISCALYEAR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PTRACTDOCUMENT 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_PTRACTDOCUMENT 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_PTRACTDOCUMENT INTO WA_PTRACTDOCUMENT. *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 REFERENCEDOCUMENT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRACTDOCUMENT-REFERENCEDOCUMENT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRACTDOCUMENT-REFERENCEDOCUMENT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit GJAHR, internal->external for field FISCALYEAR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_PTRACTDOCUMENT-FISCALYEAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRACTDOCUMENT-FISCALYEAR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field REVERSALREFERENCEDOCUMENT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRACTDOCUMENT-REVERSALREFERENCEDOCUMENT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRACTDOCUMENT-REVERSALREFERENCEDOCUMENT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit GJAHR, internal->external for field REVERSEDOCUMENTFISCALYEAR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_PTRACTDOCUMENT-REVERSEDOCUMENTFISCALYEAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRACTDOCUMENT-REVERSEDOCUMENTFISCALYEAR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field LEDGER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRACTDOCUMENT-LEDGER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRACTDOCUMENT-LEDGER.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field ACTIVITYFINANCIALTRANSACTION CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PTRACTDOCUMENT-ACTIVITYFINANCIALTRANSACTION IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PTRACTDOCUMENT-ACTIVITYFINANCIALTRANSACTION.
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_PTRACTDOCUMENT_STR,
MANDT TYPE STRING,
DOCUMENTUUID TYPE STRING,
TREASURYBUSINESSTRANSACTION TYPE STRING,
DISTRIBUTORDOCUMENTID TYPE STRING,
TREASURYVALUATIONAREA TYPE STRING,
TREASURYVALUATIONAREANAME TYPE STRING,
REFERENCEDOCUMENT TYPE STRING,
REFERENCEDOCUMENTCONTEXT TYPE STRING,
POSTINGDATE TYPE STRING,
FISCALPERIOD TYPE STRING,
FISCALYEAR TYPE STRING,
REVERSALREFERENCEDOCUMENT TYPE STRING,
REVERSALREFERENCEDOCUMENTCNTXT TYPE STRING,
REVERSEDOCUMENTPOSTINGDATE TYPE STRING,
REVERSEDOCUMENTFISCALPERIOD TYPE STRING,
REVERSEDOCUMENTFISCALYEAR TYPE STRING,
TREASURYBUSINESSTRANSSTATUS TYPE STRING,
TREASURYBUSTRANSSTATUSNAME TYPE STRING,
ACCOUNTINGLEDGERSELECTION TYPE STRING,
LEDGER TYPE STRING,
DOCUMENTDATE TYPE STRING,
ACCOUNTINGPRINCIPLE TYPE STRING,
TREASURYACCTGPOSTINGCATEGORY TYPE STRING,
TREASURYACCTGCREATEDINRELEASE TYPE STRING,
REFBUSINESSTRANID TYPE STRING,
TREASURYBUSINESSTRANSCATEGORY TYPE STRING,
TREASURYBUSTRANSCATEGORYNAME TYPE STRING,
ACTIVITYFINANCIALTRANSACTION TYPE STRING,
DOCUMENTHEADERTEXT TYPE STRING,
DOCUMENTREFERENCE TYPE STRING,
REVERSALREASON TYPE STRING,
TRREVERSALREASON TYPE STRING,
BUSINESSPLACE TYPE STRING,
TAXSECTION TYPE STRING,
USERNDATACLS TYPE STRING,
USERNDATAUUID TYPE STRING,END OF T_EKKO_STR. DATA: WA_PTRACTDOCUMENT_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_PTRACTDOCUMENT_STR-MANDT sy-vline
WA_PTRACTDOCUMENT_STR-DOCUMENTUUID sy-vline
WA_PTRACTDOCUMENT_STR-TREASURYBUSINESSTRANSACTION sy-vline
WA_PTRACTDOCUMENT_STR-DISTRIBUTORDOCUMENTID sy-vline
WA_PTRACTDOCUMENT_STR-TREASURYVALUATIONAREA sy-vline
WA_PTRACTDOCUMENT_STR-TREASURYVALUATIONAREANAME sy-vline
WA_PTRACTDOCUMENT_STR-REFERENCEDOCUMENT sy-vline
WA_PTRACTDOCUMENT_STR-REFERENCEDOCUMENTCONTEXT sy-vline
WA_PTRACTDOCUMENT_STR-POSTINGDATE sy-vline
WA_PTRACTDOCUMENT_STR-FISCALPERIOD sy-vline
WA_PTRACTDOCUMENT_STR-FISCALYEAR sy-vline
WA_PTRACTDOCUMENT_STR-REVERSALREFERENCEDOCUMENT sy-vline
WA_PTRACTDOCUMENT_STR-REVERSALREFERENCEDOCUMENTCNTXT sy-vline
WA_PTRACTDOCUMENT_STR-REVERSEDOCUMENTPOSTINGDATE sy-vline
WA_PTRACTDOCUMENT_STR-REVERSEDOCUMENTFISCALPERIOD sy-vline
WA_PTRACTDOCUMENT_STR-REVERSEDOCUMENTFISCALYEAR sy-vline
WA_PTRACTDOCUMENT_STR-TREASURYBUSINESSTRANSSTATUS sy-vline
WA_PTRACTDOCUMENT_STR-TREASURYBUSTRANSSTATUSNAME sy-vline
WA_PTRACTDOCUMENT_STR-ACCOUNTINGLEDGERSELECTION sy-vline
WA_PTRACTDOCUMENT_STR-LEDGER sy-vline
WA_PTRACTDOCUMENT_STR-DOCUMENTDATE sy-vline
WA_PTRACTDOCUMENT_STR-ACCOUNTINGPRINCIPLE sy-vline
WA_PTRACTDOCUMENT_STR-TREASURYACCTGPOSTINGCATEGORY sy-vline
WA_PTRACTDOCUMENT_STR-TREASURYACCTGCREATEDINRELEASE sy-vline
WA_PTRACTDOCUMENT_STR-REFBUSINESSTRANID sy-vline
WA_PTRACTDOCUMENT_STR-TREASURYBUSINESSTRANSCATEGORY sy-vline
WA_PTRACTDOCUMENT_STR-TREASURYBUSTRANSCATEGORYNAME sy-vline
WA_PTRACTDOCUMENT_STR-ACTIVITYFINANCIALTRANSACTION sy-vline
WA_PTRACTDOCUMENT_STR-DOCUMENTHEADERTEXT sy-vline
WA_PTRACTDOCUMENT_STR-DOCUMENTREFERENCE sy-vline
WA_PTRACTDOCUMENT_STR-REVERSALREASON sy-vline
WA_PTRACTDOCUMENT_STR-TRREVERSALREASON sy-vline
WA_PTRACTDOCUMENT_STR-BUSINESSPLACE sy-vline
WA_PTRACTDOCUMENT_STR-TAXSECTION sy-vline
WA_PTRACTDOCUMENT_STR-USERNDATACLS sy-vline
WA_PTRACTDOCUMENT_STR-USERNDATAUUID sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.