Salesforce LWC Database.setSavepoint



Javascript承认新手和黑客在这里,所以我怀疑这个问题是非常无知和学习经验。

我基本上是将旧的Apex/Visualforce页面转换为LWC。Apex代码使用了Database.setSavepoint()和Database.rollback(),我不知道在LWC中如何实现类似的功能,甚至不知道是否需要这样做。

Google什么都不提供,我知道这不是通过@wire和@AuraEnabled完成的。

移植VF顶点控制器的主要痛点("常规控制器",老式控制器,它们需要为"viewstate"处理大量隐藏的html字段)。并且我们没有使用@remoteaction来更加移动友好)到Aura/LWC服务器端控制器是static关键字旁边的方法定义。你没有viewstate;当整个控制器神奇地传递给方法时,您需要显式地传递方法所需的参数。从LWC/Aura或(重新)查询它们。如果你知道这个关键字的作用,它有点像所有东西都被标记为transient

保存点和回滚必须在一个事务中发生(1次交互,1次按钮单击)。用户触发某事,它要么成功要么失败。你不能保存游戏),3次互动之后出现"抓到你,回滚"。将状态写入数据库,船已启航。并且保存点不能序列化(你不能抓取变量,将其传递给VF/Aura/LWC客户端,然后再返回到服务器)。如果你正在传递一些东西——这意味着事务几乎结束了,无论如何也不需要它们了。

所以它没有技术问题。问题是您的业务逻辑如何处理回滚。是在保存之前进行验证吗?有办法尝试触发所有的验证规则,触发器等,看看什么爆炸了?

LWC不应该关心,您应该能够很好地传递此操作的结果。这是一个很好的问题,你是否还需要这个功能,但这是业务问题,而不是技术问题。

相关内容

最新更新