在Netsuite中添加SalesOrder的实体引用无效

时间:2014-06-03 11:14:31

标签: .net netsuite

所以我有以下代码在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应该有效。

1 个答案:

答案 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;