netsuite
Buscar datos de registros relacionados
Buscar..
Introducción
Al procesar un registro dado, a menudo necesitará recuperar datos de uno de sus registros relacionados. Por ejemplo, cuando se trabaja con un Pedido de venta determinado, es posible que deba recuperar datos del Representante de ventas relacionado. En la terminología de SuiteScript, esto se denomina búsqueda .
La funcionalidad de búsqueda la proporciona la función global nlapiLookupField
en SuiteScript 1.0 y el método lookupFields
del módulo N/search
en SuiteScript 2.0.
Sintaxis
- nlapiLookupField (recordType, recordId, columnas);
Parámetros
Parámetro | Detalles |
---|---|
recordType | String : la ID interna del tipo de registro que se está buscando (p. salesorder , salesorder , employee ) |
recordId | String o Number : la ID interna del registro que se está buscando |
columnas | String o String[] : la lista de campos para recuperar del registro. Las ID de campo se pueden consultar en la sección "Buscar columnas" del Explorador de registros . Los campos unidos se pueden recuperar utilizando la sintaxis de puntos (por ejemplo, salesrep.email ) |
Observaciones
Actuación
Una búsqueda es solo una abreviatura para realizar una búsqueda que filtra la identificación interna de un solo registro para el resultado. Bajo el capó, las búsquedas están realizando una búsqueda, por lo que el rendimiento será similar al de una búsqueda que devuelve un registro único.
Esto también significa que una búsqueda se realizará más rápido que cargar el registro para recuperar la misma información.
Limitaciones
Las búsquedas solo se pueden utilizar para recuperar datos de campo del cuerpo. No puede recuperar datos de las listas secundarias de un registro relacionado mediante una búsqueda. Si necesita datos de la lista secundaria, deberá realizar una búsqueda o cargar el registro relacionado.
[1.0] Buscar un solo campo
/**
* An example of nlapiLookupField to retrieve a single field from a related record
*/
// Get the Sales Rep record ID
var repId = nlapiGetFieldValue("salesrep");
// Get the name of the Sales Rep
var repName = nlapiGetFieldText("salesrep");
// Retrieve the email address from the associated Sales Rep
var repEmail = nlapiLookupField("employee", repId, "email");
console.log(repEmail);
console.log(repName + "'s email address is " + repEmail);
[1.0] Buscar campos múltiples
/**
* An example of nlapiLookupField to retrieve multiple fields from a related record
*/
// Get the Sales Rep record ID
var repId = nlapiGetFieldValue("salesrep");
// Retrieve multiple fields from the associated Sales Rep
var repData = nlapiLookupField("employee", repId, ["email", "firstname"]);
console.log(repData);
console.log(repData.firstname + "'s email address is " + repData.email);
[1.0] Búsqueda de campos unidos
/**
* An example of nlapiLookupField to retrieve joined fields from a related record
*/
var repId = nlapiGetFieldValue("salesrep");
// Retrieve multiple fields from the associated Sales Rep
var repData = nlapiLookupField("employee", repId, ["email", "firstname", "department.name"]);
console.log(repData);
console.log(repData.firstname + "'s email address is " + repData.email);
console.log(repData.firstname + "'s department is " + repData["department.name"]);
[2.0] Buscar un solo campo
require(["N/search", "N/currentRecord"], function (s, cr) {
/**
* An example of N/search#lookupFields to retrieve a single field from a related record
*/
(function () {
var record = cr.get();
// Get the Sales Rep record ID
var repId = record.getValue({
"fieldId": "salesrep"
});
// Get the name of the Sales Rep
var repName = record.getText({
"fieldId": "salesrep"
});
// Retrieve the email address from the associated Sales Rep
var repData = s.lookupFields({
"type": "employee",
"id": repId,
"columns": ["email"]
});
console.log(repData);
console.log(repName + "'s email address is " + repData.email);
})();
});
[2.0] Buscar campos múltiples
require(["N/search", "N/currentRecord"], function (s, cr) {
/**
* An example of N/search#lookupFields to retrieve multiple fields from a related record
*/
(function () {
var record = cr.get();
// Get the Sales Rep record ID
var repId = record.getValue({
"fieldId": "salesrep"
});
// Retrieve the email address from the associated Sales Rep
var repData = s.lookupFields({
"type": "employee",
"id": repId,
"columns": ["email", "firstname"]
});
console.log(repData);
console.log(repData.firstname + "'s email address is " + repData.email);
})();
});
[2.0] Búsqueda de campos unidos
require(["N/search", "N/currentRecord"], function (s, cr) {
/**
* An example of N/search#lookupFields to retrieve joined fields from a related record
*/
(function () {
var record = cr.get();
// Get the Sales Rep record ID
var repId = record.getValue({
"fieldId": "salesrep"
});
// Retrieve the email address from the associated Sales Rep
var repData = s.lookupFields({
"type": "employee",
"id": repId,
"columns": ["email", "firstname", "department.name"]
});
console.log(repData);
console.log(repData.firstname + "'s email address is " + repData.email);
console.log(repData.firstname + "'s department is " + repData["department.name"]);
})();
});