ABAP Select data from SAP table PBSI_GARN_10 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 PBSI_GARN_10 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 PBSI_GARN_10. 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 PBSI_GARN_10 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_PBSI_GARN_10 TYPE STANDARD TABLE OF PBSI_GARN_10,
      WA_PBSI_GARN_10 TYPE PBSI_GARN_10,
      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: <PBSI_GARN_10> TYPE PBSI_GARN_10.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PBSI_GARN_10
*  INTO TABLE @DATA(IT_PBSI_GARN_102).
*--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_PBSI_GARN_10 INDEX 1 INTO DATA(WA_PBSI_GARN_102).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PBSI_GARN_10 ASSIGNING <PBSI_GARN_10>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PBSI_GARN_10>-MTD_WAGE = 1.
<PBSI_GARN_10>-ANUL_SAL = 1.
<PBSI_GARN_10>-PER_WITH = 1.
<PBSI_GARN_10>-ORD_D_AM = 1.
<PBSI_GARN_10>-ORD_PERC = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PBSI_GARN_10-CALC_AMT, sy-vline,
WA_PBSI_GARN_10-DIS_EARN, sy-vline,
WA_PBSI_GARN_10-EXE_AMNT, sy-vline,
WA_PBSI_GARN_10-AD_EX_AM, sy-vline,
WA_PBSI_GARN_10-PRI_AMNT, sy-vline,
WA_PBSI_GARN_10-MTD_D_E, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PBSI_GARN_10 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_PBSI_GARN_10 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_PBSI_GARN_10 INTO WA_PBSI_GARN_10. *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_PBSI_GARN_10_STR,
MTD_WAGE TYPE STRING,
ANUL_SAL TYPE STRING,
PER_WITH TYPE STRING,
ORD_D_AM TYPE STRING,
ORD_PERC TYPE STRING,
CALC_AMT TYPE STRING,
DIS_EARN TYPE STRING,
EXE_AMNT TYPE STRING,
AD_EX_AM TYPE STRING,
PRI_AMNT TYPE STRING,
MTD_D_E TYPE STRING,
YTD_D_E TYPE STRING,
MTD_GARN TYPE STRING,
YTD_GARN TYPE STRING,
FORM_NUM TYPE STRING,
PRI_OVRD TYPE STRING,
GARN_STA TYPE STRING,
FILG_STA TYPE STRING,
NUM_EXMN TYPE STRING,
AD_STD_D TYPE STRING,
SECD_FAM TYPE STRING,
HEAD_FAM TYPE STRING,
NUM_DEPT TYPE STRING,
NUM_D_CH TYPE STRING,
VOCATION TYPE STRING,
IS_DELNT TYPE STRING,
GARN_DUR TYPE STRING,
CONSENT TYPE STRING,
TYP_DEBT TYPE STRING,
PAY_NUMR TYPE STRING,
ORD_AM_F TYPE STRING,
RND_INDI TYPE STRING,
USE_F_LI TYPE STRING,
USR_TX_T TYPE STRING,
TAX_TYPE TYPE STRING,
CASE_ID TYPE STRING,
AUTH_CODE TYPE STRING,
G_RCD_DAT TYPE STRING,
G_STR_DAT TYPE STRING,
G_END_DAT TYPE STRING,
BSI_VARNT TYPE STRING,
QTD_GARN TYPE STRING,
PPTD_GARN TYPE STRING,
GARN_CAP TYPE STRING,
GARN_LMT_IND TYPE STRING,
LMP_SUM_IND TYPE STRING,
PRDS_PER_PYMT TYPE STRING,
DATEOFARREARSYYYYMMDD TYPE STRING,
STATEOFISSUE TYPE STRING,
GARNMTHD TYPE STRING,
GARNISHMENT_EXEMPTION TYPE STRING,
HASSOE TYPE STRING,
CUR_TAX_LEFT TYPE STRING,
TAX_LEFT_OVER TYPE STRING,
NUM_WAGE_ENT TYPE STRING,
REMAINDER_DISP TYPE STRING,
USE_ALT_LIM TYPE STRING,
DOCKET TYPE STRING,
DRSVD0 TYPE STRING,
DRSVD1 TYPE STRING,
SRSVD0 TYPE STRING,
SRSVD1 TYPE STRING,
CRSVD0 TYPE STRING,
CRSVD1 TYPE STRING,
HRSVD0 TYPE STRING,
HRSVD1 TYPE STRING,
RRSVD0 TYPE STRING,
RRSVD1 TYPE STRING,
FILLER TYPE STRING,END OF T_EKKO_STR. DATA: WA_PBSI_GARN_10_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_PBSI_GARN_10_STR-MTD_WAGE sy-vline
WA_PBSI_GARN_10_STR-ANUL_SAL sy-vline
WA_PBSI_GARN_10_STR-PER_WITH sy-vline
WA_PBSI_GARN_10_STR-ORD_D_AM sy-vline
WA_PBSI_GARN_10_STR-ORD_PERC sy-vline
WA_PBSI_GARN_10_STR-CALC_AMT sy-vline
WA_PBSI_GARN_10_STR-DIS_EARN sy-vline
WA_PBSI_GARN_10_STR-EXE_AMNT sy-vline
WA_PBSI_GARN_10_STR-AD_EX_AM sy-vline
WA_PBSI_GARN_10_STR-PRI_AMNT sy-vline
WA_PBSI_GARN_10_STR-MTD_D_E sy-vline
WA_PBSI_GARN_10_STR-YTD_D_E sy-vline
WA_PBSI_GARN_10_STR-MTD_GARN sy-vline
WA_PBSI_GARN_10_STR-YTD_GARN sy-vline
WA_PBSI_GARN_10_STR-FORM_NUM sy-vline
WA_PBSI_GARN_10_STR-PRI_OVRD sy-vline
WA_PBSI_GARN_10_STR-GARN_STA sy-vline
WA_PBSI_GARN_10_STR-FILG_STA sy-vline
WA_PBSI_GARN_10_STR-NUM_EXMN sy-vline
WA_PBSI_GARN_10_STR-AD_STD_D sy-vline
WA_PBSI_GARN_10_STR-SECD_FAM sy-vline
WA_PBSI_GARN_10_STR-HEAD_FAM sy-vline
WA_PBSI_GARN_10_STR-NUM_DEPT sy-vline
WA_PBSI_GARN_10_STR-NUM_D_CH sy-vline
WA_PBSI_GARN_10_STR-VOCATION sy-vline
WA_PBSI_GARN_10_STR-IS_DELNT sy-vline
WA_PBSI_GARN_10_STR-GARN_DUR sy-vline
WA_PBSI_GARN_10_STR-CONSENT sy-vline
WA_PBSI_GARN_10_STR-TYP_DEBT sy-vline
WA_PBSI_GARN_10_STR-PAY_NUMR sy-vline
WA_PBSI_GARN_10_STR-ORD_AM_F sy-vline
WA_PBSI_GARN_10_STR-RND_INDI sy-vline
WA_PBSI_GARN_10_STR-USE_F_LI sy-vline
WA_PBSI_GARN_10_STR-USR_TX_T sy-vline
WA_PBSI_GARN_10_STR-TAX_TYPE sy-vline
WA_PBSI_GARN_10_STR-CASE_ID sy-vline
WA_PBSI_GARN_10_STR-AUTH_CODE sy-vline
WA_PBSI_GARN_10_STR-G_RCD_DAT sy-vline
WA_PBSI_GARN_10_STR-G_STR_DAT sy-vline
WA_PBSI_GARN_10_STR-G_END_DAT sy-vline
WA_PBSI_GARN_10_STR-BSI_VARNT sy-vline
WA_PBSI_GARN_10_STR-QTD_GARN sy-vline
WA_PBSI_GARN_10_STR-PPTD_GARN sy-vline
WA_PBSI_GARN_10_STR-GARN_CAP sy-vline
WA_PBSI_GARN_10_STR-GARN_LMT_IND sy-vline
WA_PBSI_GARN_10_STR-LMP_SUM_IND sy-vline
WA_PBSI_GARN_10_STR-PRDS_PER_PYMT sy-vline
WA_PBSI_GARN_10_STR-DATEOFARREARSYYYYMMDD sy-vline
WA_PBSI_GARN_10_STR-STATEOFISSUE sy-vline
WA_PBSI_GARN_10_STR-GARNMTHD sy-vline
WA_PBSI_GARN_10_STR-GARNISHMENT_EXEMPTION sy-vline
WA_PBSI_GARN_10_STR-HASSOE sy-vline
WA_PBSI_GARN_10_STR-CUR_TAX_LEFT sy-vline
WA_PBSI_GARN_10_STR-TAX_LEFT_OVER sy-vline
WA_PBSI_GARN_10_STR-NUM_WAGE_ENT sy-vline
WA_PBSI_GARN_10_STR-REMAINDER_DISP sy-vline
WA_PBSI_GARN_10_STR-USE_ALT_LIM sy-vline
WA_PBSI_GARN_10_STR-DOCKET sy-vline
WA_PBSI_GARN_10_STR-DRSVD0 sy-vline
WA_PBSI_GARN_10_STR-DRSVD1 sy-vline
WA_PBSI_GARN_10_STR-SRSVD0 sy-vline
WA_PBSI_GARN_10_STR-SRSVD1 sy-vline
WA_PBSI_GARN_10_STR-CRSVD0 sy-vline
WA_PBSI_GARN_10_STR-CRSVD1 sy-vline
WA_PBSI_GARN_10_STR-HRSVD0 sy-vline
WA_PBSI_GARN_10_STR-HRSVD1 sy-vline
WA_PBSI_GARN_10_STR-RRSVD0 sy-vline
WA_PBSI_GARN_10_STR-RRSVD1 sy-vline
WA_PBSI_GARN_10_STR-FILLER sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.