It’s working as designed, but one might argue that the design choice was non-optimal.
This involves a fix for a problem in Notes 5, whereby if you replaced design with hiding but left the inherit changes option enabled, then the design task would unhide all your design elements later, while still making it appear that the design was securely hidden. It’s very simple to unhide the design of such a database, so this was treated as a security issue.
The way that the development team chose to fix this, involved disabling the ability to produce a template with hidden design.
I can see that this ability would be handy for companies developing Notes applications as products. I have already so argued, but I myself am not a business partner developing products, so I can only use logic. I’m not in a position to make a persuasive business case for it.
If anyone who has run into this problem is attending Lotusphere, the Meet the Developers session would be a good time to bring this up to the people who make these decisions, and let them see how many people in the audience agree.
The issue that Andre describes seems to be something to do with hidden designs.The issue that Thomas describes has nothing to do with hidden designs. Thomas happens to hide the design, but the problem occurs whether or not you hide the design.
the bug fix (for not being able to do a refresh design with a template with hidden design) was also in 6.5. So you are looking at a different issue than Andre and I first thought!
Subject: How to create a template with hidden design?
This bug occurs whether or not you hide the design, and whether or not you replace the template’s design from itself.To work around it, first set the “Inherit design from master template” property, specifying the template name, (in addition to the “Database file is a master template” property).
You will end up with “Inherit design from master template” set whether you want it or not, even if you uncheck “Inherit future design changes” when you replace the design.
Set db = New NotesDatabase("MyServer", "MyTemplate.ntf")
Dim mp As NotesDXLImporter
Set mp = session.CreateDXLImporter(stream, db)
With mp
.ReplaceDbProperties = True
.Process
End With
Wow! That’s a very sophisticated and brilliant solution.I thought about such banal solutions like using the C-API for editing the properties directly or for opening the design and after manually editing it closing it again. And then you come up with this one. I like it very much.
I like better the banal solution below (besides it works in R5 also):ndb.Title = ndb.Title & Chr$(10) & “#2” & “MasterTemplateName”
But I must admit that Rod’s solution is really elegant; ND6 and XML export/import has greatly pushed back the boundaries of what we can easily achieve.
I’m not worthy! I’m not worthy. Another astonishing solution. Thanks for this one-liner, Normunds.You seem to be a pragmatist.
Unfortunately this doesn’t solve my problem, because I need to specify the Template name of the DB itself and not the name of the Template it inherits from.
Subject: RE: How to create a template with hidden design?
If you do this, make sure you set the database launch properties, too. If they’re not included in your DXL stream, you’ll reset them to the standard “open to last view” for the database. I messed up a whole bunch of mail files like this once.