Suche…


Einführung

Bei der Verarbeitung eines bestimmten Datensatzes müssen Sie häufig Daten aus einem zugehörigen Datensatz abrufen. Wenn Sie beispielsweise mit einem bestimmten Kundenauftrag arbeiten, müssen Sie möglicherweise Daten vom zugehörigen Vertriebsmitarbeiter abrufen. In der SuiteScript-Terminologie wird dies als Suche bezeichnet .

Lookup - Funktionalität wird durch die vorgesehenen nlapiLookupField globale Funktion in SuiteScript 1,0 beträgt und das N/search lookupFields Methode in 2,0 SuiteScript

Syntax

  • nlapiLookupField (recordType, recordId, Spalten);

Parameter

Parameter Einzelheiten
Aufnahmetyp String - Die interne ID des Datensatztyps, der gesucht wird (z. B. salesorder , employee ).
recordId String oder Number - Die interne ID des Datensatzes, der gesucht wird
Säulen String oder String[] - Die Liste der Felder, die aus dem Datensatz abgerufen werden sollen. Feld - IDs können aus dem „Search Columns“ der verwiesen werden Records Browser . Verknüpfte Felder können mit der salesrep.email abgerufen werden (z. B. salesrep.email )

Bemerkungen

Performance

Eine Suche ist nur eine Abkürzung für die Durchführung einer Suche, die nach der internen ID eines einzelnen Datensatzes nach dem Ergebnis filtert. Unter der Haube führen Suchvorgänge tatsächlich eine Suche durch, sodass die Leistung der einer Suche ähnelt, die einen einzelnen Datensatz zurückgibt.

Dies bedeutet auch, dass eine Suche schneller abläuft als das Laden des Datensatzes, um die gleichen Informationen abzurufen.

Einschränkungen

Suchvorgänge können nur zum Abrufen von Textfelddaten verwendet werden. Sie können Daten nicht mithilfe einer Suche aus den Unterlisten eines zugehörigen Datensatzes abrufen. Wenn Sie Unterlistendaten benötigen, müssen Sie entweder eine Suche durchführen oder den zugehörigen Datensatz laden.

[1.0] Einzelnes Feld suchen

/**
 * 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] Mehrere Felder nachschlagen

/**
 * 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] Nacheinander verbundene Felder

/**
 * 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] Einzelnes Feld suchen

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] Mehrere Felder nachschlagen

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] Nacheinander verbundene Felder

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow