簡介

本教學課程介紹 Groovy 指令碼語言,並說明如何在 Oracle EPM Enterprise Cloud 服務中為 Planning 建立 Groovy 指令碼。

背景

Groovy 是 Java 平台的敏捷動態語言,結合了順暢的 Java 整合與 Java 效能的優點。許多 Groovy 功能的靈感來自 Python、Ruby 和 Smalltalk 等語言,讓 Java 開發人員使用類似 Java 的語法。許多大型和小型公司 (包括 Oracle、IBM 和 SAP) 都採用 Groovy,其強大的功能包括靜態和動態語言、雲端環境的安全性,以及網域特定語言。

必要條件

Cloud EPM 實作教學課程可能需要您將快照匯入您的 Cloud EPM Enterprise Service 例項。您必須先要求另一個 Cloud EPM Enterprise Service 例項或移除目前的應用程式與業務程序,才能匯入教學課程快照。教學課程快照不會透過您現有的應用程式或業務程序進行匯入,也不會自動取代或還原您目前使用的應用程式或業務程序。

開始此教學課程之前,您必須:

  • 讓服務管理員可以存取 Cloud EPM Enterprise Service 例項。
  • 上傳此快照並匯入至您的 Planning 例項。

附註:

如果匯入快照時發生移轉錯誤,請重新執行移轉 (不包括 HSS-Shared Services 元件),以及「核心」元件中的「安全性與使用者偏好設定」人工因素。如需上傳與匯入快照的詳細資訊,請參考管理 Oracle Enterprise Performance Management Cloud 的移轉文件。

為什麼選擇 Groovy?

瞭解計算指令碼的限制

Planning 使用以計算指令碼為基礎的商業規則來執行計算和動作。雖然這些命令檔功能強大,但有一些限制:

  • 他們無法根據使用者輸入之執行時期提示以外的環境定義,在執行時期動態產生指令檔。例如,如果您變更表單中的幾個儲存格,則計算指令碼商業規則無法識別已變更的資料,然後只根據該資料進行計算。
  • 它們無法動態指定目前成員的父項 (例如,依專案類型或區域)。
  • 在執行計算前,您無法驗證使用者輸入的資料或執行時間提示值。
  • 您無法將多個 EPM 函數結合成單一規則或規則集 (例如,計算後自動執行「智慧型發送」作業)。
  • 它們可能會因為靜態性質而發生效能問題 (例如,即使只有少數儲存格已更新,也需要計算大部分的資料庫)。
  • 雖然有限的內容特定計算可在表單中使用,方法是按一下滑鼠右鍵並僅計算特定列,但此選項對於大型表單或您更新多個列中的儲存格較不有用。
  • 對於 ASO 應用程式,它們僅提供簡單計算。

Groovy 指令碼規則的優點

藉由 Oracle EPM Enterprise Cloud 中的 Groovy 規則支援,您可以解決所有這些問題。Groovy 規則可讓您:

  • 根據 Groovy 指令碼中定義的內容,在執行時期動態產生計算指令碼
  • 在執行計算前新增執行時間提示值的驗證檢查、在提交資料前新增資料驗證檢查,以及新增錯誤處理
  • 使用單一規則啟動多個 EPM 函數 (例如,執行計算,然後執行「智慧型發送」作業,將計算的資料移至報表立方體)
  • 透過建立重點計算來改善效能 (例如,根據目前表單中修改的資料動態建立自訂目標計算指令碼)
  • 在將結果提交至資料庫之前,在記憶體中執行複雜的程序計算

Oracle EPM Enterprise Cloud 中的 Groovy

Groovy 規則類型

Oracle 支援兩種類型的 Groovy 規則:

  1. 這些規則可在執行時期根據執行時期提示以外的環境定義來動態產生計算指令碼,並在之後傳回針對 Oracle Essbase 執行的計算指令碼。

    例如,您可以建立規則,只計算專案在專案期間 (開始與結束日期) 的費用。

    另一個範例是趨勢型計算,可將計算限制在表單上可用的科目。您可以將本計算用於收入、費用、資產負債表及現金流等各種形式。這可進行最佳化與重複使用。

  2. 純 Groovy 規則,例如若輸入的資料違反公司政策,可以執行資料驗證並取消作業。

附註:

任何傳回字串的 Groovy 指令碼都會傳回針對指定 Essbase 立方體執行的 Essbase 計算指令碼。避免使用字串作為最後一個敘述句的最終值,除非它是要在 Groovy 命令檔順利啟動之後執行的計算命令檔。

您可以在 Calculation Manager 中建立 Groovy 規則,而且可以從應用程式中的任何位置執行商業規則。

使用 EPM Groovy 指令碼 API

  • EPM Groovy 指令碼 API 允許 Groovy 指令碼對 EPM 物件模型執行各種作業。大多數物件 (例如目前應用程式、立方體和方格) 都可以從作業變數中擷取。在大多數情況下,API 的進入點將會是 EpmScript 基本類別或 Operation 物件的方法。
  • 基準指令檔與目前作業有一組套用至指令檔的變數。例如,如果指令碼參考 operation.grid 等變數,且該方格不存在於作業中,則當執行指令碼時,系統會停止指令碼並在「工作主控台」中記錄錯誤。如果命令檔具有選擇性處理,例如格式化方格 (如果有的話),則可以先呼叫 operation.hasGrid() 來檢查方格是否存在。模型中的其他物件可使用相似的樣式。
  • 秘訣:

    如需 EPM Groovy 指令碼平台的 API 規格,請參閱 Oracle Enterprise Performance Management Cloud,Groovy 規則 Java API 參考

建立 Groovy 商業規則

Oracle 支援兩種類型的 Groovy 規則:

  1. 在 EPM Enterprise Cloud 的 Planning 應用程式中,開啟導覽器,然後在「建立和管理」下,按一下規則以顯示 Calculation Manager。
  2. 瀏覽器規則
  3. 在 Calculation Manager 中,選取動作,然後選取新物件。在對話方塊中,選取應用程式類型、應用程式和立方體。針對「物件類型」,選取規則。輸入規則的名稱,然後按一下確定
  4. 新增物件對話框
  5. 系統會顯示建立規則並開啟以供編輯的訊息。按一下確定按鈕繼續。
  6. 在「設計工具」下拉式清單中,選取編輯命令檔
  7. 編輯指令碼
  8. 在「命令檔類型」下拉式清單中,選取 Groovy 命令檔
  9. Groovy 命令檔
  10. 按一下「儲存」圖示(「儲存」)。此規則現在是基於 Groovy 指令碼的商業規則,您可以使用編輯器根據您的業務使用案例來開發指令碼。下列範例顯示編輯器中的簡易 Groovy 指令碼,該指令碼會根據數值臨界值變更資料方格中儲存格的背景顏色。您也可以開啟命令檔,在個別頁籤中檢視命令檔。
  11. 指令碼範例

其他學習資源

docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 Oracle University 以檢視可用的訓練資源。

如需產品文件,請造訪 Oracle Help Center