2016-03-28 43 views
1

在NetSuite中,有一个方便的按钮用于取消salesorder。我们试图在RESTlet中复制该点击的行为。我们尝试了以下内容:NetSuite:取消SuiteScript中的订单

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

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

nlapiVoidTransaction('salesorder', 802); 

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

回答

3

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

0

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

nlapiSubmitField('salesorder',soID,'orderstatus','C',false); 
+0

作为供参考 - 这没有奏效。它给出了同样的错误: – 2ps

1

如何:

nlapiRequestURL('/app/accounting/transactions/salesordermanager.nl?type=cancel&id=' + nlapiGetRecordId()); 
+0

好但不安全,如果netsuite更改取消URL,脚本将不起作用 –

0

只是一个想法,而不是取消销售订单,你能不能只设置closed领域的“T”。

-1

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

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

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

+0

它将关闭销售订单,而不会取消它 –

+0

取消的销售订单不同于已关闭的销售订单 – eliseobeltran

相关问题