使用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);
}
答案 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'];
}