如何将结构附加到ANY类型的表中

时间:2017-09-01 19:01:56

标签: sap abap

DATA ls TYPE string.
DATA lr_ref TYPE REF TO data.  
FIELD-SYMBOLS <'l_s> TYPE any.  
FIELD-SYMBOLS <'l_t> TYPE STANDARD TABLE.  

ls = 'test'.  
GET REFERENCE OF ls INTO lr_ref.  
ASSIGN lr_ref->* TO <'l_s>.  

现在我该如何将<'l_s>追加到<'l_t>

2 个答案:

答案 0 :(得分:4)

您需要创建数据like <l_s>的标准表,然后将其分配给<l_t>

create data lr_ref like standard table of <l_s>.
assign lr_ref->* to <l_t>.

append <l_s> to <l_t>.

它会起作用。希望能帮助到你。

答案 1 :(得分:0)

似乎对ANY等通用类型存在误解。

ANYCLIKE和其他泛型类型有点类似于抽象类,因为它们无法实例化。你不能声明一个ANY类型的实际变量,当你这样想时它是非常明智的:DATA foo TYPE i在你的整数内存中保留一个四字节的空间,但应该是什么DATA bar TYPE any保留? (这里过于简单,但我希望能够明白这一点。)

您只能在参数,引用和字段符号中使用泛型类型,它们可用于确保传递或引用某种数据对象。您可以让字段符号TYPE STANDARD TABLE指向任何标准表,但您必须通过其他方式提供该标准表。而且你必须确保实际 - 具体 - 类型适合你的需要,我。即与您希望附加到桌子上的任何内容兼容。