2016-03-28 4 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

Как FYI-это не сработало. Он дал ту же ошибку: – 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

Смежные вопросы