ABAP Select data from SAP table VIOROBJSTATUSX 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 VIOROBJSTATUSX 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 VIOROBJSTATUSX. 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 VIOROBJSTATUSX 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_VIOROBJSTATUSX TYPE STANDARD TABLE OF VIOROBJSTATUSX,
      WA_VIOROBJSTATUSX TYPE VIOROBJSTATUSX,
      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: <VIOROBJSTATUSX> TYPE VIOROBJSTATUSX.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM VIOROBJSTATUSX
*  INTO TABLE @DATA(IT_VIOROBJSTATUSX2).
*--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_VIOROBJSTATUSX INDEX 1 INTO DATA(WA_VIOROBJSTATUSX2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_VIOROBJSTATUSX ASSIGNING <VIOROBJSTATUSX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<VIOROBJSTATUSX>-MANDT = 1.
<VIOROBJSTATUSX>-OBJNR = 1.
<VIOROBJSTATUSX>-OBJNROO = 1.
<VIOROBJSTATUSX>-OBJSTATUS = 1.
<VIOROBJSTATUSX>-VALIDFROM = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_VIOROBJSTATUSX-OBJNRREF, sy-vline,
WA_VIOROBJSTATUSX-OBJNROFCN, sy-vline,
WA_VIOROBJSTATUSX-REASON, sy-vline,
WA_VIOROBJSTATUSX-XCOMMENT, sy-vline,
WA_VIOROBJSTATUSX-VALIDTO, sy-vline,
WA_VIOROBJSTATUSX-RERF, sy-vline.
ENDLOOP. *Add any further fields from structure WA_VIOROBJSTATUSX 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_VIOROBJSTATUSX 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_VIOROBJSTATUSX INTO WA_VIOROBJSTATUSX. *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 REDAT, internal->external for field VALIDTO CALL FUNCTION 'CONVERSION_EXIT_REDAT_OUTPUT' EXPORTING input = WA_VIOROBJSTATUSX-VALIDTO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIOROBJSTATUSX-VALIDTO.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit REDAT, internal->external for field OOEND_O CALL FUNCTION 'CONVERSION_EXIT_REDAT_OUTPUT' EXPORTING input = WA_VIOROBJSTATUSX-OOEND_O IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIOROBJSTATUSX-OOEND_O.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit REDAT, internal->external for field OODATAFROM_O CALL FUNCTION 'CONVERSION_EXIT_REDAT_OUTPUT' EXPORTING input = WA_VIOROBJSTATUSX-OODATAFROM_O IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIOROBJSTATUSX-OODATAFROM_O.
WRITE:/ 'New Value:', ld_input.

*Conversion exit REDAT, internal->external for field OODATATO_O CALL FUNCTION 'CONVERSION_EXIT_REDAT_OUTPUT' EXPORTING input = WA_VIOROBJSTATUSX-OODATATO_O IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIOROBJSTATUSX-OODATATO_O.
WRITE:/ 'New Value:', ld_input.

*Conversion exit REDAT, internal->external for field OORESTO_O CALL FUNCTION 'CONVERSION_EXIT_REDAT_OUTPUT' EXPORTING input = WA_VIOROBJSTATUSX-OORESTO_O IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIOROBJSTATUSX-OORESTO_O.
WRITE:/ 'New Value:', ld_input.

*Conversion exit SWENR, internal->external for field BENO_O CALL FUNCTION 'CONVERSION_EXIT_SWENR_OUTPUT' EXPORTING input = WA_VIOROBJSTATUSX-BENO_O IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIOROBJSTATUSX-BENO_O.
WRITE:/ 'New Value:', ld_input.

*Conversion exit SGENR, internal->external for field BUNO_O CALL FUNCTION 'CONVERSION_EXIT_SGENR_OUTPUT' EXPORTING input = WA_VIOROBJSTATUSX-BUNO_O IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIOROBJSTATUSX-BUNO_O.
WRITE:/ 'New Value:', ld_input.

*Conversion exit SGRNR, internal->external for field PRNO_O CALL FUNCTION 'CONVERSION_EXIT_SGRNR_OUTPUT' EXPORTING input = WA_VIOROBJSTATUSX-PRNO_O IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIOROBJSTATUSX-PRNO_O.
WRITE:/ 'New Value:', ld_input.

*Conversion exit SMENR, internal->external for field RONO_O CALL FUNCTION 'CONVERSION_EXIT_SMENR_OUTPUT' EXPORTING input = WA_VIOROBJSTATUSX-RONO_O IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIOROBJSTATUSX-RONO_O.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field LOCKREASON_O CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VIOROBJSTATUSX-LOCKREASON_O IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIOROBJSTATUSX-LOCKREASON_O.
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_VIOROBJSTATUSX_STR,
MANDT TYPE STRING,
OBJNR TYPE STRING,
OBJNROO TYPE STRING,
OBJSTATUS TYPE STRING,
VALIDFROM TYPE STRING,
OBJNRREF TYPE STRING,
OBJNROFCN TYPE STRING,
REASON TYPE STRING,
XCOMMENT TYPE STRING,
VALIDTO TYPE STRING,
RERF TYPE STRING,
DERF TYPE STRING,
TERF TYPE STRING,
REHER TYPE STRING,
RBEAR TYPE STRING,
DBEAR TYPE STRING,
TBEAR TYPE STRING,
RBHER TYPE STRING,
OOID_O TYPE STRING,
OBJNR_O TYPE STRING,
CREATIONTYPE_O TYPE STRING,
RERF_O TYPE STRING,
DERF_O TYPE STRING,
TERF_O TYPE STRING,
REHER_O TYPE STRING,
RBEAR_O TYPE STRING,
DBEAR_O TYPE STRING,
TBEAR_O TYPE STRING,
RBHER_O TYPE STRING,
RESPONSIBLE_O TYPE STRING,
USEREXCLUSIVE_O TYPE STRING,
AUTHGRP_O TYPE STRING,
OOBEG_O TYPE STRING,
OOEND_O TYPE STRING,
MEAS_O TYPE STRING,
USAGETYPE_O TYPE STRING,
RSOBJTYPE_O TYPE STRING,
RSAREA_O TYPE STRING,
ACQUISTYPE_O TYPE STRING,
XOO_O TYPE STRING,
OOIDEXT_O TYPE STRING,
OBJTYPEREF_O TYPE STRING,
OBJNRREF_O TYPE STRING,
OODATAFROM_O TYPE STRING,
OODATATO_O TYPE STRING,
OORESFROM_O TYPE STRING,
OORESTO_O TYPE STRING,
BUKRS_O TYPE STRING,
BENO_O TYPE STRING,
BUNO_O TYPE STRING,
PRNO_O TYPE STRING,
RONO_O TYPE STRING,
OFID_O TYPE STRING,
CDVALUE01_O TYPE STRING,
CDCURR01_O TYPE STRING,
CDVALUE02_O TYPE STRING,
CDCURR02_O TYPE STRING,
CDVALUE03_O TYPE STRING,
CDCURR03_O TYPE STRING,
CDVALUE04_O TYPE STRING,
CDCURR04_O TYPE STRING,
MSVALUE01_O TYPE STRING,
MSUNIT01_O TYPE STRING,
MSVALUE02_O TYPE STRING,
MSUNIT02_O TYPE STRING,
MSVALUE03_O TYPE STRING,
MSUNIT03_O TYPE STRING,
MSVALUE04_O TYPE STRING,
MSUNIT04_O TYPE STRING,
FLOOR_O TYPE STRING,
SSTDORT_O TYPE STRING,
SLAGEWE_O TYPE STRING,
SOBJLAGE_O TYPE STRING,
TRANSPCONN_O TYPE STRING,
BUILDYEAR_O TYPE STRING,
RRCHARACTSTR_O TYPE STRING,
COUNTRY_O TYPE STRING,
REGION_O TYPE STRING,
POST_CODE1_O TYPE STRING,
CITY1_O TYPE STRING,
CITY2_O TYPE STRING,
STREET_O TYPE STRING,
HOUSE_NUM1_O TYPE STRING,
NEIGHBORH1_O TYPE STRING,
NEIGHBORH2_O TYPE STRING,
NEIGHBORH3_O TYPE STRING,
AECNEEDED_O TYPE STRING,
AECCLASSSTR_O TYPE STRING,
OBJNRCN_O TYPE STRING,
ACCDETKEY_O TYPE STRING,
RESPOBJNRDEF_O TYPE STRING,
RESPOBJNR1_O TYPE STRING,
RESPOBJNR2_O TYPE STRING,
RESPOBJNR3_O TYPE STRING,
RESPOBJNR4_O TYPE STRING,
PRICECODE1_O TYPE STRING,
PRICECODE2_O TYPE STRING,
PRICECODE3_O TYPE STRING,
PRICECODE4_O TYPE STRING,
LOCKEDFROM_O TYPE STRING,
LOCKEDTO_O TYPE STRING,
LOCKREASON_O TYPE STRING,
XLOCKREASONEXT_O TYPE STRING,
BILLEDTO_O TYPE STRING,
NTPER_O TYPE STRING,
NTREQUESTON_O TYPE STRING,
BILLFROM_O TYPE STRING,
RSBUKRS_O TYPE STRING,
RESPOBJNRINV_O TYPE STRING,END OF T_EKKO_STR. DATA: WA_VIOROBJSTATUSX_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_VIOROBJSTATUSX_STR-MANDT sy-vline
WA_VIOROBJSTATUSX_STR-OBJNR sy-vline
WA_VIOROBJSTATUSX_STR-OBJNROO sy-vline
WA_VIOROBJSTATUSX_STR-OBJSTATUS sy-vline
WA_VIOROBJSTATUSX_STR-VALIDFROM sy-vline
WA_VIOROBJSTATUSX_STR-OBJNRREF sy-vline
WA_VIOROBJSTATUSX_STR-OBJNROFCN sy-vline
WA_VIOROBJSTATUSX_STR-REASON sy-vline
WA_VIOROBJSTATUSX_STR-XCOMMENT sy-vline
WA_VIOROBJSTATUSX_STR-VALIDTO sy-vline
WA_VIOROBJSTATUSX_STR-RERF sy-vline
WA_VIOROBJSTATUSX_STR-DERF sy-vline
WA_VIOROBJSTATUSX_STR-TERF sy-vline
WA_VIOROBJSTATUSX_STR-REHER sy-vline
WA_VIOROBJSTATUSX_STR-RBEAR sy-vline
WA_VIOROBJSTATUSX_STR-DBEAR sy-vline
WA_VIOROBJSTATUSX_STR-TBEAR sy-vline
WA_VIOROBJSTATUSX_STR-RBHER sy-vline
WA_VIOROBJSTATUSX_STR-OOID_O sy-vline
WA_VIOROBJSTATUSX_STR-OBJNR_O sy-vline
WA_VIOROBJSTATUSX_STR-CREATIONTYPE_O sy-vline
WA_VIOROBJSTATUSX_STR-RERF_O sy-vline
WA_VIOROBJSTATUSX_STR-DERF_O sy-vline
WA_VIOROBJSTATUSX_STR-TERF_O sy-vline
WA_VIOROBJSTATUSX_STR-REHER_O sy-vline
WA_VIOROBJSTATUSX_STR-RBEAR_O sy-vline
WA_VIOROBJSTATUSX_STR-DBEAR_O sy-vline
WA_VIOROBJSTATUSX_STR-TBEAR_O sy-vline
WA_VIOROBJSTATUSX_STR-RBHER_O sy-vline
WA_VIOROBJSTATUSX_STR-RESPONSIBLE_O sy-vline
WA_VIOROBJSTATUSX_STR-USEREXCLUSIVE_O sy-vline
WA_VIOROBJSTATUSX_STR-AUTHGRP_O sy-vline
WA_VIOROBJSTATUSX_STR-OOBEG_O sy-vline
WA_VIOROBJSTATUSX_STR-OOEND_O sy-vline
WA_VIOROBJSTATUSX_STR-MEAS_O sy-vline
WA_VIOROBJSTATUSX_STR-USAGETYPE_O sy-vline
WA_VIOROBJSTATUSX_STR-RSOBJTYPE_O sy-vline
WA_VIOROBJSTATUSX_STR-RSAREA_O sy-vline
WA_VIOROBJSTATUSX_STR-ACQUISTYPE_O sy-vline
WA_VIOROBJSTATUSX_STR-XOO_O sy-vline
WA_VIOROBJSTATUSX_STR-OOIDEXT_O sy-vline
WA_VIOROBJSTATUSX_STR-OBJTYPEREF_O sy-vline
WA_VIOROBJSTATUSX_STR-OBJNRREF_O sy-vline
WA_VIOROBJSTATUSX_STR-OODATAFROM_O sy-vline
WA_VIOROBJSTATUSX_STR-OODATATO_O sy-vline
WA_VIOROBJSTATUSX_STR-OORESFROM_O sy-vline
WA_VIOROBJSTATUSX_STR-OORESTO_O sy-vline
WA_VIOROBJSTATUSX_STR-BUKRS_O sy-vline
WA_VIOROBJSTATUSX_STR-BENO_O sy-vline
WA_VIOROBJSTATUSX_STR-BUNO_O sy-vline
WA_VIOROBJSTATUSX_STR-PRNO_O sy-vline
WA_VIOROBJSTATUSX_STR-RONO_O sy-vline
WA_VIOROBJSTATUSX_STR-OFID_O sy-vline
WA_VIOROBJSTATUSX_STR-CDVALUE01_O sy-vline
WA_VIOROBJSTATUSX_STR-CDCURR01_O sy-vline
WA_VIOROBJSTATUSX_STR-CDVALUE02_O sy-vline
WA_VIOROBJSTATUSX_STR-CDCURR02_O sy-vline
WA_VIOROBJSTATUSX_STR-CDVALUE03_O sy-vline
WA_VIOROBJSTATUSX_STR-CDCURR03_O sy-vline
WA_VIOROBJSTATUSX_STR-CDVALUE04_O sy-vline
WA_VIOROBJSTATUSX_STR-CDCURR04_O sy-vline
WA_VIOROBJSTATUSX_STR-MSVALUE01_O sy-vline
WA_VIOROBJSTATUSX_STR-MSUNIT01_O sy-vline
WA_VIOROBJSTATUSX_STR-MSVALUE02_O sy-vline
WA_VIOROBJSTATUSX_STR-MSUNIT02_O sy-vline
WA_VIOROBJSTATUSX_STR-MSVALUE03_O sy-vline
WA_VIOROBJSTATUSX_STR-MSUNIT03_O sy-vline
WA_VIOROBJSTATUSX_STR-MSVALUE04_O sy-vline
WA_VIOROBJSTATUSX_STR-MSUNIT04_O sy-vline
WA_VIOROBJSTATUSX_STR-FLOOR_O sy-vline
WA_VIOROBJSTATUSX_STR-SSTDORT_O sy-vline
WA_VIOROBJSTATUSX_STR-SLAGEWE_O sy-vline
WA_VIOROBJSTATUSX_STR-SOBJLAGE_O sy-vline
WA_VIOROBJSTATUSX_STR-TRANSPCONN_O sy-vline
WA_VIOROBJSTATUSX_STR-BUILDYEAR_O sy-vline
WA_VIOROBJSTATUSX_STR-RRCHARACTSTR_O sy-vline
WA_VIOROBJSTATUSX_STR-COUNTRY_O sy-vline
WA_VIOROBJSTATUSX_STR-REGION_O sy-vline
WA_VIOROBJSTATUSX_STR-POST_CODE1_O sy-vline
WA_VIOROBJSTATUSX_STR-CITY1_O sy-vline
WA_VIOROBJSTATUSX_STR-CITY2_O sy-vline
WA_VIOROBJSTATUSX_STR-STREET_O sy-vline
WA_VIOROBJSTATUSX_STR-HOUSE_NUM1_O sy-vline
WA_VIOROBJSTATUSX_STR-NEIGHBORH1_O sy-vline
WA_VIOROBJSTATUSX_STR-NEIGHBORH2_O sy-vline
WA_VIOROBJSTATUSX_STR-NEIGHBORH3_O sy-vline
WA_VIOROBJSTATUSX_STR-AECNEEDED_O sy-vline
WA_VIOROBJSTATUSX_STR-AECCLASSSTR_O sy-vline
WA_VIOROBJSTATUSX_STR-OBJNRCN_O sy-vline
WA_VIOROBJSTATUSX_STR-ACCDETKEY_O sy-vline
WA_VIOROBJSTATUSX_STR-RESPOBJNRDEF_O sy-vline
WA_VIOROBJSTATUSX_STR-RESPOBJNR1_O sy-vline
WA_VIOROBJSTATUSX_STR-RESPOBJNR2_O sy-vline
WA_VIOROBJSTATUSX_STR-RESPOBJNR3_O sy-vline
WA_VIOROBJSTATUSX_STR-RESPOBJNR4_O sy-vline
WA_VIOROBJSTATUSX_STR-PRICECODE1_O sy-vline
WA_VIOROBJSTATUSX_STR-PRICECODE2_O sy-vline
WA_VIOROBJSTATUSX_STR-PRICECODE3_O sy-vline
WA_VIOROBJSTATUSX_STR-PRICECODE4_O sy-vline
WA_VIOROBJSTATUSX_STR-LOCKEDFROM_O sy-vline
WA_VIOROBJSTATUSX_STR-LOCKEDTO_O sy-vline
WA_VIOROBJSTATUSX_STR-LOCKREASON_O sy-vline
WA_VIOROBJSTATUSX_STR-XLOCKREASONEXT_O sy-vline
WA_VIOROBJSTATUSX_STR-BILLEDTO_O sy-vline
WA_VIOROBJSTATUSX_STR-NTPER_O sy-vline
WA_VIOROBJSTATUSX_STR-NTREQUESTON_O sy-vline
WA_VIOROBJSTATUSX_STR-BILLFROM_O sy-vline
WA_VIOROBJSTATUSX_STR-RSBUKRS_O sy-vline
WA_VIOROBJSTATUSX_STR-RESPOBJNRINV_O sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.