2020-08-18 00:10发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好。
我想知道如何更新屏幕上收据的salesItem的属性,例如更新总价。
我想要执行此操作而不必创建收据并捕获ReceiptPosService事件。 我曾尝试使用receiveManager,但没有找到解决方案。
有人知道该怎么做吗?
您好何塞·雷耶斯(JoséReyes),
我认为除了使用ReceiptPosService,别无他法。
因此设置例如 收据中每个salesItem的unitGrossAmount均为1.00 ... 获取ReceiptPosService。 获取当前收据。获取CalculationPosService。设置unitGrossAmount。将SalesItem设置为已更改(UnitPriceChanged和MarkChanged)。重新计算收据。更新收据。 后端。通过UI事件更新UI中的收据。
尝试(CDBSession cdbSession = CDBSessionFactory.instance.createSession()){ ReceiptPosService receivePosService = ServiceFactory.INSTANCE.getOrCreateServiceInstance(ReceiptPosService.class,cdbSession); ReceiptEntity收据= receivePosService.findOrCreate(UserRegistry.INSTANCE.getCurrentUser(),null,true); CalculationPosService CalculationPosService = ServiceFactory.INSTANCE.getOrCreateServiceInstance(CalculationPosService.class,cdbSession); receive.getSalesItems() 。流() .forEach(salesItem-> { salesItem.setUnitGrossAmount(BigDecimal.ONE); salesItem.setUnitPriceChanged(true); salesItem.setMarkChanged(true); }); CalculationPosService.recalculateReceipt(receipt); receivePosService.updateReceipt(receipt,true); BroadcasterHolder.INSTANCE.getBroadcaster()。broadcastPluginEventForPath(" RECEIPT_REFRESH",null); } catch(InconsistentReceiptStateException e){ log.severe(e.getLocalizedMessage()); log.fine(ExceptionUtils.getFullStackTrace(e)); }
使用2.9版进行了测试。 hth
Robert
感谢您的回答Robert,
我尝试过,效果很好。 但是我怀疑,当我在普通收据上实施它时,它会完美地工作。 但是当我尝试在退货收据中实现它时,UnitGrossAmount不会更改。 我不知道这是否是因为金额为负。
您知道为什么吗?
您好何塞·雷耶斯,
致谢
罗伯特
嗨, Robert Zieschang ,
您对此一无所知吗?
提前感谢
您好,何塞·雷耶斯,
对我来说,尚不清楚您要实现什么目标。 您要更新收货中的销售项目或销售项目的主数据吗?
因为您提到过,所以您不想使用ReceiptPosService,也不想创建收据。
有点困惑。 抱歉。
对不起,如果我感到困惑,
我要更改正在创建的收据中的销售商品的价格或其他属性。
希望您能更好地理解我。
看起来不错,但我无法引用CalculationPosService CalculationPosService = ServiceFactory.INSTANCE.getOrCreateServiceInstance(CalculationPosService.class,cdbSession);
操作方法-它包含在哪个lib中?
最多设置5个标签!
您好何塞·雷耶斯(JoséReyes),
我认为除了使用ReceiptPosService,别无他法。
p>因此设置例如 收据中每个salesItem的unitGrossAmount均为1.00 ...
获取ReceiptPosService。
获取当前收据。
获取CalculationPosService。
设置unitGrossAmount。
将SalesItem设置为已更改(UnitPriceChanged和MarkChanged)。
重新计算收据。
更新收据。 后端。
通过UI事件更新UI中的收据。
使用2.9版进行了测试。
hth
Robert
感谢您的回答Robert,
我尝试过,效果很好。 但是我怀疑,当我在普通收据上实施它时,它会完美地工作。 但是当我尝试在退货收据中实现它时,UnitGrossAmount不会更改。 我不知道这是否是因为金额为负。
您知道为什么吗?
您好何塞·雷耶斯,
< p>您是否要更改销售商品的主数据,以便更新后的每个收据都具有新总价的销售商品?致谢
罗伯特
# p#嗨, Robert Zieschang ,
您对此一无所知吗?
提前感谢
您好,何塞·雷耶斯,
对我来说,尚不清楚您要实现什么目标。 您要更新收货中的销售项目或销售项目的主数据吗?
因为您提到过,所以您不想使用ReceiptPosService,也不想创建收据。
有点困惑。 抱歉。
致谢
Robert
对不起,如果我感到困惑,
我要更改正在创建的收据中的销售商品的价格或其他属性。
希望您能更好地理解我。
看起来不错,但我无法引用CalculationPosService CalculationPosService = ServiceFactory.INSTANCE.getOrCreateServiceInstance(CalculationPosService.class,cdbSession);
操作方法-它包含在哪个lib中?
一周热门 更多>