ABAP Select data from SAP table FACV_GLMC_OIT 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 FACV_GLMC_OIT 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 FACV_GLMC_OIT. 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 FACV_GLMC_OIT 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_FACV_GLMC_OIT TYPE STANDARD TABLE OF FACV_GLMC_OIT,
      WA_FACV_GLMC_OIT TYPE FACV_GLMC_OIT,
      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: <FACV_GLMC_OIT> TYPE FACV_GLMC_OIT.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM FACV_GLMC_OIT
*  INTO TABLE @DATA(IT_FACV_GLMC_OIT2).
*--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_FACV_GLMC_OIT INDEX 1 INTO DATA(WA_FACV_GLMC_OIT2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_FACV_GLMC_OIT ASSIGNING <FACV_GLMC_OIT>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<FACV_GLMC_OIT>-MANDT = 1.
<FACV_GLMC_OIT>-COMPANYCODE = 1.
<FACV_GLMC_OIT>-ACCOUNTINGDOCUMENT = 1.
<FACV_GLMC_OIT>-FISCALYEAR = 1.
<FACV_GLMC_OIT>-ACCOUNTINGDOCUMENTITEM = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_FACV_GLMC_OIT-BUZEI, sy-vline,
WA_FACV_GLMC_OIT-TMPID, sy-vline,
WA_FACV_GLMC_OIT-GENERALLEDGERACCOUNT, sy-vline,
WA_FACV_GLMC_OIT-ACCOUNTINGDOCUMENTTYPE, sy-vline,
WA_FACV_GLMC_OIT-ASSIGNMENTREFERENCE, sy-vline,
WA_FACV_GLMC_OIT-BUSINESSAREA, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FACV_GLMC_OIT 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_FACV_GLMC_OIT 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_FACV_GLMC_OIT INTO WA_FACV_GLMC_OIT. *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 ACCOUNTINGDOCUMENT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FACV_GLMC_OIT-ACCOUNTINGDOCUMENT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FACV_GLMC_OIT-ACCOUNTINGDOCUMENT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field FISCALYEAR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_FACV_GLMC_OIT-FISCALYEAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FACV_GLMC_OIT-FISCALYEAR.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit GJAHR, internal->external for field INVOICEREFERENCEFISCALYEAR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_FACV_GLMC_OIT-INVOICEREFERENCEFISCALYEAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FACV_GLMC_OIT-INVOICEREFERENCEFISCALYEAR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

*Conversion exit AU132, internal->external for field AMOUNTINTRANSCRCY CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FACV_GLMC_OIT-AMOUNTINTRANSCRCY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FACV_GLMC_OIT-AMOUNTINTRANSCRCY.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field AMOUNTINTRANSCRCYWITHNOSIGN CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FACV_GLMC_OIT-AMOUNTINTRANSCRCYWITHNOSIGN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FACV_GLMC_OIT-AMOUNTINTRANSCRCYWITHNOSIGN.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field AMOUNTINCOCODECRCY CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FACV_GLMC_OIT-AMOUNTINCOCODECRCY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FACV_GLMC_OIT-AMOUNTINCOCODECRCY.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field AMOUNTINCOCODECRCYWITHNOSIGN CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_FACV_GLMC_OIT-AMOUNTINCOCODECRCYWITHNOSIGN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FACV_GLMC_OIT-AMOUNTINCOCODECRCYWITHNOSIGN.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field REPRESENTATIVELEDGER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FACV_GLMC_OIT-REPRESENTATIVELEDGER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FACV_GLMC_OIT-REPRESENTATIVELEDGER.
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_FACV_GLMC_OIT_STR,
MANDT TYPE STRING,
COMPANYCODE TYPE STRING,
ACCOUNTINGDOCUMENT TYPE STRING,
FISCALYEAR TYPE STRING,
ACCOUNTINGDOCUMENTITEM TYPE STRING,
BUZEI TYPE STRING,
TMPID TYPE STRING,
GENERALLEDGERACCOUNT TYPE STRING,
ACCOUNTINGDOCUMENTTYPE TYPE STRING,
ASSIGNMENTREFERENCE TYPE STRING,
BUSINESSAREA TYPE STRING,
DEBITCREDITCODE TYPE STRING,
DOCUMENTDATE TYPE STRING,
DOCUMENTITEMTEXT TYPE STRING,
FINANCIALACCOUNTTYPE TYPE STRING,
FOLLOWONDOCUMENTTYPE TYPE STRING,
FUNCTIONALAREA TYPE STRING,
HOUSEBANK TYPE STRING,
HOUSEBANNKACCOUNT TYPE STRING,
INVOICEITEMREFERENCE TYPE STRING,
INVOICEREFERENCE TYPE STRING,
INVOICEREFERENCEFISCALYEAR TYPE STRING,
PARTNERCOMPANY TYPE STRING,
PARTNERPROFITCENTER TYPE STRING,
PARTNERSEGMENT TYPE STRING,
PLANT TYPE STRING,
POSTINGDATE TYPE STRING,
PROFITCENTER TYPE STRING,
SEGMENT TYPE STRING,
TAXCODE TYPE STRING,
FISCALPERIOD TYPE STRING,
ACCOUNTINGDOCUMENTCATEGORY TYPE STRING,
ORDERS TYPE STRING,
COMPANYCODENAME TYPE STRING,
BALANCETRANSCRCY TYPE STRING,
ISOPENITEMMANAGED TYPE STRING,
CLEARINGISLEDGERGROUPSPECIFIC TYPE STRING,
REFERENCE1IDBYBUSINESSPARTNER TYPE STRING,
REFERENCE2IDBYBUSINESSPARTNER TYPE STRING,
REFERENCE3IDBYBUSINESSPARTNER TYPE STRING,
FINANCIALTRANSACTIONTYPE TYPE STRING,
JOINTVENTURE TYPE STRING,
RECOVERYINDICATOR TYPE STRING,
EQUITYGROUP TYPE STRING,
LEDGERGROUP TYPE STRING,
DOCUMENTREFERENCE TYPE STRING,
ACCOUNTINGDOCUMENTHEADERTEXT TYPE STRING,
TRANSACTIONCURRENCY TYPE STRING,
AMOUNTINTRANSCRCY TYPE STRING,
AMOUNTINTRANSCRCYWITHNOSIGN TYPE STRING,
COMPANYCODECURRENCY TYPE STRING,
AMOUNTINCOCODECRCY TYPE STRING,
AMOUNTINCOCODECRCYWITHNOSIGN TYPE STRING,
FUNCTIONALCURRENCY TYPE STRING,
AMOUNTINFUNCTIONALCURRENCY TYPE STRING,
AMOUNTINFUNCTCRCYWITHNOSIGN TYPE STRING,
GLACCOUNTAUTHORIZATIONGROUP TYPE STRING,
CHEQUE TYPE STRING,
PAYMENTREFERENCE TYPE STRING,
ALTERNATIVEGLACCOUNT TYPE STRING,
REPRESENTATIVELEDGER TYPE STRING,
VALUEDATE TYPE STRING,
HOUSEBANKACCTAUTHZNGROUP TYPE STRING,END OF T_EKKO_STR. DATA: WA_FACV_GLMC_OIT_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_FACV_GLMC_OIT_STR-MANDT sy-vline
WA_FACV_GLMC_OIT_STR-COMPANYCODE sy-vline
WA_FACV_GLMC_OIT_STR-ACCOUNTINGDOCUMENT sy-vline
WA_FACV_GLMC_OIT_STR-FISCALYEAR sy-vline
WA_FACV_GLMC_OIT_STR-ACCOUNTINGDOCUMENTITEM sy-vline
WA_FACV_GLMC_OIT_STR-BUZEI sy-vline
WA_FACV_GLMC_OIT_STR-TMPID sy-vline
WA_FACV_GLMC_OIT_STR-GENERALLEDGERACCOUNT sy-vline
WA_FACV_GLMC_OIT_STR-ACCOUNTINGDOCUMENTTYPE sy-vline
WA_FACV_GLMC_OIT_STR-ASSIGNMENTREFERENCE sy-vline
WA_FACV_GLMC_OIT_STR-BUSINESSAREA sy-vline
WA_FACV_GLMC_OIT_STR-DEBITCREDITCODE sy-vline
WA_FACV_GLMC_OIT_STR-DOCUMENTDATE sy-vline
WA_FACV_GLMC_OIT_STR-DOCUMENTITEMTEXT sy-vline
WA_FACV_GLMC_OIT_STR-FINANCIALACCOUNTTYPE sy-vline
WA_FACV_GLMC_OIT_STR-FOLLOWONDOCUMENTTYPE sy-vline
WA_FACV_GLMC_OIT_STR-FUNCTIONALAREA sy-vline
WA_FACV_GLMC_OIT_STR-HOUSEBANK sy-vline
WA_FACV_GLMC_OIT_STR-HOUSEBANNKACCOUNT sy-vline
WA_FACV_GLMC_OIT_STR-INVOICEITEMREFERENCE sy-vline
WA_FACV_GLMC_OIT_STR-INVOICEREFERENCE sy-vline
WA_FACV_GLMC_OIT_STR-INVOICEREFERENCEFISCALYEAR sy-vline
WA_FACV_GLMC_OIT_STR-PARTNERCOMPANY sy-vline
WA_FACV_GLMC_OIT_STR-PARTNERPROFITCENTER sy-vline
WA_FACV_GLMC_OIT_STR-PARTNERSEGMENT sy-vline
WA_FACV_GLMC_OIT_STR-PLANT sy-vline
WA_FACV_GLMC_OIT_STR-POSTINGDATE sy-vline
WA_FACV_GLMC_OIT_STR-PROFITCENTER sy-vline
WA_FACV_GLMC_OIT_STR-SEGMENT sy-vline
WA_FACV_GLMC_OIT_STR-TAXCODE sy-vline
WA_FACV_GLMC_OIT_STR-FISCALPERIOD sy-vline
WA_FACV_GLMC_OIT_STR-ACCOUNTINGDOCUMENTCATEGORY sy-vline
WA_FACV_GLMC_OIT_STR-ORDERS sy-vline
WA_FACV_GLMC_OIT_STR-COMPANYCODENAME sy-vline
WA_FACV_GLMC_OIT_STR-BALANCETRANSCRCY sy-vline
WA_FACV_GLMC_OIT_STR-ISOPENITEMMANAGED sy-vline
WA_FACV_GLMC_OIT_STR-CLEARINGISLEDGERGROUPSPECIFIC sy-vline
WA_FACV_GLMC_OIT_STR-REFERENCE1IDBYBUSINESSPARTNER sy-vline
WA_FACV_GLMC_OIT_STR-REFERENCE2IDBYBUSINESSPARTNER sy-vline
WA_FACV_GLMC_OIT_STR-REFERENCE3IDBYBUSINESSPARTNER sy-vline
WA_FACV_GLMC_OIT_STR-FINANCIALTRANSACTIONTYPE sy-vline
WA_FACV_GLMC_OIT_STR-JOINTVENTURE sy-vline
WA_FACV_GLMC_OIT_STR-RECOVERYINDICATOR sy-vline
WA_FACV_GLMC_OIT_STR-EQUITYGROUP sy-vline
WA_FACV_GLMC_OIT_STR-LEDGERGROUP sy-vline
WA_FACV_GLMC_OIT_STR-DOCUMENTREFERENCE sy-vline
WA_FACV_GLMC_OIT_STR-ACCOUNTINGDOCUMENTHEADERTEXT sy-vline
WA_FACV_GLMC_OIT_STR-TRANSACTIONCURRENCY sy-vline
WA_FACV_GLMC_OIT_STR-AMOUNTINTRANSCRCY sy-vline
WA_FACV_GLMC_OIT_STR-AMOUNTINTRANSCRCYWITHNOSIGN sy-vline
WA_FACV_GLMC_OIT_STR-COMPANYCODECURRENCY sy-vline
WA_FACV_GLMC_OIT_STR-AMOUNTINCOCODECRCY sy-vline
WA_FACV_GLMC_OIT_STR-AMOUNTINCOCODECRCYWITHNOSIGN sy-vline
WA_FACV_GLMC_OIT_STR-FUNCTIONALCURRENCY sy-vline
WA_FACV_GLMC_OIT_STR-AMOUNTINFUNCTIONALCURRENCY sy-vline
WA_FACV_GLMC_OIT_STR-AMOUNTINFUNCTCRCYWITHNOSIGN sy-vline
WA_FACV_GLMC_OIT_STR-GLACCOUNTAUTHORIZATIONGROUP sy-vline
WA_FACV_GLMC_OIT_STR-CHEQUE sy-vline
WA_FACV_GLMC_OIT_STR-PAYMENTREFERENCE sy-vline
WA_FACV_GLMC_OIT_STR-ALTERNATIVEGLACCOUNT sy-vline
WA_FACV_GLMC_OIT_STR-REPRESENTATIVELEDGER sy-vline
WA_FACV_GLMC_OIT_STR-VALUEDATE sy-vline
WA_FACV_GLMC_OIT_STR-HOUSEBANKACCTAUTHZNGROUP sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.