所以我有以下代码在netsuite中添加销售订单,我将其传递给我刚创建并使用相同internalId更新的客户的internalId。 我不断给我一个错误说无效的实体引用并引用我给它的internalId。在以下示例中,“NetsuiteID”是使用相同的API创建客户记录时返回的internalId。
//Create the sales order
com.netsuite.webservices.SalesOrder salesOrder = new SalesOrder();
//this links it to a customer
salesOrder.entity = new RecordRef() { internalId = NetsuiteID, type = RecordType.customer, typeSpecified = true };
SalesOrderItem salesItem = new SalesOrderItem();
salesItem.item = new RecordRef() { "200" };
SalesOrderItemList itemList = new SalesOrderItemList();
SalesOrderItem[] items = new SalesOrderItem[1];
items[0] = salesItem;
itemList.item = items;
salesOrder.itemList = itemList;
WriteResponse salesResp = netsuite.add(salesOrder);
对此非常困惑,我在.NET或PHP网站上看到的所有示例都表明使用internalId应该有效。
答案 0 :(得分:0)
我不确定这是否会有所帮助,但我从Netsuite的示例应用程序中删除了一个片段。我能说出的唯一真正的区别是,他们为客户对象指定了一个名称和一个内部代码(如果这是强制性的,我会感到惊讶)。
using NSClientERP.com.netsuite.webservices;
//...
SalesOrder so = new SalesOrder();
//...
// res was an object from a result of a saved search for a customer
//...
RecordRef customer = new RecordRef();
customer.type = RecordType.customer;
customer.typeSpecified = true;
System.String entID = ((Customer) (res.recordList[0])).entityId;
customer.name = entID;
customer.internalId = ((Customer) (res.recordList[0])).internalId;
so.entity = customer;