【问题标题】:NetSuite Map/Reduce Script throws WF_EXEC_USAGE_LIMIT_EXCEEDED exceptionNetSuite Map/Reduce 脚本引发 WF_EXEC_USAGE_LIMIT_EXCEEDED 异常
【发布时间】:2021-11-10 04:26:28
【问题描述】:

我编写了一个 SuiteScript 2.0 Map/Reduce 脚本。 getInputData 函数只是加载一个事务搜索,然后在 map 函数中我只是加载一个 SalesOrder 记录并获取字段和子列表信息。不设置任何值或保存记录或任何东西。 (我正在构建 JSON 文件,结果在最后)

我的问题是,在处理了几百条记录后,我一直遇到 WF_EXEC_USAGE_LIMIT_EXCEEDED 异常。在销售订单的record.load 行上引发异常。我们确实在销售订单记录上运行了一些工作流程,因此我通过将发布状态更改为“未启动”来禁用所有这些工作流程,但无论如何都会发生异常,这对我来说似乎很奇怪。我认为这可能与“活动工作流”有关,因为有些记录确实具有活动工作流值,但后来我意识到有些记录没有。所以这似乎不是问题所在。 (我还应该提到,同样的脚本也适用于其他记录,例如联系人。)

我该如何绕过这条 WF_EXEC_USAGE_LIMIT_EXCEEDED 消息?如果禁用工作流甚至不起作用,我会不知所措,与此异常相关的信息似乎几乎不存在。任何帮助,将不胜感激。谢谢!

【问题讨论】:

    标签: javascript netsuite suitescript2.0


    【解决方案1】:

    我认为问题在于治理,地图阶段只有 1000 个治理。 而不是 map 同时使用 map 和 reduce ,它有 5000 个治理...... 在 map 阶段准备密钥并将其发送到 reduce,然后加载您的记录并创建一个 JSON 文件...

    否则,在reduce 阶段加载记录并将记录对象发送到summary 阶段,然后在summary 阶段准备您的JSON 文件。 (一个汇总阶段有治理10000。

    https://netsuite.custhelp.com/app/answers/detail/a_id/48911/kw/map%20reduces%20governance

    【讨论】:

    • 哦,好吧,这是个好主意。我将不得不稍微改变一下,但应该不会太麻烦。我会在为下一个人尝试后回帖。再次感谢。好资料
    【解决方案2】:

    如果您需要的销售订单记录数据不是由工作流动态生成的,请考虑重新设计您的 getInputData 函数事务搜索以包含所有字段和子列表数据。

    使用主线:要么主线:否条件创建保存的搜索:包括您需要的销售订单标题字段和行级子列表字段。

    在 Map 中,将 Sales Order 的内部 ID 设置为 key,并将值存储在 context 数据中。

    然后在 Reduce 中,您将获得每个销售订单和您需要处理的数据,所有这些都无需在此过程中实际执行另一个昂贵的 record.load。对于每个销售订单,您将在 Reduce 中获得大量治理积分。

    一个警告:getInputData 有一个限制。我似乎记得那是大约 200MB 的数据。

    【讨论】:

      猜你喜欢
      • 2011-05-27
      • 1970-01-01
      • 2019-07-18
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      • 1970-01-01
      相关资源
      最近更新 更多