netsuite
Встроенное редактирование с помощью SuiteScript
Поиск…
Вступление
Встроенное редактирование позволяет пользователям очень быстро изменять и обновлять данные для конкретной записи без необходимости загружать всю запись на странице, редактировать форму и сохранять запись.
У разработчиков NetSuite есть соответствующая функциональность, называемая submitFields
. submitFields
функциональность обеспечивается с помощью nlapiSubmitField
глобальной функции в SuiteScript 1.0 и N/record#submitFields
метода в SuiteScript 2.0.
Синтаксис
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue);
- nlapiSubmitField (recordType, recordId, fieldIds, fieldValues);
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue, doSourcing);
параметры
параметр | подробности |
---|---|
тип записи | String - внутренний идентификатор обновляемого типа записи |
RecordId | String или Number - внутренний идентификатор обновляемой записи |
fieldIds | String или String[] - Внутренний идентификатор обновляемого поля (ов) |
FieldValues | any или any[] - соответствующие значения, заданные в данных полях |
doSourcing | Boolean - Независимые значения должны быть получены при подаче записи. Значение по умолчанию - false |
замечания
Функция submitFields
является lookupFields
функцией функции lookupFields
.
Производительность и ограничения
submitFields
выполняется значительно быстрее и использует меньшее управление, чем внесение тех же изменений, загружая и отправляя полную запись.
Несколько полей могут обновляться сразу за ту же стоимость, что и обновление одного поля. Обновление большего количества полей с помощью submitFields
не приводит к более высокой стоимости управления.
Тем не менее, вы должны знать, что только определенные поля для каждого типа записи являются встроенными, а экономия производительности применима только к этим встроенным редактируемым полям. Если вы используете функцию submitFields
в любом не submitFields
от submitFields
поле, поле будет обновляться правильно, но за кулисами NetSuite фактически загрузит и отправит запись, тем самым зайдя больше времени и используя больше управления. Вы можете определить, является ли поле встроенным редактированием, обратившись к столбцу «nlapiSubmitField» в обозревателе записей .
Функция submitFields
также ограничена полями тела записи. Если вам нужно изменить данные подвыписки, вам нужно будет загрузить запись, чтобы внести изменения, а затем отправить запись.
Рекомендации:
- Справка NetSuite: «Встроенное редактирование и обзор SuiteScript»
- Справка NetSuite: «Встроенное редактирование с использованием nlapiSubmitField»
- Справка NetSuite: «Последствия использования nlapiSubmitField для нестрочных редактируемых полей»
- Справка NetSuite: «Полевые API»
- Справка NetSuite: «record.submitFields (options)»
[1.0] Отправить одно поле
/**
* A SuiteScript 1.0 example of using nlapiSubmitField to update a single field on a related record
*/
// From a Sales Order, get the Customer ID
var customerId = nlapiGetFieldValue("entity");
// Set a comment on the Customer record
nlapiSubmitField("customer", customerId, "comments", "This is a comment added by inline editing with SuiteScript.");
[1.0] Отправить несколько полей
/**
* A SuiteScript 1.0 example of using nlapiSubmitField to update multiple fields on a related record
*/
// From a Sales Order, get the Customer ID
var customerId = nlapiGetFieldValue("entity");
// Set a Comment and update the Budget Approved field on the Customer record
nlapiSubmitField("customer", customerId,
["comments", "isbudgetapproved"],
["The budget has been approved.", "T"]);
[2.0] Отправить одно поле
/**
* A SuiteScript 2.0 example of using N/record#submitFields to update a single field on a related record
*/
require(["N/record", "N/currentRecord"], function (r, cr) {
// From a Sales Order, get the Customer ID
var customerId = cr.get().getValue({"fieldId": "entity"});
// Set a Comment on the Customer record
r.submitFields({
"type": r.Type.CUSTOMER,
"id": customerId,
"values": {
"comments": "This is a comment added by inline editing with SuiteScript."
}
});
});
[2.0] Отправить несколько полей
/**
* A SuiteScript 2.0 example of using N/record#submitFields to update multiple fields on a related record
*/
require(["N/record", "N/currentRecord"], function (r, cr) {
// From a Sales Order, get the Customer ID
var customerId = cr.get().getValue({"fieldId": "entity"});
// Set a Comment and check the Budget Approved box on the Customer record
r.submitFields({
"type": r.Type.CUSTOMER,
"id": customerId,
"values": {
"comments": "The budget has been approved.",
"isbudgetapproved": true
}
});
});