methods - 将范围表传递给 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 ...
在超类的公共部分中,我有:
RT_OBJNR type range of JSTO-OBJNR . (this is inherited by the calling class)
调用和被调用的方法都使用它。
ME_GET_STATUS 方法有一个参数:
IT_OBJNR 导入类型 RT_OBJNR 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~UDATE, S~UTIME, S~STAT, 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[]
解决方案
推荐阅读
- java - Apache HttpClient:来自 HttpPost 的空响应实体
- java - 上一行完成后如何运行一组代码?
- python - Python 电子邮件包未在 Ubuntu 机器上导入
- javascript - 如何在 React JS 中使用带和不带参数的 axios 实例编写一个 GET api 调用
- python - 使用 Python 将原始电子邮件与回复分开
- git - 有没有办法在 macOS 中解决 git repo 中的长路径的“PATH_MAX”?
- python-3.x - 绘制 Gompertz 增长模型
- css - Safari 上的 CSS 文本对齐问题
- cpu-architecture - 重新排序缓冲区问题(计算机体系结构 Udacity 课程)
- c# - 带有多对多 ef core 5.0 的 Http POST