ABAP Select data from SAP table PBSI_GARN_90 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_90 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_90. 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_90 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_90 TYPE STANDARD TABLE OF PBSI_GARN_90,
      WA_PBSI_GARN_90 TYPE PBSI_GARN_90,
      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_90> TYPE PBSI_GARN_90.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PBSI_GARN_90
*  INTO TABLE @DATA(IT_PBSI_GARN_902).
*--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_90 INDEX 1 INTO DATA(WA_PBSI_GARN_902).


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

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

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