#netsuite
#netsuite
Вопрос:
Я пытаюсь обновить поле после отправки записи, но поле не обновляется. Я знаю, что скрипт запускается, потому что отладка показывает значение oldweight. Вы не можете обновить поле в пользовательском событии AfterSubmit.
// 2.0 - Fluent
/**
* @NApiVersion 2.x
* @NScriptType UserEventScript
* @NModuleScope SameAccount
*/
define(["N/record"], function (r) {
function onAfterSubmit(context) {
var oldweight = context.newRecord.getValue({ fieldId: 'custbody93' });
log.debug({
title: 'Old Weight',
details: oldweight
});
if (oldweight) {
var fixWeight = context.newRecord;
context.newRecord.setValue('custbody103', 'oldweight');
};
}
return {
afterSubmit: onAfterSubmit
};
});
Ответ №1:
В afterSubmit
случае запись уже отправлена и сохранена в базе данных, поэтому вы не можете обновлять поля непосредственно в записи в памяти.
Вам нужно будет использовать N/record
to load()
и save()
запись или использовать submitFields()
, чтобы правильно обновить базу данных.
Наилучшей практикой для изменения полей в той же записи, которая вызвала пользовательское событие, является использование beforeSubmit
вместо этого; в этой точке входа ваш текущий код будет работать так, как вы ожидаете.
На моем канале YouTube есть серия видеороликов о понимании пользовательских событий и о том, как работать с записями.