【NetSuite】Script開発で知っておくべき “Scriptパラメータ”とは?


1) Scriptパラメータとは?

  • スクリプトが参照する可変の設定値(ID・フラグなど)をUIで管理する仕組み。
  • パラメータに設定した“マスタ(顧客・科目・保存検索IDなど)を参照可能”。コードを書き換えずに差し替えできます。

なぜ使う?(メリット)

  • メンテが簡単:アイテムや勘定科目、顧客等の各マスタを UIで差し替え
  • 環境差分に強い:Sandbox/本番で 同じコード値だけ変える。→環境間で内部IDが異なるケースがある。その場合、内部IDをそのままScriptに書いていると、動かなくなる。

2) できること(具体例)

  • 参照マスタの差し替え
    • Scriptパラメータ(リスト/レコード:顧客)に特定の顧客を設定 → スクリプトは常にこの顧客IDを参照。
    • Scriptパラメータ(リスト/レコード:保存検索)に保存検索IDを設定 → 検索ロジックの入替が容易。

ポイント:「誰が」「どの画面で」「どの値を変えれば」動作が変わるかを UI前提で設計 する。


3) 使い方(3ステップ)

  1. 定義Customization > Scripting > Scripts でスクリプトに Fields(パラメータ)を追加
  2. 値セットCustomization > Scripting > Script DeploymentsDeploymentごとに値を入力
  3. 取得:コードで 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まで。

最後までお読みいただきありがとうございました。