netsuite
Opzoekgegevens uit gerelateerde records
Zoeken…
Invoering
Wanneer u een bepaald record verwerkt, moet u vaak gegevens uit een van de gerelateerde records ophalen. Bijvoorbeeld, bij het werken met een bepaalde verkooporder, kan het nodig zijn om de gegevens van de betreffende Sales Rep. In SuiteScript terminologie te halen, dit heet een lookup.
De nlapiLookupField
wordt geboden door de algemene functie nlapiLookupField in SuiteScript 1.0 en de lookupFields
methode van de N/search
module in SuiteScript 2.0
Syntaxis
- nlapiLookupField (recordType, recordId, kolommen);
parameters
Parameter | Details |
---|---|
recordType | String - De interne ID van het type record dat wordt opgezocht (bijv. salesorder , employee ) |
recordID | String of Number - De interne ID van het record dat wordt opgezocht |
kolommen | String of String[] - De lijst met velden die uit het record moeten worden opgehaald. U kunt naar veld-ID's verwijzen vanuit het gedeelte 'Zoekkolommen' van de Records-browser . Samengevoegde velden kunnen worden opgehaald met behulp van puntsyntaxis (bijv. salesrep.email ) |
Opmerkingen
Prestatie
Een Lookup is gewoon steno voor het uitvoeren van een zoekopdracht die filtert op de interne ID van een enkel record voor het resultaat. Onder de motorkap voeren lookups eigenlijk een zoekopdracht uit, dus de prestaties zijn vergelijkbaar met die van een zoekopdracht die één record retourneert.
Dit betekent ook dat een opzoekactie sneller zal werken dan het laden van het record om dezelfde informatie op te halen.
beperkingen
Opzoekingen kunnen alleen worden gebruikt om gegevens uit bodyvelden op te halen. U kunt geen gegevens uit de sublijsten van een gerelateerd record ophalen met behulp van een opzoekactie. Als u sublijstgegevens nodig hebt, moet u een zoekopdracht uitvoeren of het bijbehorende record laden.
[1.0] Opzoek enkel veld
/**
* 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] Meerdere velden opzoeken
/**
* 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] Opzoeken samengevoegde velden
/**
* 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] Eén veld opzoeken
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] Meerdere velden opzoeken
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] Opzoeken samengevoegde velden
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"]);
})();
});