ABAP Select data from SAP table CFMUDKBLP 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 CFMUDKBLP 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 CFMUDKBLP. 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 CFMUDKBLP 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_CFMUDKBLP TYPE STANDARD TABLE OF CFMUDKBLP,
      WA_CFMUDKBLP TYPE CFMUDKBLP,
      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: <CFMUDKBLP> TYPE CFMUDKBLP.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CFMUDKBLP
*  INTO TABLE @DATA(IT_CFMUDKBLP2).
*--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_CFMUDKBLP INDEX 1 INTO DATA(WA_CFMUDKBLP2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CFMUDKBLP ASSIGNING <CFMUDKBLP>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CFMUDKBLP>-MANDT = 1.
<CFMUDKBLP>-FCBELNR = 1.
<CFMUDKBLP>-FCBLPOS = 1.
<CFMUDKBLP>-PAYFIPOS = 1.
<CFMUDKBLP>-PAYFICTR = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CFMUDKBLP-PAYFONDS, sy-vline,
WA_CFMUDKBLP-PAYFAREA, sy-vline,
WA_CFMUDKBLP-FIKRS, sy-vline,
WA_CFMUDKBLP-INCFIPOS, sy-vline,
WA_CFMUDKBLP-INCFICTR, sy-vline,
WA_CFMUDKBLP-INCFONDS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CFMUDKBLP 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_CFMUDKBLP 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_CFMUDKBLP INTO WA_CFMUDKBLP. *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 FCBELNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CFMUDKBLP-FCBELNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CFMUDKBLP-FCBELNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit FMCIS, internal->external for field PAYFIPOS CALL FUNCTION 'CONVERSION_EXIT_FMCIS_OUTPUT' EXPORTING input = WA_CFMUDKBLP-PAYFIPOS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CFMUDKBLP-PAYFIPOS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit FMCIS, internal->external for field INCFIPOS CALL FUNCTION 'CONVERSION_EXIT_FMCIS_OUTPUT' EXPORTING input = WA_CFMUDKBLP-INCFIPOS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CFMUDKBLP-INCFIPOS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit FMCIS, internal->external for field COMFIPOS CALL FUNCTION 'CONVERSION_EXIT_FMCIS_OUTPUT' EXPORTING input = WA_CFMUDKBLP-COMFIPOS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CFMUDKBLP-COMFIPOS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit FMCIS, internal->external for field OLDFIPOS CALL FUNCTION 'CONVERSION_EXIT_FMCIS_OUTPUT' EXPORTING input = WA_CFMUDKBLP-OLDFIPOS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CFMUDKBLP-OLDFIPOS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field COMBLNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CFMUDKBLP-COMBLNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CFMUDKBLP-COMBLNR.
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_CFMUDKBLP_STR,
MANDT TYPE STRING,
FCBELNR TYPE STRING,
FCBLPOS TYPE STRING,
PAYFIPOS TYPE STRING,
PAYFICTR TYPE STRING,
PAYFONDS TYPE STRING,
PAYFAREA TYPE STRING,
FIKRS TYPE STRING,
INCFIPOS TYPE STRING,
INCFICTR TYPE STRING,
INCFONDS TYPE STRING,
INCFAREA TYPE STRING,
COMFIPOS TYPE STRING,
COMFICTR TYPE STRING,
COMFONDS TYPE STRING,
COMFAREA TYPE STRING,
ERHPROZ TYPE STRING,
FKBTR TYPE STRING,
WRBTR TYPE STRING,
TWAER TYPE STRING,
PAYBGBELNR TYPE STRING,
PAYBGBUZEI TYPE STRING,
COMBGBELNR TYPE STRING,
COMBGBUZEI TYPE STRING,
OLDFIPOS TYPE STRING,
OLDFICTR TYPE STRING,
OLDFONDS TYPE STRING,
OLDFAREA TYPE STRING,
COMBLNR TYPE STRING,
COMBLPO TYPE STRING,
COMINEX TYPE STRING,
CSUMBGBTR TYPE STRING,
PSUMBGBTR TYPE STRING,
KZ TYPE STRING,END OF T_EKKO_STR. DATA: WA_CFMUDKBLP_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_CFMUDKBLP_STR-MANDT sy-vline
WA_CFMUDKBLP_STR-FCBELNR sy-vline
WA_CFMUDKBLP_STR-FCBLPOS sy-vline
WA_CFMUDKBLP_STR-PAYFIPOS sy-vline
WA_CFMUDKBLP_STR-PAYFICTR sy-vline
WA_CFMUDKBLP_STR-PAYFONDS sy-vline
WA_CFMUDKBLP_STR-PAYFAREA sy-vline
WA_CFMUDKBLP_STR-FIKRS sy-vline
WA_CFMUDKBLP_STR-INCFIPOS sy-vline
WA_CFMUDKBLP_STR-INCFICTR sy-vline
WA_CFMUDKBLP_STR-INCFONDS sy-vline
WA_CFMUDKBLP_STR-INCFAREA sy-vline
WA_CFMUDKBLP_STR-COMFIPOS sy-vline
WA_CFMUDKBLP_STR-COMFICTR sy-vline
WA_CFMUDKBLP_STR-COMFONDS sy-vline
WA_CFMUDKBLP_STR-COMFAREA sy-vline
WA_CFMUDKBLP_STR-ERHPROZ sy-vline
WA_CFMUDKBLP_STR-FKBTR sy-vline
WA_CFMUDKBLP_STR-WRBTR sy-vline
WA_CFMUDKBLP_STR-TWAER sy-vline
WA_CFMUDKBLP_STR-PAYBGBELNR sy-vline
WA_CFMUDKBLP_STR-PAYBGBUZEI sy-vline
WA_CFMUDKBLP_STR-COMBGBELNR sy-vline
WA_CFMUDKBLP_STR-COMBGBUZEI sy-vline
WA_CFMUDKBLP_STR-OLDFIPOS sy-vline
WA_CFMUDKBLP_STR-OLDFICTR sy-vline
WA_CFMUDKBLP_STR-OLDFONDS sy-vline
WA_CFMUDKBLP_STR-OLDFAREA sy-vline
WA_CFMUDKBLP_STR-COMBLNR sy-vline
WA_CFMUDKBLP_STR-COMBLPO sy-vline
WA_CFMUDKBLP_STR-COMINEX sy-vline
WA_CFMUDKBLP_STR-CSUMBGBTR sy-vline
WA_CFMUDKBLP_STR-PSUMBGBTR sy-vline
WA_CFMUDKBLP_STR-KZ sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.