内部表大小(例如对于 DSO)被限制为 4030 字节。我有一个 infoobjects 列表,并想计算它们的数量是否会超过此限制。如何将它们的数据类型转换为字节?
例子:
CHAR 4 -> xxx bytes
DATS -> xxx bytes
FLTP -> xxx bytes
...
非常感谢!
内部表大小(例如对于 DSO)被限制为 4030 字节。我有一个 infoobjects 列表,并想计算它们的数量是否会超过此限制。如何将它们的数据类型转换为字节?
例子:
CHAR 4 -> xxx bytes
DATS -> xxx bytes
FLTP -> xxx bytes
...
非常感谢!
您必须将 替换为ls_bkpf
您在程序中使用的实际结构(内部表行),否则我希望它有所帮助。lv_length 将包含字段的总大小(以字节为单位)。
DATA: ls_bkpf TYPE bkpf.
FIELD-SYMBOLS: <lv_field> TYPE any.
DATA: lo_typedesc TYPE REF TO cl_abap_typedescr.
DATA: lv_length TYPE i.
DO.
ASSIGN COMPONENT sy-index
OF STRUCTURE ls_bkpf
TO <lv_field>.
IF sy-subrc EQ 0.
lo_typedesc = cl_abap_elemdescr=>describe_by_data( <lv_field> ).
ADD lo_typedesc->length TO lv_length.
ELSE.
EXIT.
ENDIF.
ENDDO.