概要
NetSuiteの定期スクリプトを使用すると、クリーンアップ、レポート、更新の記録などの繰返しタスクを自動化することができます。初心者にとって、これは手作業を減らすための最も強力な方法の1つです。
このガイドでは、失効したデータや不要なデータをクリーン・アップするために夜間に実行される単純な定期スクリプトを作成します(たとえば、「配送待ち」のままになっている古い注文書の締めなど)。
ステップバイステップ・ガイド: 定期スクリプトの作成およびデプロイ
- 管理者またはスクリプト・アクセス・ロールでログイン
- 「カスタマイゼーション」 > 「スクリプト」 > 「スクリプト」 > 「新規」に移動します。
- スクリプト・ファイルのアップロード
- 「スクリプト・ファイル」で、定期スクリプト・ロジックを含む「.js」ファイルをアップロードします。
- 「保存」、「スクリプト・レコードの作成」の順にクリックします。
- スクリプト・レコードの作成- 名前を入力します(「夜間データ・クリーンアップ」など)。
- レコードを保存します。
- 「デプロイ」をクリックします。
- スクリプトのデプロイ
- 「デプロイメント」サブタブで、「新規デプロイメント」をクリックします。
- 次の項目を選択します。
- ステータス: リリース済
- ログ・レベル: デバッグ(テスト中に推奨) •実行スケジュール: 「日次」を選択し、2:00 AMまたは別の利用者の少ない時間を選択します。
- デプロイメントを保存します。
サンプルコード: 古い注文書の夜間クリーンアップ
/**
• @NApiVersion 2.x
• @NScriptType ScheduledScript
• @NModuleScope SameAccount
*/ define(['N/record'、 'N/search'、 'N/log']、 function(record、 search、 log) { function execute(context) { try { var soSearch = search.create({ type: search.Type.SALES_ORDER、 filters: ['status'、 'anyof'、 'SalesOrd:B']、 // Pending Fulfillment 'AND'、 ['datecreated'、 'onorbefore'、 'daysago90'] // 90日より古い]、 columns: ['internalid'] });
soSearch.run().each(function(result) {
var soId = result.getValue('internalid');
var soRec = record.load({
type: record.Type.SALES_ORDER,
id: soId,
isDynamic: false
});
var lineCount = soRec.getLineCount({sublistId: 'item'});
for (var i = 0; i < lineCount; i++) {
// Set the "isclosed" field to true for each line
soRec.setSublistValue({
sublistId: 'item',
fieldId: 'isclosed',
line: i,
value: true
});
}
soRec.save();
log.debug('Closed Sales Order', 'ID: ' + soId);
return true;
});
} catch (e) {
log.error('Scheduled Script Error', e.message);
}
}
return { execute: execute };
});
スクリプトのテスト
• 「配送待ち」ステータスで、いくつかの古いテスト注文書(90日以上前)を作成します。
• スクリプト・デプロイメント・レコードを編集し、最初に手動トリガー(今すぐ実行)を使用してスクリプトをデプロイし、正しく実行されていることを確認します。
• 注文書が「終了」に更新されていることを確認します。
• デバッグのために、「カスタマイゼーション」>「スクリプト」>「スクリプト実行ログ」の「スクリプト実行ログ」を確認してください。
免責事項: 本書に記載のサンプル・コードは、法律で認められている最大限の範囲において、いかなる種類の保証もなしに「現状有姿」で提供されます。Oracle + NetSuite Inc.は、開発プラットフォームでのサンプル・コードの実装または独自のWebサーバー構成の使用において、開発者が個々の成功を保証するものではありません。
Oracle + NetSuite Inc.は、サンプル・コードに関係するデータまたは情報の利用、使用結果、正確性、適時性または完全性について、保証または一切の意思表示をするものではありません。Oracle + NetSuite Inc.は、明示または黙示を問わず、一切の商品性、特定目的への適合性、コードに関係する保証、またはその関連サービスもしくはソフトウェアについて一切の保証を否認します。
Oracle + NetSuite Inc.は、お客様もしくはサンプル・コードに関連する他のユーザーが行った行為から生じるいかなる種類の直接的、間接的、もしくは結果的損害または費用についても、責任を負いません。
「NetSuiteの始め方 」カテゴリのSuiteCloudセクションでは、NetSuiteの基本的な会計機能を順を追って説明する初心者向けのガイドを紹介しています。