netsuite
Sökuppgifter från relaterade poster
Sök…
Introduktion
När du bearbetar en viss post behöver du ofta hämta data från en av dess relaterade poster. När du till exempel arbetar med en viss försäljningsorder kan du behöva hämta data från den relaterade säljrepresentanten. I SuiteScript-terminologin kallas detta en uppslagning .
Lookup funktionalitet tillhandahålls av nlapiLookupField
globala funktionen i SuiteScript 1,0 och N/search
modulens lookupFields
metod i SuiteScript 2,0
Syntax
- nlapiLookupField (recordType, recordId, kolumner);
parametrar
Parameter | detaljer |
---|---|
inspelningstyp | String - Det interna ID för den typ av post som letas upp (t.ex. salesorder , employee ) |
recordID | String eller Number - Det interna ID för posten som letas upp |
kolonner | String eller String[] - Listan över fält som ska hämtas från posten. Fält-ID kan refereras från avsnittet "Sök kolumner" i Record Browser . Fogade fält kan hämtas med punktsyntax (t.ex. salesrep.email ) |
Anmärkningar
Prestanda
En sökning är bara kortfattad för att utföra en sökning som filtrerar på den interna ID: n för en enskild post för resultatet. Under huven utför sökningar faktiskt en sökning, så prestandan kommer att likna den för en sökning som returnerar en enda post.
Detta innebär också att en uppslagning fungerar snabbare än att ladda posten för att hämta samma information.
begränsningar
Sökningar kan endast användas för att hämta data om kroppsfält. Du kan inte hämta data från underlistorna i en relaterad post med en sökning. Om du behöver sublistdata måste du antingen utföra en sökning eller ladda den relaterade posten.
[1.0] Uppsökning av enstaka fält
/**
* 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] Sök upp flera fält
/**
* 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] Sökning av sammanfogade fält
/**
* 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] Uppsökning av enstaka fält
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] Sök upp flera fält
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] Sökade fält
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"]);
})();
});