- NotesReplication + NotesReplicationEntry:用 LotusScript 管理資料庫複製設定
Domino 的複製(Replication)是讓多台伺服器資料同步的核心機制,每個 NSF 都有一份複製設定。LotusScript 的 NotesReplication class 讓你用程式讀寫這份設定 — 暫停 / 恢復複製、調整優先等級、設定截止日期過濾、清除複製歷史。NotesReplicationEntry 則管理「這個 NSF 跟哪台伺服器之間的複製規則」。本文拆解取得方式(db.ReplicationInfo)、IsDisabled / Priority / Abstract 屬性、ClearHistory 清歷史、GetEntry 取特定伺服器對的規則、以及 Save 呼叫的必要性。
2026.06.06 - NotesDirectory + NotesDirectoryNavigator:LotusScript 查詢 Domino 目錄
Domino 目錄(Domino Directory)是整個 Notes 環境的使用者資料庫 — 人員、群組、伺服器都在裡面。LotusScript 的 NotesDirectory 提供高層次的查詢 API(不需要自己開 names.nsf 走 view)。本文拆解取得方式(session.GetDirectory)、LookupNames 依名稱查詢指定欄位、LookupAllNames 掃全部、GetMailInfo 取郵件伺服器資訊、CreateNavigator 建立 NotesDirectoryNavigator 走訪快取結果、以及 SearchAllDirectories / LimitMatches 兩個影響效能跟結果數量的屬性。
2026.06.05 - NotesMIMEEntity + NotesMIMEHeader:LotusScript 解析郵件 MIME 結構
Domino 收到的郵件是 MIME 多層巢狀結構 — HTML body、純文字備用、附件、inline image 各自是不同的 MIME entity。LotusScript 用 NotesMIMEEntity 代表每一個節點、NotesMIMEHeader 代表節點的 header 欄位。本文拆解取得方式(session.ConvertMIME = False 的必要性)、ContentType / ContentSubType 識別 MIME 類型、GetFirstChildEntity + GetNextSibling 走訪 MIME 樹、GetContentAsText 取出文字內文、GetNthHeader / GetSomeHeaders 讀取 header 值、CreateMIMEEntity 從頭建立 MIME 郵件、以及 body 跟 attachment 的實戰辨別方法。
2026.06.04 - NotesCalendar:LotusScript 讀寫 Domino 行事曆的三個 Class
Domino 行事曆資料不是放在一般文件裡、而是用結構化的 iCalendar 格式存在 mail.nsf。LotusScript 提供三個 class 處理這層結構:NotesCalendar(行事曆物件本身)、NotesCalendarEntry(單一行事曆項目)、NotesCalendarNotice(會議邀請通知)。本文拆解取得方式(session.GetCalendar 傳入 mail.nsf)、CreateEntry 寫入 iCalendar 格式的字串、ReadRange 批次讀取時間段內的項目、GetNewInvitations 取得未處理邀請、NoticeAction 接受/拒絕邀請、跟幾個一定會踩的坑(ConvertMIME 必須設 False、行事曆文件不能當一般 NotesDocument 操作)。
2026.06.03 - NotesDocumentCollection:LotusScript 文件集合的完整操作指南
幾乎每個 Domino agent 最後都會回傳一個 NotesDocumentCollection — 但多數程式碼只用到 GetFirstDocument / GetNextDocument 就停了。本文完整拆解這個 class:七種取得 collection 的方式、走訪四個方向(First / Next / Prev / Last / Nth)、集合運算三劍客(Intersect / Merge / Subtract 都是直接改原物件)、StampAll 批次寫值跟走訪中修改的陷阱、RemoveAll force 參數的並發語意、以及 FTSearch 縮減 + 集合運算的接力模式。
2026.06.02 - 實作筆記:DRAPI 透過 Keycloak OIDC 登入 — Domino 12.0.2 就能用、不必等 14
想把 DRAPI(Domino REST API)接到現代 IdP — 譬如 Keycloak、Azure AD、Okta — 通常以為要等 Domino 14 才有 OIDC、其實 12.0.2 用 DRAPI 的 oidc 模式就能跑通。本文是本機完整重現整套設定的實作筆記、聚焦 DRAPI 三個 OIDC 模式怎麼選、三層獨立認證架構(身份驗證 / 身份對應 / 授權)為什麼要分層除錯、跟 4 個會卡很久的踩雷 — 最大那個是 providerUrl 用 localhost 因為 Java IPv4 解析造成跨機器整個失敗。完整逐步流程在 GitHub repo + Pages 上、文章本身不重複設定步驟、聚焦關鍵判斷跟陷阱。
2026.06.01 - HCL Domino 14 跟前版的關鍵差異整理 — 管理員與開發者必看
從 V11 / V12 升級到 Domino 14.x、真正會讓既有部署失效的「結構性變動」其實有限、集中在幾個面向。本文用五個維度整理 14.0 / 14.5 / 14.5.1 跟之前版本的差異 — notes.ini 路徑、Java / jar 環境、XPages 編輯器(CKEditor → TinyMCE 6.7)、新模組(Domino IQ / DQL @FTSearch / AdminCentral / AutoUpdate)、跟一份完整的棄用 / 移除清單(iNotes UI、SNMP MIB、DCT、Server Load Utility 等)。每條都標版本起跑點跟官方來源、結尾附一份升級前的檢查清單。
2026.05.31 - NotesRegistration:用 LotusScript 自動化使用者註冊
Domino 管理員每天都會收到新人報到、離職、留停的通知 — 一筆一筆在 Admin Client 點滑鼠很快就成為時間殺手。NotesRegistration 是 LotusScript 內建解法、把使用者註冊 / 認證 / ID 檔管理整套搬進可程式化的世界。本文從人事系統觸發的實務場景切入、拆解 RegisterNewUser 的 14 個參數、必要的屬性 setup、跟伺服器權限的關係、跟批次處理的範例。
2026.05.30 - FTSearch / db.Search / DQL:Domino 三種搜尋機制怎麼選
Domino 14 之後、文件搜尋有三條技術路徑:FTSearch(文字索引)、db.Search(@Formula 全表掃描)、DQL(V12 引入、結構化 query、走 design catalog 跟 NIF 索引)。本文用一張多維對比表 + 一棵決策樹整理三者的差異 — index 需求、語法、效能、即時性、回傳順序、可組合性 — 並深入講 Domino 14 開始 DQL 支援 `@FTSearch()` term 把全文檢索整合進結構化 query 的意義。三個實戰場景(一次性查詢 / scheduled agent / 高頻 REST API)對應建議路徑、附 cross-link 整個搜尋系列跟 DQL 三部曲。
2026.05.29