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 CRMD_TSS_DTRACK 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 CRMD_TSS_DTRACK. 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 CRMD_TSS_DTRACK 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_CRMD_TSS_DTRACK TYPE STANDARD TABLE OF CRMD_TSS_DTRACK, WA_CRMD_TSS_DTRACK TYPE CRMD_TSS_DTRACK, 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: <CRMD_TSS_DTRACK> TYPE CRMD_TSS_DTRACK. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_CRMD_TSS_DTRACK. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM CRMD_TSS_DTRACK INTO TABLE IT_CRMD_TSS_DTRACK. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM CRMD_TSS_DTRACK * INTO TABLE @DATA(IT_CRMD_TSS_DTRACK2). *--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_CRMD_TSS_DTRACK INDEX 1 INTO DATA(WA_CRMD_TSS_DTRACK2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_CRMD_TSS_DTRACK ASSIGNING <CRMD_TSS_DTRACK>.*To update a field value using a field symbol simply change the value via the field symbol pointer
ENDLOOP. LOOP AT IT_CRMD_TSS_DTRACK INTO WA_CRMD_TSS_DTRACK. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_CRMD_TSS_DTRACK-DURATION, sy-vline,
WA_CRMD_TSS_DTRACK-DURATION_UNIT, sy-vline,
WA_CRMD_TSS_DTRACK-REC_UPDATED, sy-vline,
WA_CRMD_TSS_DTRACK-RECORDMODE, sy-vline,
WA_CRMD_TSS_DTRACK-OBJECT_ID, sy-vline,
WA_CRMD_TSS_DTRACK-PROCESS_TYPE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CRMD_TSS_DTRACK 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_CRMD_TSS_DTRACK 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_CRMD_TSS_DTRACK INTO WA_CRMD_TSS_DTRACK. *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 CUNIT, internal->external for field DURATION_UNIT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-DURATION_UNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-DURATION_UNIT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field OBJECT_ID CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-OBJECT_ID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-OBJECT_ID.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ISOLA, internal->external for field DESCR_LANGUAGE CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-DESCR_LANGUAGE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-DESCR_LANGUAGE.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field LOGICAL_SYSTEM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-LOGICAL_SYSTEM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-LOGICAL_SYSTEM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit TSTLC, internal->external for field CREATED_AT CALL FUNCTION 'CONVERSION_EXIT_TSTLC_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-CREATED_AT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-CREATED_AT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit TSTLC, internal->external for field CHANGED_AT CALL FUNCTION 'CONVERSION_EXIT_TSTLC_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-CHANGED_AT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-CHANGED_AT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit TSTPS, internal->external for field HEAD_CHANGED_AT CALL FUNCTION 'CONVERSION_EXIT_TSTPS_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-HEAD_CHANGED_AT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-HEAD_CHANGED_AT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit TSTPS, internal->external for field VERIFY_DATE CALL FUNCTION 'CONVERSION_EXIT_TSTPS_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-VERIFY_DATE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-VERIFY_DATE.
WRITE:/ 'New Value:', ld_input.
*Conversion exit TSTPS, internal->external for field CRM_CHANGED_AT CALL FUNCTION 'CONVERSION_EXIT_TSTPS_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-CRM_CHANGED_AT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-CRM_CHANGED_AT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field SALES_EMPLOYEE CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-SALES_EMPLOYEE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-SALES_EMPLOYEE.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field PERSON_RESP CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-PERSON_RESP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-PERSON_RESP.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field CONTACT_PERSON CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-CONTACT_PERSON IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-CONTACT_PERSON.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field SALESPARTNER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-SALESPARTNER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-SALESPARTNER.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field SOLD_TO_PARTY CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-SOLD_TO_PARTY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-SOLD_TO_PARTY.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field SHIP_TO_PARTY CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-SHIP_TO_PARTY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-SHIP_TO_PARTY.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field BILL_TO_PARTY CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-BILL_TO_PARTY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-BILL_TO_PARTY.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field PAYER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-PAYER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-PAYER.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field SOLD_FROM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-SOLD_FROM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-SOLD_FROM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field EXECUTING_CC CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-EXECUTING_CC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-EXECUTING_CC.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field RESP_GROUP CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-RESP_GROUP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-RESP_GROUP.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field SERVICE_TEAM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-SERVICE_TEAM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-SERVICE_TEAM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field SERVICE_EMPLOYEE CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CRMD_TSS_DTRACK-SERVICE_EMPLOYEE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CRMD_TSS_DTRACK-SERVICE_EMPLOYEE.
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_CRMD_TSS_DTRACK_STR,
CLIENT TYPE STRING,
ORDERADM_H_GUID TYPE STRING,
GUID TYPE STRING,
TIMESTAMP_FROM TYPE STRING,
TIMESTAMP_TO TYPE STRING,
DURATION TYPE STRING,
DURATION_UNIT TYPE STRING,
REC_UPDATED TYPE STRING,
RECORDMODE TYPE STRING,
OBJECT_ID TYPE STRING,
PROCESS_TYPE TYPE STRING,
POSTING_DATE TYPE STRING,
DESCRIPTION TYPE STRING,
DESCR_LANGUAGE TYPE STRING,
LOGICAL_SYSTEM TYPE STRING,
CRM_RELEASE TYPE STRING,
SCENARIO TYPE STRING,
TEMPLATE_TYPE TYPE STRING,
CREATED_AT TYPE STRING,
CREATED_BY TYPE STRING,
CHANGED_AT TYPE STRING,
CHANGED_BY TYPE STRING,
HEAD_CHANGED_AT TYPE STRING,
ORDERADM_H_DUMMY TYPE STRING,
INPUT_CHANNEL TYPE STRING,
OBJECT_TYPE TYPE STRING,
ARCHIVING_FLAG TYPE STRING,
DESCRIPTION_UC TYPE STRING,
OBJECT_ID_OK TYPE STRING,
VERIFY_DATE TYPE STRING,
CRM_CHANGED_AT TYPE STRING,
NUMBER_INT TYPE STRING,
NUMBER_EXT TYPE STRING,
SALES_EMPLOYEE TYPE STRING,
PERSON_RESP TYPE STRING,
CONTACT_PERSON TYPE STRING,
SALESPARTNER TYPE STRING,
SOLD_TO_PARTY TYPE STRING,
SHIP_TO_PARTY TYPE STRING,
BILL_TO_PARTY TYPE STRING,
PAYER TYPE STRING,
SOLD_FROM TYPE STRING,
EXECUTING_CC TYPE STRING,
RESP_GROUP TYPE STRING,
SERVICE_TEAM TYPE STRING,
SERVICE_EMPLOYEE TYPE STRING,
SALES_ORG_RESP TYPE STRING,
SALES_ORG TYPE STRING,
SALES_OFFICE TYPE STRING,
SALES_GROUP TYPE STRING,
DIS_CHANNEL TYPE STRING,
DIVISION TYPE STRING,
SERVICE_ORG_RESP TYPE STRING,
SERVICE_ORG TYPE STRING,
PURCH_ORG_RESP TYPE STRING,
PURCH_ORG TYPE STRING,
PURCH_GROUP TYPE STRING,
BWSTONESYS0 TYPE STRING,
BWSTONESYS1 TYPE STRING,
BWSTONESYS2 TYPE STRING,
BWSTONESYS3 TYPE STRING,
BWSTONESYS4 TYPE STRING,
BWSTONESYS5 TYPE STRING,
BWSTONESYS6 TYPE STRING,
BWSTONESYS7 TYPE STRING,
BWSTONESYS8 TYPE STRING,
BWSTONESYS9 TYPE STRING,
BWSTONESYSA TYPE STRING,
BWSTTECSYS0 TYPE STRING,
BWSTTECSYS1 TYPE STRING,
BWSTTECSYS2 TYPE STRING,
BWSTLOCSYS0 TYPE STRING,
BWSTLOCSYS1 TYPE STRING,
BWSTLOCSYS2 TYPE STRING,
BWSTONESYSB TYPE STRING,
BWSTZRVCNTI TYPE STRING,
BWSTZRVCNTH TYPE STRING,END OF T_EKKO_STR. DATA: WA_CRMD_TSS_DTRACK_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_CRMD_TSS_DTRACK_STR-CLIENT sy-vline
WA_CRMD_TSS_DTRACK_STR-ORDERADM_H_GUID sy-vline
WA_CRMD_TSS_DTRACK_STR-GUID sy-vline
WA_CRMD_TSS_DTRACK_STR-TIMESTAMP_FROM sy-vline
WA_CRMD_TSS_DTRACK_STR-TIMESTAMP_TO sy-vline
WA_CRMD_TSS_DTRACK_STR-DURATION sy-vline
WA_CRMD_TSS_DTRACK_STR-DURATION_UNIT sy-vline
WA_CRMD_TSS_DTRACK_STR-REC_UPDATED sy-vline
WA_CRMD_TSS_DTRACK_STR-RECORDMODE sy-vline
WA_CRMD_TSS_DTRACK_STR-OBJECT_ID sy-vline
WA_CRMD_TSS_DTRACK_STR-PROCESS_TYPE sy-vline
WA_CRMD_TSS_DTRACK_STR-POSTING_DATE sy-vline
WA_CRMD_TSS_DTRACK_STR-DESCRIPTION sy-vline
WA_CRMD_TSS_DTRACK_STR-DESCR_LANGUAGE sy-vline
WA_CRMD_TSS_DTRACK_STR-LOGICAL_SYSTEM sy-vline
WA_CRMD_TSS_DTRACK_STR-CRM_RELEASE sy-vline
WA_CRMD_TSS_DTRACK_STR-SCENARIO sy-vline
WA_CRMD_TSS_DTRACK_STR-TEMPLATE_TYPE sy-vline
WA_CRMD_TSS_DTRACK_STR-CREATED_AT sy-vline
WA_CRMD_TSS_DTRACK_STR-CREATED_BY sy-vline
WA_CRMD_TSS_DTRACK_STR-CHANGED_AT sy-vline
WA_CRMD_TSS_DTRACK_STR-CHANGED_BY sy-vline
WA_CRMD_TSS_DTRACK_STR-HEAD_CHANGED_AT sy-vline
WA_CRMD_TSS_DTRACK_STR-ORDERADM_H_DUMMY sy-vline
WA_CRMD_TSS_DTRACK_STR-INPUT_CHANNEL sy-vline
WA_CRMD_TSS_DTRACK_STR-OBJECT_TYPE sy-vline
WA_CRMD_TSS_DTRACK_STR-ARCHIVING_FLAG sy-vline
WA_CRMD_TSS_DTRACK_STR-DESCRIPTION_UC sy-vline
WA_CRMD_TSS_DTRACK_STR-OBJECT_ID_OK sy-vline
WA_CRMD_TSS_DTRACK_STR-VERIFY_DATE sy-vline
WA_CRMD_TSS_DTRACK_STR-CRM_CHANGED_AT sy-vline
WA_CRMD_TSS_DTRACK_STR-NUMBER_INT sy-vline
WA_CRMD_TSS_DTRACK_STR-NUMBER_EXT sy-vline
WA_CRMD_TSS_DTRACK_STR-SALES_EMPLOYEE sy-vline
WA_CRMD_TSS_DTRACK_STR-PERSON_RESP sy-vline
WA_CRMD_TSS_DTRACK_STR-CONTACT_PERSON sy-vline
WA_CRMD_TSS_DTRACK_STR-SALESPARTNER sy-vline
WA_CRMD_TSS_DTRACK_STR-SOLD_TO_PARTY sy-vline
WA_CRMD_TSS_DTRACK_STR-SHIP_TO_PARTY sy-vline
WA_CRMD_TSS_DTRACK_STR-BILL_TO_PARTY sy-vline
WA_CRMD_TSS_DTRACK_STR-PAYER sy-vline
WA_CRMD_TSS_DTRACK_STR-SOLD_FROM sy-vline
WA_CRMD_TSS_DTRACK_STR-EXECUTING_CC sy-vline
WA_CRMD_TSS_DTRACK_STR-RESP_GROUP sy-vline
WA_CRMD_TSS_DTRACK_STR-SERVICE_TEAM sy-vline
WA_CRMD_TSS_DTRACK_STR-SERVICE_EMPLOYEE sy-vline
WA_CRMD_TSS_DTRACK_STR-SALES_ORG_RESP sy-vline
WA_CRMD_TSS_DTRACK_STR-SALES_ORG sy-vline
WA_CRMD_TSS_DTRACK_STR-SALES_OFFICE sy-vline
WA_CRMD_TSS_DTRACK_STR-SALES_GROUP sy-vline
WA_CRMD_TSS_DTRACK_STR-DIS_CHANNEL sy-vline
WA_CRMD_TSS_DTRACK_STR-DIVISION sy-vline
WA_CRMD_TSS_DTRACK_STR-SERVICE_ORG_RESP sy-vline
WA_CRMD_TSS_DTRACK_STR-SERVICE_ORG sy-vline
WA_CRMD_TSS_DTRACK_STR-PURCH_ORG_RESP sy-vline
WA_CRMD_TSS_DTRACK_STR-PURCH_ORG sy-vline
WA_CRMD_TSS_DTRACK_STR-PURCH_GROUP sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTONESYS0 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTONESYS1 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTONESYS2 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTONESYS3 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTONESYS4 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTONESYS5 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTONESYS6 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTONESYS7 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTONESYS8 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTONESYS9 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTONESYSA sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTTECSYS0 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTTECSYS1 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTTECSYS2 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTLOCSYS0 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTLOCSYS1 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTLOCSYS2 sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTONESYSB sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTZRVCNTI sy-vline
WA_CRMD_TSS_DTRACK_STR-BWSTZRVCNTH sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.