如何在 map reduce suitescript 中将值从 getInputData() 传递到 map() 函数?
How to pass a value from getInputData() to map() function in map reduce suitescript?
我制作了一个 suitelet,它是 运行 一个 map-reduce 脚本并传递一个日期参数。现在需要的是在 map()
函数中包含该日期对象(来自 suitelet)。这样将在 map()
中创建的记录的日期可以是 trandate
。
define(['N/record', 'N/search', 'N/runtime'], function (record, search, runtime) {
function getInputData() {
try {
var slfilter = runtime.getCurrentScript().getParameter({ name: 'custscript_searchfilter_date' });
slfilter.replace(/\/g, "");
var dateSL = JSON.parse(slfilter);
log.debug('dateSL parsed', dateSL)
var date = dateSL['date'];
log.debug('date', date);
var savedSearch = search.load({ id: 'customsearch_wip_correction' });
var results = getResults(savedSearch.run())
log.debug('results:', results)
return results;
}
catch (e) {
log.error("GetInputData ", e);
}
}
function map(context) {
try {
// date is required here
var data = JSON.parse(context.value);
log.debug('map:' + context.key, context.value)
var amount = data.values['SUM(amount)'];
log.debug('amount', amount)
var location = data.values['GROUP(location)'][0].value;
log.debug('location', location)
}
catch (e) {
log.error("map", e)
}
}
将 runtime.getCurrentScript().getParameter
放入地图部分。
N/runtime
可以在客户端脚本或用户事件的任何端点中工作。
我制作了一个 suitelet,它是 运行 一个 map-reduce 脚本并传递一个日期参数。现在需要的是在 map()
函数中包含该日期对象(来自 suitelet)。这样将在 map()
中创建的记录的日期可以是 trandate
。
define(['N/record', 'N/search', 'N/runtime'], function (record, search, runtime) {
function getInputData() {
try {
var slfilter = runtime.getCurrentScript().getParameter({ name: 'custscript_searchfilter_date' });
slfilter.replace(/\/g, "");
var dateSL = JSON.parse(slfilter);
log.debug('dateSL parsed', dateSL)
var date = dateSL['date'];
log.debug('date', date);
var savedSearch = search.load({ id: 'customsearch_wip_correction' });
var results = getResults(savedSearch.run())
log.debug('results:', results)
return results;
}
catch (e) {
log.error("GetInputData ", e);
}
}
function map(context) {
try {
// date is required here
var data = JSON.parse(context.value);
log.debug('map:' + context.key, context.value)
var amount = data.values['SUM(amount)'];
log.debug('amount', amount)
var location = data.values['GROUP(location)'][0].value;
log.debug('location', location)
}
catch (e) {
log.error("map", e)
}
}
将 runtime.getCurrentScript().getParameter
放入地图部分。
N/runtime
可以在客户端脚本或用户事件的任何端点中工作。