gpt4 book ai didi

javascript - 使用 SuiteScript 2.0 创建发票时如何传递日期以进行交易

转载 作者:行者123 更新时间:2023-12-01 01:13:48 25 4
gpt4 key购买 nike

我创建了RESTlet,它可以更轻松地通过具有多个输入和下拉菜单的简单网页创建新发票。我使用名为发票信息的 json 将日期作为 D-M-YYYY 字符串发送,日期字符串是 trandate 的值。
在我连接的脚本(Suitescript 2.0)上,我分割了 trandate,然后创建一个 Date 对象(我使用 new Number 不是因为我的愚蠢,它只是这样工作).然后,我使用 format.format 将日期格式化为 Netsuite 所需的格式。之后,我使用格式化日期设置了 trandate 值。

var splitedDate = invoiceInfo.trandate.split("-");
var dateObj = new Date(new Number(splitedDate[0]).valueOf(), (new Number(splitedDate[1]).valueOf()) - 1, new Number(splitedDate[2]).valueOf(), 0, 0, 0, 0);

var ffDate = format.format({
value: dateObj,
type: format.Type.DATE
});

invoiceRecord.setValue({
fieldId: "trandate",
value: ffDate,
ignoreFieldChange: true
});

提交发票时(动态模式设置为 true) 我在第 number 83 行(即这一行)处收到错误

invoiceRecord.setValue({ fieldId: "trandate", value: ffDate, ignoreFieldChange: true });

出现这样的错误:

{
"type": "error.SuiteScriptError",
"name": "INVALID_FLD_VALUE",
"message": "Invalid date value (must be D/M/YYYY)",
"stack": ["anonymous(N/serverRecordService)", "<anonymous>(/SuiteScripts/Filip/_wystawianie_faktury_api.js:83)
[...]

当我用 log.debug 检查它时,我得到这个:

"invoiceInfo.trandate" is (for example) "2019-03-15"

"dateObj" is "2019-03-15T07:00:00.000Z"

"ffDate" is "15/3/2019"

我尝试了很多选择,例如:-传递硬编码日期字符串“15/3/2019”我得到同样的错误;-我尝试使用 setText 而不是 setValue 并收到另一个错误;-我尝试更改 @HomeIcon -> 设置首选项中的日期格式,然后给出硬编码所需的格式,但它仍然不起作用;

感谢帮助

PS 我对在堆栈上编写问题有点陌生。我已经尽力了!

最佳答案

Invalid date value (must be D/M/YYYY)

这意味着 ffDate 不是日期对象。

首先需要注意的一些事情

  1. record.setValue要求值为 dateTime 对象。
  2. 如果您将无效的日期时间值传递给 format.format ,它返回 option.value,它不是 dateTime 对象。
  3. 如果您有日期对象,则在使用 record.setValue 之前无需对其进行格式化。
  4. setText 要求字符串以用户格式正确格式化,因此最好使用 setValue 因为它会处理所有转换等。

所以我的建议是,您将 ISO 字符串中的日期传递给 RESTlet,它可以轻松地转换为 NetSuite 中的日期对象(使用 new Date()),然后将此对象直接传递给 record.setValue.

关于javascript - 使用 SuiteScript 2.0 创建发票时如何传递日期以进行交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54943002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com