netsuite
Recherche de données à partir d'enregistrements associés
Recherche…
Introduction
Lors du traitement d'un enregistrement donné, vous devrez récupérer des données d'un de ses enregistrements associés. Par exemple, lorsque vous utilisez une commande client donnée, vous devrez peut-être extraire des données du représentant commercial associé. Dans la terminologie de SuiteScript, cela s'appelle une recherche .
La fonction de recherche est fournie par la fonction globale nlapiLookupField
dans SuiteScript 1.0 et la méthode lookupFields
du module N/search
dans SuiteScript 2.0
Syntaxe
- nlapiLookupField (recordType, recordId, columns);
Paramètres
Paramètre | Détails |
---|---|
recordType | String - ID interne du type d'enregistrement recherché (par exemple, salesorder , employee ) |
recordId | String ou Number - L'ID interne de l'enregistrement recherché |
colonnes | String ou String[] - Liste des champs à extraire de l'enregistrement. Les ID de champ peuvent être référencés à partir de la section "Colonnes de recherche" du navigateur d'enregistrements . Les champs salesrep.email peuvent être récupérés à l'aide de la syntaxe à points (par exemple, salesrep.email ) |
Remarques
Performance
Une recherche est juste un raccourci pour effectuer une recherche qui filtre l'ID interne d'un seul enregistrement pour le résultat. Sous le capot, les recherches effectuent effectivement une recherche, de sorte que la performance sera similaire à celle d'une recherche qui renvoie un seul enregistrement.
Cela signifie également qu'une recherche fonctionnera plus rapidement que le chargement de l'enregistrement pour récupérer les mêmes informations.
Limites
Les recherches ne peuvent être utilisées que pour récupérer des données de corps. Vous ne pouvez pas extraire des données des sous-listes d'un enregistrement associé à l'aide d'une recherche. Si vous avez besoin de données de sous-liste, vous devrez soit effectuer une recherche, soit charger l'enregistrement correspondant.
[1.0] Champ unique de recherche
/**
* 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] Recherche de champs multiples
/**
* 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] Recherche de champs joints
/**
* 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] Champ unique de recherche
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] Recherche de champs multiples
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] Recherche de champs joints
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"]);
})();
});