Javascript nlobjSearchFilter包含无效运算符,或语法不正确:internalid。使用record.submitFields时出错

Javascript nlobjSearchFilter包含无效运算符,或语法不正确:internalid。使用record.submitFields时出错,javascript,netsuite,suitescript,suitescript2.0,Javascript,Netsuite,Suitescript,Suitescript2.0,我已尝试将各种值传递给id。每当传递错误的internalid时,我都会得到一个“该记录不存在”。但当传递有效的内部id时,脚本会抛出“nlobjSearchFilter包含无效的运算符,或语法不正确:internalid。” 您显示的代码没有问题。此错误很可能是由销售订单记录上的另一个脚本引起的,该脚本不希望出现XEDIT事件,这是record.submitFields()将触发的事件 在XEDIT事件期间,用户事件脚本只能访问有关记录和已提交字段的一些基本字段。他们无法访问记录中的每个字段

我已尝试将各种值传递给id。每当传递错误的internalid时,我都会得到一个“该记录不存在”。但当传递有效的内部id时,脚本会抛出“nlobjSearchFilter包含无效的运算符,或语法不正确:internalid。”


您显示的代码没有问题。此错误很可能是由销售订单记录上的另一个脚本引起的,该脚本不希望出现
XEDIT
事件,这是
record.submitFields()
将触发的事件

XEDIT
事件期间,用户事件脚本只能访问有关记录和已提交字段的一些基本字段。他们无法访问记录中的每个字段


如果其他脚本不希望出现这种情况,则它们可能正在尝试执行某个操作,但某些预期值为空,因为它们对用户事件脚本不可用。

record.submitFields方法有一个名为“enablesourcing”的可选参数。尝试将其作为false运行

var recordID = record.submitFields({
  type: record.Type.SALES_ORDER,
  id: 9837,
  values: {
    memo: 'MEMOTXT'
  },
  options: {
    enableSourcing: false, //default is true
    ignoreMandatoryFields : true //default is false
  }
});

代码很好,Salesorder上有一个用户事件,您需要跟踪,period

IMO这是最可能的情况。您可以通过在“保存的搜索-新建”下搜索脚本日志来找到罪魁祸首
var recordID = record.submitFields({
  type: record.Type.SALES_ORDER,
  id: 9837,
  values: {
    memo: 'MEMOTXT'
  },
  options: {
    enableSourcing: false, //default is true
    ignoreMandatoryFields : true //default is false
  }
});