You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Restlet获取NetSuite服务器执行环境类型?

获取NetSuite服务器环境类型的解决方案

我想通过Restlet或其他方式获取服务器环境类型(Production生产环境、Sandbox沙盒环境、Beta测试环境)。我知道可以用runtime.envType获取该值,但不知道怎么从服务器端获取这个值来做对比。我写了一段示例代码,但不清楚HTTP请求里需要加载哪种记录类型。

我的示例代码:

function getServerEnvironment() {
    try {
        var response = http.get({
            url: '/app/site/hosting/restlet.nl?script=customscript_your_restlet_id&deploy=1'
        });

        return response.body; // 应根据服务器返回'PROD'、'SAND'或'BETA'
    } catch (e) {
        log.error('Error Fetching Server Environment', e.message);
        return null;
    }
}

解决方案说明

  • 无需指定记录类型:你的Restlet不需要加载任何业务记录类型,runtime.envType属于NetSuite的运行时API,直接在Restlet脚本内调用就能获取环境信息,完全不用依赖具体业务对象。
  • 编写对应的Restlet脚本:
    你需要创建一个Restlet脚本,在里面调用runtime.envType并返回格式化后的环境标识:
    /**
     * @NApiVersion 2.x
     * @NScriptType Restlet
     */
    define(['N/runtime'], function(runtime) {
        function getEnvironmentType() {
            const env = runtime.envType;
            // 转换为你需要的简写格式
            switch(env) {
                case runtime.EnvType.PRODUCTION:
                    return 'PROD';
                case runtime.EnvType.SANDBOX:
                    return 'SAND';
                case runtime.EnvType.BETA:
                    return 'BETA';
                default:
                    return 'UNKNOWN';
            }
        }
    
        return {
            get: getEnvironmentType
        };
    });
    
  • 调整客户端请求:确保你示例代码中的customscript_your_restlet_id和部署ID1替换为实际的脚本ID和部署ID;如果是跨身份请求,还要在HTTP头中添加NLAuth验证信息。
  • 核心逻辑:这个方法的关键是在服务器端的Restlet里直接读取运行时环境变量,客户端只需要调用这个Restlet就能拿到格式化后的环境标识,整个过程不需要操作任何业务记录。

内容的提问来源于stack exchange,提问作者accountdev253

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 23:42:39