【发布时间】:2019-03-01 10:45:26
【问题描述】:
我创建了 RESTlet,它可以通过具有多个输入和下拉菜单的简单网页更轻松地创建新发票。我使用名为 invoiceInfo 的 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)我在第83行遇到错误,即这一行
invoiceRecord.setValue({ fieldId: "翻译", 值:ff日期, 忽略字段更改:真 });
得到了这样的错误:
{
"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”是(例如)“2019-03-15”
“dateObj”是“2019-03-15T07:00:00.000Z”
“ffDate”是“15/3/2019”
我尝试了很多选项,例如: - 传递硬编码的日期字符串“15/3/2019”我得到同样的错误; -我尝试了 setText 而不是 setValue 并得到了另一个错误; -我尝试在@HomeIcon -> Set Preferences 中更改日期格式,然后给出所需的硬编码格式,但它仍然不起作用;
感谢您的帮助
PS 我对在堆栈上写问题有点陌生。我尽力了!
【问题讨论】:
标签: javascript netsuite suitescript