netsuite
Wyszukaj dane z powiązanych rekordów
Szukaj…
Wprowadzenie
Podczas przetwarzania danego rekordu często nie będziesz musiał pobierać danych z jednego z powiązanych rekordów. Na przykład podczas pracy z danym zamówieniem sprzedaży może być konieczne pobranie danych z powiązanego przedstawiciela handlowego. W terminologii SuiteScript nazywa się to wyszukiwaniem .
Lookup funkcjonalność jest dostarczana przez nlapiLookupField
funkcji globalnych w SuiteScript 1,0 i N/search
modułu lookupFields
metodę w SuiteScript 2.0
Składnia
- nlapiLookupField (recordType, recordId, kolumny);
Parametry
Parametr | Detale |
---|---|
typ rekordu | String - Wewnętrzny identyfikator rodzaju wyszukiwanego rekordu (np. salesorder , employee ) |
recordId | String lub Number - Wewnętrzny identyfikator szukanego rekordu |
kolumny | String lub String[] - Lista pól do pobrania z rekordu. Identyfikatory pól można znaleźć w sekcji „Przeszukaj kolumny” w przeglądarce rekordów . Połączone pola można pobrać za pomocą składni kropkowej (np. salesrep.email ) |
Uwagi
Występ
Wyszukiwanie to tylko skrót do wykonania wyszukiwania, które filtruje wewnętrzny identyfikator jednego rekordu dla wyniku. Pod maską wyszukiwania faktycznie przeprowadzają wyszukiwanie, więc wydajność będzie podobna do wyszukiwania, które zwraca pojedynczy rekord.
Oznacza to również, że wyszukiwanie będzie działało szybciej niż ładowanie rekordu w celu pobrania tych samych informacji.
Ograniczenia
Wyszukiwań można używać tylko do wyszukiwania danych pola ciała. Nie można pobrać danych z list podrzędnych powiązanego rekordu za pomocą odnośnika. Jeśli potrzebujesz danych listy podrzędnej, musisz przeprowadzić wyszukiwanie lub załadować powiązany rekord.
[1.0] Wyszukaj pojedyncze pole
/**
* 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] Wyszukaj wiele pól
/**
* 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] Wyszukaj połączone pola
/**
* 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] Wyszukaj pojedyncze pole
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] Wyszukaj wiele pól
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] Lookup Joined Fields
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"]);
})();
});