NetSuite通过Summary CASE WHEN实现字段取值问题求助
解决Rental记录获取最新Rental Event状态的方案
方法一:直接用Rental记录的非存储公式字段
你之前的问题出在公式是基于Rental Event记录做的,应该从当前Rental记录出发,关联它的子Rental Event数据。假设Rental Event里有一个指向Rental的关联字段(比如{custrecord_rental_event_rental}),可以用以下公式作为Rental字段的取值:
NVL( (SELECT custrecord_rental_event_status FROM custrecord_rental_event WHERE custrecord_rental_event_rental = {id} ORDER BY created DESC LIMIT 1), 'Available' )
这个逻辑是:筛选出当前Rental({id}是当前Rental记录的ID)关联的所有Rental Event,按创建时间倒序取第一条(也就是最新的)的状态;如果该Rental还没有任何关联事件,就返回默认值'Available'。
方法二:基于Rental记录的已保存搜索
如果想用已保存搜索作为字段来源,步骤如下:
- 创建一个基于Rental记录类型的已保存搜索
- 添加汇总字段:选择“最大”作为汇总类型,字段选Rental Event的“创建日期”,并通过父子关联字段(Rental Event里的Rental字段)关联到当前Rental
- 添加Rental Event的“状态”字段,设置汇总条件为「创建日期 = 刚才设置的最大创建日期」
- 将这个已保存搜索指定为Rental自定义字段的“来源搜索”
方法三:脚本驱动(适合需要存储值的场景)
如果后续因为性能问题(非存储字段每次加载都要查询)需要把状态存储起来,可以用User Event脚本:
- 在Rental Event的创建/编辑事件触发脚本
- 脚本中获取当前Event关联的Rental ID
- 查询该Rental下所有关联的Rental Event,按创建时间倒序取最新一条的状态
- 直接更新对应Rental记录的状态字段
注意事项
- 必须确保Rental和Rental Event之间的父子关联字段配置正确,否则无法进行关联查询
- 非存储字段实时性高,但数据量大时可能影响页面加载速度,存储字段+脚本的组合更适合高频访问的场景
内容的提问来源于stack exchange,提问作者Scott
相关产品推荐
相关产品推荐

