点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我有一个小问题; 我不完全知道我在做什么错,但这就是问题所在。 我想删除一大堆未使用的产品。
为此,我编写了一个FlexibleSearch查询,该查询获取任何订单条目未使用的所有产品pk:
从{作为X的操作}中选择{X:pk}在{X:pk}不在的位置({{从{OrderEntry as E}}}中选择productpk
这很好。
然后,我想在REMOVE impex语句中使用它,而我写了这个
REMOVE Action; pk [unique = true]
"#%impex.exportItems(""从{动作作为X}选择{X:pk},在{X:pk}不在{{选择从{OrderEntry作为E}}}}}}"",Collections.EMPTY_MAP, Collections.singletonList(Item.class),true,true,-1,-1);"
但这执行没有错误; 但什么也没去除...知道吗?
谢谢!
罗曼。
您是否使用给定的ImpEx导出项目,然后导入导出的文件,并且项目未删除? impex.exportItems(...)导出项目-不确定导入时是否可以使用(是否启用BeanShell脚本)?
如果您要删除项目而不导出/导入(这使您有机会查看要删除的项目),那么可以使用groovy控制台吗?
只需记住打开提交(否则所有删除操作都会回滚)。
modelService.removeAll(..)为每个项目执行一个单独的DELETE。 显然超出了事务超时
在事务中编辑的项目越多,对数据库施加的压力就越大。 一些数据库具有可在事务中执行的最大修改语句数
如果要删除大量项目,则有两个选项可以限制FSQL返回的项目数,或者遍历结果并在达到批处理大小后提交
Jalo,拦截器和"部分"物品的删除可能会使您放慢速度
媒体删除性能取决于存储策略
我创建了一个beanshell,以一种可控的方式执行删除操作,即按您自己的大小批量执行,并且您希望一次运行地删除条目的自定义限制。
使用此beanshell命令的步骤如下:
a)打开HAC。
b)转到控制台->脚本语言->将脚本类型设置为beanshell。
c)粘贴如下所示的bean shell代码:
请记住在执行之前打开提交模式。
这实际上与我上面给出的代码相同,因为只有在脚本执行完成后才提交事务(您可以 您可以在脚本运行时使用FSQL对其进行检查-不会批量删除任何项目),有效地意味着活动事务将累积所有更改。 为了使脚本按预期工作,必须添加手动提交并在新批次上启动新事务。
我遇到了类似的问题。 我使用以下groovy脚本批量删除了这些项目
尽管我有大约200,000条记录,但我不得不提交脚本几次。 但是这样网关不会发生超时。
一周热门 更多>