Dynamic 在ABAP中将值从一个结构分配到动态结构

Dynamic 在ABAP中将值从一个结构分配到动态结构,dynamic,structure,abap,Dynamic,Structure,Abap,我有两种结构:一种是静态的,一种是动态的。静态结构有四个名为A B C D的字段。例如,动态结构有两个名为A1和B1的字段,它们的类型与A和B相同,但名称不同。如何将静态结构A和B中的值分配给A1和B2。问题是:在运行之前,我不知道我的A1和B1是否被称为A1或A2等 如果您的ABAP版本超过7.5,感谢您的帮助。你可以用 如果不是,就使用旧的assign语句 assign component ls_component_a-name of structure ls_test2 to field-

我有两种结构:一种是静态的,一种是动态的。静态结构有四个名为A B C D的字段。例如,动态结构有两个名为A1和B1的字段,它们的类型与A和B相同,但名称不同。如何将静态结构A和B中的值分配给A1和B2。问题是:在运行之前,我不知道我的A1和B1是否被称为A1或A2等


如果您的ABAP版本超过7.5,感谢您的帮助。你可以用

如果不是,就使用旧的assign语句

assign component ls_component_a-name of structure ls_test2 to field-symbol(<lv_value>).
<lv_value> = ls_test1-a.

assign component ls_component_b-name of structure ls_test2 to <lv_value>.
<lv_value> = ls_test1-b.

嗨,艾伦,谢谢你的帮助,但我还不确定你的第二部分。我不知道我的动态结构会有多少组件。在您的示例中,您有四种不同的结构?ls_component_a/b ls_test2和lv_值字段符号。从cl_abap_structdescr获得动态结构的多少组件,您可以使用RTT描述所有内容。我只给出这个示例,将ls_test2用作目标结构。实际上,我没有使用测试2中的任何组件信息。因此,它同样适用于动态结构。@如果您不知道动态结构中的字段数量,也不知道它们的名称,那么在赋值过程中您将使用什么标准?类型相似?@Suncatcher。是的,类型相似。我在艾伦的帮助下解决了这个问题。我认为这比实际情况更复杂。我用Allen的第二个解决方案来处理字段符号和赋值,你知道什么?请再次提供MWE。
assign component ls_component_a-name of structure ls_test2 to field-symbol(<lv_value>).
<lv_value> = ls_test1-a.

assign component ls_component_b-name of structure ls_test2 to <lv_value>.
<lv_value> = ls_test1-b.