Netsuite 如何在提交后用户事件中修改客户退款

Netsuite 如何在提交后用户事件中修改客户退款,netsuite,Netsuite,保存新的客户退款记录后(提交用户事件后),我需要与外部web服务通信,然后更新记录中的2个字段。当执行此代码以加载客户退款时 var o = nlapiLoadRecord("customerrefund", 1906); 返回此错误消息: INVALID_TRANS_TYP Transaction type specified is incorrect. 我在“第60章SuiteScript supported records”(SuiteScript supported records)

保存新的客户退款记录后(提交用户事件后),我需要与外部web服务通信,然后更新记录中的2个字段。当执行此代码以加载客户退款时

var o = nlapiLoadRecord("customerrefund", 1906);
返回此错误消息:

INVALID_TRANS_TYP
Transaction type specified is incorrect.
我在“第60章SuiteScript supported records”(SuiteScript supported records)中找到了受支持记录的列表,其中指出客户退款仅在服务器端脚本中可用


我应该如何更新客户退款记录?

如果看不到更多代码,它看起来还可以。我会再次检查1906年的internalId是否正确


另外,如果您只提交两个字段,我将使用NLAPIsmitField(),这将减少NetSuite的管理点,比nlapiLoadRecord/NLAPIsmitRecord更快。

您的代码看起来是正确的,如果您正在更新当前记录,我建议使用以下代码以避免错误的
内部ID

var o = nlapiLoadRecord("customerrefund", nlapiGetRecordId());

此外,我建议如果您需要更新字段,请考虑在客户退款之前提交<<代码> >用户事件脚本>代码>,您可以使用<代码> NLAPISETFIELD值(FieldId,FieldIOL值)< /C>来更新字段。提交前无需提交记录。

如果您的脚本部署在客户退款记录中,您也可以执行nlapiGetRecordType()。

当我遇到“指定的事务类型不正确”的问题时,它会在用户事件中起到很好的作用。感谢使用NLAPIsmitField()的技巧,我还没有遇到过该api调用。@RussPetersen请注意,即使脚本记录部署日志也不应处于调试模式。同意这一点;修改提交的确切记录时,应尝试在提交前使用
,而不是在提交后使用
;否则,此记录类型将在每次保存时提交到数据库两次。有时,这是不可避免的,但您绝对希望尽可能多地限制这种情况的发生。