suitescript2.0 - SuiteScript 向客户保存信用卡在到期日失败
问题描述
我正在尝试将一些客户详细信息保存到客户记录中。我已经创建了这个方法,但是当我输入到期日期时它失败了。
function addCreditCard(rec, data){
rec.selectNewLine({
sublistId: 'creditcards',
});
rec.setCurrentSublistValue({
sublistId : 'creditcards',
fieldId : 'paymentmethod',
value : data.paymentmethod
});
rec.setCurrentSublistValue({
sublistId : 'creditcards',
fieldId : 'ccnumber',
value : data.ccnumber
});
rec.setCurrentSublistValue({
sublistId : 'creditcards',
fieldId : 'ccname',
value : data.ccname
});
log.debug("CC Expire Date", "'" + data.ccexpiredate + "'")
rec.setCurrentSublistValue({
sublistId : 'creditcards',
fieldId : 'ccexpiredate',
value : data.ccexpiredate
});
rec.commitLine({
sublistId: 'creditcards'
});
}
我收到的错误是
{
"type": "error.SuiteScriptError",
"name": "INVALID_FLD_VALUE",
"message": "You have entered an Invalid Field Value 08/2023 for the following field: ccexpiredate",
"stack": [
REDACTED
],
"cause": {
"type": "intenal error",
"code": "INVALID_FLD_VALUE",
"details": "You have entered an Invalid Field Value 08/2023 for the following field: ccexpiredate",
"userEvent": null,
"stackTrace": [
REDACTED
],
"notifyOff": false
},
"id": "",
"notifyOff": false,
"userFacing": true
}
我可以看到保存到 NetSuite 中的信用卡格式为 MM/YYYY,在 NetSuite 帮助文件中我可以看到它是一个字符串字段。我错过了什么?为什么我的过期日期没有保存?
解决方案
要使其正常工作,您需要将日期格式化为 Netsuite 接受的日期。'N/format'模块对此有所帮助。
format.parse(expirationDate, format.Type.MMYYDATE)
上面返回 Date 对象,请注意 SuiteScript 记录浏览器概述了ccexpiredate字段是mmyydate类型并且(不清楚它是否接受 String 或 Date 对象)但上面的代码适用于它。前段时间我遇到了类似的问题,所以该代码帮助我解决了这个问题。请让我知道它是否适合您。
推荐阅读
- java - 如何从“(GMT + 10:00)布里斯班”或“(GMT + 01:00)布鲁塞尔,哥本哈根,马德里,巴黎”等区域名称获取Java中的TimeZone对象
- mysql - 如何将 docker 与 wordpress 和 nginx 一起使用
- laravel - 通过 Laravel Http Client 发送嵌套数组
- java - Java 快速排序算法
- python - 只有几个类似的tripadvisor页面中的一个出现异常(找不到元素)
- magento - Magento 2:获取自定义属性返回“未捕获的错误:在 null 上调用成员函数 getResource()”
- cloudcustodian - 云托管策略获取 AWS EC2 实例的所有开放端口
- sql - 根据提取值 PHPMyadmin 选择值
- html - 如何正确设置图像作为背景?
- spring-boot - 轴突 4 快照需求