输入日期并尝试保存记录时出现错误消息 "cannot find function getFullYear(...)"
Error message "cannot find function getFullYear(...)" when entering date and trying to save the record
我们正尝试在 RESTLet 中从 NetSuite 项目需求计划访问子列表“demandplandetail”。一切顺利,直到某一点。我们能够加载它并处理 2020 年的需求计划。但是,这里令人沮丧。
我们知道(从 NetSuite 可以看到)也有 2021 年的数据。但是,从 SuiteScript 访问它似乎非常困难。
第一个解决方案)物料需求计划有字段“年”。好的,只需将其设置为 2021,保存并重新加载记录。结果:忽略保存,年份仍然是 2020。
第二个解决方案)使用 Date 对象设置年份,如:
var demandPlan = record.load(...)
var d = new Date();
demandPlan.setValue({
fieldId: 'year',
value: d
});
给出以下内容:
:"TypeError: Cannot find function getFullYear in object NaN. (NLRecordScripting.scriptInit$lib#59)","stack":["setDatesForMonthAndYear(NLRecordScripting.scriptInit:108)","anonymous(N/serverRecordService)"
关于保存记录。我也使用符合可接受日期格式的(各种)字符串(如“1/1/2021”)得到相同的结果。我还尝试了格式包给我一个日期字符串 -> 相同的结果。
另请阅读您可能需要在记录中设置开始日期(字段 'startdate')的地方。尝试了几种变体,但它顽固地拒绝了:(。
想知道是否有人见过类似的东西?
此致,
托尼
您好,请尝试下面的代码,同时检查您是否将日期对象传递给字段而不是日期字符串。
function formatDate() {
var dateROBD = format.parse({
value: new Date(),
type: format.Type.DATE
});
// this line optional if you want to try with or else ignore this
dateROBD = convertUTCDateToLocalDate(new Date(dateROBD));
return dateROBD;
}
function convertUTCDateToLocalDate(date) {
var newDate = new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
var offset = date.getTimezoneOffset() / 60;
var hours = date.getHours();
newDate.setHours(hours - offset);
return newDate;
}
好的,谜底解开了。事实证明,这在 SuiteScript 2.0 中不受支持,但您需要使用 1.0.
我们正尝试在 RESTLet 中从 NetSuite 项目需求计划访问子列表“demandplandetail”。一切顺利,直到某一点。我们能够加载它并处理 2020 年的需求计划。但是,这里令人沮丧。
我们知道(从 NetSuite 可以看到)也有 2021 年的数据。但是,从 SuiteScript 访问它似乎非常困难。
第一个解决方案)物料需求计划有字段“年”。好的,只需将其设置为 2021,保存并重新加载记录。结果:忽略保存,年份仍然是 2020。
第二个解决方案)使用 Date 对象设置年份,如:
var demandPlan = record.load(...)
var d = new Date();
demandPlan.setValue({
fieldId: 'year',
value: d
});
给出以下内容:
:"TypeError: Cannot find function getFullYear in object NaN. (NLRecordScripting.scriptInit$lib#59)","stack":["setDatesForMonthAndYear(NLRecordScripting.scriptInit:108)","anonymous(N/serverRecordService)"
关于保存记录。我也使用符合可接受日期格式的(各种)字符串(如“1/1/2021”)得到相同的结果。我还尝试了格式包给我一个日期字符串 -> 相同的结果。
另请阅读您可能需要在记录中设置开始日期(字段 'startdate')的地方。尝试了几种变体,但它顽固地拒绝了:(。
想知道是否有人见过类似的东西?
此致, 托尼
您好,请尝试下面的代码,同时检查您是否将日期对象传递给字段而不是日期字符串。
function formatDate() {
var dateROBD = format.parse({
value: new Date(),
type: format.Type.DATE
});
// this line optional if you want to try with or else ignore this
dateROBD = convertUTCDateToLocalDate(new Date(dateROBD));
return dateROBD;
}
function convertUTCDateToLocalDate(date) {
var newDate = new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
var offset = date.getTimezoneOffset() / 60;
var hours = date.getHours();
newDate.setHours(hours - offset);
return newDate;
}
好的,谜底解开了。事实证明,这在 SuiteScript 2.0 中不受支持,但您需要使用 1.0.