netsuite
Поиск данных из родственных записей
Поиск…
Вступление
При обработке данной записи вам нужно будет извлечь данные из одной из связанных записей. Например, при работе с данным заказом на продажу вам может потребоваться извлечь данные из соответствующего отдела продаж. В терминологии SuiteScript это называется поиском .
Функциональность просмотра обеспечивается nlapiLookupField
глобальной функции в SuiteScript 1.0 и N/search
модуля lookupFields
метода в SuiteScript 2.0
Синтаксис
- nlapiLookupField (recordType, recordId, столбцы);
параметры
параметр | подробности |
---|---|
тип записи | String - Внутренний идентификатор просматриваемого типа (например, salesorder , employee ) |
RecordId | String или Number - внутренний идентификатор просматриваемой записи |
столбцы | String или String[] - список полей для извлечения из записи. Идентификаторы полей могут быть указаны в разделе «Поиск столбцов» в журнале записей . Присоединенные поля могут быть получены с использованием точечного синтаксиса (например, salesrep.email ) |
замечания
Спектакль
Поиск - это просто сокращение для выполнения поиска, который фильтрует внутренний идентификатор одной записи для результата. Под капотом поисковые запросы фактически выполняют поиск, поэтому производительность будет похожа на производительность поиска, которая возвращает одну запись.
Это также означает, что поиск будет выполняться быстрее, чем загрузка записи для получения той же информации.
Ограничения
Поиск может использоваться только для извлечения данных поля тела. Вы не можете извлекать данные из подсписок соответствующей записи, используя поиск. Если вам нужны подсписные данные, вам нужно либо выполнить поиск, либо загрузить соответствующую запись.
[1.0] Поиск в одном поле
/**
* 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] Поиск нескольких полей
/**
* 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] Поиск по полю
/**
* 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] Поиск в одном поле
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] Поиск нескольких полей
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] Поиск в полях
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"]);
})();
});