以下是 EPM 整合代理程式執行的步驟:
處理由 EPM 整合代理程式資料來源所定義的 SQL,而該資料來源是您在 Oracle Enterprise Performance Management Cloud 中指定的。
準備 SQL 結果集,並將該結果集從已定義的資料來源傳送到 EPM Cloud。
這些步驟就是指「擷取」和「上傳」的步驟。EPM 整合代理程式的指令碼編寫功能支援與上述兩個處理步驟相關聯的 4 個事件,而您可以在這些事件中定義自訂指令碼。以下是這些事件的說明:
事件 | 指令碼名稱 | 描述 |
---|---|---|
|
|
要在代理程式處理擷取程序之前執行的指令碼。如果您有任何想要在 SQL 處理程序執行之前處理的程序,請把相關程式碼納入這個指令碼。 |
|
|
要在代理程式處理擷取程序之後執行的指令碼。擷取完畢之後,系統會在 |
|
|
要在資料檔案上傳至 EPM Cloud 之前執行的指令碼。而上傳到 EPM Cloud 的檔案,是 |
|
|
要在資料檔案上傳至 EPM Cloud 之後執行的指令碼。 |
如需範例指令碼,請前往已安裝代理程式之本機電腦上的 agent/Sample/jython
和 agent/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 檔案,好讓您自訂的內容不會遭到覆寫。