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"]);
    })();
});


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow