1) Scriptパラメータとは?
- スクリプトが参照する可変の設定値(ID・フラグなど)をUIで管理する仕組み。
- パラメータに設定した“マスタ(顧客・科目・保存検索IDなど)を参照可能”。コードを書き換えずに差し替えできます。
なぜ使う?(メリット)
- メンテが簡単:アイテムや勘定科目、顧客等の各マスタを UIで差し替え
- 環境差分に強い:Sandbox/本番で 同じコード、値だけ変える。→環境間で内部IDが異なるケースがある。その場合、内部IDをそのままScriptに書いていると、動かなくなる。
2) できること(具体例)
- 参照マスタの差し替え:
- Scriptパラメータ(リスト/レコード:顧客)に特定の顧客を設定 → スクリプトは常にこの顧客IDを参照。
- Scriptパラメータ(リスト/レコード:保存検索)に保存検索IDを設定 → 検索ロジックの入替が容易。
ポイント:「誰が」「どの画面で」「どの値を変えれば」動作が変わるかを UI前提で設計 する。
3) 使い方(3ステップ)
- 定義:
Customization > Scripting > Scripts
でスクリプトに Fields(パラメータ)を追加。 - 値セット:
Customization > Scripting > Script Deployments
の Deploymentごとに値を入力。 - 取得:コードで
runtime.getCurrentScript().getParameter({ name: 'custscript_xxx' })
。
4) 最小コード(そのまま使える)
define(['N/runtime','N/format'], function(runtime, format){
function run(){
const s = runtime.getCurrentScript();
const isDryRun = s.getParameter({name:'custscript_is_dry_run'}) === 'T'; // チェックボックスは'T'/'F'
const chunk = Number(s.getParameter({name:'custscript_chunk_size'})) || 500; // 数値はNumber()
const searchId = s.getParameter({name:'custscript_src_savedsearch'}); // 文字列のままでOK
const dummyId = Number(s.getParameter({name:'custscript_tk_param_ar_dummycustomer'})); // List/Recordは内部ID
const fromStr = s.getParameter({name:'custscript_start_date'});
const fromDate = fromStr ? format.parse({value:fromStr, type:format.Type.DATE}) : null; // 日付はformat.parse
// ここから処理...
}
return { execute: run };
});
最後に
Scriptパラメータは、コードを触らずに運用で調整できるための強力な仕掛けです。参照マスタ(顧客・科目・保存検索ID)や機能フラグをUIに出しておけば、障害対応も改善もスピーディに回せます。
覚えておきたいのは次の3点です。
- まずは外だし:変わりうる値(ID/期間/フラグ)はパラメータ化。
- 型ははっきり扱う:
'T'/'F'
は厳密比較、数値はNumber()
、日付はN/format.parse
、Multi-Selectはsplit+map
。 - 環境で差し替える:Sandbox/本番で同一コード、値だけ切り替え。
NetSuiteやSuiteScriptに関するご相談、ご依頼は是非Coznetまで。
最後までお読みいただきありがとうございました。