- NotesPropertyBroker / NotesProperty:Composite Applications 的元件溝通機制
Composite Applications 是 Notes 8.x 時代的功能 — 把多個元件(Notes 元件、Java/Eclipse 元件)拼在同一個畫面上、讓它們互相傳值。NotesPropertyBroker 就是中間那個傳遞層,NotesProperty 是被傳遞的單一屬性。本文老實交代這組類別的定位(偏 legacy)、GetPropertyBroker 怎麼取得、GetPropertyValue / SetPropertyValue / Publish / HasProperty 各方法、InputPropertyContext,以及它在今天的實際意義。
2026.06.27 - NotesViewColumn:用程式讀一個 view 有哪些欄、各自的公式與排序
你想盤點一個 view 有哪些欄、每欄是欄位還是公式、有沒有排序或分類、哪些被隱藏 — 不用開 Designer,用 NotesViewColumn 就能在程式裡讀出來。本文拆解從 view.Columns 取得、Title / ItemName / Formula / Position / IsSorted / IsCategory / IsHidden / IsField / IsFormula 等屬性,以及它跟先前 NotesViewEntry 的 ColumnValues 怎麼對應(同一個 Position 索引)。
2026.06.26 - NotesIDVault:用程式從 ID Vault 取 ID、同步、重設密碼
ID Vault 是 Domino 用 policy 集中保管使用者 ID 檔的機制。NotesIDVault 讓你用程式操作它 — 從 vault 取出某使用者的 ID 檔、把本機 ID 同步回 vault、檢查某人 ID 在不在 vault 裡、甚至重設 vault 密碼。本文拆解它的取得、GetUserIDFile / SyncUserIDFile / IsIDInVault / ResetUserPassword / PutUserIDFile 各方法、跟 NotesUserID 的關係,以及這些操作的權限前提。
2026.06.25 - NotesRichTextTable:在程式裡往 rich text 塞一個表格
你在程式裡用 NotesRichTextItem 組一封 rich text 信或文件,需要一個表格來排版摘要或報表 — NotesRichTextItem.AppendTable 建出來的就是 NotesRichTextTable。本文拆解怎麼建立、RowCount / ColumnCount、AddRow / RemoveRow、SetColor / SetAlternateColor 交替色、RightToLeft,以及怎麼用 NotesRichTextNavigator 走訪既有表格與一個關鍵限制:不知道 rich text 的確切結構,就讀不出儲存格內容。
2026.06.24 - NotesDXLImporter:把 DXL 灌回 Domino,設計元素 / 文件 / ACL 各有匯入策略
你用 NotesDXLExporter 把設計或文件匯出成 DXL(Domino XML)之後,怎麼把它灌回資料庫?NotesDXLImporter 就是反向那一半。本文拆解它的建立、三個關鍵匯入策略(DesignImportOption / DocumentImportOption / ACLImportOption 各自的 create / ignore / replace / update)、Import 方法與取回匯入 note 的方式,以及它跟 DXLExporter 怎麼組成完整的 DXL round-trip。
2026.06.23 - NotesViewEntry × NotesViewEntryCollection:不開文件就高效讀 view 的每一列
要把一個 view 裡每份文件的某些欄位值讀出來,很多人迴圈跑文件、逐筆 GetItemValue — 但那會把每份文件都打開,幾千筆就很慢。NotesViewEntry 讓你直接讀 view 已經算好的 ColumnValues、完全不開文件;NotesViewEntryCollection 是這些列的集合,還能跳過分類/總計列、做集合運算與 StampAll 批次蓋章。本文拆解這對「高效讀 view」的搭檔、ColumnValues 的效能關鍵、entry 的身份與階層屬性。
2026.06.22 - 開發者很少注意的 ODS:Domino 資料庫格式版本演進,與「什麼時候會升、由什麼決定」
你整天寫 LotusScript / XPages,大概從來沒在意過資料庫的 ODS(on-disk structure)版本 — 直到某個功能(像 LargeSummary)需要特定 ODS,或你把一顆舊 DB 在 server 之間搬動,搞不清楚 ODS 會不會跟著變。本文從開發者角度整理 ODS 的版本對應、最反直覺的一點(升 server 版本不等於升 ODS),以及 ODS 到底「什麼時候會變、由什麼決定」,最後回答一個具體情境:R9 的 ODS51 資料庫用 R12 client 新複製到 R12 server,ODS 會自動異動嗎?
2026.06.21 - 「Field is too large (32K)」在騙你:真正的牆通常是 64K summary buffer
一個 XPages 存檔錯誤:訊息寫「32K」,但你檢查每個欄位都沒破 32K(最大才 26K),照樣存不了。因為它指的數字常常不是你的問題 — 真正撞到的是「整份文件 summary 資料合計 64K」這道牆。本文先建立 summary / non-summary 與兩道大小限制的心智模型,再講 ODS 與 LargeSummary 為什麼是兩件事,最後用「這資料該不該是 summary」這個問題分流出兩種解法。
2026.06.21 - LotusScript 的 Evaluate:在程式裡直接跑 @formula
有時候你心裡那個剛好的工具是一個 @function — @Name、@Unique、@Explode、@DbLookup — 但你人在 LotusScript 裡。Evaluate 就是那座橋:把 @formula 當字串丟進去、在程式裡執行、拿回結果。本文拆解兩種呼叫形式(帶不帶 document context)、一個一定會踩的陷阱(回傳值永遠是陣列),以及哪些 @function 不支援(@Command、@Prompt、@PickList 等 UI 類)。
2026.06.20