如何内联访问IDoc结构中LCHR类型组件?附报错代码修正需求
修正方案与内联实现
原代码存在两处问题:
- VALUE表构造器的括号未闭合,导致语法错误
- 转换LCHR字段到IDoc结构时,
CONV的写法不够严谨,推荐使用CAST来完成类型转换,更适配ABAP 7.5G版本的类型处理机制
以下是修正后的内联实现代码:
DATA: lt_vbeln TYPE TABLE OF vbeln. SELECT * FROM EDID4 INTO TABLE @DATA(lt_edid4). lt_vbeln = VALUE #( FOR ls_edid4 IN lt_edid4 ( CAST E1NTHDR( ls_edid4-sdata )-vbeln ) ).
核心要点:
CAST E1NTHDR( ls_edid4-sdata )可以直接将LCHR类型的SDATA字段转换为E1NTHDR结构,ABAP会自动按照结构的字节布局完成映射- 补全了VALUE构造器中缺失的右括号,修复语法错误
- 全程内联处理,无需额外定义中间变量,完全适配SAP_ABA 75G SP 0003版本的语法特性
内容的提问来源于stack exchange,提问作者Cutter
相关产品推荐
相关产品推荐

