如何在未来或过去设置NetSuite系统日期进行测试?

时间:2015-08-12 07:33:48

标签: javascript netsuite suitescript

为了测试日期触发的脚本,是否可以临时更改NetSuite中的系统日期?如果没有,是否有办法重载所有NetSuite日期函数,以便可以为沙箱中的给定用户模拟未来或过去的日期?

我们根据特定NetSuite记录到期前的天数发送电子邮件通知。而不是让用户等待几天来测试此功能或更改记录的过期日期,我想提供一个UI以允许更改NetSuite系统日期。

我更希望日期覆盖特定于用户而不是整个沙盒实例,因此多个用户可以模拟未来/过去的日期。日期覆盖需要在客户端和服务器SuiteScript代码以及预定脚本中工作。

3 个答案:

答案 0 :(得分:2)

可能的解决方法是创建两个脚本参数。一个复选框,指示脚本处于调试模式和调试日期,您可以在其中指定所需的任何日期。

然后在您的脚本上,检查是否选中了复选框。如果选中,请使用日期参数中的值进行比较,而不是系统日期。

答案 1 :(得分:2)

您可以创建部署参数字段{testDays}。

在生产中使其为零。在测试环境中给它一些负数。

创建类似下面的内容

newTempDate = nlapiAddDays({expirydate},{testDays})

并在所有地方使用newTempDate作为您的标准。

答案 2 :(得分:1)

我不确定Netsuite中是否有这样的功能可以让您自定义系统日期。就我而言,您的计划脚本将始终选择服务器实例的时间戳。无论您是否更改日期/时区,所有交易,记录,脚本和登录时间将显示服务器计算机所在的太平洋时间。一种解决方案可能是在脚本中定义您自己的日期,而不是更改服务器日期(如果您不想更改记录中的日期)并验证您的记录反对它。