本主題將說明如何使用 Groovy 規則只計算修改過的資料,以提昇業務程序的計算效能。
在表單中更新資料後,資料需要計算。當您使用商業規則來計算標準計算指令碼時,表單的所有資料都會經過計算。如果有大型表單或計算會影響資料庫的廣大範圍,計算效能可能變慢。
您可以用滑鼠右鍵按一下列,手動每次計算一列。這樣可以加快計算效能,但在變更很多列的資料時,就不是很好的作法。
Groovy 規則可以動態聚焦於您更新的儲存格。
在表單上使用 Groovy 規則有兩種方式:
當您在儲存時計算資料,Groovy 規則會根據您更新的儲存格,產生含有 FIX 陳述式的計算指令碼。然後會在伺服器上對修改過的資料執行計算,而不是表單上的所有記錄。最佳作法是對您要更新大量資料的大型表單使用此選項。
當您在儲存之前計算資料時,Groovy 規則會在記憶體中計算修改過的資料,而且在將結果儲存至資料庫之前,先在表單上顯示結果。當您只要執行很少的計算時,或當您想要執行很複雜的程序式計算,而難以內建到大綱時,最佳作法是使用此選項。
在此範例中,以薪資百分比來計算獎金。
讓我們看一下儲存時計算。請注意,此表單已定義 Groovy 規則在儲存時計算。
在表單上更新部分薪資資料和部分電話號碼之後,電話號碼會儲存,但不影響計算。
當您儲存表單來執行相關聯的 Groovy 規則時,計算的獎金資料會顯示在表單上。
檢視工作詳細資料,此處為 Groovy 規則建立的計算指令碼。請注意,FIX 陳述式只包含修改過的員工。
讓我們開啟 Calculation Manager 來查看 Groovy 規則。此第一段反覆檢查表單中的方格,尋找已編輯的薪資儲存格,並收集相關的員工名稱。
這一段產生計算指令碼;它從表單中尋找 POV 成員,然後針對 POV 成員和已編輯的員工建立 FIX 陳述式。
現在讓我們看一下儲存之前計算。
這是相同的表單,但現在定義另一個 Groovy 規則在儲存之前計算。
再次更新部分薪資資料和部分電話號碼之後,儲存表單來執行相關聯的 Groovy 規則。已計算的獎金資料會顯示在表單上,但當您查看工作詳細資料時,您可以看到部分獎金資料已更新,但這次沒有產生計算指令碼。
在 Calculation Manager 中開啟 Groovy 規則。
類似於第一個規則,指令碼會反覆檢查表單中的方格,尋找已編輯的薪資儲存格,並收集相關的員工名稱。然後只針對已編輯的員工計算獎金資料。請注意,不會產生 Oracle Essbase 計算指令碼。
Groovy 規則也適用於 Oracle Smart View for Office 中的表單。智慧型檢視提供 Microsoft Excel 的完整功能讓您大規模調整資料,而表單上設為儲存之前或之後執行的任何 Groovy 規則會在您提交資料時執行。