使用 Domino Designer 8.5.1 建立 Java
代理
在 Domino Designer 8.5.1 中開啟 Notes
資料庫檔案 TestNSF.nsf, 展開 Code 節點,在 Agents 節點上點擊右鍵,在菜單中選擇”New Agent”,在彈出的對話方塊中選擇”Java”,命名為”DataExtractionAgent”。 1 所示:
圖 1. 建立 Java Agent
系統會自動在預設包中建立 JavaAgent.java 檔案,該類擴充了 lotus.domino.AgentBase 類,並重載了 NotesMain() 方法。
清單 1. Java 代理程式碼樣本
public void NotesMain () { try { Session session = getSession(); AgentContext agentContext = session.getAgentContext(); // (Your code goes here) } catch(Exception e) { e.printStackTrace(); } } |
使用 session 對象可以擷取當前的代理程式所處的 Notes 資料庫或者其他資料庫物件,並調用 Notes Java API 實施資料庫文檔的增刪改查,以及中繼資料的讀取等操作。
agentContext 對象是 Java 代理的運行環境對象,可用來擷取被使用者選擇的 Notes 資料庫文檔列表等對象。當 Java 代理被觸發時,AgentBase 類的 NotesMain()
方法將被調用。
接下來,我們可以在 Java 代理中繼續建立其它的 Java 包和類;如果我們需要在 Java 代理程式中調用第三方的 Java API,我們可以將依賴的 Java 類庫拷貝到 Notes 或 Domino 內建的 Jvm 的 lib/ext 目錄下。
在 Domino Designer 中,切換到 Java 視圖,發現 DataExtractionAgent 作為一個獨立的 Java 項目存在,Domino Java Library 下可以看到新增加的 Java 類庫,agent.jar 包含了從 Excel 檔案中讀取資料儲存在 DB2 資料庫中商務邏輯,而 db2 開頭的兩個 jar 包提供了操作 DB2 資料庫的 API。
圖 2. Java 代理程式在 Java 包視圖中的顯示
在 Java 視圖中可以方便的完成 Java 代理程式的開發,之後可以回到 Domino Designer 視圖,執行 Java 代理的測試。
選擇 Code 節點下的 Agents 項,在右邊的表單中得到所有 Agent 程式的列表,右鍵點擊 DataExtractionAgent,選擇”Run”命令,則觸發了該 Agent 程式的運行。
圖 3. 測試 Java 代理程式
啟動並執行結果是得到一個日誌對話方塊提示 Agent 執行的情況。
圖 4. Java 代理程式運行情況
代理被觸發的方式主要分為兩種,一種通過菜單調用,另一種則通過調度來實現。通過菜單調用的 Java 代理可以部署在 Notes
用戶端或者 Domino 伺服器;而調度的 Java 代理只能運行在 Domino
伺服器上。