NetSuite - 使用订单项创建 PO
NetSuite - Creating PO with line items
使用 Restlets 我可以在 NetSuite 中创建任何记录。但是,我们如何创建包含行项目的记录?我知道我们可以使用 getLineItemCount,遍历这些项目并使用 setLineItemValue 来设置行项目。
我不确定的是我们将如何传递此类数据。因此,我们希望外部系统提交一些数据,然后我需要使用我的 Restlet 创建带有订单项的 PO。
理想情况下,我想使用 fire fox Poster 对此进行测试,但不确定如何对数据建模。像这样的东西可以很好地通过传递如下数据使用海报创建普通记录:
{ "subsidiary" : 2, "entity" : 1084,"currency" : 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);
}
您可以尝试在 JSON 中使用数组来封装行项目,例如:
{"subsidiary" : 2,
"entity" : 1084,
"currency" : 2,
"approvalstatus" : 2,
"items": [{name:"item1", price: "100"},
{name:"item2", price:"200"}]
}
然后您的 RESTlet 代码必须对此进行消化,并调用您提到的相关 NS 函数。
正如 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'];
}
使用 Restlets 我可以在 NetSuite 中创建任何记录。但是,我们如何创建包含行项目的记录?我知道我们可以使用 getLineItemCount,遍历这些项目并使用 setLineItemValue 来设置行项目。
我不确定的是我们将如何传递此类数据。因此,我们希望外部系统提交一些数据,然后我需要使用我的 Restlet 创建带有订单项的 PO。
理想情况下,我想使用 fire fox Poster 对此进行测试,但不确定如何对数据建模。像这样的东西可以很好地通过传递如下数据使用海报创建普通记录:
{ "subsidiary" : 2, "entity" : 1084,"currency" : 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);
}
您可以尝试在 JSON 中使用数组来封装行项目,例如:
{"subsidiary" : 2,
"entity" : 1084,
"currency" : 2,
"approvalstatus" : 2,
"items": [{name:"item1", price: "100"},
{name:"item2", price:"200"}]
}
然后您的 RESTlet 代码必须对此进行消化,并调用您提到的相关 NS 函数。
正如 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'];
}