1

在 NetSuite 中,有一个方便的按钮可以取消salesorder. 我们正在尝试在 RESTlet 中复制该点击的行为。我们尝试了以下方法:

var order = nlapiLoadRecord('salesorder', 802);
order.setFieldText('orderstatus', 'Cancelled');
nlapiSubmitRecord(order);

但是我们得到一个错误,说我们需要为该字段输入一个值Status。我们还尝试了以下方法:

nlapiVoidTransaction('salesorder', 802);

但这给了我们一个无效的记录类型错误。任何想法或帮助将不胜感激。

4

6 回答 6

3

我对此有一个开放的增强请求 (#275848)。根据 NetSuite 支持,无法通过 SuiteScript 或 Workflow 取消销售订单。

于 2016-03-28T14:55:33.767 回答
1

怎么样:

nlapiRequestURL('/app/accounting/transactions/salesordermanager.nl?type=cancel&id=' + nlapiGetRecordId());
于 2016-03-29T04:46:46.990 回答
0

您应该使用以下代码和订单状态代码通过 SuiteScript 设置 -

nlapiSubmitField('salesorder',soID,'orderstatus','C',false);
于 2016-03-28T10:36:43.097 回答
0

可以通过使用 SuiteScript 2.0 关闭每一行项目来关闭销售订单,如下所示:

orderRecord.setCurrentSublistValue({
                            sublistId: 'item',
                            fieldId: 'isclosed',
                            value: true
                        });
于 2019-03-12T04:27:23.913 回答
0

只是一个想法,而不是取消销售订单,您是否可以不将closed字段设置为“T”。

于 2016-05-28T05:36:19.137 回答
-1

正如Netsuite专家所说,您可以通过关闭销售订单中的每个行项目来取消销售订单交易。

for(var i = 1; i <= nlapiGetLineItemCount('item'); i++){
    nlapiSetLineItemValue('item', 'isclosed', i, 'T');
}

这是用户事件脚本的示例。

于 2017-08-25T09:48:09.343 回答