ディスカッション
AIを用いた自動化で請求書処理を合理化
AIを用いた考察を使用して、計画と予測を迅速化
【開発者向け】SuiteScriptを使った一括削除の実装方法
📝 記事概要
NetSuiteでは、トランザクションやカスタムレコードの一括削除機能が標準では用意されていません。
しかし、SuiteScriptを活用することで、特定の条件に合致するレコードを一括削除することが可能です。
この記事では、SuiteScript 1.0を使って削除スクリプトを作成し、それをNetSuiteに手動でアップロードし、一括更新(Mass Update)を利用して適用する方法を解説します。
⚠ 重要な注意点
✅ 削除対象を慎重に選定する
✅ 必ずテスト環境で動作を検証する
✅ 削除前にバックアップを取得する(特にCSVエクスポートなど)
✅ 削除後の監査ログを確認する(NetSuiteの監査ログを活用)
🔹 1. SuiteScriptを作成する
以下のSuiteScript 1.0のスクリプトを作成し、NetSuiteにアップロードします。
/**
* SuiteScript 1.0 - 一括削除スクリプト
* Version Date Author Remarks
* 1.00 2024/01/30 Your Name 一括削除用スクリプト
*/
/**
* 一括削除処理
* @param {String} recType - 削除するレコードのタイプ (例: "salesorder", "invoice" など)
* @param {String} recId - 削除するレコードの内部ID
*/
function massDeleteScript(recType, recId) {
try {
nlapiDeleteRecord(recType, recId); // 指定したレコードを削除
nlapiLogExecution('AUDIT', '削除成功', 'レコード削除: ' + recType + ' ID: ' + recId);
} catch (e) {
nlapiLogExecution('ERROR', '削除エラー', 'レコード削除失敗: ' + recType + ' ID: ' + recId + ' エラー: ' + e.message);
}
}
このスクリプトは、NetSuiteの一括更新機能(Mass Update)に紐付けられたレコードの削除を行います。
🔹 2. SuiteScriptをNetSuiteに手動アップロードする
作成したスクリプトをNetSuiteに手動でアップロードします。
手順
- NetSuiteにログイン
- カスタマイズ > スクリプト > スクリプトのアップロード
→ 「新規スクリプト」を選択し、作成したスクリプト(.jsファイル)をアップロード - 「スクリプトタイプ」 を 「一括更新スクリプト(Mass Update)」 に設定
- 「保存」ボタンをクリック
🔹 3. 一括更新(Mass Update)に適用する
スクリプトのアップロードが完了したら、削除対象のトランザクションを選び、一括削除を実行できるようにします。
手順
- NetSuite上部メニューから
→ 「リスト」 > 「一括更新」 > 「カスタム更新」を開く - 「新規カスタム更新」ボタンをクリック
- 適用対象のレコードタイプを選択(例: 請求書・見積書など)
- 「アクション」セクションでアップロードしたスクリプトを選択
- 適用対象の条件を設定
→ 例: 「キャンセルされた請求書のみ削除」など、フィルター条件を指定 - 「保存」ボタンをクリック
この手順を完了すると、「カスタム更新」画面に削除スクリプトを実行できる一括更新のオプションが表示されます。
🔹 4. 削除処理の実行
削除対象を選択し、一括削除を実行する方法
- 「リスト」 > 「一括更新」 > 「カスタム更新」に移動
- 適用対象のレコードを選択
- 「一括更新の実行」ボタンをクリック
- 処理が完了するまで待つ(削除されたデータは復元不可なので注意!)
🔹 まとめ
この方法を使うと、NetSuiteの一括更新機能を活用して、大量のトランザクションを効率的に削除することが可能です。
📌 実装の流れ
✅ SuiteScript 1.0で削除スクリプトを作成
✅ NetSuiteに手動でアップロード
✅ 一括更新のカスタム更新に適用
✅ 削除対象を選択し、一括更新を実行
この方法は、不要なトランザクションを整理し、データをクリーンに保つのに非常に便利です。
ただし、削除されたデータは元に戻せないため、事前にバックアップを取ることを強く推奨します。