NetSuite - 使用订单项创建采购订单

时间:2016-03-18 15:46:00

标签: json restlet netsuite suitescript

使用Restlet我可以在NetSuite中创建任何记录。但是,我们如何使用订单项创建记录?我知道我们可以使用getLineItemCount,循环遍历这些项目并使用setLineItemValue来设置行项目。

我不确定的是我们如何将这些数据传递给我们。因此,我们希望外部系统提交一些数据,然后我需要使用我的Restlet创建包含订单项的订单。

我最好使用fire fox Poster测试这个,但不确定如何建模数据。像这样的东西可以通过传递数据来使用海报创建一个普通的记录,如:

{“子公司”:2,“实体”:1084,“货币”:2,“approvalstatus”:2}

但我们如何发送订单项数据?

我的JSon对象如下所示:

{"subsidiary" : 2, 
"entity" : 1275,
"currency" : 2,
"approvalstatus" : 2,
"item": [{"item" : -3, "taxrate": 6},
            {"item" : -3, "taxrate": 6}]
}

我尝试使用下面的代码从嵌套的jason对象中获取数据,但是不能正常工作...... itemid是空白的

for (var x = 1; x <= jsonobject.item.length; x++)
{
    var itemid = record.getLineItemValue('item', jsonobject.item['item'], x);
    nlapiLogExecution('DEBUG', 'itemid', itemid)
    record.setLineItemValue('item', itemid, x);
}

2 个答案:

答案 0 :(得分:3)

您可以尝试在JSON中使用数组来封装行项目,例如:

{"subsidiary" : 2, 
"entity" : 1084,
"currency" : 2,
"approvalstatus" : 2,
"items": [{name:"item1", price: "100"},
        {name:"item2", price:"200"}]
}

您的RESTlet代码必须消化它,并调用您提到的相关NS函数。

答案 1 :(得分:1)

正如TonyH所提到的,你的代码有一个错误,你应该首先得到数组索引。此外,您的索引应该从0开始,而不是1,因为您要通过JS数组,而不是NetSuite子列表:

for (var x = 0; x < jsonobject.item.length; x++)
{    
  var itemid = jsonobject.item[x]['item'];
}

如果你想获得税率,情况也是如此:

for (var x = 0; x < jsonobject.item.length; x++)
{    
  var taxrate = jsonobject.item[x]['taxrate'];
}
相关问题