Buscar..


Introducción

Al procesar un registro dado, a menudo necesitará recuperar datos de uno de sus registros relacionados. Por ejemplo, cuando se trabaja con un Pedido de venta determinado, es posible que deba recuperar datos del Representante de ventas relacionado. En la terminología de SuiteScript, esto se denomina búsqueda .

La funcionalidad de búsqueda la proporciona la función global nlapiLookupField en SuiteScript 1.0 y el método lookupFields del módulo N/search en SuiteScript 2.0.

Sintaxis

  • nlapiLookupField (recordType, recordId, columnas);

Parámetros

Parámetro Detalles
recordType String : la ID interna del tipo de registro que se está buscando (p. salesorder , salesorder , employee )
recordId String o Number : la ID interna del registro que se está buscando
columnas String o String[] : la lista de campos para recuperar del registro. Las ID de campo se pueden consultar en la sección "Buscar columnas" del Explorador de registros . Los campos unidos se pueden recuperar utilizando la sintaxis de puntos (por ejemplo, salesrep.email )

Observaciones

Actuación

Una búsqueda es solo una abreviatura para realizar una búsqueda que filtra la identificación interna de un solo registro para el resultado. Bajo el capó, las búsquedas están realizando una búsqueda, por lo que el rendimiento será similar al de una búsqueda que devuelve un registro único.

Esto también significa que una búsqueda se realizará más rápido que cargar el registro para recuperar la misma información.

Limitaciones

Las búsquedas solo se pueden utilizar para recuperar datos de campo del cuerpo. No puede recuperar datos de las listas secundarias de un registro relacionado mediante una búsqueda. Si necesita datos de la lista secundaria, deberá realizar una búsqueda o cargar el registro relacionado.

[1.0] Buscar un solo campo

/**
 * 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] Buscar campos múltiples

/**
 * 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] Búsqueda de campos unidos

/**
 * 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] Buscar un solo campo

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] Buscar campos múltiples

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] Búsqueda de campos unidos

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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow