无效的内存对齐

2020-08-17 04:18发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我已使用RTTS为视图'...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我已使用RTTS为视图'FINSV_MASS_CTRLC'创建了一个动态结构,并同时向该结构动态附加了2个单字符标志,以创建用于转换的类型句柄。

我在其他几个视图中使用了相同的代码,但从未遇到任何问题。 对于该视图以及第一次运行,它运行都很好(之后,我用data填充了View(之前为空),现在下面的语句引发了转储:

分配铸造类型手柄lr_struct_type_hndl。

是char200类型的结构。

以下是错误:

  • 使用ASSIGN或ASSIGNING(可能与CASTING附加项结合使用)设置字段符号" "时发生错误。 转换字段符号" "的基本条目(基本表中的编号:32781)时,系统检测到目标类型需要内存对齐4。但是,源数据对象具有无效的内存对齐,因为它不能被整除 例如,如果要将结构的子字段分配给字段符号,则从结构开始的偏移量应为4的倍数。结构还应包含至少具有对齐方式4的类型。

我对内存对齐还不了解。 我在同一个问题上遇到了几个问题,但对我来说并没有多大意义。 任何帮助深表感谢。

付费偷看设置
发送
3条回答
Cikesha
1楼-- · 2020-08-17 04:53

嵌套结构并不意味着间隙。 只有字符,深层和数字类型的混合可能暗示空格(内存地址对齐为2、4、8或16个字节)。

我认为您应该发布最小可重现示例,以便我可以分析并回答经过更正的代码并说明解决方案。

lukcy2020
2楼-- · 2020-08-17 05:00

您好 桑德拉,

我已附上代码:

ytest-alignment-dump-reproduce.txt

我想指出的是,视图'FINSV_MASS_CTRLC'应该具有正确转储此转储的数据。

对您的见解将有很大的帮助。 :)

暮风yp
3楼-- · 2020-08-17 05:00

嗨,桑德拉,

我仍然不确定为什么强制转换(在存在数据的情况下将无法正常工作,或如何使其正常工作,

但是我通过使用我之前在代码中创建的类型句柄进行强制转换来创建新数据(不涉及数据),然后使用CL_ABAP_CONTAINER_UTILITIES => READ_CONTAINER_C,它可以正常工作。 即使我的疑问仍然存在,我的问题也得到了解决。 谢谢:)

一周热门 更多>