ディスカッション
AIを用いた自動化で請求書処理を合理化
AIを用いた考察を使用して、計画と予測を迅速化
SuiteWorldまであと41日となりました。以下の最新情報をご確認ください。
アジェンダビルダー公開
SuiteWorld On Airの登録受付開始
新しいNetSuite Prompt Studioコンテスト
その他の最新情報も!
詳細はこのスレッドでご確認ください!
SuiteScript 2.0でマップ/レデュースタスクを送信する時に「NO_DEPLOYMENT_AVAILABLE」のエラーが出ます
適用
製品: NetSuite 2022.1
シナリオ
マップ/レデューススクリプトを実行する時、「NO_DEPLOYMENT_AVAILABLE」のエラーが出ます。進行中のキューに、マップ/レデュースのデプロイメントのインスタンスを新しくリクエストする際に、そのエラーは出ます。スクリプトのエラーを回避するため、SuiteScript 2.0で以下の2つオプションがあります。
解決策
オプション①:キューにタスクを送信する前、同様なスクリプトデプロイメントの内部IDの進行中タスクがあるかどうかチェックする保存検索がある定期スクリプトを実施します。
- 手順1:UIで保存検索を作成します
- レポート > 保存検索 > 全ての保存検索 > 新規作成 へ移動します。
- 定期スクリプトのインスタンスを選択します。
- パブリックのチェックバックスをマークします。
- 条件に属して、以下のフィルターを追加します。
- スクリプトデプロイメント:内部ID - 次のいずれか - マップ/レデューススクリプトのデプロイメントの内部ID
- ステータス : - 次のいずれかでもない - 「完了」、「キャンセル済み」、「失敗」
- 手順2:キューにタスクを送信する前に保存検索を実行します。
- キューにタスクを送信する前に手順1で作成した保存検索を実行します。検索結果がある場合、進行中のインスタンスがあるため、マップ/レデューススクリプトは新しいインスタンスを送信しません。
var mySearch = search.load({
id: 'customsearch_step1' //保存検索のスクリプトIDに変更 });
var searchResultCount = mySearch.runPaged().count;
if (searchResultCount > 0) {
//NO_DEPLOYMENT_AVAILABLEのエラーと同じです.同じスクリプトデプロイメントは進行中のため、新しいのを送信しません。
} else {
//進行中のデプロイメントがありません。タスクを送信します。
var taskStatus = null;
var stTaskId = scriptTask.submit();
taskStatus = NSTask.checkStatus(stTaskId);
}
})
var scriptTask = NSTask.create({
taskType: NSTask.TaskType.MAP_REDUCE,
scriptId: mr_scriptId,
deploymentId: 'customdeploy5',
params: objScriptParamsToPass
});
免責事項
ここに記載されているサンプルコードは、法律で認められている最大限の範囲で、いかなる種類の保証もなく、「現状のまま」で提供されています。Oracle+NetSuite社は、開発者がそれぞれの開発プラットフォームにサンプルコードを実装したり、独自の Web サーバー構成を使用したりする際に、個々の成功を保証するものではありません。
Oracle + NetSuite社は、サンプルコードに関連するデータまたは情報の使用、使用結果、正確性、適時性または完全性に関して、いかなる保証も行わず、表明もしません。Oracle + NetSuite社は、明示的にも黙示的にもすべての保証を放棄し、特に、商品性、特定目的への適合性、およびコード、またはそれに関連するサービスやソフトウェアに関連する保証を放棄します。
Oracle + NetSuite社は、本サンプルコードに関連してお客様または他者が行った行為に起因するいかなる種類の直接的、間接的または結果的な損害または費用についても責任を負いません。