netsuite
Edición en línea con SuiteScript
Buscar..
Introducción
La edición en línea permite a los usuarios modificar y actualizar muy rápidamente los datos de un registro en particular sin tener que cargar todo el registro en una página, editar el formulario y luego guardar el registro.
Los desarrolladores de NetSuite tienen una funcionalidad correspondiente llamada submitFields
. La funcionalidad submitFields
es proporcionada por la función global nlapiSubmitField
en SuiteScript 1.0 y el método N/record#submitFields
en SuiteScript 2.0.
Sintaxis
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue);
- nlapiSubmitField (recordType, recordId, fieldIds, fieldValues);
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue, doSourcing);
Parámetros
Parámetro | Detalles |
---|---|
recordType | String : la ID interna del tipo de registro que se está actualizando |
recordId | String o Number : el ID interno del registro que se está actualizando |
FieldIds | String o String[] : los ID internos de los campos que se están actualizando. |
fieldValues | any o any[] - Los valores correspondientes que se establecerán en los campos dados |
doSourcing | Boolean : si los valores dependientes se deben obtener al enviar el registro. El valor predeterminado es false |
Observaciones
La funcionalidad submitFields
es una característica complementaria de la funcionalidad lookupFields
.
Rendimiento y limitaciones
submitFields
desempeña significativamente más rápido y usa menos submitFields
que los mismos cambios al cargar y enviar el registro completo.
Se pueden actualizar varios campos a la vez por el mismo costo que actualizar un solo campo. La actualización de más campos con submitFields
no implica un mayor costo de gobierno.
Sin embargo, debe tener en cuenta que solo ciertos campos en cada tipo de registro se pueden editar en línea, y el ahorro de rendimiento solo se aplica a estos campos editables en línea. Si usa la función submitFields
en cualquier campo no editable en línea, el campo se actualizará correctamente, pero entre bambalinas, NetSuite realmente cargará y enviará el registro, por lo que tomará más tiempo y usará más gobernanza. Puede determinar si un campo se puede editar en línea consultando la columna "nlapiSubmitField" en el Explorador de registros .
submitFields
funcionalidad de submitFields
también se limita a los campos del cuerpo de un registro. Si necesita modificar los datos de la lista secundaria, deberá cargar el registro para realizar los cambios y luego enviar el registro.
Referencias:
- Ayuda de NetSuite: "Edición en línea y descripción general de SuiteScript"
- NetSuite Help: "Edición en línea usando nlapiSubmitField"
- Ayuda de NetSuite: "Consecuencias de usar nlapiSubmitField en campos editables no en línea"
- NetSuite Help: "API de campo"
- NetSuite Help: "record.submitFields (opciones)"
[1.0] Enviar un campo único
/**
* 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] Enviar campos múltiples
/**
* 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] Enviar un campo único
/**
* 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] Enviar campos múltiples
/**
* 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
}
});
});