If you have a reason to archive old Notes and Domino databases, you may have come across Teamstudio Export. Export takes a Notes database and exports it to HTML format in such a way that you can navigate the archive with nothing more than a web browser. Views are preserved, full text searching is supported, and when you open a Notes document in the archive, it’s rendered in the browser just like it would be in the Notes client.
The first version of Export shipped in February 2018, but it wasn’t until version 3.0, in October of last year, that we added Notes form rendering in the archive. The reason it took so long to add that feature is because it’s hard! The Notes NSF file format is, of course, proprietary, and it’s also pretty complex just by virtue of the fact that it’s been around for more than 30 years and eleven major releases of the platform. Having said that, we weren’t newcomers to the world of Notes form rendering; both Teamstudio Configurator and Teamstudio Delta render forms to be able to show search results in context. But we render those forms as they appear in Domino Designer, not at run time.
Rendering a form from any given Notes application as it appears at run time is a mammoth task. It’s not just a case of combining the form layout with the data in the document and displaying it on the screen. Many fields that appear on a Notes form are computed at runtime, and the visibility of whole chunks of the form can be controlled by hide/when formulas. So we need to be able to support the various commands that are used to compute those values and display them properly.
There are a myriad of other issues too - for example date and currency formats are settings in the Notes client that, of course, we are not privy to. Also, roles are often used to hide/when chunks of the form. As we’re creating a read-only archive of the database, we have to make an assumption about what role the “viewer” has. (At the moment, we assume “no” roles, but we will most likely change that to assume “all” roles in an upcoming version.)
As an aside, we don’t support LotusScript when rendering a form. In our experience, almost all the code that’s used to control the display of the form at runtime is written in formula code. That’s not always the case though. We are aware of a PostOpen event in the Catalog app that computes a value which is then used in computed for display fields elsewhere. But these are edge cases and don’t, I’m afraid, justify writing a whole LotusScript interpreter to be able to handle.
Anyhow, let’s not get too concerned about that just yet. Back to the issue about formula code support. As you might expect, the Pareto principle applies here, so it’s a case of identifying the 20% of, say, formula code calls that represent 80% of the code out in the wild, and starting from there. Which is what we did. (Actually, we implemented quite a bit more than 20%, and are adding more all the time.) However, we are aware that while Export version 3.0, and even the current version 3.1 does a pretty good job of rendering the forms in most Notes apps, it’s not perfect.
Which is where you come in. Adding support for new formula code calls is not difficult, and can often be done quite quickly. The issue is, knowing which ones to add. Our experience has been that, if we can get our hands on customers’ example databases, we often find a few things that are not quite rendering correctly, and can quickly fix them. For example, we have a maintenance release of Export in the works, which will add support for several new formula code calls, including @DbTitle, @ReplicaID, @Sum, @Char and @GetProfileField, amongst others. We’re also adding a number of other small formatting tweaks, like supporting gradient backgrounds on table cells and strikethrough text styles.
Anyway, the point is, if we know about it, we can probably fix it. And so our request to you, if you’re an Export customer, is: if you see something that doesn’t quite look right, please, let us know! If you can provide us with an example database, even better.
We’re on a mission to make Export HTML archives as accurate a representation of the original Notes database as possible. With your help, we can make that happen!
To start a conversation about how we can improve Export for you, click below. And, thank you!