3.7 Netsuite Debug模式的使用

本文档详细介绍了如何使用NetSuite的SuiteScript调试器,包括登录、设置断点、实际操作如继续执行、步进、监视变量等,以及如何进行代码调试和错误修复,旨在帮助开发者高效地调试SuiteScript代码。
摘要由CSDN通过智能技术生成

目录

一、スクリプトデバッガー

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!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ibun.song

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值