3.7 Netsuite Debug模式的使用
目录
一、スクリプトデバッガー
1. ログイン Netsuite
2. スクリプトデバッガー
3. こちら
スクリプトデバッガー
本番アカウントを使用してデバッガードメインにアクセスしている場合は、デバッガードメインのアカウントに変更を加えると、本番アカウントにも変更が反映されることに注意してください。
ベータアカウントまたはSandboxアカウントを使用してデバッガードメインにアクセスしている場合は、デバッガードメインでアカウントに変更を加えると、ベータアカウントまたはSandboxアカウントにもそれぞれ変更が反映され、本番アカウントには反映されないことに注意してください。
SuiteScriptデバッガードメインにログインするには、こちらをクリックしてください。現在のセッションからログオフされることに注意してください。
SuiteScriptデバッガーを使用する手順については、NetSuiteヘルプセンターの「SuiteScriptデバッガー」を参照してください。
调本调试器
如果您通过生产账户访问调试器域,请注意,您在调试器域中对您的账户所做的更改会影响您的生产账户。
如果通过 Beta 或沙盒账户访问调试器域,则您在调试器域中对您的账户所做的更改会分别影响您的 Beta 或沙盒账户,而不会影响您的生产账户。
单击此处登录到 SuiteScript 调试器域。请注意,您将从当前会话退出。
有关使用 SuiteScript 调试器的步骤,请参阅 NetSuite 帮助中心中的 SuiteScript 调试器。
ベータアカウントまたはSandboxアカウントをログアウト
スクリプトデバッガーをログイン
二、 実際操作
1. テンプレート
require(['N/search', 'N/record'],
function(search, record) {
// コードブロック
});
2. 続行
require(['N/search', 'N/record'],
function(search, record) {
log.debug('INFO', 'デバッグ開始');
// レコードの種類(Table)
var recordType = 'customrecord_sr_update_type';
// 条件(Where)
var filters = [];
filters.push(["internalid", "is", 2]);
// フィールド
var columns = [];
var altName = search.createColumn({
name: 'altname',
});
columns.push(altName);
// 内部IDによる名前の検索
var searchResults = getRecordTypeInfo(recordType, filters, columns);
if (searchResults.length > 0) {
var altnames = [];
for(var i = 0; i < searchResults.length; i++){
var altname = searchResults[i].getValue('altname');
if(altname === undefined || altname == null || altname === ''){
altnames.push(altname);
}
}
// コンソール出力
log.debug(altnames);
}
function getRecordTypeInfo(tableid,filterlist,columnlist) {
var objSearch = search.create({
type : tableid,
filters : filterlist,
columns : columnlist,
});
var recode = objSearch.run();
var searchResults = [];
if (recode != null) {
var resultIndex = 0;
var resultStep = 1000;
do {
var searchlinesResults = recode.getRange({
start : resultIndex,
end : resultIndex + resultStep
});
if (searchlinesResults.length > 0) {
searchResults = searchResults.concat(searchlinesResults);
resultIndex = resultIndex + resultStep;
}
} while (searchlinesResults.length > 0);
}
return searchResults;
};
});
3. ブレークポイントを設定
4. ステップオーバー
5. 実行ログ
6. ステップオーバー
7. 監視を追加
Enter ↲
ステップオーバー
8. ステップイン
ステップオーバー
9. ステップアウト
監視を追加
監視を削除
ステップオーバーと監視
31行、コード論理エラー、修正が必要
10. キャンセル
11. ソースを修正
修正
require(['N/search', 'N/record'],
function(search, record) {
log.debug('INFO', 'デバッグ開始');
// レコードの種類(Table)
var recordType = 'customrecord_sr_update_type';
// 条件(Where)
var filters = [];
filters.push(["internalid", "is", 2]);
// フィールド
var columns = [];
var altName = search.createColumn({
name: 'altname',
});
columns.push(altName);
// 内部IDによる名前の検索
var searchResults = getRecordTypeInfo(recordType, filters, columns);
if (searchResults.length > 0) {
var altnames = [];
for(var i = 0; i < searchResults.length; i++){
var altname = searchResults[i].getValue('altname');
// 修正前
// if(altname === undefined || altname == null || altname === ''){
// 修正後
if (altname === undefined || altname == null || altname === '') {
altnames.push(altname);
}
}
// コンソール出力
log.debug(altnames);
}
function getRecordTypeInfo(tableid,filterlist,columnlist) {
var objSearch = search.create({
type : tableid,
filters : filterlist,
columns : columnlist,
});
var recode = objSearch.run();
var searchResults = [];
if (recode != null) {
var resultIndex = 0;
var resultStep = 1000;
do {
var searchlinesResults = recode.getRange({
start : resultIndex,
end : resultIndex + resultStep
});
if (searchlinesResults.length > 0) {
searchResults = searchResults.concat(searchlinesResults);
resultIndex = resultIndex + resultStep;
}
} while (searchlinesResults.length > 0);
}
return searchResults;
};
});
12. 再続行
レークポイントを設定と続行
続行
OK!