一次对多个已保存的搜索运行 N/Task

Run N/Task on multiple saved searches at once

提问人:TheIronKing 提问时间:12/9/2022 更新时间:12/9/2022 访问量:122

问:

有没有一种直接的方法可以修改下面的代码以同时在多个保存的搜索和文件上执行?我有所有的文件和搜索ID。但是,与其为每个脚本创建 50 个不同的脚本,我可以通过更改以下内容来执行 ID 块?

先谢谢你。

所有 Oracle 文档似乎只指定了如何在 1 个项目上运行这些任务。

我知道map/reduce脚本是处理大量数据的好方法,这是这样做的方式,还是可以稍微调整一下以下内容?

/**

* @NApiVersion 2.x

* @NScriptType ScheduledScript

* @NModuleScope SameAccount

*/

define(['N/task'],

/**

* @param {record} record

* @param {search} search

*/

function(task) {

var FILE_ID = 433961; 

var SEARCH_ID = 1610;

function execute(scriptContext) {

var searchTask = task.create({

taskType: task.TaskType.SEARCH

});

searchTask.savedSearchId = SEARCH_ID;

searchTask.fileId = FILE_ID;

var searchTaskId = searchTask.submit();

}

return {

execute: execute

};

});
导出 NetSuite Suite脚本 保存的搜索

评论


答:

2赞 W.S. 12/9/2022 #1
/**    
  * @NApiVersion 2.x
  * @NScriptType ScheduledScript    
  * @NModuleScope SameAccount  
*/

define(['N/task'], function (task) {

  const todos = [
    {
      FILE_ID: 433961,
      SEARCH_ID: 1610
    },
    {
      FILE_ID: '...',
      SEARCH_ID: '...'
    },
    // ...
  ]

  function execute(scriptContext) {

    todos.forEach(function(todo) {
      var searchTask = task.create({
        taskType: task.TaskType.SEARCH
      });
  
      searchTask.savedSearchId = todo.SEARCH_ID;
      searchTask.fileId = todo.FILE_ID;
      var searchTaskId = searchTask.submit();
    })

  }

  return {
    execute: execute
  };

});

评论

0赞 TheIronKing 12/9/2022
非常感谢你,我的朋友。周末愉快。