SuiteScript 2.0 调用 Map Reduce 的 UserEvent 脚本
SuiteScript 2.0 UserEvent Script to Call Map Reduce
下午好。
我正在尝试让用户事件脚本调用或使用 Map Reduce 脚本。我对 Map Reduce 脚本的概念真的很陌生,并且找不到资源。本质上,我想要做的是调用一个 Map Reduce 脚本,该脚本查找具有相同项目名称的未结交易并将该项目上的 Class 设置为用户设置的新项目。 Map Reduce 脚本需要项目名称和当前记录中的 Class。
这是我的用户事件:
/**
* @NApiVersion 2.0
* @NScriptType UserEventScript
*/
define(['N/record', 'N/log'],
function (record, log) {
function setFieldInRecord (scriptContext) {
log.debug({
'title': 'TESTING',
'details': 'WE ARE IN THE FUNCTION!'
});
if (scriptContext.type === scriptContext.UserEventType.EDIT) {
var old_Record = scriptContext.oldRecord;
var cur_Record = scriptContext.newRecord;
var oldClassId = old_Record.getValue({ fieldId: 'class'});
var curClassId = cur_Record.getValue({ fieldId: 'class'});
if ( oldClassId != curClassId ) {
// CALL MAP REDUCE HERE
}
}
}
return {
beforeSubmit: setFieldInRecord
};
}
);
Map Reduce 脚本是单独的文件还是嵌入在用户事件脚本中?如果我知道如何从用户事件中调用它,我想我可以让 Map Reduce 工作。感谢您对这个问题的任何意见。谢谢!
以下是我们处理这种情况的方法。
我们确保将 'N/task'
添加到上述用户事件代码中的 define
语句中。然后,在满足条件时调用 Map / Reduce 脚本的用户事件中,我们这样做:
var scriptTask = task.create({
taskType: task.TaskType.MAP_REDUCE
});
scriptTask.scriptId = 'customscript_id';
scriptTask.deploymentId = 'customdeploy_id';
var scriptTaskId = scriptTask.submit();
这成功地从用户事件中调用了 Map Reduce 脚本。
我希望这对以后的人有所帮助。
谢谢。
下午好。
我正在尝试让用户事件脚本调用或使用 Map Reduce 脚本。我对 Map Reduce 脚本的概念真的很陌生,并且找不到资源。本质上,我想要做的是调用一个 Map Reduce 脚本,该脚本查找具有相同项目名称的未结交易并将该项目上的 Class 设置为用户设置的新项目。 Map Reduce 脚本需要项目名称和当前记录中的 Class。
这是我的用户事件:
/**
* @NApiVersion 2.0
* @NScriptType UserEventScript
*/
define(['N/record', 'N/log'],
function (record, log) {
function setFieldInRecord (scriptContext) {
log.debug({
'title': 'TESTING',
'details': 'WE ARE IN THE FUNCTION!'
});
if (scriptContext.type === scriptContext.UserEventType.EDIT) {
var old_Record = scriptContext.oldRecord;
var cur_Record = scriptContext.newRecord;
var oldClassId = old_Record.getValue({ fieldId: 'class'});
var curClassId = cur_Record.getValue({ fieldId: 'class'});
if ( oldClassId != curClassId ) {
// CALL MAP REDUCE HERE
}
}
}
return {
beforeSubmit: setFieldInRecord
};
}
);
Map Reduce 脚本是单独的文件还是嵌入在用户事件脚本中?如果我知道如何从用户事件中调用它,我想我可以让 Map Reduce 工作。感谢您对这个问题的任何意见。谢谢!
以下是我们处理这种情况的方法。
我们确保将 'N/task'
添加到上述用户事件代码中的 define
语句中。然后,在满足条件时调用 Map / Reduce 脚本的用户事件中,我们这样做:
var scriptTask = task.create({
taskType: task.TaskType.MAP_REDUCE
});
scriptTask.scriptId = 'customscript_id';
scriptTask.deploymentId = 'customdeploy_id';
var scriptTaskId = scriptTask.submit();
这成功地从用户事件中调用了 Map Reduce 脚本。
我希望这对以后的人有所帮助。
谢谢。