所有文章
- LotusScript 把 NotesView 匯出 Excel:四條路、CSV 預設、何時要升 POI
「把這個 view 匯出 Excel 給 user」是 Domino 圈最常被問的需求之一。四條路 — CSV via NotesStream(推薦預設)、HTML-as-xls(舊版格式技巧)、OLE Excel.Application(僅 client 端臨時用)、Apache POI via Java agent(正式環境級 .xlsx) — 各有適用場景。本文整理四條路的取捨表、CSV 完整實作(含 UTF-8 BOM、CSV escape、用 NotesViewNavigator 加速 5-10x)、HTML-as-xls / OLE / POI 的何時用何時不該用、Web download 模式、跟三個常見坑(BOM 漏寫、escape 不對、用 GetFirstDocument 而不是 ViewNavigator)。
2026.05.26 - NotesDateTime + NotesDateRange:LotusScript 日期時間處理的雙人組
Domino code 裡最常摸到的 utility class 之一 — NotesDateTime 代表單一時間點、NotesDateRange 代表一段時間區間。本文整理建立方式(New 跟 session.CreateDateTime 差別)、三組時區屬性(Local / GMT / Zone)的正確用法、6 個 Adjust 方法做日期算術、TimeDifference vs TimeDifferenceDouble 的精度差異、ConvertToZone 直接改物件本身、不是回傳新物件、NotesDateRange 的 4 個 property(沒有任何 method)、SetAnyDate / SetAnyTime 是搜尋 wildcard 用、跟 NotesItem.DateTimeValue 互動的 timezone 陷阱、跟兩個實戰範例(期限檢查 agent + 跨時區會議排程)。
2026.05.25 - NotesJSONArray / Element / Object:LotusScript parse + build JSON 的三個組成元件
之前發佈過的 lotusscript-http-json 介紹了 NotesHTTPRequest + NotesJSONNavigator 把『打 REST API 拿 JSON』完整收進 LS。本篇接續寫 navigator 下面的 3 個組成元件 — NotesJSONElement(name/value pair)、NotesJSONObject(物件節點)、NotesJSONArray(陣列節點)— 詳細 method、屬性、parse 時怎麼走整棵樹、反向 build JSON 怎麼用 Append* 系列 + Stringify、64K 限制版本敏感的三層解法(含 10.0.1 FP2 SPR# DCONB8VMAV / ASHEB95LFR 修補、跟 14.5 還活著的 element value > 64K 隱形地雷),跟一個完整 round-trip 範例(POST 出去 + parse 回應)。
2026.05.24 - NotesLLMRequest:4 行 LotusScript 把 LLM 接進 Domino app
Domino 14.5 引入 NotesLLMRequest / NotesLLMResponse 兩個 LotusScript class,把 LLM 推論能力以同步 API 形式給 app 開發者。本篇實戰:session.CreateLlmRequest() 工廠方法、Completion 三參數簽名、CompletionStream 串流模式、IsCommandAvailable / GetAvailableCommands 防禦性檢查、NotesLLMResponse 的 Content / FinishReason / Role 三個欄位。為什麼 API 設計用 commandName 而不是直接吃 prompt — Command document 抽離讓 admin 跟 dev 各自控制自己那層。附自動回信 + 摘要兩個實戰範例、跟 Java 對位 LLMReq / LLMRes。
2026.05.23 - 在 HCL 官方支援範圍外把 Domino 9.0.1 包進 Container — 社群可行性 PoC + 5 個一定會撞的坑
HCL 官方只發 Domino 10.0.1 FP3 起的 container image — 還在跑 9.0.x 想用容器做 dev/test、migration 預演、legacy server 保存的話官方沒路。本篇介紹一份社群可行性研究:RHEL UBI 7.9 base、兩階段 build、~1.48 GB image,跑得起 Domino 9.0.1 FP10、能加入既有 Domino domain、HTTP/NRPC/LDAP/IMAP/POP3/SMTP 全部正常。研究過程踩了 5 個 HCL docs 沒提的關鍵坑(Perl namespace bug / FP installer 不吃 -silent / J9 JVM heap 不夠 / setup 完成 marker 不對 / server.id 密碼 stdin block),每個都有實際 error message + workaround。完整 build script 跟 troubleshooting 在 bryanHsiao/build-hcl-domino9-container repo。
2026.05.22 - HCL Domino 容器化部署的兩條路 — 拉 pre-built image,或自己 build 客製版
把 Domino 包進 container 在 IBM 時代(V9)就有社群在做、HCL 從 V10 起正式提供官方 pre-built container image 下載。現在 HCL 雙管齊下:要快上線可以從 My HCLSoftware Portal 下載官方 pre-built image TAR 直接 docker load;要彈性可以用 HCL 在 GitHub 上開源的 domino-container 專案、跑互動式 build.sh menu 自己 build 客製 image,挑你要的模組(Domino / Traveler / Verse / Nomad / REST-API / Leap / Domino IQ / OnTime / C-API SDK / LP)+ add-on。這篇介紹兩條路怎麼選、build.sh 能客製到什麼程度、典型部署場景,跟想試試看的人怎麼起步。
2026.05.21