NetSuiteではレコードを登録するときに避けては通れない流れというものが存在します。この流れのどこでカスタマイズしたものを動かすのかを考える必要が出てきます。これはWorkflowとSuiteScript両方で共通して使われる考え方です。この一粒で二度おいしい考え方を見てみましょう。
NetSuiteでデータを登録する一連の流れ
従業員を登録するためにレコードを1個作成するという例をもとに考えてみましょう。
NetSuiteでは画面から従業員の新規登録をするのが一般的です。青色の文字と黄色の文字に注目して下の画像を見ていきましょう。

初めに従業員を新規登録するとき、画面を開くことをイメージすると思います。しかし実際はデータをロードするところからスタートします。ロードはサーバーを通して行われ、PCにデータが届き、画面に表示されるという一つの流れになります。このデータをロードする前にカスタマイズした機能を動かすことができます。画像でいう「BEFORE LOAD」がこれに該当します。
NetSuiteでは画面が表示された直後にカスタマイズした機能を動かすこともできます。「PAGE INIT」がこれに該当します。ここで「BEFORE LOAD」でも「PAGE INIT」でもどっちでも違いはないんじゃない?という疑問がでてきますが、この両者の違いは「サーバー側でカスタマイズした機能を動かすか」「PC側で行うか」という違いがあります。画像のハイライトした黄色と青の文字の違いは「PC側でトリガーを発動」か「サーバー側でトリガーを発動」と分かれているということがここでわかります。
実際に画面から従業員の情報を入力して枠内からフォーカスを外すと発動するのが「FIELD CHANGE/VALIDATE FIELD/ POST SOURCING」です。この3個にそれぞれ違いはあれど基本は枠内を入力、編集などすると発動させることができると考えておけば最初は問題ないでしょう。
そして最後に従業員のデータを入力して保存ボタンを押したときに「BEFORE SUBMIT」、「SAVE RECORD」、「AFTER SUBMIT」とカスタマイズを実行するきっかけがPC側、サーバー側と用意されています。
このカスタマイズを発動させるきっかけはWorkflow、SuiteScriptともに共通しています。「どこでカスタマイズを発動させるか」をよく考えて適切な場所でカスタマイズした機能を動かしましょう。