Scheduled 和 MapReduce 脚本

我们可以利用两种类型的脚本在特定的定期间隔上运行后台处理; 这些是 ScheduledMap / Reduce 脚本。请注意, Map / Reduce 脚本类型仅在 SuiteScript 2.0 中可用。该计划脚本同时适用于 1.0 和 2.0。

Scheduled 脚本只有一个 execute 事件,可以根据你定义的任何计划触发。例如,你可能希望运行将付款应用于发票的夜间脚本,或者运行与外部系统同步数据的每小时脚本。当时间间隔达到时,NetSuite 会在你的预定脚本上触发此 execute 事件。

Map / Reduce 脚本的工作方式类似,但一旦触发,它就会将处理分为四个不同的阶段:

  1. getInputData 阶段是你收集完成业务流程所需的所有输入数据的地方。你可以使用此阶段执行搜索,读取记录并将数据打包成可解密的数据结构。
  2. NetSuite 自动将你的 getInputData 阶段的结果传递给第二阶段,称为 map。此阶段负责逻辑分组输入数据以进行处理。例如,如果你将付款应用于发票,则可能需要先按客户对发票进行分组。
  3. 然后将 map 阶段的结果传递到 reduce 阶段,这是实际处理发生的地方。根据我们的示例,你可以将付款实际应用于发票。
  4. 最后,调用 summary 阶段,其中包含有关前三个阶段中所有处理结果的数据。你可以使用它来生成报告或发送处理完成的电子邮件。

Map / Reduce 脚本的主要优点是 NetSuite 将自动在多个队列中并行处理你的处理(如果可用)。

这两种脚本类型都具有极大的治理限制,因此你也可以将它们用于批量处理或通常长时间运行的后台进程。

可以将这些脚本类型中的最短间隔配置为每 15 分钟运行一次。

如有必要,这两种脚本类型也可以由用户或其他脚本按需调用。