连接动态结构的字段

Cza*_*a29 3 sap abap concatenation function-module

我们如何连接动态工作区的字段?这个想法在下面的代码中:

LOOP AT lt_final INTO DATA(ls_final).
  CONCATENATE ls_final-field1
              ls_final-field2
              ls_final-field3
              ls_final-field4
              ls_final-field5
         INTO ls_attachment SEPARATED BY lc_tab.   "lc_tab is horizontal tab

  APPEND ls_attachment TO lt_attachment.
  CLEAR: ls_attachment.
ENDLOOP.
Run Code Online (Sandbox Code Playgroud)

(此代码将用于发送电子邮件附件.)现在,我的问题是,上面代码中的内部表是一个动态内部表,因此我不确定将有多少字段和字段名称.

如何连接字段?任何想法,请帮助..

LOOP AT <dynamic_table> INTO DATA(ls_final).
  CONCATENATE ls_final-(?)
              ls_final-(?)
              ls_final-(?)
              ls_final-(?)
              ls_final-(?) 
              "or more fields insert here depending on dynamic table
         INTO ls_attachment SEPARATED BY lc_tab.   "lc_tab is horizontal tab

  APPEND ls_attachment TO lt_attachment.
  CLEAR: ls_attachment.
ENDLOOP.
Run Code Online (Sandbox Code Playgroud)

Józ*_*zai 5

FIELD-SYMBOLS: <lv_field> TYPE ANY.

LOOP AT lt_final
     ASSIGNING FIELD-SYMBOL(<ls_final>).
  DO.
    ASSIGN COMPONENT sy-index
           OF STRUCTURE <ls_final>
           TO <lv_field>.
    IF sy-subrc EQ 0.
      IF sy-index EQ 1.
        ls_attachment = <lv_field>.
      ELSE.
        ls_attachment = ls_attachment && lc_tab && <lv_field>.
      ENDIF.
    ELSE.
      EXIT.
    ENDIF.
  ENDDO.
ENDLOOP.
Run Code Online (Sandbox Code Playgroud)

我希望它是自我解释,但是:您可以使用系统变量(sy-index),它由SAP自动递增.在第一步中,只是复制值,没有任何东西可以连接(否则在字符串的开头会有一个不必要的lc_tab).