netsuite
関連レコードからのデータの参照
サーチ…
前書き
特定のレコードを処理するときは、関連するレコードの1つからデータを取得する必要はありません。たとえば、特定のSales Orderで作業する場合は、関連する営業担当者からデータを取得する必要があります。SuiteScriptの用語では、これは検索と呼ばれます 。
Lookup機能は、SuiteScript 1.0のnlapiLookupField
グローバル関数とSuiteScript 2.0のN/search
モジュールのlookupFields
メソッドによって提供されます
構文
- nlapiLookupField(recordType、recordId、columns);
パラメーター
パラメータ | 詳細 |
---|---|
レコードタイプ | String - 検索されるレコードのタイプの内部ID( salesorder 、 employee ) |
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