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

How to set NetSuite system date in the future or past for testing?

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

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

我希望日期覆盖特定于用户而不是整个沙盒实例,这样不止一个用户可以模拟 future/past 日期。日期覆盖需要在客户端和服务器 SuiteScript 代码以及计划的脚本中工作。

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

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

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

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

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

创建如下内容

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

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