2020-08-18 00:10发布
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好。 我想知道如何更新屏幕... 显示全部
加入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
最多设置5个标签!
您好何塞·雷耶斯(JoséReyes),
我认为除了使用ReceiptPosService,别无他法。
p>因此设置例如 收据中每个salesItem的unitGrossAmount均为1.00 ...
获取ReceiptPosService。
获取当前收据。
获取CalculationPosService。
设置unitGrossAmount。
将SalesItem设置为已更改(UnitPriceChanged和MarkChanged)。
重新计算收据。
更新收据。 后端。
通过UI事件更新UI中的收据。
使用2.9版进行了测试。
hth
Robert
一周热门 更多>