我试图在SCA应用程序注册期间更新自定义实体字段。
已发布的Netsuite文档表明我应该能够调用:
var webStore = session.getSiteSettings(['displayname', 'id']);
customer = session.getCustomer();
customer.updateProfile({
internalid: internalid,
customfields: {
custentity_registered_site: webstore.id
}
});
但是这会抛出一个非常有用的异常
有没有人有这个工作的自定义字段?我在注册后这样做,所以这可能是问题,虽然我可以得到一个有效的客户内部。有其他的语法吗?
最终我获得了NS支持,给了我内部堆栈跟踪。
这个问题与NS使用的Rhino Javascript引擎的一些内部机制有关。
基本上从NS API返回的值返回一个类似字符串的值,并且NS没有遵循2014年关于其使用的建议,并且在底层Java代码中失败。因此,修复方法很简单,但令人沮丧:
var webStore = session.getSiteSettings(['displayname', 'id']);
customer = session.getCustomer();
customer.updateProfile({
internalid: internalid,
customfields: {
custentity_registered_site: webstore.id.toString()
}
});