如何解决将范围表传递给 ABAP 类/方法会导致提交
我想为 OBJNR 传递一个范围表,例如
call method ME->ME_GET_STATUS
exporting
I_OBJNR = <FS_DATA>-OBJNR_NTF
I_AEDAT = LV_AEDAT
I_AEZEIT = LV_AEZEIT
IT_OBJNR = LR_OBJNR
importing ...
在我拥有的超类的 PUBLIC 部分:
RT_OBJNR type range of JSTO-OBJNR . (this is inherited by the calling class)
由调用和被调用方法使用。
方法 ME_GET_STATUS 有一个参数:
IT_OBJNR OBJNR 的导入类型 RT_OBJNR 范围表
和代码
,WA_OBJNR like line of IT_OBJNR,LR_OBJNR type RT_OBJNR
LR_OBJNR[] = IT_OBJNR[].
范围表仅用于缓冲 itab - LT_JCDS。
select S~OBJNR,S~STAT,S~CHGNR,S~UDATE,S~UTIME,S~INACT,O~OBTYP,O~STSMA
from JCDS as S
join JSTO as O
on O~OBJNR = S~OBJNR
into table @IT_JCDS
where S~OBJNR in @LR_OBJNR
order by S~OBJNR,S~CHGNR
loop at IT_JCDS into data(LT_JCDS)
where OBJNR = I_OBJNR
group by ( OBJNR = LT_JCDS-OBJNR STAT = LT_JCDS-STAT
GS = group size GI = group index )
ascending
reference into data(OBJNR_REF)
如果范围表中只有 1 条记录,则一切正常。
问题是,如果我传递超过 1 条记录,它仍然可以正常工作,但似乎会导致提交 (?) 关闭游标,从而导致 MCEX_BW_LO_API
中的转储。为第二个数据包调用宏“sel”时会发生这种情况。
这个想法是传递多个“EQ”和“BT”选择记录,从而减少从数据库返回的记录。
我尝试更改为标准表并使用 = LR_OBJNR[]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。