Netsuite 什么';这是“什么?”;官方";SS2.0中传递变量的方法?
遇到了一种愚蠢的问题 我想在map/reduce脚本的各个阶段之间传递一个变量。是否有一个“官方”或最好的方法来做到这一点(而不是发送返回的结果) 这是我最后的方法: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
/**
* @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=nullNetSuite在
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的服务器端基础设施。快点!