サーチ…


前書き

特定のレコードを処理するときは、関連するレコードの1つからデータを取得する必要はありません。たとえば、特定のSales Orderで作業する場合は、関連する営業担当者からデータを取得する必要があります。SuiteScriptの用語では、これは検索と呼ばれます

Lookup機能は、SuiteScript 1.0のnlapiLookupFieldグローバル関数とSuiteScript 2.0のN/searchモジュールのlookupFieldsメソッドによって提供されます

構文

  • nlapiLookupField(recordType、recordId、columns);

パラメーター

パラメータ詳細
レコードタイプ String - 検索されるレコードのタイプの内部ID( salesorderemployee
recordId StringまたはNumber - 参照されているレコードの内部ID
StringまたはString[] - レコードから取得するフィールドのリスト。フィールドIDは、 レコードブラウザの[検索列]セクションから参照できます。結合されたフィールドは、ドット構文( salesrep.email )を使用して取得できます。

備考

パフォーマンス

ルックアップは、結果の単一レコードの内部IDをフィルタリングする検索を実行するための略語です。フードの下では、検索は実際に検索を実行しているので、パフォーマンスは単一のレコードを返す検索のパフォーマンスに似ています。

これは、同じ情報を取得するためにレコードをロードするよりも、検索が高速に実行されることを意味します。

制限事項

ルックアップは、ボディフィールドデータを取得するためにのみ使用できます。ルックアップを使用して関連レコードのサブリストからデータを取得することはできません。サブリスト・データが必要な場合は、検索を実行するか、関連レコードをロードする必要があります。

[1.0]単一フィールドの参照

/**
 * 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]複数のフィールドを検索する

/**
 * 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]結合されたフィールドの参照

/**
 * 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]単一フィールドの参照

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]複数のフィールドの検索

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]結合されたフィールドの参照

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
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow