NetSuite发票的实体没有设置external_id或类型

时间:2019-12-03 15:56:23

标签: ruby salesforce netsuite

我正在使用netsuite红宝石,并且发票和客户之间的关联存在问题,想知道我是否缺少明显的东西。

我们有一个invoicecustomer相关联。我们在external_id上设置了customer(通过来自Salesforce的celigo同步),并且在直接查询时可以在customer上看到它:

customer = NetSuite::Records::Customer.get("14829")
customer.internal_id
# "14829"
customer.external_id
# "xxxxxxxxxxxxxx1"

但是,当我们查询发票时,external_id上的typeentity都是nil

NetSuite::Records::Invoice.get("79502").entity
# #<NetSuite::Records::RecordRef:0x00007fb30aa63cf8 @internal_id="14829", @external_id=nil, @type=nil, @attributes={:name=>"customer name"}>

这也使我们无法使用external_id进行搜索,例如:

search_params = {
  criteria: {
    basic: [{
      field: 'internalId',
      operator: 'anyOf',
      value: [ NetSuite::Records::Invoice.new(internal_id: '79502') ]
    }],
    customerJoin: [{
      field: 'internalId',
      operator: 'anyOf',
      # value: [ NetSuite::Records::Customer.new(internal_id: '14829') ]         # this works
      value: [ NetSuite::Records::Customer.new(external_id: 'xxxxxxxxxxxxxx1') ] # this returns a `INVALID_KEY_OR_REF` error
    }]
  }
}
NetSuite::Records::Invoice.search(search_params)

我想知道是否错过了从发票中获取关联的entity的东西。任何见解将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:2)

如果您使用的是外部ID,则需要更改

customerJoin: [{
  field: 'internalId',
  operator: 'anyOf',
  value: [ NetSuite::Records::Customer.new(external_id: 'xxxxxxxxxxxxxx1') ] 
}]

对此

customerJoin: [{
  field: 'externalId',
  operator: 'anyOf',
  value: [ NetSuite::Records::Customer.new(external_id: 'xxxxxxxxxxxxxx1') ] 
}]

您设置的外部ID位于客户记录的其他字段中。