2016-01-29 2 views
0

После сохранения новой записи возврата клиента (после отправки пользовательского события) мне нужно связаться с внешней веб-службой, а затем обновить 2 поля в записи. Когда этот код выполняется, чтобы загрузить возврат клиентовКак изменить возврат клиента после отправки пользователем

var o = nlapiLoadRecord("customerrefund", 1906); 

Это сообщение об ошибке возвращается:

INVALID_TRANS_TYP 
Transaction type specified is incorrect. 

Я нашел список поддерживаемых записей в «Глава 60 SuiteScript Поддержанные Records» из SuiteScript Developer & Reference Guide, который говорит возврат клиента доступен только в сценарии на стороне сервера.

Как мне обновить запись возврата клиента?

ответ

3

Не видя больше кода, он выглядит нормально. Я бы дважды проверить, что internalId 1906 года верен.

Кроме того, если вы просто представляете два поля, я бы использовал nlapiSubmitField(), это займет меньше точек управления и будет быстрее для NetSuite, а не nlapiLoadRecord/nlapiSubmitRecord.

+0

В конце концов, я был в отладчике, когда у меня возникли проблемы с «указанным типом транзакции». Он отлично работает в пользовательском событии. Спасибо за подсказку использования nlapiSubmitField(), я еще не сталкивался с этим вызовом api. –

0

Ваш код выглядит правильно, если вы обновление текущей записи я бы рекомендовал использовать ниже код, чтобы избежать неправильного internalid:

var o = nlapiLoadRecord("customerrefund", nlapiGetRecordId()); 

Кроме того, я рекомендовал бы, что если вам нужно обновить поля, рассмотреть возможность использования before submit сценарий пользовательского события при возврате клиента, и вы можете обновлять поля, используя nlapiSetFieldValue(FIELD_ID, FIELD_VALUE). Не нужно подавать запись в случае до отправки.

+1

Согласитесь с этим; при изменении точной записи, вы должны попытаться использовать 'Before Submit' вместо' After Submit'; в противном случае этот тип записи будет отправляться в базу данных дважды * каждый раз, когда он будет сохранен *. Иногда это неизбежно, но вы абсолютно хотите ограничить сценарии, когда это происходит как можно больше. – erictgrubaugh

0

Если ваш скрипт развернут в записи возврата клиента, вы также можете выполнить nlapiGetRecordType().