Netsuite 什么';这是“什么?”;官方";SS2.0中传递变量的方法?

Netsuite 什么';这是“什么?”;官方";SS2.0中传递变量的方法?,netsuite,suitescript,Netsuite,Suitescript,遇到了一种愚蠢的问题 我想在map/reduce脚本的各个阶段之间传递一个变量。是否有一个“官方”或最好的方法来做到这一点(而不是发送返回的结果) 这是我最后的方法: /** * @NApiVersion 2.0 * @NScriptType MapReduceScript */ define(["N/search", "N/record", "N/email", "N/runtime", "N/task", "/SuiteScripts/Librari

遇到了一种愚蠢的问题

我想在map/reduce脚本的各个阶段之间传递一个变量。是否有一个“官方”或最好的方法来做到这一点(而不是发送返回的结果)

这是我最后的方法:

    /**
    * @NApiVersion 2.0
    * @NScriptType MapReduceScript
    */

    define(["N/search", "N/record", "N/email", "N/runtime", "N/task", "/SuiteScripts/Libraries/tools_lib"],
    function (search, record, email, runtime, task, tools) {

    var ss = runtime.getCurrentSession();
    var conf = {};

    /**
     * Retrieve the CSV contents and return as an object
     * @return {Array|*}
     */
    function getInputData() {

        log.debug("setting", "foo");
        ss.set({name: "foo", value: "bar"});

        //Session
        var foo = ss.get({name: "foo"});
        log.debug("foo 1", foo);

        //var pass
        conf["foo"] = "bar";

        return [1, 2, 3];
    }

    /**
     * Search and group by type, all records with matching entries on the CSV field
     * @param context
     * @return {boolean}
     */
    function map(context) {

        //Session
        var foo = ss.get({name: "foo"});
        log.debug("foo 2", foo);

        //Var pass
        log.debug("foo 3", conf["foo"]);

        return false;
    }
foo 1=巴

foo2=null


foo3=null

NetSuite在
context.value
中存储从上一阶段返回的任何内容

无论返回什么数据类型,它都将作为
字符串
发送到下一个阶段,因此如果要使用不同的数据类型,则需要
JSON.parse
对其进行解析

函数getInputData(){ 返回[1,2,3]; } 函数映射(上下文){ log.debug(JSON.parse(context.value)); }
您无法访问以前阶段中的特定变量。如果要传递数据,需要使用要传递的值构建一个适当的数据结构,并
返回它,然后在下一阶段从
上下文.value
中解析它。

NetSuite在
上下文.value
中存储从上一阶段返回的任何内容

无论返回什么数据类型,它都将作为
字符串
发送到下一个阶段,因此如果要使用不同的数据类型,则需要
JSON.parse
对其进行解析

函数getInputData(){ 返回[1,2,3]; } 函数映射(上下文){ log.debug(JSON.parse(context.value)); }

您无法访问以前阶段中的特定变量。如果要传递数据,需要使用要传递的值构建一个适当的数据结构并返回它,然后在下一阶段从
上下文中解析它。value

这有点晚了,但我发现的一个解决方案/解决方法是使用一个调度脚本调用Map/Reduce脚本


您可以在启动map/reduce脚本(使用“N/task”模块)时在计划脚本中动态设置脚本参数。

这有点晚了,但我发现的一个解决方案/解决方法是使用计划脚本调用map/reduce脚本


在启动map/reduce脚本(使用“N/task”模块)时,您可以在计划脚本中动态设置脚本参数。

是的,我不确定您是否喜欢自己解析脚本;我觉得NetSuite应该为您处理类型转换。这可能是出于安全考虑。我觉得在SS2.0上所做的很多事情都是为了“感觉”像现代的JS,但是后端几乎是一样的。是的,仍然是基于Rhino的服务器端基础设施。快点!是的,我不确定我是否喜欢你需要自己解析它的事实;我觉得NetSuite应该为您处理类型转换。这可能是出于安全考虑。我觉得在SS2.0上所做的很多事情都是为了“感觉”像现代的JS,但是后端几乎是一样的。是的,仍然是基于Rhino的服务器端基础设施。快点!