D HCL Domino Daily
All Posts Search Class Map About
A 文
  • XPages JavaScript
    After runOnServer in XPages the Document Is Still Stale — the Fix, and Using the contextDocument Instead of a Temp Doc

    A common XPages SSJS pattern: create a temp document, fill in parameters, save, call agent.runOnServer(noteid), and the agent writes results back to that document on the server. Then you read it back — and get the values from before the agent ran. It's not a bug: the document object you're holding is an in-memory snapshot taken at load time, and the agent saved the note on disk in a separate execution, so your object never syncs. The fix is to recycle the stale object and getDocumentByID a fresh one. This covers the pattern, why you read stale values, the standard fix, using the form's own document data source (the contextDocument) instead of a temp doc, and the cleanest option — runWithDocumentContext, which passes an in-memory document to the agent and skips both the save and the re-fetch (at the cost of requiring the agent to Run as Web user).

    2026.10.10 →
  • Domino Server Admin +1
    Domino on Linux: the Case-Sensitivity Trap, and Why the Path Cache Hides It

    After moving Domino from Windows to Linux, a URL with the wrong case (the folder on disk is /FFH/ but you request /ffh/) sometimes 404s with 'File does not exist' and sometimes works — the same URL, flaky, and it always works by the time you go to check, so everyone assumes it's fine. The truth: Linux's filesystem is case-sensitive, and the Domino HTTP task caches successful path lookups, so the 404 only shows up when the cache is cold AND the very first hit uses the wrong case. This piece uses three rounds of curl tests on a real R12 (12.0.2 FP8) Linux server to reproduce the trap cleanly, explains why it stays hidden, and measures the symlink and directory-link workarounds.

    2026.10.09 →
  • Domino Server Admin +1
    Domino Maintenance Commands in Practice — Option Rules, the Transaction-Log Branch, and Scenario Playbooks (Daily / Repair / Won't Open)

    The options for updall, compact, and fixup are all over the web, but the same compact run with -b vs -B — and whether transaction logging is on — produces wildly different results: one keeps the DBIID, the other reassigns it and breaks your backup chain. This piece turns HCL's own maintenance manual into a practical reference: three syntax rules first (parameter position, case-sensitivity -b≠-B, keyword options), then compact's three compaction styles, then the full command sequences for three scenarios — scheduled daily maintenance, corruption repair, and work-hours-no-downtime — each marked for whether transaction logging is enabled.

    2026.10.08 →
  • Notes Client XPages +1
    The 12.0.2 'Documents Vanish Under a Sub-Category' Regression Family — Four KBs, Two notes.ini Parameters, Matched to Your Interface

    After upgrading to 12.0.2, a multi-level categorized view shows only the topmost layer — the documents under the sub-category are gone. You search the symptom, find a KB, add its notes.ini parameter, and it 'did not work' — because this isn't one bug, it's a whole family: four official KBs, two different parameters. The client-side @PickList and embedded views use EnableExtendedFindByKey=0 (fixed in FP1); XPages uses DISABLE_REFIND_IN_READENTRIES=1 (fixed in FP3/14.0). This piece maps all four KBs into one table so you match your interface first, then set the right parameter.

    2026.10.07 →
  • XPages Admin
    XPages: Documents Don't Show When a Multi-Column Category's Next Column Is Also a Category — the 12.0.2 Regression

    An XPages view categorized on multiple columns: you apply a filter, and where the next column is still a category, the screen shows the category but the documents under it disappear — in 12.0.2, though 12.0.1 works. It's an HCL-acknowledged regression (KB0102504 / SPR# MNIACMGKUV), introduced when 12.0.2 fixed another bug (SPR# PJONB7GRUL). The workaround is DISABLE_REFIND_IN_READENTRIES=1 in the server notes.ini; the real fix is 12.0.2 FP3 or 14.0. This covers the symptom, why it happens, the workaround and fix, and the wider family of 12.0.2 sub-category-display regressions (like the @PickList variant in KB0102042, which needs a different parameter and fix version) so you can match the right one.

    2026.10.06 →
  • SSJS Formula +1
    Running @Formula from SSJS: session.evaluate — Its Vector Return, Limits, and Why It Can't Change a Document

    You already have Formula logic — an @DbLookup, an @Name formatting call — and you don't want to rewrite it in SSJS. session.evaluate() runs a Formula string straight from SSJS and hands the result back. But it has sharp edges: it returns a java.util.Vector (not a scalar), field references need the document as a second argument, UI @functions (@Command/@Prompt/@PickList…) don't work in it, and it can't change a document — only compute a result. This covers the two signatures, the return and limits, and how to write the result back when you need to persist it.

    2026.10.05 →
  • Java Tutorial
    DXL in Java: Exporting and Importing Domino Data with DxlExporter / DxlImporter

    To move design elements between databases, or snapshot documents as XML for diffing/backup, DXL is Domino's XML representation. In Java the two workhorses are DxlExporter (Domino→DXL, exportDxl returns a String) and DxlImporter (DXL→Domino, importDxl writes into a target DB). The catch: import isn't just 'load the XML' — you tell it how to handle design, documents, and ACL (create/replace/update/ignore) with setDesignImportOption / setDocumentImportOption / setAclImportOption, and whether the replica must match. This covers both classes, the import options, and the relationship to the LotusScript version.

    2026.10.04 →
  • XPages Java +1
    XPages Managed Beans: Giving SSJS a Real Java Object You Use Like database

    SSJS in a script library is fine as glue, but logic gets unwieldy fast — no real types, hard to test, and serialization headaches when you stash it in scope. A managed bean lets you declare a Java class in faces-config.xml, and it becomes a top-level variable in SSJS and EL that you use just like database or session — bean.method(), #{bean.prop}. This covers how to declare one (the name/class/scope elements), the three class requirements (no-arg constructor, get/set, Serializable), the scope lifecycle, and when logic should move out of SSJS into a bean.

    2026.10.03 →
  • Formula Notes UI
    @Prompt and @PickList: Formula Dialogs to Ask the User — Client-Only, Not on the Web

    Want a button to pop 'Are you sure you want to delete?', or let the user pick a customer from a view? In Formula that's @Prompt and @PickList. @Prompt has a whole set of styles (Ok / YesNo / OkCancelList / Password / LocalBrowse…); @PickList opens a modal to select documents from a view and returns a column value, or to pick names from the Directory. But run the same formula on the web, or in a scheduled agent, and it silently does nothing — HCL states plainly, 'You cannot use this function in Web applications.' This covers the styles and return values, the client-only boundary, and which to use.

    2026.10.02 →
‹ Previous1234…22Next ›
Powered by Astro and GitHub Actions