ABAP Select data from SAP table CMAC_FAID_DOC_HEADER 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 CMAC_FAID_DOC_HEADER 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 CMAC_FAID_DOC_HEADER. 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 CMAC_FAID_DOC_HEADER 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_CMAC_FAID_DOC_HEADER TYPE STANDARD TABLE OF CMAC_FAID_DOC_HEADER,
      WA_CMAC_FAID_DOC_HEADER TYPE CMAC_FAID_DOC_HEADER,
      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: <CMAC_FAID_DOC_HEADER> TYPE CMAC_FAID_DOC_HEADER.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CMAC_FAID_DOC_HEADER
*  INTO TABLE @DATA(IT_CMAC_FAID_DOC_HEADER2).
*--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_CMAC_FAID_DOC_HEADER INDEX 1 INTO DATA(WA_CMAC_FAID_DOC_HEADER2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CMAC_FAID_DOC_HEADER ASSIGNING <CMAC_FAID_DOC_HEADER>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CMAC_FAID_DOC_HEADER>-TAB_IDX = 1.
<CMAC_FAID_DOC_HEADER>-ACADEMICYR = 1.
<CMAC_FAID_DOC_HEADER>-SESSIONID = 1.
<CMAC_FAID_DOC_HEADER>-REF_SYSTEM = 1.
<CMAC_FAID_DOC_HEADER>-DOC_DATE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CMAC_FAID_DOC_HEADER-POST_DATE, sy-vline,
WA_CMAC_FAID_DOC_HEADER-XMASSRUN, sy-vline,
WA_CMAC_FAID_DOC_HEADER-FIKEY, sy-vline,
WA_CMAC_FAID_DOC_HEADER-REF_DOCUMENT, sy-vline,
WA_CMAC_FAID_DOC_HEADER-STUDENT, sy-vline,
WA_CMAC_FAID_DOC_HEADER-GRANT_NBR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CMAC_FAID_DOC_HEADER 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_CMAC_FAID_DOC_HEADER 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_CMAC_FAID_DOC_HEADER INTO WA_CMAC_FAID_DOC_HEADER. *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 REF_SYSTEM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CMAC_FAID_DOC_HEADER-REF_SYSTEM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CMAC_FAID_DOC_HEADER-REF_SYSTEM.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

*Conversion exit ABPSP, internal->external for field GRPS_PSP_PNR CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_CMAC_FAID_DOC_HEADER-GRPS_PSP_PNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CMAC_FAID_DOC_HEADER-GRPS_PSP_PNR.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit ALPHA, internal->external for field SEGMENT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CMAC_FAID_DOC_HEADER-SEGMENT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CMAC_FAID_DOC_HEADER-SEGMENT.
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_CMAC_FAID_DOC_HEADER_STR,
TAB_IDX TYPE STRING,
ACADEMICYR TYPE STRING,
SESSIONID TYPE STRING,
REF_SYSTEM TYPE STRING,
DOC_DATE TYPE STRING,
POST_DATE TYPE STRING,
XMASSRUN TYPE STRING,
FIKEY TYPE STRING,
REF_DOCUMENT TYPE STRING,
STUDENT TYPE STRING,
GRANT_NBR TYPE STRING,
AID_TYPE TYPE STRING,
ADM_MODE TYPE STRING,
AID_STATUS TYPE STRING,
PAYRULE TYPE STRING,
ALT_RECIPIENT TYPE STRING,
COMP_CODE TYPE STRING,
CURRENCY TYPE STRING,
CURRENCY_ISO TYPE STRING,
STUDENT_BP TYPE STRING,
STGRP TYPE STRING,
STFEECAT TYPE STRING,
STCLRACCT TYPE STRING,
SPONSOR TYPE STRING,
SPONSOR_CA TYPE STRING,
SPPSOBTYP TYPE STRING,
SPCLRACCT TYPE STRING,
GRFIKRS TYPE STRING,
GRFISTL TYPE STRING,
GRFONDS TYPE STRING,
PSVERSN TYPE STRING,
GRGSBER TYPE STRING,
GRKOSTL TYPE STRING,
GRAUFNR TYPE STRING,
GRPS_PSP_PNR TYPE STRING,
GRPRCTR TYPE STRING,
GRFKBER TYPE STRING,
GM_GRANT_NBR TYPE STRING,
SEGMENT TYPE STRING,
BUDGET_PD TYPE STRING,END OF T_EKKO_STR. DATA: WA_CMAC_FAID_DOC_HEADER_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_CMAC_FAID_DOC_HEADER_STR-TAB_IDX sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-ACADEMICYR sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-SESSIONID sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-REF_SYSTEM sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-DOC_DATE sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-POST_DATE sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-XMASSRUN sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-FIKEY sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-REF_DOCUMENT sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-STUDENT sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-GRANT_NBR sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-AID_TYPE sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-ADM_MODE sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-AID_STATUS sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-PAYRULE sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-ALT_RECIPIENT sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-COMP_CODE sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-CURRENCY sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-CURRENCY_ISO sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-STUDENT_BP sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-STGRP sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-STFEECAT sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-STCLRACCT sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-SPONSOR sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-SPONSOR_CA sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-SPPSOBTYP sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-SPCLRACCT sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-GRFIKRS sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-GRFISTL sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-GRFONDS sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-PSVERSN sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-GRGSBER sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-GRKOSTL sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-GRAUFNR sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-GRPS_PSP_PNR sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-GRPRCTR sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-GRFKBER sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-GM_GRANT_NBR sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-SEGMENT sy-vline
WA_CMAC_FAID_DOC_HEADER_STR-BUDGET_PD sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.