ABAP Select data from SAP table PJP_SDS_MD_PF 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 PJP_SDS_MD_PF 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 PJP_SDS_MD_PF. 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 PJP_SDS_MD_PF 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_PJP_SDS_MD_PF TYPE STANDARD TABLE OF PJP_SDS_MD_PF,
      WA_PJP_SDS_MD_PF TYPE PJP_SDS_MD_PF,
      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: <PJP_SDS_MD_PF> TYPE PJP_SDS_MD_PF.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PJP_SDS_MD_PF
*  INTO TABLE @DATA(IT_PJP_SDS_MD_PF2).
*--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_PJP_SDS_MD_PF INDEX 1 INTO DATA(WA_PJP_SDS_MD_PF2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PJP_SDS_MD_PF ASSIGNING <PJP_SDS_MD_PF>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PJP_SDS_MD_PF>-FORM_CODE = 1.
<PJP_SDS_MD_PF>-REGIN = 1.
<PJP_SDS_MD_PF>-GUNSHIKU_ID = 1.
<PJP_SDS_MD_PF>-SI_OFFICE_ID = 1.
<PJP_SDS_MD_PF>-SI_INS_NO = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PJP_SDS_MD_PF-EMP_NAME_KANA, sy-vline,
WA_PJP_SDS_MD_PF-EMP_NAME_KANJI, sy-vline,
WA_PJP_SDS_MD_PF-BIRTH_GENGOU, sy-vline,
WA_PJP_SDS_MD_PF-BIRTH_YYMMDD, sy-vline,
WA_PJP_SDS_MD_PF-TEKIYOU_GENGOU, sy-vline,
WA_PJP_SDS_MD_PF-TEKIYOU_YEAR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PJP_SDS_MD_PF 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_PJP_SDS_MD_PF 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_PJP_SDS_MD_PF INTO WA_PJP_SDS_MD_PF. *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.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_PJP_SDS_MD_PF_STR,
FORM_CODE TYPE STRING,
REGIN TYPE STRING,
GUNSHIKU_ID TYPE STRING,
SI_OFFICE_ID TYPE STRING,
SI_INS_NO TYPE STRING,
EMP_NAME_KANA TYPE STRING,
EMP_NAME_KANJI TYPE STRING,
BIRTH_GENGOU TYPE STRING,
BIRTH_YYMMDD TYPE STRING,
TEKIYOU_GENGOU TYPE STRING,
TEKIYOU_YEAR TYPE STRING,
TEKIYOU_MONTH TYPE STRING,
JUZEN_COMP_AMT_HI TYPE STRING,
JUZEN_COMP_AMT_EP TYPE STRING,
JUZEN_GENGOU TYPE STRING,
JUZEN_YEAR TYPE STRING,
JUZEN_MONTH TYPE STRING,
MONTH_INC_DEC TYPE STRING,
INC_DEC_ID TYPE STRING,
RECALC_MONTH TYPE STRING,
RECALC_PAYMENT TYPE STRING,
SANTEI_KISO_MONTH1 TYPE STRING,
SANTEI_KISO_MONTH2 TYPE STRING,
SANTEI_KISO_MONTH3 TYPE STRING,
SANTEI_KISO_DAY1 TYPE STRING,
SANTEI_KISO_DAY2 TYPE STRING,
SANTEI_KISO_DAY3 TYPE STRING,
KINSEN_AMOUNT1 TYPE STRING,
KINSEN_AMOUNT2 TYPE STRING,
KINSEN_AMOUNT3 TYPE STRING,
GENBUTSU_AMOUNT1 TYPE STRING,
GENBUTSU_AMOUNT2 TYPE STRING,
GENBUTSU_AMOUNT3 TYPE STRING,
TOTAL_AMOUNT1 TYPE STRING,
TOTAL_AMOUNT2 TYPE STRING,
TOTAL_AMOUNT3 TYPE STRING,
TOTAL_AMOUNT TYPE STRING,
AVERAGE_AMOUNT TYPE STRING,
SHUSEI_AMOUNT TYPE STRING,
INDNR TYPE STRING,
OFFICE_CODE TYPE STRING,
SEQ_NO TYPE STRING,
REMARK1 TYPE STRING,
SANTEI_KISO_MTH_70 TYPE STRING,
REMARK2 TYPE STRING,
REMARK3 TYPE STRING,
REMARK4 TYPE STRING,
REMARK5 TYPE STRING,
REMARK6 TYPE STRING,
REMARK7 TYPE STRING,
REMARK8 TYPE STRING,
REMARKS TYPE STRING,
FRM70 TYPE STRING,
KIKIN_NO TYPE STRING,
JIGYO_NO TYPE STRING,
KANYU_NO TYPE STRING,
TEKIYO_UMU TYPE STRING,
KASAN_KYUYO1 TYPE STRING,
NORMAL_KYUYO1 TYPE STRING,
KASAN_KYUYO2 TYPE STRING,
NORMAL_KYUYO2 TYPE STRING,
KIKIN_KOYU01 TYPE STRING,
KIKIN_KOYU02 TYPE STRING,
KIKIN_KOYU03 TYPE STRING,
KIKIN_KOYU04 TYPE STRING,
KIKIN_KOYU05 TYPE STRING,
KIKIN_KOYU06 TYPE STRING,
KIKIN_KOYU07 TYPE STRING,
KIKIN_KOYU08 TYPE STRING,
KIKIN_KOYU09 TYPE STRING,
KIKIN_KOYU10 TYPE STRING,END OF T_EKKO_STR. DATA: WA_PJP_SDS_MD_PF_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_PJP_SDS_MD_PF_STR-FORM_CODE sy-vline
WA_PJP_SDS_MD_PF_STR-REGIN sy-vline
WA_PJP_SDS_MD_PF_STR-GUNSHIKU_ID sy-vline
WA_PJP_SDS_MD_PF_STR-SI_OFFICE_ID sy-vline
WA_PJP_SDS_MD_PF_STR-SI_INS_NO sy-vline
WA_PJP_SDS_MD_PF_STR-EMP_NAME_KANA sy-vline
WA_PJP_SDS_MD_PF_STR-EMP_NAME_KANJI sy-vline
WA_PJP_SDS_MD_PF_STR-BIRTH_GENGOU sy-vline
WA_PJP_SDS_MD_PF_STR-BIRTH_YYMMDD sy-vline
WA_PJP_SDS_MD_PF_STR-TEKIYOU_GENGOU sy-vline
WA_PJP_SDS_MD_PF_STR-TEKIYOU_YEAR sy-vline
WA_PJP_SDS_MD_PF_STR-TEKIYOU_MONTH sy-vline
WA_PJP_SDS_MD_PF_STR-JUZEN_COMP_AMT_HI sy-vline
WA_PJP_SDS_MD_PF_STR-JUZEN_COMP_AMT_EP sy-vline
WA_PJP_SDS_MD_PF_STR-JUZEN_GENGOU sy-vline
WA_PJP_SDS_MD_PF_STR-JUZEN_YEAR sy-vline
WA_PJP_SDS_MD_PF_STR-JUZEN_MONTH sy-vline
WA_PJP_SDS_MD_PF_STR-MONTH_INC_DEC sy-vline
WA_PJP_SDS_MD_PF_STR-INC_DEC_ID sy-vline
WA_PJP_SDS_MD_PF_STR-RECALC_MONTH sy-vline
WA_PJP_SDS_MD_PF_STR-RECALC_PAYMENT sy-vline
WA_PJP_SDS_MD_PF_STR-SANTEI_KISO_MONTH1 sy-vline
WA_PJP_SDS_MD_PF_STR-SANTEI_KISO_MONTH2 sy-vline
WA_PJP_SDS_MD_PF_STR-SANTEI_KISO_MONTH3 sy-vline
WA_PJP_SDS_MD_PF_STR-SANTEI_KISO_DAY1 sy-vline
WA_PJP_SDS_MD_PF_STR-SANTEI_KISO_DAY2 sy-vline
WA_PJP_SDS_MD_PF_STR-SANTEI_KISO_DAY3 sy-vline
WA_PJP_SDS_MD_PF_STR-KINSEN_AMOUNT1 sy-vline
WA_PJP_SDS_MD_PF_STR-KINSEN_AMOUNT2 sy-vline
WA_PJP_SDS_MD_PF_STR-KINSEN_AMOUNT3 sy-vline
WA_PJP_SDS_MD_PF_STR-GENBUTSU_AMOUNT1 sy-vline
WA_PJP_SDS_MD_PF_STR-GENBUTSU_AMOUNT2 sy-vline
WA_PJP_SDS_MD_PF_STR-GENBUTSU_AMOUNT3 sy-vline
WA_PJP_SDS_MD_PF_STR-TOTAL_AMOUNT1 sy-vline
WA_PJP_SDS_MD_PF_STR-TOTAL_AMOUNT2 sy-vline
WA_PJP_SDS_MD_PF_STR-TOTAL_AMOUNT3 sy-vline
WA_PJP_SDS_MD_PF_STR-TOTAL_AMOUNT sy-vline
WA_PJP_SDS_MD_PF_STR-AVERAGE_AMOUNT sy-vline
WA_PJP_SDS_MD_PF_STR-SHUSEI_AMOUNT sy-vline
WA_PJP_SDS_MD_PF_STR-INDNR sy-vline
WA_PJP_SDS_MD_PF_STR-OFFICE_CODE sy-vline
WA_PJP_SDS_MD_PF_STR-SEQ_NO sy-vline
WA_PJP_SDS_MD_PF_STR-REMARK1 sy-vline
WA_PJP_SDS_MD_PF_STR-SANTEI_KISO_MTH_70 sy-vline
WA_PJP_SDS_MD_PF_STR-REMARK2 sy-vline
WA_PJP_SDS_MD_PF_STR-REMARK3 sy-vline
WA_PJP_SDS_MD_PF_STR-REMARK4 sy-vline
WA_PJP_SDS_MD_PF_STR-REMARK5 sy-vline
WA_PJP_SDS_MD_PF_STR-REMARK6 sy-vline
WA_PJP_SDS_MD_PF_STR-REMARK7 sy-vline
WA_PJP_SDS_MD_PF_STR-REMARK8 sy-vline
WA_PJP_SDS_MD_PF_STR-REMARKS sy-vline
WA_PJP_SDS_MD_PF_STR-FRM70 sy-vline
WA_PJP_SDS_MD_PF_STR-KIKIN_NO sy-vline
WA_PJP_SDS_MD_PF_STR-JIGYO_NO sy-vline
WA_PJP_SDS_MD_PF_STR-KANYU_NO sy-vline
WA_PJP_SDS_MD_PF_STR-TEKIYO_UMU sy-vline
WA_PJP_SDS_MD_PF_STR-KASAN_KYUYO1 sy-vline
WA_PJP_SDS_MD_PF_STR-NORMAL_KYUYO1 sy-vline
WA_PJP_SDS_MD_PF_STR-KASAN_KYUYO2 sy-vline
WA_PJP_SDS_MD_PF_STR-NORMAL_KYUYO2 sy-vline
WA_PJP_SDS_MD_PF_STR-KIKIN_KOYU01 sy-vline
WA_PJP_SDS_MD_PF_STR-KIKIN_KOYU02 sy-vline
WA_PJP_SDS_MD_PF_STR-KIKIN_KOYU03 sy-vline
WA_PJP_SDS_MD_PF_STR-KIKIN_KOYU04 sy-vline
WA_PJP_SDS_MD_PF_STR-KIKIN_KOYU05 sy-vline
WA_PJP_SDS_MD_PF_STR-KIKIN_KOYU06 sy-vline
WA_PJP_SDS_MD_PF_STR-KIKIN_KOYU07 sy-vline
WA_PJP_SDS_MD_PF_STR-KIKIN_KOYU08 sy-vline
WA_PJP_SDS_MD_PF_STR-KIKIN_KOYU09 sy-vline
WA_PJP_SDS_MD_PF_STR-KIKIN_KOYU10 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.