var curRate = nlapiCreateRecord("customrecord_currency_exchange_rates",{recordmode: 'dynamic'});
serverDt = "09/25/2013 06:00:01 am"
var timezone = compConf.getFieldText('timezone');
curRate.setDateTimeValue('custrecord_effective_date' ,serverDt ,timezone);
nlapiSubmitRecord(curRate);
您好我尝试设置custrecord_effective_date字段,这是一个日期/时间类型。但执行后它会给出一个错误。 如何设置此字段?
感谢您的帮助。
INVALID_FLD_VALUE您为以下字段输入了无效字段值09/25/2013 06:00:01:custrecord_effective_date
答案 0 :(得分:4)
虽然这是一篇旧帖子,而原始问题是关于SuiteScript 1.0的,但是我遇到了这个页面,它在日期/时间字段中查找了相同的INVALID_FLD_VALUE错误,但在SuiteScript 2.0中,由于解决方案最终变得与众不同,我想要分享给未来的读者。
在SuiteScript 2.0中,设置日期/时间字段只需要一个JavaScript日期对象。以下是提交前用户事件上下文中的示例。
context.newRecord.setValue({
fieldId : 'custrecord_myfield',
value : new Date()
});
答案 1 :(得分:1)
您好,感谢您在发布问题后,我检查了记录类型的表格以及当我检查字段' custrecord_effective_date'我注意到日期格式必须是' DD / MM / YYYY HH:MM:SS'所以当我改变它的时候。
答案 2 :(得分:1)
如果查看NetSuite WSDL文件,您将找到dateTime声明:
<xs:simpleType name="dateTime" id="dateTime">
<xs:documentation
source="http://www.w3.org/TR/xmlschema-2/#dateTime"/>
转到网址并查看来源:
3.2.7 dateTime
[定义:] dateTime值可以被视为具有整数值年,月,日,小时和分钟属性,十进制值第二属性和布尔时间索引属性的对象。每个这样的对象也有一个十进制值的方法或计算属性timeOnTimeline,其值始终是十进制数;值的大小以秒为单位,整数0为0001-01-01T00:00:00 ...
所以你要找的格式是:
2013-09-25T06:00:01
我只是将dateTime推送到NetSuite并且它有效。
答案 3 :(得分:1)
使用SuiteScript 2.O设置日期/时间字段值。
首次使用&N;格式&#39;模块和&#39; N /记录&#39;模块。
创建一个普通的Javascript日期对象。
将Date对象格式化为DateTime对象。
并使用Record.setValue()方法设置日期时间值。
示例:
var d = new Date();
var formattedDateString = format.format({
value: d,
type: format.Type.DATETIMETZ
});
record.setValue('yourDateTimeFieldId',formattedDateString );
答案 4 :(得分:0)
代码看起来不错 日期字段是否有任何限制,以便您不能在过去设置日期? 您的serverDt也是与Netsuite帮助相同的值。它干净地复制了吗?如果您剪切该字符串并直接键入它会发生什么?
最后你确定你有一个日期时间字段而不是日期字段。如果我将您的代码应用于日期字段,我会得到相同的错误。
答案 5 :(得分:0)
现有的ans几乎没有。 错误类型 -
type: "error.SuiteScriptError",
name: "INVALID_FLD_VALUE",
message: "You have entered an Invalid Field Value 2017-07-13T08:21:12.411Z for the following field: custrecord_lastrundate",
需要将该值设置为java脚本date()对象。即使简单相同的js date字符串也会抛出错误。如果你正在使用时间,那么下面的代码将完美地工作。下个天添加的示例。
var now = moment();
now.add(1,'days')
fetchRecord.setValue({
fieldId : 'custrecord_lastrundate' ,
value : new Date(now),
ignoreFieldChange : true
});
答案 6 :(得分:0)
将N / format导入到脚本中,并使用以下一种日期格式类型:
日期
DATETIME
DATETIMETZ
{{1}}