【问题标题】:Netsuite - Automating Deposit CreationNetsuite - 自动创建存款
【发布时间】:2015-10-30 02:31:42
【问题描述】:

我刚刚创建了一个 Suitelet 来自动应用现金销售存款,用户将在 CSV 文件中上传现金销售记录列表,脚本将自动将存款应用于现金销售并创建存款记录,但是我意识到存款记录(> 3000)中的现金销售记录太多了,无法通过列表进行应用。这会导致套件脚本超时。我也无法为记录列表设置日期范围过滤器。有什么方法可以在不突破限制的情况下实现这一目标?

【问题讨论】:

    标签: javascript netsuite suitescript


    【解决方案1】:

    一种可能的解决方案是:

    为了简单起见:

    1) 在第一个请求中,只需将文件上传到文件柜并返回成功响应

    2) 然后您将随后的常规 AJAX 调用发送到您的套件进行处理 'N'行,选择一个可行的号码,最好只进行以下调用 在第一个被处理之后。在这些请求中,您应该添加 URL 参数,例如要处理的文件名和 CSV 文件的开始/结束行号。

    如果你愿意,显然你可以通过发送多个并发后续请求来优化性能,因为 netsuite 允许每个用户会话有一定数量的并发请求

    在您的suitlet 中,您可以使用request.getParameter(URL_PARAM_NAME) 来读取URL 参数值。

    【讨论】:

    • 通过 AJAX 调用,我想您建议使用 nlapiRequestURL?问题是完成整个操作需要相当长的时间。我现在尝试了一个预定的脚本,这也需要 20 分钟。如果我要使用套件,它可能会超时
    • 这就是为什么我建议在请求中指定开始行和结束行。每个套件调用将仅创建几 (N) 行。如果并行发送多个 ajax 文件将被并行处理。并行请求的数量有限制,suitelet 可能是 50
    • 例如:假设您有 100 条记录要创建,您将触发 10 个 nlapiRequestURL() 或 AJAX 用于 1-10、11-20、21-30 ... 91-100 和一个用于文件在开始时创建,这将优化时间和执行限制
    • 我了解您来自哪里,但这更多的是完成操作所花费的时间,而不是治理单元。如果我要使用套件并将其分解为多个请求,则仍需要 20 分钟或更长时间才能完成。到那时脚本肯定会超时。
    • 我不这么认为,如果 N 非常低,它应该超时,客户端脚本可以运行多长时间没有限制,但是,N 应该低,以便单个服务器端套件的响应时间很短,不会超时
    猜你喜欢
    • 2020-04-18
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    相关资源
    最近更新 更多