ABAP Select data from SAP table RNEGK 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 RNEGK 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 RNEGK. 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 RNEGK 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_RNEGK TYPE STANDARD TABLE OF RNEGK,
      WA_RNEGK TYPE RNEGK,
      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: <RNEGK> TYPE RNEGK.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RNEGK
*  INTO TABLE @DATA(IT_RNEGK2).
*--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_RNEGK INDEX 1 INTO DATA(WA_RNEGK2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RNEGK ASSIGNING <RNEGK>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RNEGK>-MANDT = 1.
<RNEGK>-LNCRD = 1.
<RNEGK>-CRDTYPE = 1.
<RNEGK>-EXT_KEY1 = 1.
<RNEGK>-EXT_KEY2 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RNEGK-PATNR, sy-vline,
WA_RNEGK-ERUSR, sy-vline,
WA_RNEGK-ERDAT, sy-vline,
WA_RNEGK-ERTIM, sy-vline,
WA_RNEGK-UPUSR, sy-vline,
WA_RNEGK-UPDAT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RNEGK 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_RNEGK 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_RNEGK INTO WA_RNEGK. *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 PATNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RNEGK-PATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RNEGK-PATNR.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field ABR_KOSTR_INSTN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RNEGK-ABR_KOSTR_INSTN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RNEGK-ABR_KOSTR_INSTN.
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_RNEGK_STR,
MANDT TYPE STRING,
LNCRD TYPE STRING,
CRDTYPE TYPE STRING,
EXT_KEY1 TYPE STRING,
EXT_KEY2 TYPE STRING,
PATNR TYPE STRING,
ERUSR TYPE STRING,
ERDAT TYPE STRING,
ERTIM TYPE STRING,
UPUSR TYPE STRING,
UPDAT TYPE STRING,
UPTIM TYPE STRING,
STORN TYPE STRING,
DOCTYPE TYPE STRING,
MANUAL TYPE STRING,
READ_DATE TYPE STRING,
ONLINQOK TYPE STRING,
BEGDT TYPE STRING,
ENDDT TYPE STRING,
CARDVALID TYPE STRING,
CVUSR TYPE STRING,
CVDAT TYPE STRING,
CVTIM TYPE STRING,
EF_VERSION TYPE STRING,
CDATA TYPE STRING,
LNCRD_PAT TYPE STRING,
NAME_LAST TYPE STRING,
NAME_FIRST TYPE STRING,
BIRTHDT TYPE STRING,
GENDER TYPE STRING,
EXPDT TYPE STRING,
INSID TYPE STRING,
AD_PREFIX_TXT TYPE STRING,
AD_TITLES_TXT TYPE STRING,
AD_TITLE1_TXT TYPE STRING,
POST_CODE2 TYPE STRING,
PO_BOX_LOC TYPE STRING,
PO_BOX TYPE STRING,
PO_BOX_CTY TYPE STRING,
POST_CODE1 TYPE STRING,
CITY TYPE STRING,
COUNTRY TYPE STRING,
STREET TYPE STRING,
HOUSE_NUM TYPE STRING,
STREET_SUPPL TYPE STRING,
LNCRD_INS TYPE STRING,
INSURANCE_NAME TYPE STRING,
KOSTR_INSTN TYPE STRING,
KOSTR_LAND TYPE STRING,
COV_BEGDT TYPE STRING,
COV_ENDDT TYPE STRING,
EGK_CDM_PVSD TYPE STRING,
EGK_NAMEF TYPE STRING,
EGK_NAMEL TYPE STRING,
EGK_GSCHL TYPE STRING,
UNKNOWN_GBDAT TYPE STRING,
ABR_KOSTR_INSTN TYPE STRING,
EGK_CDM_AVSD TYPE STRING,
EGK_KOSTR_NAME TYPE STRING,
EGK_ABR_KOSTR_NA TYPE STRING,
EGK_RECHTSKREIS TYPE STRING,
EGK_VERS_ART TYPE STRING,
EGK_VERS_STAT_RS TYPE STRING,
EGK_KOSTENERST_A TYPE STRING,
EGK_KOSTENERST_S TYPE STRING,
EGK_WOP TYPE STRING,
EGK_PKV_VERB_TAR TYPE STRING,
EGK_PKV_BEIH_BER TYPE STRING,
EGK_STAT_WLU TYPE STRING,
EGK_WLU_PROZ TYPE STRING,
EGK_HS_WLU TYPE STRING,
EGK_STAT_WLA TYPE STRING,
EGK_STAT_WLA_PRO TYPE STRING,
EGK_PKV_CLINICCA TYPE STRING,
EGK_CDM_GVSD TYPE STRING,
EGK_ZUZA_STATUS TYPE STRING,
EGK_ZUZA_STATU_B TYPE STRING,
EGK_BES_PERS_GRU TYPE STRING,
EGK_DMP_KZ TYPE STRING,
EGK_EINL_DAT_MLG TYPE STRING,
EGK_VKZML TYPE STRING,
FROM_READER TYPE STRING,
INSREL_ASS TYPE STRING,
SAVE_VERSION TYPE STRING,
PO_BOX_CTYTXT TYPE STRING,
COUNTRYTXT TYPE STRING,
KOSTR_LANDTXT TYPE STRING,
GSCHLTXT TYPE STRING,END OF T_EKKO_STR. DATA: WA_RNEGK_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_RNEGK_STR-MANDT sy-vline
WA_RNEGK_STR-LNCRD sy-vline
WA_RNEGK_STR-CRDTYPE sy-vline
WA_RNEGK_STR-EXT_KEY1 sy-vline
WA_RNEGK_STR-EXT_KEY2 sy-vline
WA_RNEGK_STR-PATNR sy-vline
WA_RNEGK_STR-ERUSR sy-vline
WA_RNEGK_STR-ERDAT sy-vline
WA_RNEGK_STR-ERTIM sy-vline
WA_RNEGK_STR-UPUSR sy-vline
WA_RNEGK_STR-UPDAT sy-vline
WA_RNEGK_STR-UPTIM sy-vline
WA_RNEGK_STR-STORN sy-vline
WA_RNEGK_STR-DOCTYPE sy-vline
WA_RNEGK_STR-MANUAL sy-vline
WA_RNEGK_STR-READ_DATE sy-vline
WA_RNEGK_STR-ONLINQOK sy-vline
WA_RNEGK_STR-BEGDT sy-vline
WA_RNEGK_STR-ENDDT sy-vline
WA_RNEGK_STR-CARDVALID sy-vline
WA_RNEGK_STR-CVUSR sy-vline
WA_RNEGK_STR-CVDAT sy-vline
WA_RNEGK_STR-CVTIM sy-vline
WA_RNEGK_STR-EF_VERSION sy-vline
WA_RNEGK_STR-CDATA sy-vline
WA_RNEGK_STR-LNCRD_PAT sy-vline
WA_RNEGK_STR-NAME_LAST sy-vline
WA_RNEGK_STR-NAME_FIRST sy-vline
WA_RNEGK_STR-BIRTHDT sy-vline
WA_RNEGK_STR-GENDER sy-vline
WA_RNEGK_STR-EXPDT sy-vline
WA_RNEGK_STR-INSID sy-vline
WA_RNEGK_STR-AD_PREFIX_TXT sy-vline
WA_RNEGK_STR-AD_TITLES_TXT sy-vline
WA_RNEGK_STR-AD_TITLE1_TXT sy-vline
WA_RNEGK_STR-POST_CODE2 sy-vline
WA_RNEGK_STR-PO_BOX_LOC sy-vline
WA_RNEGK_STR-PO_BOX sy-vline
WA_RNEGK_STR-PO_BOX_CTY sy-vline
WA_RNEGK_STR-POST_CODE1 sy-vline
WA_RNEGK_STR-CITY sy-vline
WA_RNEGK_STR-COUNTRY sy-vline
WA_RNEGK_STR-STREET sy-vline
WA_RNEGK_STR-HOUSE_NUM sy-vline
WA_RNEGK_STR-STREET_SUPPL sy-vline
WA_RNEGK_STR-LNCRD_INS sy-vline
WA_RNEGK_STR-INSURANCE_NAME sy-vline
WA_RNEGK_STR-KOSTR_INSTN sy-vline
WA_RNEGK_STR-KOSTR_LAND sy-vline
WA_RNEGK_STR-COV_BEGDT sy-vline
WA_RNEGK_STR-COV_ENDDT sy-vline
WA_RNEGK_STR-EGK_CDM_PVSD sy-vline
WA_RNEGK_STR-EGK_NAMEF sy-vline
WA_RNEGK_STR-EGK_NAMEL sy-vline
WA_RNEGK_STR-EGK_GSCHL sy-vline
WA_RNEGK_STR-UNKNOWN_GBDAT sy-vline
WA_RNEGK_STR-ABR_KOSTR_INSTN sy-vline
WA_RNEGK_STR-EGK_CDM_AVSD sy-vline
WA_RNEGK_STR-EGK_KOSTR_NAME sy-vline
WA_RNEGK_STR-EGK_ABR_KOSTR_NA sy-vline
WA_RNEGK_STR-EGK_RECHTSKREIS sy-vline
WA_RNEGK_STR-EGK_VERS_ART sy-vline
WA_RNEGK_STR-EGK_VERS_STAT_RS sy-vline
WA_RNEGK_STR-EGK_KOSTENERST_A sy-vline
WA_RNEGK_STR-EGK_KOSTENERST_S sy-vline
WA_RNEGK_STR-EGK_WOP sy-vline
WA_RNEGK_STR-EGK_PKV_VERB_TAR sy-vline
WA_RNEGK_STR-EGK_PKV_BEIH_BER sy-vline
WA_RNEGK_STR-EGK_STAT_WLU sy-vline
WA_RNEGK_STR-EGK_WLU_PROZ sy-vline
WA_RNEGK_STR-EGK_HS_WLU sy-vline
WA_RNEGK_STR-EGK_STAT_WLA sy-vline
WA_RNEGK_STR-EGK_STAT_WLA_PRO sy-vline
WA_RNEGK_STR-EGK_PKV_CLINICCA sy-vline
WA_RNEGK_STR-EGK_CDM_GVSD sy-vline
WA_RNEGK_STR-EGK_ZUZA_STATUS sy-vline
WA_RNEGK_STR-EGK_ZUZA_STATU_B sy-vline
WA_RNEGK_STR-EGK_BES_PERS_GRU sy-vline
WA_RNEGK_STR-EGK_DMP_KZ sy-vline
WA_RNEGK_STR-EGK_EINL_DAT_MLG sy-vline
WA_RNEGK_STR-EGK_VKZML sy-vline
WA_RNEGK_STR-FROM_READER sy-vline
WA_RNEGK_STR-INSREL_ASS sy-vline
WA_RNEGK_STR-SAVE_VERSION sy-vline
WA_RNEGK_STR-PO_BOX_CTYTXT sy-vline
WA_RNEGK_STR-COUNTRYTXT sy-vline
WA_RNEGK_STR-KOSTR_LANDTXT sy-vline
WA_RNEGK_STR-GSCHLTXT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.