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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow