繁体   English   中英

如何只更新一些行项目而不在 NetSuite 上保存整条记录?

[英]How to just update some line item without saving a whole record on NetSuite?

我们有一个包含 300 个项目行的采购订单。

而我们通常使用如下方式来保存记录:

 record.save()

是否可以将更新的字段更新为新记录?

例如,第 10 行中物品的价格从 23 更改为 30,我们是否可以只更新物品的值以缩短保存时间?

要更新的订单项,记录需要装载record.load和保存record.save record.submitFields字段可以使用record.submitFields更新,而无需加载和保存整个记录。

您将需要继续加载整个记录。

好消息是您只需要加载一次记录,编辑和提交任意多的行,然后保存一次。

您还可以向预定脚本发出请求,以便在处理器释放后立即异步执行更改,或者如果您从客户端脚本执行此操作,则使用 promise API,以使延迟发生在用户交互之外。

您正在 PO 上执行项目行,因此可能不需要以下内容,但我将其留在这里以防它帮助其他人:

加载或保存的任何延迟通常是由部署到该记录类型的工作流和用户事件套件脚本引起的。 如果您有能力跳过它们通常执行的操作,并在需要时以这种方式加快速度,您可以基于字段、缓存值或脚本部署参数向这些脚本和工作流添加条件逻辑。

现在,如果有问题的子列表由相关/子记录组成,那么您可能需要依次编辑每一个,但可以通过提交字段 API 调用来做到这一点,每条记录一个。 这可能比 UserEvent 或 Suitelet 脚本消耗更多的 API 单元。 当有很多操作要执行时,我运行 MapReduce 并将我需要处理的所有记录的 ID 以及我想要进行的更改提供给它,或者我通过搜索和其他逻辑在 MapReduce 脚本中动态确定这些,或两者的组合。

如果子列表是地址簿,那么我认为您必须加载具有地址的记录,然后加载地址簿子记录,编辑并保存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM