1

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

我不确定我们将如何开始传递这些数据。因此,我们希望外部系统提交一些数据,然后我需要使用我的 Restlet 创建带有行项目的 PO。

理想情况下,我想使用火狐海报对此进行测试,但不确定如何对数据进行建模。像这样的东西可以很好地通过传递数据来使用海报创建正常记录:

{“子公司”:2,“实体”:1084,“货币”:2,“批准状态”: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);
}
4

2 回答 2

3

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

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

然后,您的 RESTlet 代码必须消化这一点,并调用您提到的相关 NS 函数。

于 2016-03-18T15:55:28.557 回答
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'];
}
于 2016-03-21T11:40:17.663 回答