ABAP Select data from SAP table BAPI1410DATAINX 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 BAPI1410DATAINX 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 BAPI1410DATAINX. 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 BAPI1410DATAINX 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_BAPI1410DATAINX TYPE STANDARD TABLE OF BAPI1410DATAINX,
      WA_BAPI1410DATAINX TYPE BAPI1410DATAINX,
      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: <BAPI1410DATAINX> TYPE BAPI1410DATAINX.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM BAPI1410DATAINX
*  INTO TABLE @DATA(IT_BAPI1410DATAINX2).
*--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_BAPI1410DATAINX INDEX 1 INTO DATA(WA_BAPI1410DATAINX2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_BAPI1410DATAINX ASSIGNING <BAPI1410DATAINX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<BAPI1410DATAINX>-CLIENT = 1.
<BAPI1410DATAINX>-SERVICE_SEQNO = 1.
<BAPI1410DATAINX>-BPARTNER = 1.
<BAPI1410DATAINX>-BPARTNERX = 1.
<BAPI1410DATAINX>-SRV_SUBS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_BAPI1410DATAINX-SRV_SUBSX, sy-vline,
WA_BAPI1410DATAINX-DESIRED_DATE, sy-vline,
WA_BAPI1410DATAINX-DESIRED_DATEX, sy-vline,
WA_BAPI1410DATAINX-DESIRED_TIME, sy-vline,
WA_BAPI1410DATAINX-DESIRED_TIMEX, sy-vline,
WA_BAPI1410DATAINX-ADDITIONAL_TEXT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_BAPI1410DATAINX 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_BAPI1410DATAINX 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_BAPI1410DATAINX INTO WA_BAPI1410DATAINX. *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 SERVICE_SEQNO CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BAPI1410DATAINX-SERVICE_SEQNO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BAPI1410DATAINX-SERVICE_SEQNO.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit MATN1, internal->external for field MATERIAL_NO CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_BAPI1410DATAINX-MATERIAL_NO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BAPI1410DATAINX-MATERIAL_NO.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field QNT_UNIT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_BAPI1410DATAINX-QNT_UNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BAPI1410DATAINX-QNT_UNIT.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit CUNIT, internal->external for field USERAMNTUNT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_BAPI1410DATAINX-USERAMNTUNT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BAPI1410DATAINX-USERAMNTUNT.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field INSTITUTION CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_BAPI1410DATAINX-INSTITUTION IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BAPI1410DATAINX-INSTITUTION.
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_BAPI1410DATAINX_STR,
CLIENT TYPE STRING,
SERVICE_SEQNO TYPE STRING,
BPARTNER TYPE STRING,
BPARTNERX TYPE STRING,
SRV_SUBS TYPE STRING,
SRV_SUBSX TYPE STRING,
DESIRED_DATE TYPE STRING,
DESIRED_DATEX TYPE STRING,
DESIRED_TIME TYPE STRING,
DESIRED_TIMEX TYPE STRING,
ADDITIONAL_TEXT TYPE STRING,
ADDITIONAL_TEXTX TYPE STRING,
ADD_LONGTEXT TYPE STRING,
ADD_LONGTEXTX TYPE STRING,
SRV_TIME_LIMIT TYPE STRING,
SRV_TIME_LIMITX TYPE STRING,
UNIT_TIME_LIMIT TYPE STRING,
UNIT_TIME_LIMITX TYPE STRING,
TIME_LIMIT_END TYPE STRING,
TIME_LIMIT_ENDX TYPE STRING,
SORT_NUMBER TYPE STRING,
SORT_NUMBERX TYPE STRING,
TIME_INTERPRET TYPE STRING,
TIME_INTERPRETX TYPE STRING,
DURATION TYPE STRING,
DURATIONX TYPE STRING,
ROOM TYPE STRING,
ROOMX TYPE STRING,
INFECTION TYPE STRING,
INFECTIONX TYPE STRING,
ANEST_IND TYPE STRING,
ANEST_INDX TYPE STRING,
SRV_LOCATION TYPE STRING,
SRV_LOCATIONX TYPE STRING,
PATIENT_CONSENT TYPE STRING,
PATIENT_CONSENTX TYPE STRING,
SURG_RELEASE TYPE STRING,
SURG_RELEASEX TYPE STRING,
PREMED_COMPL TYPE STRING,
PREMED_COMPLX TYPE STRING,
PLANNED_TIME TYPE STRING,
PLANNED_TIMEX TYPE STRING,
SRV_STARTDATE TYPE STRING,
SRV_STARTDATEX TYPE STRING,
SRV_STARTTIME TYPE STRING,
SRV_STARTTIMEX TYPE STRING,
EMPTY_IND TYPE STRING,
EMPTY_INDX TYPE STRING,
APPT_REL_IND TYPE STRING,
APPT_REL_INDX TYPE STRING,
POSITION_ID TYPE STRING,
POSITION_IDX TYPE STRING,
MATERIAL_NO TYPE STRING,
MATERIAL_NOX TYPE STRING,
STATUS_IND TYPE STRING,
STATUS_INDX TYPE STRING,
SRV_QUANTITY TYPE STRING,
SRV_QUANTITYX TYPE STRING,
SRV_ENDDATE TYPE STRING,
SRV_ENDDATEX TYPE STRING,
SRV_ENDTIME TYPE STRING,
SRV_ENDTIMEX TYPE STRING,
SRV_SHORTTEXT TYPE STRING,
SRV_SHORTTEXTX TYPE STRING,
QNT_UNIT TYPE STRING,
QNT_UNITX TYPE STRING,
QNT_UNIT_ISO TYPE STRING,
USER0 TYPE STRING,
USER0X TYPE STRING,
USER1 TYPE STRING,
USER1X TYPE STRING,
USERDATE1 TYPE STRING,
USERDATE1X TYPE STRING,
USERDATE2 TYPE STRING,
USERDATE2X TYPE STRING,
USERTIME1 TYPE STRING,
USERTIME1X TYPE STRING,
USERTIME2 TYPE STRING,
USERTIME2X TYPE STRING,
USERPRICE TYPE STRING,
USERPRICEX TYPE STRING,
USERAMNT TYPE STRING,
USERAMNTX TYPE STRING,
USERAMNTUNT TYPE STRING,
USERAMNTUNT_ISO TYPE STRING,
USERSIGN1 TYPE STRING,
USERSIGN1X TYPE STRING,
USERSIGN2 TYPE STRING,
USERSIGN2X TYPE STRING,
USER2 TYPE STRING,
USER2X TYPE STRING,
USERTEXT1 TYPE STRING,
USERTEXT1X TYPE STRING,
INSTITUTION TYPE STRING,END OF T_EKKO_STR. DATA: WA_BAPI1410DATAINX_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_BAPI1410DATAINX_STR-CLIENT sy-vline
WA_BAPI1410DATAINX_STR-SERVICE_SEQNO sy-vline
WA_BAPI1410DATAINX_STR-BPARTNER sy-vline
WA_BAPI1410DATAINX_STR-BPARTNERX sy-vline
WA_BAPI1410DATAINX_STR-SRV_SUBS sy-vline
WA_BAPI1410DATAINX_STR-SRV_SUBSX sy-vline
WA_BAPI1410DATAINX_STR-DESIRED_DATE sy-vline
WA_BAPI1410DATAINX_STR-DESIRED_DATEX sy-vline
WA_BAPI1410DATAINX_STR-DESIRED_TIME sy-vline
WA_BAPI1410DATAINX_STR-DESIRED_TIMEX sy-vline
WA_BAPI1410DATAINX_STR-ADDITIONAL_TEXT sy-vline
WA_BAPI1410DATAINX_STR-ADDITIONAL_TEXTX sy-vline
WA_BAPI1410DATAINX_STR-ADD_LONGTEXT sy-vline
WA_BAPI1410DATAINX_STR-ADD_LONGTEXTX sy-vline
WA_BAPI1410DATAINX_STR-SRV_TIME_LIMIT sy-vline
WA_BAPI1410DATAINX_STR-SRV_TIME_LIMITX sy-vline
WA_BAPI1410DATAINX_STR-UNIT_TIME_LIMIT sy-vline
WA_BAPI1410DATAINX_STR-UNIT_TIME_LIMITX sy-vline
WA_BAPI1410DATAINX_STR-TIME_LIMIT_END sy-vline
WA_BAPI1410DATAINX_STR-TIME_LIMIT_ENDX sy-vline
WA_BAPI1410DATAINX_STR-SORT_NUMBER sy-vline
WA_BAPI1410DATAINX_STR-SORT_NUMBERX sy-vline
WA_BAPI1410DATAINX_STR-TIME_INTERPRET sy-vline
WA_BAPI1410DATAINX_STR-TIME_INTERPRETX sy-vline
WA_BAPI1410DATAINX_STR-DURATION sy-vline
WA_BAPI1410DATAINX_STR-DURATIONX sy-vline
WA_BAPI1410DATAINX_STR-ROOM sy-vline
WA_BAPI1410DATAINX_STR-ROOMX sy-vline
WA_BAPI1410DATAINX_STR-INFECTION sy-vline
WA_BAPI1410DATAINX_STR-INFECTIONX sy-vline
WA_BAPI1410DATAINX_STR-ANEST_IND sy-vline
WA_BAPI1410DATAINX_STR-ANEST_INDX sy-vline
WA_BAPI1410DATAINX_STR-SRV_LOCATION sy-vline
WA_BAPI1410DATAINX_STR-SRV_LOCATIONX sy-vline
WA_BAPI1410DATAINX_STR-PATIENT_CONSENT sy-vline
WA_BAPI1410DATAINX_STR-PATIENT_CONSENTX sy-vline
WA_BAPI1410DATAINX_STR-SURG_RELEASE sy-vline
WA_BAPI1410DATAINX_STR-SURG_RELEASEX sy-vline
WA_BAPI1410DATAINX_STR-PREMED_COMPL sy-vline
WA_BAPI1410DATAINX_STR-PREMED_COMPLX sy-vline
WA_BAPI1410DATAINX_STR-PLANNED_TIME sy-vline
WA_BAPI1410DATAINX_STR-PLANNED_TIMEX sy-vline
WA_BAPI1410DATAINX_STR-SRV_STARTDATE sy-vline
WA_BAPI1410DATAINX_STR-SRV_STARTDATEX sy-vline
WA_BAPI1410DATAINX_STR-SRV_STARTTIME sy-vline
WA_BAPI1410DATAINX_STR-SRV_STARTTIMEX sy-vline
WA_BAPI1410DATAINX_STR-EMPTY_IND sy-vline
WA_BAPI1410DATAINX_STR-EMPTY_INDX sy-vline
WA_BAPI1410DATAINX_STR-APPT_REL_IND sy-vline
WA_BAPI1410DATAINX_STR-APPT_REL_INDX sy-vline
WA_BAPI1410DATAINX_STR-POSITION_ID sy-vline
WA_BAPI1410DATAINX_STR-POSITION_IDX sy-vline
WA_BAPI1410DATAINX_STR-MATERIAL_NO sy-vline
WA_BAPI1410DATAINX_STR-MATERIAL_NOX sy-vline
WA_BAPI1410DATAINX_STR-STATUS_IND sy-vline
WA_BAPI1410DATAINX_STR-STATUS_INDX sy-vline
WA_BAPI1410DATAINX_STR-SRV_QUANTITY sy-vline
WA_BAPI1410DATAINX_STR-SRV_QUANTITYX sy-vline
WA_BAPI1410DATAINX_STR-SRV_ENDDATE sy-vline
WA_BAPI1410DATAINX_STR-SRV_ENDDATEX sy-vline
WA_BAPI1410DATAINX_STR-SRV_ENDTIME sy-vline
WA_BAPI1410DATAINX_STR-SRV_ENDTIMEX sy-vline
WA_BAPI1410DATAINX_STR-SRV_SHORTTEXT sy-vline
WA_BAPI1410DATAINX_STR-SRV_SHORTTEXTX sy-vline
WA_BAPI1410DATAINX_STR-QNT_UNIT sy-vline
WA_BAPI1410DATAINX_STR-QNT_UNITX sy-vline
WA_BAPI1410DATAINX_STR-QNT_UNIT_ISO sy-vline
WA_BAPI1410DATAINX_STR-USER0 sy-vline
WA_BAPI1410DATAINX_STR-USER0X sy-vline
WA_BAPI1410DATAINX_STR-USER1 sy-vline
WA_BAPI1410DATAINX_STR-USER1X sy-vline
WA_BAPI1410DATAINX_STR-USERDATE1 sy-vline
WA_BAPI1410DATAINX_STR-USERDATE1X sy-vline
WA_BAPI1410DATAINX_STR-USERDATE2 sy-vline
WA_BAPI1410DATAINX_STR-USERDATE2X sy-vline
WA_BAPI1410DATAINX_STR-USERTIME1 sy-vline
WA_BAPI1410DATAINX_STR-USERTIME1X sy-vline
WA_BAPI1410DATAINX_STR-USERTIME2 sy-vline
WA_BAPI1410DATAINX_STR-USERTIME2X sy-vline
WA_BAPI1410DATAINX_STR-USERPRICE sy-vline
WA_BAPI1410DATAINX_STR-USERPRICEX sy-vline
WA_BAPI1410DATAINX_STR-USERAMNT sy-vline
WA_BAPI1410DATAINX_STR-USERAMNTX sy-vline
WA_BAPI1410DATAINX_STR-USERAMNTUNT sy-vline
WA_BAPI1410DATAINX_STR-USERAMNTUNT_ISO sy-vline
WA_BAPI1410DATAINX_STR-USERSIGN1 sy-vline
WA_BAPI1410DATAINX_STR-USERSIGN1X sy-vline
WA_BAPI1410DATAINX_STR-USERSIGN2 sy-vline
WA_BAPI1410DATAINX_STR-USERSIGN2X sy-vline
WA_BAPI1410DATAINX_STR-USER2 sy-vline
WA_BAPI1410DATAINX_STR-USER2X sy-vline
WA_BAPI1410DATAINX_STR-USERTEXT1 sy-vline
WA_BAPI1410DATAINX_STR-USERTEXT1X sy-vline
WA_BAPI1410DATAINX_STR-INSTITUTION sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.