Поиск…


Вступление

Встроенное редактирование позволяет пользователям очень быстро изменять и обновлять данные для конкретной записи без необходимости загружать всю запись на странице, редактировать форму и сохранять запись.

У разработчиков 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
        }
    });
});


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow