📝 記事概要
本記事では、トリガーポイントの概要と、SuiteScriptとワークフローで活用する方法について解説します。
1. トリガーポイントとは
トリガーポイントは、NetSuite内の特定のイベント発生時に処理を実行するポイントを指します。
これにより、業務プロセスの一部を自動化したり、特定の条件でデータを操作できます。
- 主なトリガーポイント
- Before Record Load: レコードの表示前
- Before Field Edit: フィールドを編集する前
- After Field Edit: フィールドを編集した後
- Before Record Submit: レコード保存前
- After Record Submit: レコード保存後
2. SuiteScriptでトリガーポイントを活用
SuiteScriptはNetSuiteをプログラムでカスタマイズする際に使用します。
それぞれのトリガーポイントに適したスクリプトタイプを選ぶことで、強力なカスタマイズが可能です。
主要なスクリプトタイプとトリガーポイント
User Event Script
- 使用箇所: Before/After Record Load、Before/After Record Submit
- 例: レコードの保存前にデータの検証を行う。
function beforeSubmit(context) {
var newRecord = context.newRecord;
var total = newRecord.getValue({ fieldId: 'total' });
if (total <= 0) {
throw '合計金額が0以下の場合、保存できません。';
}
}
Client Script
- 使用箇所: Before Field Edit、After Field Edit
- 例: ユーザーがフィールドを編集した際に他のフィールドを更新する。
function fieldChanged(context) {
if (context.fieldId === 'quantity') {
var record = context.currentRecord;
var quantity = record.getValue({ fieldId: 'quantity' });
var price = record.getValue({ fieldId: 'rate' });
record.setValue({
fieldId: 'amount',
value: quantity * price
});
}
}
Scheduled Script
- 使用箇所: トランザクション全体に対して一括処理を実行。
- 例: 定期的に特定条件のレコードを削除。
function execute(context) {
var searchResult = search.create({ /* 検索条件 */ }).run();
searchResult.each(function(result) {
record.delete({
type: 'salesorder',
id: result.id
});
return true;
});
}
SuiteFlow(ワークフロー)は、NetSuite内でスクリプトを使わずにトリガーポイントを設定し、自動化を実現できます。
トリガーポイントとアクション
- レコードのロード時
- 用途: 特定条件でレコードを読み取り専用にする。
- 設定例:
- 条件: レコードタイプが「受注書」
- アクション: フィールドを非表示にする。
- フィールドの変更後
- 用途: フィールドの値が変更されたときに別のフィールドを自動更新する。
- 設定例:
- 条件: フィールド「数量」が変更された場合
- アクション: 金額 = 単価 × 数量
- レコード保存時
- 用途: 保存前にデータの検証やエラーを表示。
- 設定例:
- 条件: 合計金額が0以下の場合
- アクション: エラーメッセージを表示。
4. SuiteScript とワークフローの使い分け
SuiteScript | ワークフロー |
|---|
高度なカスタマイズが可能 | スクリプト不要で簡単に設定可能 |
複雑なロジックを実装できる | シンプルな条件分岐やデータ操作が得意 |
プログラミングスキルが必要 | GUI で直感的に設定可能 |
柔軟性が高い(APIとの連携などが可能) | 短時間で標準機能を用いた自動化が可能 |
5. トリガーポイントの選択基準
- リアルタイム性が必要: クライアントスクリプトまたはワークフローを利用。
- 複雑なデータ処理が必要: SuiteScript(User EventまたはScheduled Script)を利用。
- 簡単な条件分岐で十分: ワークフローを利用。
6. まとめ
NetSuite のトリガーポイントを理解し、適切に活用することで、業務プロセスを効率化し、ユーザーエラーを防ぐことができます。
SuiteScript とワークフローを組み合わせることで、NetSuite をさらに強力にカスタマイズ可能です。
本記事を参考に、自社の業務フローに合った自動化を設計してみてください!