SuiteScript ソリューションや統合の開発、またはトランザクションレコードのトラブルシューティングを行う際には、サブリストフィールドのデータ型を確認する必要がある場合がよくあります。フィールドが select、checkbox、currency、float、またはその他の型のいずれであるかを把握することで、より信頼性の高いスクリプトを作成し、実行時エラーを回避できます。
この例では、Sales Order の Item サブリストにあるフィールドのメタデータを確認する方法を示します。
使用例
/**
* @NApiVersion 2 .1
* @NScriptType ScheduledScript
*
* Use the Column.type property to determine the data type of
* sublist fields at runtime. This is useful when building
* generic scripts or troubleshooting field behavior.
*/
define(['N/record', 'N/log'], (record, log) => {
function execute(context) {
//--------------------------------------------------------------------------
// STEP 1: Load an existing Sales Order
// Replace 123 with a valid Sales Order Internal ID
//--------------------------------------------------------------------------
var salesOrder = record.load({
type: record.Type.SALES_ORDER,
id: 123
});
//--------------------------------------------------------------------------
// STEP 2: List the sublist fields that you want to inspect
//--------------------------------------------------------------------------
var fields = [
'item',
'quantity',
'rate',
'amount',
'taxcode',
'description',
'isclosed'
];
//--------------------------------------------------------------------------
// STEP 3: Loop through each field and inspect its metadata
//--------------------------------------------------------------------------
fields.forEach(function(fieldId) {
try {
//--------------------------------------------------------------
// Retrieve the field (column) object from the Item sublist
//--------------------------------------------------------------
var column = salesOrder.getSublistField({
sublistId: 'item',
fieldId: fieldId,
line: 0 // Read the field definition from the first line
});
//--------------------------------------------------------------
// Column.type returns the field's data type.
//
// Examples:
// select
// float
// currency
// checkbox
// textarea
// date
//--------------------------------------------------------------
//--------------------------------------------------------------
// Log the field information for analysis
//--------------------------------------------------------------
log.debug({
title: 'Field Information',
details: {
fieldId: fieldId,
label: column.label,
type: column.type,
isMandatory: column.isMandatory
}
});
} catch (e) {
//--------------------------------------------------------------
// Some fields may not exist on every form or transaction.
// Log the error instead of stopping the script.
//--------------------------------------------------------------
log.error({
title: 'Unable to Inspect Field: ' + fieldId,
details: e.message
});
}
});
}
return {
execute: execute
};
});
免責事項: ここに記載されているサンプルコードは、法律で許可される最大限の範囲で、いかなる種類の保証もなく「現状のまま」提供されます。Oracle + NetSuite Inc. は、サンプルコードの開発プラットフォームへの実装や、独自のWebサーバー構成の使用において、開発者の個々の成功を保証または保証しません。
Oracle + NetSuite Inc. は、サンプルコードに関連するデータまたは情報の使用、使用結果、正確性、適時性、完全性に関して、いかなる保証も行わず、すべての保証(明示的または黙示的)を否認します。特に、商品性、特定の目的への適合性、コードに関連するサービスまたはソフトウェアに関する保証を否認します。
Oracle + NetSuite Inc. は、サンプルコードに関連する行動から生じるいかなる種類の直接的、間接的または結果的な損害や費用についても責任を負いません。
SuiteScriptのデプロイの詳細は、これらのNetSuiteの始め方記事を確認してください。
SuiteScriptを使用してレコードを自動化する方法について、別の方法をご存じですか。ここで自由に共有しましょう!
免責事項:
この記事は、AI支援による翻訳ツールを使用して翻訳され、言語品質のレビューを実施しています。AIは記事本文およびサポートガイダンスの作成には使用されていません。