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 分鐘執行一次。

如有必要,這兩種指令碼型別也可以由使用者或其他指令碼按需呼叫。