事件

以下是 EPM 整合代理程式執行的步驟:

  1. 處理由 EPM 整合代理程式資料來源所定義的 SQL,而該資料來源是您在 Oracle Enterprise Performance Management Cloud 中指定的。

  2. 準備 SQL 結果集,並將該結果集從已定義的資料來源傳送到 EPM Cloud

這些步驟就是指「擷取」和「上傳」的步驟。EPM 整合代理程式的指令碼編寫功能支援與上述兩個處理步驟相關聯的 4 個事件,而您可以在這些事件中定義自訂指令碼。以下是這些事件的說明:

事件 指令碼名稱 描述

Before Extract

BefExtract.py

BefExtract.groovy

要在代理程式處理擷取程序之前執行的指令碼。如果您有任何想要在 SQL 處理程序執行之前處理的程序,請把相關程式碼納入這個指令碼。

After Extract

AftExtract.py

AftExtract.groovy

要在代理程式處理擷取程序之後執行的指令碼。擷取完畢之後,系統會在 agent/MyData/data 本機資料夾中產生一個檔案,其中有尾碼為 dat 的 Job ID。

Before Upload

BefUpload.py

BefUpload.groovy

要在資料檔案上傳至 EPM Cloud 之前執行的指令碼。而上傳到 EPM Cloud 的檔案,是 agent/MyData/data 資料夾中的 <jobID>.dat 檔案。

After Upload

AftUpload.py

AftUpload.groovy

要在資料檔案上傳至 EPM Cloud 之後執行的指令碼。

註:

如需寫回執行作業期間所使用 EPM 整合代理程式 BefExportAftExport 事件的相關資訊,請參閱 EPM 整合代理程式寫回事件指令碼

如需範例指令碼,請前往已安裝代理程式之本機電腦上的 agent/Sample/jythonagent/Sample/groovy 資料夾。如果您把指令碼放置在 agent/MyData/scripts 資料夾中,系統就會執行該指令碼的例項。例如,如果您只想要執行 BefExtract 指令碼,請只把該指令碼儲存在 agent/MyData/scripts 資料夾中。

您也可以選擇自己建立會實作上述 4 種自訂方法的 Java 類別實作。我們在 Agent/Sample 資料夾中提供範例以供您參考,但如果您選擇這種方法,請考慮下列事項:

  • 如果您選擇直接使用 Java 來實作整合邏輯,就不需要在 agent/MyData/scripts 資料夾中儲存任何指令碼。Java 實作一定會執行上述 4 個事件,因此在缺少某個事件的指令碼時,Java 實作就只會處理由客戶/合作夥伴定義的 Java 邏輯。

  • 您可以建立 Java 類別檔案 CustomEvent.java,它應該會實作 agent-interface.jar 中的介面 EPMAgentInterface (例如,public class CustomEvent 就會實作 EPMAgentInterface{)

  • 您可以把 CustomEvent.class 封裝在 agent-interface.jar 中,作為 oracle.epm.aif.agent.agentinterface.CustomEvent.class。如果您選擇把它封裝在 agent-interface.jar 以外的 Jar 檔案中,您就必須把該 Jar 檔案納入 CUSTOM_CLASS_PATH 代理程式參數中。

  • 如果您選擇不同於 oracle.epm.aif.agent.agentinterface.CustomEvent.class 的類別名稱,就必須用完整的 Java 類別名稱來設定啟動參數 CUSTOM_INTERFACE_CLASS_NAME

  • 請注意,在定期的 EPM Cloud 發行週期中,每次開發作業提供修正或新版本時,agent-interface.jar 就會更新。自訂事件類別可作為開發或測試之用,但對於生產開發,我們建議您另外保留一個 JAR 檔案,好讓您自訂的內容不會遭到覆寫。