问题描述
我们正在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。